Optimiser Votre Stratégie de Référencement dans l’Univers High-Tech

Navigation

Bienvenue dans l’univers dynamique du High-Tech, où l’innovation est à chaque coin de rue ! Si vous êtes ici, c’est que vous comprenez déjà l’importance de se démarquer dans cette jungle numérique. L’une des meilleures façons d’y arriver ? Avoir une stratégie de référencement efficace. En 2023, il ne suffit plus d’avoir un site Web bien conçu ; il faut également bien comprendre et maîtriser les techniques de SEO (Search Engine Optimization) pour gagner en visibilité. Cet article vous guidera à travers les meilleures pratiques pour optimiser votre présence en ligne et attirer un public cible passionné de High-Tech.

Comprendre les Fondamentaux du Référencement

1. Définition du SEO

Le SEO, ou Search Engine Optimization, désigne l’ensemble des techniques visant à améliorer la visibilité d’un site web sur les moteurs de recherche. En d’autres termes, c’est ce qui permet à votre site d’apparaître parmi les premiers résultats de recherche lorsque quelqu’un tape des mots-clés liés à votre activité.

2. Différence entre SEO On-Page et Off-Page

Le SEO se divise en deux grandes catégories : le SEO On-Page et le SEO Off-Page. Le SEO On-Page concerne tous les éléments du site web que vous pouvez contrôler, comme les balises HTML, les mots-clés, la qualité du contenu, etc. Le SEO Off-Page, quant à lui, se concentre sur les facteurs externes comme les backlinks, les réseaux sociaux et autres signaux extérieurs qui indiquent la popularité et la pertinence de votre site.

3. L’importance des mots-clés

Les mots-clés sont au cœur du SECe sont les termes et expressions que les utilisateurs tapent dans les moteurs de recherche. Choisir les bons mots-clés peut faire toute la différence entre être trouvé ou être noyé dans l’océan de l’Internet. Utilisez des outils comme Google Keyword Planner ou SEMrush pour identifier les mots-clés pertinents pour votre secteur et intégrez-les naturellement dans votre contenu.

Optimisation Technique du Site

1. Vitesse de chargement des pages

L’impact sur le SEO

La vitesse de chargement des pages est cruciale pour le SEDes études montrent que les utilisateurs quittent une page si elle met plus de trois secondes à charger. En plus de frustrer les visiteurs, une faible vitesse de chargement peut également nuire à votre classement dans les résultats de recherche.

Moyens d’amélioration

Pour améliorer la vitesse de chargement, commencez par optimiser les images en réduisant leur taille sans perdre en qualité. Utilisez des formats appropriés comme JPEG pour les photos et PNG pour les graphiques. Pensez également à activer la compression gzip et à utiliser un CDN (Content Delivery Network) pour accélérer le chargement des pages.

2. Structure du site et navigation

Importance d’une bonne architecture

Une bonne architecture de site est essentielle pour le SELes moteurs de recherche comme Google utilisent des bots pour explorer votre site. Si la structure est claire et logique, ces bots indexeront plus facilement vos pages, améliorant ainsi votre classement.

Utilisation des balises et des en-têtes

Les balises HTML et les en-têtes (H1, H2, H3, etc.) jouent un rôle crucial dans l’optimisation On-Page. Utilisez des balises </code> pertinentes et des méta-descriptions pour décrire le contenu de chaque page. Les en-têtes doivent organiser le contenu de manière hiérarchique, facilitant la lecture pour les utilisateurs et les bots de recherche.</p> <h3>3. Compatible mobile</h3> <h4>Rôle du responsive design</h4> <p>Avec l’augmentation de l’utilisation des smartphones, avoir un site compatible mobile n’est plus une option, c’est une nécessité. Un <strong>responsive design</strong> garantit que votre site s’affiche correctement sur tous les types d’appareils, améliorant ainsi l’expérience utilisateur et votre classement SEO.</p> <h4>Outils de test et recommandations</h4> <p>Utilisez des outils comme Google Mobile-Friendly Test pour vérifier la compatibilité mobile de votre site. Apportez les ajustements nécessaires en fonction des résultats pour garantir une expérience utilisateur optimale.</p> </section> <section> <h2>Contenu de Qualité et Original</h2> <h3>1. Création de contenu pertinent</h3> <h4>Identification des besoins de la cible</h4> <p>Pour créer du contenu qui résonne avec votre audience, vous devez d’abord comprendre leurs besoins et leurs attentes. Utilisez des outils comme les sondages, les enquêtes et les analyses de mots-clés pour guider votre stratégie de contenu. Cela vous permettra de produire des articles, des vidéos et des infographies qui répondent directement aux questions et intérêts de vos utilisateurs.</p> <h4>Utilisation des mots-clés de manière naturelle</h4> <p>Une fois que vous avez identifié les mots-clés pertinents, intégrez-les naturellement dans votre contenu. Évitez le <em>keyword stuffing</em>, car cela peut nuire à la lisibilité de vos articles et pénaliser votre site dans les résultats de recherche. Optez pour une approche plus fluide et organique de l’intégration des mots-clés.</p> <h3>2. Fréquence de publication</h3> <h4>Pourquoi la régularité est-elle importante</h4> <p>Publier régulièrement du contenu frais est essentiel pour maintenir l’engagement de votre audience et améliorer votre SELes moteurs de recherche favorisent les sites qui sont constamment mis à jour, car cela indique que le contenu est pertinent et à jour.</p> <h4>Stratégies pour maintenir un flux de contenu constant</h4> <p>Planifiez vos publications à l’avance en utilisant un calendrier éditorial. Cela vous aidera à rester organisé et à maintenir un rythme de publication constant. Envisagez également de recruter des rédacteurs invités ou de collaborer avec d’autres professionnels du secteur pour diversifier votre contenu.</p> <h3>3. Optimisation des images et des vidéos</h3> <h4>Importance des balises ALT</h4> <p>Les balises ALT sont des descriptions textuelles pour les images, essentiels pour l’accessibilité et le SEElles permettent aux moteurs de recherche de comprendre le contenu visuel de votre site, améliorant ainsi votre classement dans les recherches d’images.</p> <h4>Réduction de la taille des fichiers pour améliorer la vitesse de chargement</h4> <p>La taille des fichiers multimédia peut grandement affecter la vitesse de chargement de votre site. Utilisez des outils de compression pour réduire la taille des images et des vidéos sans compromettre leur qualité. Cela aidera à maintenir une expérience utilisateur fluide et rapide.</p> </section> <section> <h2>. Stratégies de Backlinking</h2> <h3>1. Qu’est-ce qu’un backlink et pourquoi est-il important ?</h3> <p>Un <strong>backlink</strong> est un lien externe pointant vers votre site. Les backlinks sont essentiels pour le SEO car ils agissent comme des votes de confiance de la part d’autres sites Web. Plus vous avez de backlinks de qualité, meilleure sera votre crédibilité aux yeux des moteurs de recherche.</p> <h3>2. Méthodes pour obtenir des backlinks de qualité</h3> <h4>Partenariats et collaborations</h4> <p>Établir des partenariats et des collaborations avec d’autres sites High-Tech est une excellente façon de générer des backlinks. Participez à des webinaires, co-écrivez des articles de blog ou rejoignez des projets communs pour obtenir des liens retour vers votre site.</p> <h4>Participation aux forums et communautés High-Tech</h4> <p>Engagez-vous dans des forums et des communautés en ligne pertinents à votre secteur. Participez activement en partageant des idées et en fournissant des ressources utiles. Toutefois, veillez à rester authentique et à éviter les pratiques de spam, car cela pourrait nuire à votre réputation.</p> <h3>3. Éviter les pratiques de black hat</h3> <p>Les pratiques de <strong>black hat SEO</strong> incluent des techniques douteuses comme l’achat de backlinks ou l’utilisation de réseaux de blogs privés (PBN). Bien que ces méthodes puissent offrir des gains rapides, elles sont risquées et peuvent entraîner des pénalités sévères de la part des moteurs de recherche. Optez toujours pour des stratégies éthiques et durables.</p> </section> <section> <h2>Analyse et Adaptation Continuelle</h2> <h3>1. Outils d’analyse SEO (Google Analytics, SEMrush)</h3> <p>L’évaluation régulière de vos efforts SEO est cruciale pour comprendre ce qui fonctionne et ce qui doit être amélioré. Des outils comme <a href="https://analytics.google.com">Google Analytics</a> et <a href="https://www.semrush.com">SEMrush</a> peuvent vous fournir des informations précieuses sur le trafic de votre site, les mots-clés performants, et les backlinks.</p> <h3>2. Suivi des performances et ajustements</h3> <p>Surveillez de près les performances de votre site et ajustez votre stratégie en conséquence. Si certaines pages ne reçoivent pas beaucoup de trafic, envisagez d’optimiser leur contenu ou leurs mots-clés. L’itération continuelle est la clé pour maintenir et améliorer votre classement dans les moteurs de recherche.</p> <h3>3. Importance de rester informé des mises à jour des algorithmes des moteurs de recherche</h3> <p>Les algorithmes des moteurs de recherche sont régulièrement mis à jour, et ces changements peuvent avoir des impacts significatifs sur votre SERestez informé des mises à jour en suivant des blogs, des forums et des newsletters SEÊtre proactif vous permet de vous adapter rapidement et de conserver votre avantage concurrentiel.</p> </section> <section>Pour résumer, une <strong>stratégie de référencement efficace</strong> dans le secteur High-Tech repose sur plusieurs piliers : une compréhension profonde des fondamentaux du SEO, une optimisation technique rigoureuse, la création de contenu de qualité, des stratégies de backlinking éthiques et une analyse continue. Être persévérant et adaptable est crucial, car le paysage numérique est en constante évolution. En investissant du temps et des ressources dans une stratégie de référencement bien pensée, vous pouvez non seulement améliorer votre visibilité en ligne, mais également fidéliser une audience engagée et passionnée par la technologie. Alors n’attendez plus, commencez dès aujourd’hui à optimiser votre présence en ligne !</p> </section> </div> <div class="elementor-element elementor-element-5562e91 elementor-position-left elementor-position-top elementor-vertical-align-middle elementor-widget elementor-widget-image-box" data-id="5562e91" data-element_type="widget" data-widget_type="image-box.default"> <div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><img loading="lazy" width="300" height="300" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-full size-full wp-image-1314 ewww_webp" alt="SEOLyon_Thomas_Bernard" data-src-img="https://www.agence-seo-lyon.fr/wp-content/uploads/2024/11/SEOLyon_Thomas_Bernard.jpg" data-src-webp="https://www.agence-seo-lyon.fr/wp-content/uploads/2024/11/SEOLyon_Thomas_Bernard.jpg.webp" data-eio="j" /><noscript><img loading="lazy" width="300" height="300" src="https://www.agence-seo-lyon.fr/wp-content/uploads/2024/11/SEOLyon_Thomas_Bernard.jpg" class="attachment-full size-full wp-image-1314" alt="SEOLyon_Thomas_Bernard" /></noscript></figure><div class="elementor-image-box-content"><h3 class="elementor-image-box-title">Thomas Bernard</h3><p class="elementor-image-box-description">Thomas Bernard est consultant SEO à Lyon, où il aide les entreprises à améliorer leur référencement naturel et à booster leur visibilité sur les moteurs de recherche. Avec son expertise technique et ses connaissances approfondies du marché lyonnais, il guide ses clients dans l'optimisation de leurs sites pour une meilleure conversion. Il s’efforce de maintenir ses stratégies SEO à la pointe des dernières innovations.</p></div></div> </div> </div> <div data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-element elementor-element-e879280 e-con-full e-flex e-con e-child" data-id="e879280" data-element_type="container"> <div class="elementor-element elementor-element-01fc24f elementor-hidden-mobile elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents" data-id="01fc24f" data-element_type="widget" data-settings="{"headings_by_tags":["h2"],"exclude_headings_by_selector":[],"marker_view":"bullets","icon":{"value":"fas fa-chevron-right","library":"fa-solid","rendered_tag":"<svg class=\"e-font-icon-svg e-fas-chevron-right\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>"},"no_headings_message":"Aucun titre n\u2019a \u00e9t\u00e9 trouv\u00e9 sur cette page.","minimize_box":"yes","minimized_on":"tablet","hierarchical_view":"yes","min_height":{"unit":"px","size":"","sizes":[]},"min_height_tablet":{"unit":"px","size":"","sizes":[]},"min_height_mobile":{"unit":"px","size":"","sizes":[]}}" data-widget_type="table-of-contents.default"> <div class="elementor-toc__header"> <h4 class="elementor-toc__header-title"> Navigation </h4> <div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand" role="button" tabindex="0" aria-controls="elementor-toc__01fc24f" aria-expanded="true" aria-label="Ouvrir la table des matières"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-down" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path></svg></div> <div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse" role="button" tabindex="0" aria-controls="elementor-toc__01fc24f" aria-expanded="true" aria-label="Fermer la table des matières"><svg aria-hidden="true" class="e-font-icon-svg e-fas-chevron-up" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path></svg></div> </div> <div id="elementor-toc__01fc24f" class="elementor-toc__body"> <div class="elementor-toc__spinner-container"> <svg class="elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading" aria-hidden="true" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg"><path d="M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z"></path></svg> </div> </div> </div> <div class="elementor-element elementor-element-240ebc0 elementor-grid-1 elementor-grid-tablet-1 elementor-posts--thumbnail-left elementor-grid-mobile-1 elementor-widget elementor-widget-posts" data-id="240ebc0" data-element_type="widget" data-settings="{"classic_columns":"1","classic_columns_tablet":"1","classic_columns_mobile":"1","classic_row_gap":{"unit":"px","size":35,"sizes":[]},"classic_row_gap_tablet":{"unit":"px","size":"","sizes":[]},"classic_row_gap_mobile":{"unit":"px","size":"","sizes":[]}}" data-widget_type="posts.classic"> <div class="elementor-widget-container"> <div class="elementor-posts-container elementor-posts elementor-posts--skin-classic elementor-grid"> <article class="elementor-post elementor-grid-item post-1365 post type-post status-publish format-standard has-post-thumbnail hentry category-blog"> <a class="elementor-post__thumbnail__link" href="https://www.agence-seo-lyon.fr/definition-seo/" tabindex="-1" > <div class="elementor-post__thumbnail"><img loading="lazy" width="300" height="168" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-medium size-medium wp-image-1366 ewww_webp" alt="définition seo" data-src-img="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/08/Comment_loptimisation_pour_les_moteurs_de_recherche_revolutionne_la_visibilite_des_objets_connectes-300x168.jpg" data-src-webp="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/08/Comment_loptimisation_pour_les_moteurs_de_recherche_revolutionne_la_visibilite_des_objets_connectes-300x168.jpg.webp" data-eio="j" /><noscript><img loading="lazy" width="300" height="168" src="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/08/Comment_loptimisation_pour_les_moteurs_de_recherche_revolutionne_la_visibilite_des_objets_connectes-300x168.jpg" class="attachment-medium size-medium wp-image-1366" alt="définition seo" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.agence-seo-lyon.fr/definition-seo/" > Comment l’optimisation pour les moteurs de recherche révolutionne la visibilité des objets connectés </a> </h3> </div> </article> <article class="elementor-post elementor-grid-item post-1363 post type-post status-publish format-standard has-post-thumbnail hentry category-blog"> <a class="elementor-post__thumbnail__link" href="https://www.agence-seo-lyon.fr/referencer-un-site-internet/" tabindex="-1" > <div class="elementor-post__thumbnail"><img loading="lazy" width="300" height="168" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-medium size-medium wp-image-1364 ewww_webp" alt="référencer un site internet" data-src-img="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/08/Augmenter_la_visibilite_de_votre_site_high_tech_en_quelques_actions_SEO_accessibles_et_efficaces-300x168.jpg" data-src-webp="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/08/Augmenter_la_visibilite_de_votre_site_high_tech_en_quelques_actions_SEO_accessibles_et_efficaces-300x168.jpg.webp" data-eio="j" /><noscript><img loading="lazy" width="300" height="168" src="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/08/Augmenter_la_visibilite_de_votre_site_high_tech_en_quelques_actions_SEO_accessibles_et_efficaces-300x168.jpg" class="attachment-medium size-medium wp-image-1364" alt="référencer un site internet" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.agence-seo-lyon.fr/referencer-un-site-internet/" > Augmenter la visibilité de votre site high-tech en quelques actions SEO accessibles et efficaces </a> </h3> </div> </article> <article class="elementor-post elementor-grid-item post-1361 post type-post status-publish format-standard has-post-thumbnail hentry category-blog"> <a class="elementor-post__thumbnail__link" href="https://www.agence-seo-lyon.fr/comment-mettre-son-entreprise-sur-google/" tabindex="-1" > <div class="elementor-post__thumbnail"><img loading="lazy" width="300" height="171" src="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/07/Ameliorer_la_visibilite_de_votre_entreprise_high_tech_grace_a_une_fiche_Google_efficace-300x171.webp" class="attachment-medium size-medium wp-image-1362" alt="comment mettre son entreprise sur google" /></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.agence-seo-lyon.fr/comment-mettre-son-entreprise-sur-google/" > Améliorer la visibilité de votre entreprise high-tech grâce à une fiche Google efficace </a> </h3> </div> </article> <article class="elementor-post elementor-grid-item post-1359 post type-post status-publish format-standard has-post-thumbnail hentry category-blog"> <a class="elementor-post__thumbnail__link" href="https://www.agence-seo-lyon.fr/vitesse-d-un-site-web/" tabindex="-1" > <div class="elementor-post__thumbnail"><img loading="lazy" width="300" height="171" src="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/07/Optimiser_la_vitesse_de_chargement_dun_site_web_high_tech_pour_propulser_vos_conversions-300x171.webp" class="attachment-medium size-medium wp-image-1360" alt="vitesse d un site web" /></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.agence-seo-lyon.fr/vitesse-d-un-site-web/" > Optimiser la vitesse de chargement d’un site web high-tech pour propulser vos conversions </a> </h3> </div> </article> <article class="elementor-post elementor-grid-item post-1357 post type-post status-publish format-standard has-post-thumbnail hentry category-blog"> <a class="elementor-post__thumbnail__link" href="https://www.agence-seo-lyon.fr/seo-communication/" tabindex="-1" > <div class="elementor-post__thumbnail"><img loading="lazy" width="300" height="171" src="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/07/Comment_une_strategie_de_referencement_naturel_transforme_la_communication_high_tech-300x171.webp" class="attachment-medium size-medium wp-image-1358" alt="seo communication" /></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.agence-seo-lyon.fr/seo-communication/" > Comment une stratégie de référencement naturel transforme la communication high-tech </a> </h3> </div> </article> <article class="elementor-post elementor-grid-item post-1355 post type-post status-publish format-standard has-post-thumbnail hentry category-blog"> <a class="elementor-post__thumbnail__link" href="https://www.agence-seo-lyon.fr/faire-un-audit-seo/" tabindex="-1" > <div class="elementor-post__thumbnail"><img loading="lazy" width="300" height="171" src="https://www.agence-seo-lyon.fr/wp-content/uploads/2025/07/Comment_un_audit_seo_sur_un_site_high_tech_revele_des_failles_cachees_et_booste_la_performance-300x171.webp" class="attachment-medium size-medium wp-image-1356" alt="faire un audit seo" /></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.agence-seo-lyon.fr/faire-un-audit-seo/" > Comment un audit seo sur un site high-tech révèle des failles cachées et booste la performance </a> </h3> </div> </article> </div> </div> </div> </div> </div> </div> <div data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-element elementor-element-897c954 e-flex e-con-boxed e-con e-parent" data-id="897c954" data-element_type="container"> <div class="e-con-inner"> <div class="elementor-element elementor-element-b593afe elementor-widget elementor-widget-text-editor" data-id="b593afe" data-element_type="widget" data-widget_type="text-editor.default"> <p><strong>PARTAGER SUR :</strong></p> </div> <div class="elementor-element elementor-element-811f690 elementor-share-buttons--view-icon-text elementor-share-buttons--skin-gradient elementor-share-buttons--shape-square elementor-grid-0 elementor-share-buttons--color-official elementor-widget elementor-widget-share-buttons" data-id="811f690" data-element_type="widget" data-widget_type="share-buttons.default"> <div class="elementor-grid" role="list"> <div class="elementor-grid-item" role="listitem"> <div class="elementor-share-btn elementor-share-btn_facebook" role="button" tabindex="0" aria-label="Partager sur facebook"> <span class="elementor-share-btn__icon"> <svg class="e-font-icon-svg e-fab-facebook" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path></svg> </span> <div class="elementor-share-btn__text"> <span class="elementor-share-btn__title"> Facebook </span> </div> </div> </div> <div class="elementor-grid-item" role="listitem"> <div class="elementor-share-btn elementor-share-btn_twitter" role="button" tabindex="0" aria-label="Partager sur twitter"> <span class="elementor-share-btn__icon"> <svg class="e-font-icon-svg e-fab-twitter" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg> </span> <div class="elementor-share-btn__text"> <span class="elementor-share-btn__title"> Twitter </span> </div> </div> </div> <div class="elementor-grid-item" role="listitem"> <div class="elementor-share-btn elementor-share-btn_linkedin" role="button" tabindex="0" aria-label="Partager sur linkedin"> <span class="elementor-share-btn__icon"> <svg class="e-font-icon-svg e-fab-linkedin" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg> </span> <div class="elementor-share-btn__text"> <span class="elementor-share-btn__title"> LinkedIn </span> </div> </div> </div> </div> </div> </div> </div> </div> <div data-elementor-type="footer" data-elementor-id="54" class="elementor elementor-54 elementor-location-footer" data-elementor-post-type="elementor_library"> <section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-4061b811 elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4061b811" data-element_type="section" data-settings="{"stretch_section":"section-stretched","background_background":"classic"}"> <div class="elementor-background-overlay"></div> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-53dac235" data-id="53dac235" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-6e1a5727 elementor-widget elementor-widget-image" data-id="6e1a5727" data-element_type="widget" data-widget_type="image.default"> <img loading="lazy" fetchpriority="high" width="800" height="300" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-full size-full wp-image-413 ewww_webp" alt srcset="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== 1w" sizes="(max-width: 800px) 100vw, 800px" data-src-img="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png" data-src-webp="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png.webp" data-srcset-webp="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png.webp 800w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-300x113.png.webp 300w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-768x288.png.webp 768w" data-srcset-img="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png 800w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-300x113.png 300w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-768x288.png 768w" data-eio="j" /><noscript><img loading="lazy" fetchpriority="high" width="800" height="300" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-full size-full wp-image-413 ewww_webp" alt srcset="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== 1w" sizes="(max-width: 800px) 100vw, 800px" data-src-img="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png" data-src-webp="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png.webp" data-srcset-webp="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png.webp 800w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-300x113.png.webp 300w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-768x288.png.webp 768w" data-srcset-img="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png 800w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-300x113.png 300w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-768x288.png 768w" data-eio="j" /><noscript><img loading="lazy" fetchpriority="high" width="800" height="300" src="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png" class="attachment-full size-full wp-image-413" alt srcset="https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1.png 800w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-300x113.png 300w, https://www.agence-seo-lyon.fr/wp-content/uploads/2022/04/Agence-LYON1-768x288.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></noscript></noscript> </div> </div> </div> <div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-56d8768d" data-id="56d8768d" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-19744e8b elementor-widget elementor-widget-heading" data-id="19744e8b" data-element_type="widget" data-widget_type="heading.default"> <h3 class="elementor-heading-title elementor-size-default">Infos</h3> </div> <div class="elementor-element elementor-element-be373a4 elementor-nav-menu--dropdown-none elementor-widget elementor-widget-nav-menu" data-id="be373a4" data-element_type="widget" data-settings="{"layout":"vertical","submenu_icon":{"value":"<svg class=\"e-font-icon-svg e-fas-caret-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"><\/path><\/svg>","library":"fa-solid"}}" data-widget_type="nav-menu.default"> <nav aria-label="Menu" class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-vertical e--pointer-none"> <ul id="menu-1-be373a4" class="elementor-nav-menu sm-vertical"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1212"><a href="/blog" class="elementor-item">Blog</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-39"><a href="https://www.agence-seo-lyon.fr/nous-contacter/" class="elementor-item">Nous Contacter</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-38"><a href="https://www.agence-seo-lyon.fr/mentions-legales/" class="elementor-item">Mentions légales</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1211"><a href="/sitemap.xml" class="elementor-item">Sitemap</a></li> </ul> </nav> <nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true"> <ul id="menu-2-be373a4" class="elementor-nav-menu sm-vertical"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1212"><a href="/blog" class="elementor-item" tabindex="-1">Blog</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-39"><a href="https://www.agence-seo-lyon.fr/nous-contacter/" class="elementor-item" tabindex="-1">Nous Contacter</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-38"><a href="https://www.agence-seo-lyon.fr/mentions-legales/" class="elementor-item" tabindex="-1">Mentions légales</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1211"><a href="/sitemap.xml" class="elementor-item" tabindex="-1">Sitemap</a></li> </ul> </nav> </div> </div> </div> <div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-75b608f5" data-id="75b608f5" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-15d8dfe elementor-widget elementor-widget-heading" data-id="15d8dfe" data-element_type="widget" data-widget_type="heading.default"> <h3 class="elementor-heading-title elementor-size-default">Contactez nous</h3> </div> <section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-inner-section elementor-element elementor-element-5a33ec73 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5a33ec73" data-element_type="section"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-372eaf4e" data-id="372eaf4e" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-5959d1a elementor-widget elementor-widget-heading" data-id="5959d1a" data-element_type="widget" data-widget_type="heading.default"> <p class="elementor-heading-title elementor-size-default">Adresse :</p> </div> </div> </div> <div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-54263724" data-id="54263724" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-24b08f02 elementor-widget elementor-widget-heading" data-id="24b08f02" data-element_type="widget" data-widget_type="heading.default"> <p class="elementor-heading-title elementor-size-default">35 Rue de Marseille, 69007 Lyon, France</p> </div> </div> </div> </div> </section> <section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-inner-section elementor-element elementor-element-39bb7ef4 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="39bb7ef4" data-element_type="section"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-6a19093f" data-id="6a19093f" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-447a7c83 elementor-widget elementor-widget-heading" data-id="447a7c83" data-element_type="widget" data-widget_type="heading.default"> <p class="elementor-heading-title elementor-size-default">Email : </p> </div> </div> </div> <div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-346d8074" data-id="346d8074" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-1e8c72a4 elementor-widget elementor-widget-heading" data-id="1e8c72a4" data-element_type="widget" data-widget_type="heading.default"> <p class="elementor-heading-title elementor-size-default"><a href="mailto:contact@agence-seo-lyon.fr">contact@agence-seo-lyon.fr</a></p> </div> </div> </div> </div> </section> </div> </div> <div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-60373983 elementor-hidden-tablet" data-id="60373983" data-element_type="column"> <div class="elementor-widget-wrap"> </div> </div> </div> </section> <section data-particle_enable="false" data-particle-mobile-disabled="false" class="elementor-section elementor-top-section elementor-element elementor-element-692e2703 elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="692e2703" data-element_type="section" data-settings="{"stretch_section":"section-stretched","background_background":"classic"}"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1b0ed70" data-id="1b0ed70" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-4421795 elementor-widget elementor-widget-text-editor" data-id="4421795" data-element_type="widget" data-widget_type="text-editor.default"> <p>© 2025 Agence SEO Lyon. Tout Droit Réservés.</p> </div> </div> </div> </div> </section> </div> <script type="speculationrules">{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/hello-elementor/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}</script> <script type="text/phast">const lazyloadRunObserver=()=>{const lazyloadBackgrounds=document.querySelectorAll(`.e-con.e-parent:not(.e-lazyloaded)`);const lazyloadBackgroundObserver=new IntersectionObserver((entries)=>{entries.forEach((entry)=>{if(entry.isIntersecting){let lazyloadBackground=entry.target;if(lazyloadBackground){lazyloadBackground.classList.add('e-lazyloaded');} lazyloadBackgroundObserver.unobserve(entry.target);}});},{rootMargin:'200px 0px 200px 0px'});lazyloadBackgrounds.forEach((lazyloadBackground)=>{lazyloadBackgroundObserver.observe(lazyloadBackground);});};const events=['DOMContentLoaded','elementor/lazyload/observe',];events.forEach((event)=>{document.addEventListener(event,lazyloadRunObserver);});</script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" data-phast-params='{"ref":"3pgBQPszZqU"}' type="text/phast" id="wp-hooks-js"></script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" data-phast-params='{"ref":"Krdn_PEkFx4"}' type="text/phast" id="wp-i18n-js"></script> <script type="text/phast" id="wp-i18n-js-after">wp.i18n.setLocaleData({'text direction\u0004ltr':['ltr']});</script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.1" data-phast-params='{"ref":"P4bgKVfulfs"}' type="text/phast" id="swv-js"></script> <script type="text/phast" id="contact-form-7-js-before">var wpcf7={"api":{"root":"https:\/\/www.agence-seo-lyon.fr\/wp-json\/","namespace":"contact-form-7\/v1"},"cached":1};</script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.1" data-phast-params='{"ref":"aLqq-oeia-I"}' type="text/phast" id="contact-form-7-js"></script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/themes/hello-elementor/assets/js/hello-frontend.js?ver=3.4.4" data-phast-params='{"ref":"HIkFveVbMIo"}' type="text/phast" id="hello-theme-frontend-js"></script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=3.31.3" data-phast-params='{"ref":"_KkpLEw4gnQ"}' type="text/phast" id="elementor-webpack-runtime-js"></script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=3.31.3" data-phast-params='{"ref":"JOGeZ0WtJMk"}' type="text/phast" id="elementor-frontend-modules-js"></script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" data-phast-params='{"ref":"vbGzkO1qVXs"}' type="text/phast" id="jquery-ui-core-js"></script> <script type="text/phast" id="elementor-frontend-js-before">var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":false},"version":"3.31.3","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_optimized_markup":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"nested-elements":true,"e_element_cache":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"mega-menu":true},"urls":{"assets":"https:\/\/www.agence-seo-lyon.fr\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/www.agence-seo-lyon.fr\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/www.agence-seo-lyon.fr\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"f844f9794d"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description","hello_header_logo_type":"title","hello_header_menu_layout":"horizontal","hello_footer_logo_type":"logo"},"post":{"id":829,"title":"Optimisez%20Votre%20R%C3%A9f%C3%A9rencement%20High-Tech%3A%20Guide%20Complet","excerpt":"","featuredImage":"https:\/\/www.agence-seo-lyon.fr\/wp-content\/uploads\/2024\/08\/Optimiser_Votre_Strategie_de_Referencement_dans_lUnivers_High_Tech-1024x578.webp"}};</script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=3.31.3" data-phast-params='{"ref":"8oSGcgiHF-g"}' type="text/phast" id="elementor-frontend-js"></script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js?ver=1.2.1" data-phast-params='{"ref":"S3r9S7Tumh0"}' type="text/phast" id="smartmenus-js"></script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-includes/js/imagesloaded.min.js?ver=5.0.0" data-phast-params='{"ref":"PlP8zxBwXds"}' type="text/phast" id="imagesloaded-js"></script> <script type="text/phast" id="eael-general-js-extra">var localize = {"ajaxurl":"https:\/\/www.agence-seo-lyon.fr\/wp-admin\/admin-ajax.php","nonce":"18055e1fd8","i18n":{"added":"Added ","compare":"Compare","loading":"Loading..."},"eael_translate_text":{"required_text":"is a required field","invalid_text":"Invalid","billing_text":"Billing","shipping_text":"Shipping","fg_mfp_counter_text":"of"},"page_permalink":"https:\/\/www.agence-seo-lyon.fr\/optimiser-votre-strategie-de-referencement-dans-lunivers-high-tech\/","cart_redirectition":"","cart_page_url":"","el_breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"ParticleThemesData":{"default":"{\"particles\":{\"number\":{\"value\":160,\"density\":{\"enable\":true,\"value_area\":800}},\"color\":{\"value\":\"#ffffff\"},\"shape\":{\"type\":\"circle\",\"stroke\":{\"width\":0,\"color\":\"#000000\"},\"polygon\":{\"nb_sides\":5},\"image\":{\"src\":\"img\/github.svg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":0.5,\"random\":false,\"anim\":{\"enable\":false,\"speed\":1,\"opacity_min\":0.1,\"sync\":false}},\"size\":{\"value\":3,\"random\":true,\"anim\":{\"enable\":false,\"speed\":40,\"size_min\":0.1,\"sync\":false}},\"line_linked\":{\"enable\":true,\"distance\":150,\"color\":\"#ffffff\",\"opacity\":0.4,\"width\":1},\"move\":{\"enable\":true,\"speed\":6,\"direction\":\"none\",\"random\":false,\"straight\":false,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":1200}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":true,\"mode\":\"repulse\"},\"onclick\":{\"enable\":true,\"mode\":\"push\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":400,\"line_linked\":{\"opacity\":1}},\"bubble\":{\"distance\":400,\"size\":40,\"duration\":2,\"opacity\":8,\"speed\":3},\"repulse\":{\"distance\":200,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}","nasa":"{\"particles\":{\"number\":{\"value\":250,\"density\":{\"enable\":true,\"value_area\":800}},\"color\":{\"value\":\"#ffffff\"},\"shape\":{\"type\":\"circle\",\"stroke\":{\"width\":0,\"color\":\"#000000\"},\"polygon\":{\"nb_sides\":5},\"image\":{\"src\":\"img\/github.svg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":1,\"random\":true,\"anim\":{\"enable\":true,\"speed\":1,\"opacity_min\":0,\"sync\":false}},\"size\":{\"value\":3,\"random\":true,\"anim\":{\"enable\":false,\"speed\":4,\"size_min\":0.3,\"sync\":false}},\"line_linked\":{\"enable\":false,\"distance\":150,\"color\":\"#ffffff\",\"opacity\":0.4,\"width\":1},\"move\":{\"enable\":true,\"speed\":1,\"direction\":\"none\",\"random\":true,\"straight\":false,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":600}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":true,\"mode\":\"bubble\"},\"onclick\":{\"enable\":true,\"mode\":\"repulse\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":400,\"line_linked\":{\"opacity\":1}},\"bubble\":{\"distance\":250,\"size\":0,\"duration\":2,\"opacity\":0,\"speed\":3},\"repulse\":{\"distance\":400,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}","bubble":"{\"particles\":{\"number\":{\"value\":15,\"density\":{\"enable\":true,\"value_area\":800}},\"color\":{\"value\":\"#1b1e34\"},\"shape\":{\"type\":\"polygon\",\"stroke\":{\"width\":0,\"color\":\"#000\"},\"polygon\":{\"nb_sides\":6},\"image\":{\"src\":\"img\/github.svg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":0.3,\"random\":true,\"anim\":{\"enable\":false,\"speed\":1,\"opacity_min\":0.1,\"sync\":false}},\"size\":{\"value\":50,\"random\":false,\"anim\":{\"enable\":true,\"speed\":10,\"size_min\":40,\"sync\":false}},\"line_linked\":{\"enable\":false,\"distance\":200,\"color\":\"#ffffff\",\"opacity\":1,\"width\":2},\"move\":{\"enable\":true,\"speed\":8,\"direction\":\"none\",\"random\":false,\"straight\":false,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":1200}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":false,\"mode\":\"grab\"},\"onclick\":{\"enable\":false,\"mode\":\"push\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":400,\"line_linked\":{\"opacity\":1}},\"bubble\":{\"distance\":400,\"size\":40,\"duration\":2,\"opacity\":8,\"speed\":3},\"repulse\":{\"distance\":200,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}","snow":"{\"particles\":{\"number\":{\"value\":450,\"density\":{\"enable\":true,\"value_area\":800}},\"color\":{\"value\":\"#fff\"},\"shape\":{\"type\":\"circle\",\"stroke\":{\"width\":0,\"color\":\"#000000\"},\"polygon\":{\"nb_sides\":5},\"image\":{\"src\":\"img\/github.svg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":0.5,\"random\":true,\"anim\":{\"enable\":false,\"speed\":1,\"opacity_min\":0.1,\"sync\":false}},\"size\":{\"value\":5,\"random\":true,\"anim\":{\"enable\":false,\"speed\":40,\"size_min\":0.1,\"sync\":false}},\"line_linked\":{\"enable\":false,\"distance\":500,\"color\":\"#ffffff\",\"opacity\":0.4,\"width\":2},\"move\":{\"enable\":true,\"speed\":6,\"direction\":\"bottom\",\"random\":false,\"straight\":false,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":1200}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":true,\"mode\":\"bubble\"},\"onclick\":{\"enable\":true,\"mode\":\"repulse\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":400,\"line_linked\":{\"opacity\":0.5}},\"bubble\":{\"distance\":400,\"size\":4,\"duration\":0.3,\"opacity\":1,\"speed\":3},\"repulse\":{\"distance\":200,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}","nyan_cat":"{\"particles\":{\"number\":{\"value\":150,\"density\":{\"enable\":false,\"value_area\":800}},\"color\":{\"value\":\"#ffffff\"},\"shape\":{\"type\":\"star\",\"stroke\":{\"width\":0,\"color\":\"#000000\"},\"polygon\":{\"nb_sides\":5},\"image\":{\"src\":\"http:\/\/wiki.lexisnexis.com\/academic\/images\/f\/fb\/Itunes_podcast_icon_300.jpg\",\"width\":100,\"height\":100}},\"opacity\":{\"value\":0.5,\"random\":false,\"anim\":{\"enable\":false,\"speed\":1,\"opacity_min\":0.1,\"sync\":false}},\"size\":{\"value\":4,\"random\":true,\"anim\":{\"enable\":false,\"speed\":40,\"size_min\":0.1,\"sync\":false}},\"line_linked\":{\"enable\":false,\"distance\":150,\"color\":\"#ffffff\",\"opacity\":0.4,\"width\":1},\"move\":{\"enable\":true,\"speed\":14,\"direction\":\"left\",\"random\":false,\"straight\":true,\"out_mode\":\"out\",\"bounce\":false,\"attract\":{\"enable\":false,\"rotateX\":600,\"rotateY\":1200}}},\"interactivity\":{\"detect_on\":\"canvas\",\"events\":{\"onhover\":{\"enable\":false,\"mode\":\"grab\"},\"onclick\":{\"enable\":true,\"mode\":\"repulse\"},\"resize\":true},\"modes\":{\"grab\":{\"distance\":200,\"line_linked\":{\"opacity\":1}},\"bubble\":{\"distance\":400,\"size\":40,\"duration\":2,\"opacity\":8,\"speed\":3},\"repulse\":{\"distance\":200,\"duration\":0.4},\"push\":{\"particles_nb\":4},\"remove\":{\"particles_nb\":2}}},\"retina_detect\":true}"},"eael_login_nonce":"3ab32ac005","eael_register_nonce":"079464b021","eael_lostpassword_nonce":"6d77ea79f3","eael_resetpassword_nonce":"c54a9b80ba"};</script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/essential-addons-for-elementor-lite/assets/front-end/js/view/general.min.js?ver=6.3.1" data-phast-params='{"ref":"Dws3YnT0W9Q"}' type="text/phast" id="eael-general-js"></script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=3.29.2" data-phast-params='{"ref":"0RMFDPH3sr8"}' type="text/phast" id="elementor-pro-webpack-runtime-js"></script> <script type="text/phast" id="elementor-pro-frontend-js-before">var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/www.agence-seo-lyon.fr\/wp-admin\/admin-ajax.php","nonce":"c3b7e86d0f","urls":{"assets":"https:\/\/www.agence-seo-lyon.fr\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/www.agence-seo-lyon.fr\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":false},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"fr_FR","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/www.agence-seo-lyon.fr\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}};</script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=3.29.2" data-phast-params='{"ref":"Fm26jF2q4dE"}' type="text/phast" id="elementor-pro-frontend-js"></script> <script data-phast-original-src="https://www.agence-seo-lyon.fr/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=3.29.2" data-phast-params='{"ref":"U4hdrnq4Wsg"}' type="text/phast" id="pro-elements-handlers-js"></script> <style>.unlimited-elements-background-overlay{position:absolute;top:0px;left:0px;width:100%;height:100%;z-index:0;}.unlimited-elements-background-overlay.uc-bg-front{z-index:999;}</style> <script data-phast-original-type="text/javascript" type="text/phast">jQuery(document).ready(function(){function ucBackgroundOverlayPutStart(){var objBG=jQuery(".unlimited-elements-background-overlay").not(".uc-bg-attached");if(objBG.length==0) return(false);objBG.each(function(index,bgElement){var objBgElement=jQuery(bgElement);var targetID=objBgElement.data("forid");var location=objBgElement.data("location");switch(location){case"body":case"body_front":var objTarget=jQuery("body");break;case"layout":case"layout_front":var objLayout=jQuery("*[data-id=\""+targetID+"\"]");var objTarget=objLayout.parents(".elementor");if(objTarget.length>1) objTarget=jQuery(objTarget[0]);break;default:var objTarget=jQuery("*[data-id=\""+targetID+"\"]");break;} if(objTarget.length==0) return(true);var objVideoContainer=objTarget.children(".elementor-background-video-container");if(objVideoContainer.length==1) objBgElement.detach().insertAfter(objVideoContainer).show();else objBgElement.detach().prependTo(objTarget).show();var objTemplate=objBgElement.children("template");if(objTemplate.length){var clonedContent=objTemplate[0].content.cloneNode(true);var objScripts=jQuery(clonedContent).find("script");if(objScripts.length) objScripts.attr("type","text/javascript");objBgElement.append(clonedContent);objTemplate.remove();} objBgElement.trigger("bg_attached");objBgElement.addClass("uc-bg-attached");});} ucBackgroundOverlayPutStart();jQuery(document).on('elementor/popup/show',ucBackgroundOverlayPutStart);jQuery("body").on('uc_dom_updated',ucBackgroundOverlayPutStart);});</script> <script type="text/phast" async src="https://www.googletagmanager.com/gtag/js?id=G-F4RLTJ3VDL"></script> <script type="text/phast">window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);} gtag('js',new Date());gtag('config','G-F4RLTJ3VDL');</script> <script data-phast-compiled-js-names="ScriptsProxyService/rewrite-function.js,CSSInlining/ie-fallback.js,CSSInlining/inlined-css-retriever.js,ScriptsDeferring/scripts-loader.js,ScriptsDeferring/rewrite.js">(function phastScripts(phast){phast.scripts=[(function(){phast.config=JSON.parse(atob(phast.config));while(phast.scripts.length){phast.scripts.shift()()} }),(function(){(function(a,b){typeof exports==="object"&&typeof module!=="undefined"?module.exports=b():typeof define==="function"&&define.amd?define(b):a.ES6Promise=b()})(phast,function(){"use strict";function c(ia){var ja=typeof ia;return ia!==null&&(ja==="object"||ja==="function")}function d(ka){return typeof ka==="function"}var e=void 0;if(Array.isArray){e=Array.isArray}else{e=function(la){return Object.prototype.toString.call(la)==="[object Array]"}}var f=e;var g=0;var h=void 0;var i=void 0;var j=function ma(na,oa){w[g]=na;w[g+1]=oa;g+=2;if(g===2){if(i){i(x)}else{z()}}};function k(pa){i=pa}function l(qa){j=qa}var m=typeof window!=="undefined"?window:undefined;var n=m||{};var o=n.MutationObserver||n.WebKitMutationObserver;var p=typeof self==="undefined"&&typeof process!=="undefined"&&{}.toString.call(process)==="[object process]";var q=typeof Uint8ClampedArray!=="undefined"&&typeof importScripts!=="undefined"&&typeof MessageChannel!=="undefined";function r(){return function(){return process.nextTick(x)}}function s(){if(typeof h!=="undefined"){return function(){h(x)}}return v()}function t(){var ra=0;var sa=new o(x);var ta=document.createTextNode("");sa.observe(ta,{characterData:true});return function(){ta.data=ra=++ra%2}}function u(){var ua=new MessageChannel;ua.port1.onmessage=x;return function(){return ua.port2.postMessage(0)}}function v(){var va=setTimeout;return function(){return va(x,1)}}var w=new Array(1e3);function x(){for(var wa=0;wa<g;wa+=2){var xa=w[wa];var ya=w[wa+1];xa(ya);w[wa]=undefined;w[wa+1]=undefined}g=0}function y(){try{var za=Function("return this")().require("vertx");h=za.runOnLoop||za.runOnContext;return s()}catch(Aa){return v()}}var z=void 0;if(p){z=r()}else if(o){z=t()}else if(q){z=u()}else if(m===undefined&&typeof require==="function"){z=y()}else{z=v()}function A(Ba,Ca){var Da=this;var Ea=new this.constructor(D);if(Ea[C]===undefined){$(Ea)}var Fa=Da._state;if(Fa){var Ga=arguments[Fa-1];j(function(){return W(Fa,Ea,Ga,Da._result)})}else{T(Da,Ea,Ba,Ca)}return Ea}function B(Ha){var Ia=this;if(Ha&&typeof Ha==="object"&&Ha.constructor===Ia){return Ha}var Ja=new Ia(D);P(Ja,Ha);return Ja}var C=Math.random().toString(36).substring(2);function D(){}var E=void 0;var F=1;var G=2;var H={error:null};function I(){return new TypeError("You cannot resolve a promise with itself")}function J(){return new TypeError("A promises callback cannot return that same promise.")}function K(Ka){try{return Ka.then}catch(La){H.error=La;return H}}function L(Ma,Na,Oa,Pa){try{Ma.call(Na,Oa,Pa)}catch(Qa){return Qa}}function M(Ra,Sa,Ta){j(function(Ua){var Va=false;var Wa=L(Ta,Sa,function(Xa){if(Va){return}Va=true;if(Sa!==Xa){P(Ua,Xa)}else{R(Ua,Xa)}},function(Ya){if(Va){return}Va=true;S(Ua,Ya)},"Settle: "+(Ua._label||" unknown promise"));if(!Va&&Wa){Va=true;S(Ua,Wa)}},Ra)}function N(Za,$a){if($a._state===F){R(Za,$a._result)}else if($a._state===G){S(Za,$a._result)}else{T($a,undefined,function(_a){return P(Za,_a)},function(a0){return S(Za,a0)})}}function O(b0,c0,d0){if(c0.constructor===b0.constructor&&d0===A&&c0.constructor.resolve===B){N(b0,c0)}else{if(d0===H){S(b0,H.error);H.error=null}else if(d0===undefined){R(b0,c0)}else if(d(d0)){M(b0,c0,d0)}else{R(b0,c0)}}}function P(e0,f0){if(e0===f0){S(e0,I())}else if(c(f0)){O(e0,f0,K(f0))}else{R(e0,f0)}}function Q(g0){if(g0._onerror){g0._onerror(g0._result)}U(g0)}function R(h0,i0){if(h0._state!==E){return}h0._result=i0;h0._state=F;if(h0._subscribers.length!==0){j(U,h0)}}function S(j0,k0){if(j0._state!==E){return}j0._state=G;j0._result=k0;j(Q,j0)}function T(l0,m0,n0,o0){var p0=l0._subscribers;var q0=p0.length;l0._onerror=null;p0[q0]=m0;p0[q0+F]=n0;p0[q0+G]=o0;if(q0===0&&l0._state){j(U,l0)}}function U(r0){var s0=r0._subscribers;var t0=r0._state;if(s0.length===0){return}var u0=void 0,v0=void 0,w0=r0._result;for(var x0=0;x0<s0.length;x0+=3){u0=s0[x0];v0=s0[x0+t0];if(u0){W(t0,u0,v0,w0)}else{v0(w0)}}r0._subscribers.length=0}function V(y0,z0){try{return y0(z0)}catch(A0){H.error=A0;return H}}function W(B0,C0,D0,E0){var F0=d(D0),G0=void 0,H0=void 0,I0=void 0,J0=void 0;if(F0){G0=V(D0,E0);if(G0===H){J0=true;H0=G0.error;G0.error=null}else{I0=true}if(C0===G0){S(C0,J());return}}else{G0=E0;I0=true}if(C0._state!==E){}else if(F0&&I0){P(C0,G0)}else if(J0){S(C0,H0)}else if(B0===F){R(C0,G0)}else if(B0===G){S(C0,G0)}}function X(K0,L0){try{L0(function M0(N0){P(K0,N0)},function O0(P0){S(K0,P0)})}catch(Q0){S(K0,Q0)}}var Y=0;function Z(){return Y++}function $(R0){R0[C]=Y++;R0._state=undefined;R0._result=undefined;R0._subscribers=[]}function _(){return new Error("Array Methods must be provided an Array")}var aa=function(){function S0(T0,U0){this._instanceConstructor=T0;this.promise=new T0(D);if(!this.promise[C]){$(this.promise)}if(f(U0)){this.length=U0.length;this._remaining=U0.length;this._result=new Array(this.length);if(this.length===0){R(this.promise,this._result)}else{this.length=this.length||0;this._enumerate(U0);if(this._remaining===0){R(this.promise,this._result)}}}else{S(this.promise,_())}}S0.prototype._enumerate=function V0(W0){for(var X0=0;this._state===E&&X0<W0.length;X0++){this._eachEntry(W0[X0],X0)}};S0.prototype._eachEntry=function Y0(Z0,$0){var _0=this._instanceConstructor;var ab=_0.resolve;if(ab===B){var bb=K(Z0);if(bb===A&&Z0._state!==E){this._settledAt(Z0._state,$0,Z0._result)}else if(typeof bb!=="function"){this._remaining--;this._result[$0]=Z0}else if(_0===ga){var cb=new _0(D);O(cb,Z0,bb);this._willSettleAt(cb,$0)}else{this._willSettleAt(new _0(function(db){return db(Z0)}),$0)}}else{this._willSettleAt(ab(Z0),$0)}};S0.prototype._settledAt=function eb(fb,gb,hb){var ib=this.promise;if(ib._state===E){this._remaining--;if(fb===G){S(ib,hb)}else{this._result[gb]=hb}}if(this._remaining===0){R(ib,this._result)}};S0.prototype._willSettleAt=function jb(kb,lb){var mb=this;T(kb,undefined,function(nb){return mb._settledAt(F,lb,nb)},function(ob){return mb._settledAt(G,lb,ob)})};return S0}();function ba(pb){return new aa(this,pb).promise}function ca(qb){var rb=this;if(!f(qb)){return new rb(function(sb,tb){return tb(new TypeError("You must pass an array to race."))})}else{return new rb(function(ub,vb){var wb=qb.length;for(var xb=0;xb<wb;xb++){rb.resolve(qb[xb]).then(ub,vb)}})}}function da(yb){var zb=this;var Ab=new zb(D);S(Ab,yb);return Ab}function ea(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function fa(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}var ga=function(){function Bb(Cb){this[C]=Z();this._result=this._state=undefined;this._subscribers=[];if(D!==Cb){typeof Cb!=="function"&&ea();this instanceof Bb?X(this,Cb):fa()}}Bb.prototype.catch=function Db(Eb){return this.then(null,Eb)};Bb.prototype.finally=function Fb(Gb){var Hb=this;var Ib=Hb.constructor;return Hb.then(function(Jb){return Ib.resolve(Gb()).then(function(){return Jb})},function(Kb){return Ib.resolve(Gb()).then(function(){throw Kb})})};return Bb}();ga.prototype.then=A;ga.all=ba;ga.race=ca;ga.resolve=B;ga.reject=da;ga._setScheduler=k;ga._setAsap=l;ga._asap=j;function ha(){var Lb=void 0;if(typeof global!=="undefined"){Lb=global}else if(typeof self!=="undefined"){Lb=self}else{try{Lb=Function("return this")()}catch(Ob){throw new Error("polyfill failed because global object is unavailable in this environment")}}var Mb=Lb.Promise;if(Mb){var Nb=null;try{Nb=Object.prototype.toString.call(Mb.resolve())}catch(Pb){}if(Nb==="[object Promise]"&&!Mb.cast){return}}Lb.Promise=ga}ga.polyfill=ha;ga.Promise=ga;return ga}); }),(function(){function murmurhash3_32_gc(a,b){var c,d,e,f,g,h,i,j,k,l;c=a.length&3;d=a.length-c;e=b;g=3432918353;i=461845907;l=0;while(l<d){k=a.charCodeAt(l)&255|(a.charCodeAt(++l)&255)<<8|(a.charCodeAt(++l)&255)<<16|(a.charCodeAt(++l)&255)<<24;++l;k=(k&65535)*g+(((k>>>16)*g&65535)<<16)&4294967295;k=k<<15|k>>>17;k=(k&65535)*i+(((k>>>16)*i&65535)<<16)&4294967295;e^=k;e=e<<13|e>>>19;f=(e&65535)*5+(((e>>>16)*5&65535)<<16)&4294967295;e=(f&65535)+27492+(((f>>>16)+58964&65535)<<16)}k=0;switch(c){case 3:k^=(a.charCodeAt(l+2)&255)<<16;case 2:k^=(a.charCodeAt(l+1)&255)<<8;case 1:k^=a.charCodeAt(l)&255;k=(k&65535)*g+(((k>>>16)*g&65535)<<16)&4294967295;k=k<<15|k>>>17;k=(k&65535)*i+(((k>>>16)*i&65535)<<16)&4294967295;e^=k}e^=a.length;e^=e>>>16;e=(e&65535)*2246822507+(((e>>>16)*2246822507&65535)<<16)&4294967295;e^=e>>>13;e=(e&65535)*3266489909+(((e>>>16)*3266489909&65535)<<16)&4294967295;e^=e>>>16;return e>>>0}phast.hash=murmurhash3_32_gc; }),(function(){phast.buildServiceUrl=function(a,b){if(a.pathInfo){return appendPathInfo(a.serviceUrl,buildQuery(b))}else{return appendQueryString(a.serviceUrl,buildQuery(b))}};function buildQuery(c){if(typeof c==="string"){return c}var d=[];for(var e in c){if(c.hasOwnProperty(e)){d.push(encodeURIComponent(e)+"="+encodeURIComponent(c[e]))}}return d.join("&")}function appendPathInfo(f,g){var h=btoa(g).replace(/=/g,"").replace(/\//g,"_").replace(/\+/g,"-");var i=j(h+".q.js");return f.replace(/\?.*$/,"").replace(/\/__p__\.js$/,"")+"/"+i;function j(l){return k(k(l).match(/[\s\S]{1,255}/g).join("/"))}function k(m){return m.split("").reverse().join("")}}function appendQueryString(n,o){var p=n.indexOf("?")>-1?"&":"?";return n+p+o} }),(function(){var Promise=phast.ES6Promise.Promise;phast.ResourceLoader=function(a,b){this.get=function(c){return b.get(c).then(function(d){if(typeof d!=="string"){throw new Error("response should be string")}return d}).catch(function(){var e=a.get(c);e.then(function(f){b.set(c,f)});return e})}};phast.ResourceLoader.RequestParams={};phast.ResourceLoader.RequestParams.FaultyParams={};phast.ResourceLoader.RequestParams.fromString=function(g){try{return JSON.parse(g)}catch(h){return phast.ResourceLoader.RequestParams.FaultyParams}};phast.ResourceLoader.BundlerServiceClient=function(i,j,k){var l=phast.ResourceLoader.BundlerServiceClient.RequestsPack;var m=l.PackItem;var n;this.get=function(q){if(q===phast.ResourceLoader.RequestParams.FaultyParams){return Promise.reject(new Error("Parameters did not parse as JSON"))}return new Promise(function(r,s){if(n===undefined){n=new l(j)}n.add(new m({success:r,error:s},q));setTimeout(o);if(n.toQuery().length>4500){console.log("[Phast] Resource loader: Pack got too big; flushing early...");o()}})};function o(){if(n===undefined){return}var t=n;n=undefined;p(t)}function p(u){var v=phast.buildServiceUrl({serviceUrl:i,pathInfo:k},"service=bundler&"+u.toQuery());var w=function(){console.error("[Phast] Request to bundler failed with status",y.status);console.log("URL:",v);u.handleError()};var x=function(){if(y.status>=200&&y.status<300){u.handleResponse(y.responseText)}else{u.handleError()}};var y=new XMLHttpRequest;y.open("GET",v);y.addEventListener("error",w);y.addEventListener("abort",w);y.addEventListener("load",x);y.send()}};phast.ResourceLoader.BundlerServiceClient.RequestsPack=function(z){var A={};this.getLength=function(){var F=0;for(var G in A){F++}return F};this.add=function(H){var I;if(H.params.token){I="token="+H.params.token}else if(H.params.ref){I="ref="+H.params.ref}else{I=""}if(!A[I]){A[I]={params:H.params,requests:[H.request]}}else{A[I].requests.push(H.request)}};this.toQuery=function(){var J=[],K=[],L="";B().forEach(function(M){var N,O;for(var P in A[M].params){if(P==="cacheMarker"){K.push(A[M].params.cacheMarker);continue}N=z[P]?z[P]:P;if(P==="strip-imports"){O=encodeURIComponent(N)}else if(P==="src"){O=encodeURIComponent(N)+"="+encodeURIComponent(C(A[M].params.src,L));L=A[M].params.src}else{O=encodeURIComponent(N)+"="+encodeURIComponent(A[M].params[P])}J.push(O)}});if(K.length>0){J.unshift("c="+phast.hash(K.join("|"),23045))}return E(J.join("&"))};function B(){return Object.keys(A).sort(function(R,S){return Q(R,S)?1:Q(S,R)?-1:0});function Q(T,U){if(typeof A[T].params.src!=="undefined"&&typeof A[U].params.src!=="undefined"){return A[T].params.src>A[U].params.src}return T>U}}function C(V,W){var X=0,Y=Math.pow(36,2)-1;while(X<W.length&&V[X]===W[X]){X++}X=Math.min(X,Y);return D(X)+""+V.substr(X)}function D(Z){var $=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];var _=Z%36;var aa=Math.floor((Z-_)/36);return $[aa]+$[_]}function E(ba){if(!/(^|&)s=/.test(ba)){return ba}return ba.replace(/(%..)|([A-M])|([N-Z])/gi,function(ca,da,ea,fa){if(da){return ca}return String.fromCharCode(ca.charCodeAt(0)+(ea?13:-13))})}this.handleResponse=function(ga){try{var ha=JSON.parse(ga)}catch(ja){this.handleError();return}var ia=B();if(ha.length!==ia.length){console.error("[Phast] Requested",ia.length,"items from bundler, but got",ha.length,"response(s)");this.handleError();return}ha.forEach(function(ka,la){if(ka.status===200){A[ia[la]].requests.forEach(function(ma){ma.success(ka.content)})}else{A[ia[la]].requests.forEach(function(na){na.error(new Error("Got from bundler: "+JSON.stringify(ka)))})}})}.bind(this);this.handleError=function(){for(var oa in A){A[oa].requests.forEach(function(pa){pa.error()})}}};phast.ResourceLoader.BundlerServiceClient.RequestsPack.PackItem=function(qa,ra){this.request=qa;this.params=ra};phast.ResourceLoader.IndexedDBStorage=function(sa){var ta=phast.ResourceLoader.IndexedDBStorage;var ua=ta.logPrefix;var va=ta.requestToPromise;var wa;Ba();this.get=function(Ca){return xa("readonly").then(function(Da){return va(Da.get(Ca)).catch(ya("reading from store"))})};this.store=function(Ea){return xa("readwrite").then(function(Fa){return va(Fa.put(Ea)).catch(ya("writing to store"))})};this.clear=function(){return xa("readwrite").then(function(Ga){return va(Ga.clear())})};this.iterateOnAll=function(Ha){return xa("readonly").then(function(Ia){return za(Ha,Ia.openCursor()).catch(ya("iterating on all"))})};function xa(Ja){return wa.get().then(function(Ka){try{return Ka.transaction(sa.storeName,Ja).objectStore(sa.storeName)}catch(La){console.error(ua,"Could not open store; recreating database:",La);Aa();throw La}})}function ya(Ma){return function(Na){console.error(ua,"Error "+Ma+":",Na);Aa();throw Na}}function za(Oa,Pa){return new Promise(function(Qa,Ra){Pa.onsuccess=function(Sa){var Ta=Sa.target.result;if(Ta){Oa(Ta.value);Ta.continue()}else{Qa()}};Pa.onerror=Ra})}function Aa(){var Ua=wa.dropDB().then(Ba);wa={get:function(){return Promise.reject(new Error("Database is being dropped and recreated"))},dropDB:function(){return Ua}}}function Ba(){wa=new phast.ResourceLoader.IndexedDBStorage.Connection(sa)}};phast.ResourceLoader.IndexedDBStorage.logPrefix="[Phast] Resource loader:";phast.ResourceLoader.IndexedDBStorage.requestToPromise=function(Va){return new Promise(function(Wa,Xa){Va.onsuccess=function(){Wa(Va.result)};Va.onerror=function(){Xa(Va.error)}})};phast.ResourceLoader.IndexedDBStorage.ConnectionParams=function(){this.dbName="phastResourcesCache";this.dbVersion=1;this.storeName="resources"};phast.ResourceLoader.IndexedDBStorage.StoredResource=function(Ya,Za){this.token=Ya;this.content=Za};phast.ResourceLoader.IndexedDBStorage.Connection=function($a){var _a=phast.ResourceLoader.IndexedDBStorage.logPrefix;var a0=phast.ResourceLoader.IndexedDBStorage.requestToPromise;var b0;this.get=c0;this.dropDB=d0;function c0(){if(!b0){b0=e0($a)}return b0}function d0(){return c0().then(function(g0){console.error(_a,"Dropping DB");g0.close();b0=null;return a0(window.indexedDB.deleteDatabase($a.dbName))})}function e0(h0){if(typeof window.indexedDB==="undefined"){return Promise.reject(new Error("IndexedDB is not available"))}var i0=window.indexedDB.open(h0.dbName,h0.dbVersion);i0.onupgradeneeded=function(){f0(i0.result,h0)};return a0(i0).then(function(j0){j0.onversionchange=function(){console.debug(_a,"Closing DB");j0.close();if(b0){b0=null}};return j0}).catch(function(k0){console.log(_a,"IndexedDB cache is not available. This is usually due to using private browsing mode.");throw k0})}function f0(l0,m0){l0.createObjectStore(m0.storeName,{keyPath:"token"})}};phast.ResourceLoader.StorageCache=function(n0,o0){var p0=phast.ResourceLoader.IndexedDBStorage.StoredResource;this.get=function(x0){return s0(r0(x0))};this.set=function(y0,z0){return t0(r0(y0),z0,false)};var q0=null;function r0(A0){return JSON.stringify(A0)}function s0(B0){return o0.get(B0).then(function(C0){if(C0){return Promise.resolve(C0.content)}return Promise.resolve()})}function t0(D0,E0,F0){return w0().then(function(G0){var H0=E0.length+G0;if(H0>n0.maxStorageSize){return F0||E0.length>n0.maxStorageSize?Promise.reject(new Error("Storage quota will be exceeded")):u0(D0,E0)}q0=H0;var I0=new p0(D0,E0);return o0.store(I0)})}function u0(J0,K0){return v0().then(function(){return t0(J0,K0,true)})}function v0(){return o0.clear().then(function(){q0=0})}function w0(){if(q0!==null){return Promise.resolve(q0)}var L0=0;return o0.iterateOnAll(function(M0){L0+=M0.content.length}).then(function(){q0=L0;return Promise.resolve(q0)})}};phast.ResourceLoader.StorageCache.StorageCacheParams=function(){this.maxStorageSize=4.5*1024*1024};phast.ResourceLoader.BlackholeCache=function(){this.get=function(){return Promise.reject()};this.set=function(){return Promise.reject()}};phast.ResourceLoader.make=function(N0,O0,P0){var Q0=S0();var R0=new phast.ResourceLoader.BundlerServiceClient(N0,O0,P0);return new phast.ResourceLoader(R0,Q0);function S0(){var T0=window.navigator.userAgent;if(/safari/i.test(T0)&&!/chrome|android/i.test(T0)){console.log("[Phast] Not using IndexedDB cache on Safari");return new phast.ResourceLoader.BlackholeCache}else{var U0=new phast.ResourceLoader.IndexedDBStorage.ConnectionParams;var V0=new phast.ResourceLoader.IndexedDBStorage(U0);var W0=new phast.ResourceLoader.StorageCache.StorageCacheParams;return new phast.ResourceLoader.StorageCache(W0,V0)}}}; }),(function(){var Promise=phast.ES6Promise;phast.ResourceLoader.instance=phast.ResourceLoader.make(phast.config.resourcesLoader.serviceUrl,phast.config.resourcesLoader.shortParamsMappings,phast.config.resourcesLoader.pathInfo);phast.forEachSelectedElement=function(a,b){Array.prototype.forEach.call(window.document.querySelectorAll(a),b)};phast.once=function(c){var d=false;return function(){if(!d){d=true;c.apply(this,Array.prototype.slice(arguments))}}};phast.on=function(e,f){return new Promise(function(g){e.addEventListener(f,g)})};phast.wait=function(h){return new Promise(function(i){setTimeout(i,h)})};phast.on(document,"DOMContentLoaded").then(function(){var j,k;function l(n){return n&&n.nodeType===8&&/^\s*\[Phast\]/.test(n.textContent)}function m(o){while(o){if(l(o)){return o}o=o.nextSibling}return false}k=m(document.documentElement.nextSibling);if(k===false){k=m(document.body.firstChild)}if(k){j=k.textContent.replace(/^\s+|\s+$/g,"").split("\n");console.groupCollapsed(j.shift());console.log(j.join("\n"));console.groupEnd()}});phast.on(document,"DOMContentLoaded").then(function(){var p=performance.timing;var q=[];q.push(["Downloading phases:"]);q.push([" Look up hostname in DNS + %s ms",t(p.domainLookupEnd-p.fetchStart)]);q.push([" Establish connection + %s ms",t(p.connectEnd-p.domainLookupEnd)]);q.push([" Send request + %s ms",t(p.requestStart-p.connectEnd)]);q.push([" Receive first byte + %s ms",t(p.responseStart-p.requestStart)]);q.push([" Download page + %s ms",t(p.responseEnd-p.responseStart)]);q.push([""]);q.push(["Totals:"]);q.push([" Time to first byte %s ms",t(p.responseStart-p.fetchStart)]);q.push([" (since request start) %s ms",t(p.responseStart-p.requestStart)]);q.push([" Total request time %s ms",t(p.responseEnd-p.fetchStart)]);q.push([" (since request start) %s ms",t(p.responseEnd-p.requestStart)]);q.push([" "]);var r=[];var s=[];q.forEach(function(u){r.push(u.shift());s=s.concat(u)});console.groupCollapsed("[Phast] Client-side performance metrics");console.log.apply(console,[r.join("\n")].concat(s));console.groupEnd();function t(v){v=""+v;while(v.length<4){v=" "+v}return v}}); }),(function(){var config=phast.config["script-proxy-service"];var urlPattern=/^(https?:)?\/\//;var typePattern=/^\s*(application|text)\/(x-)?(java|ecma|j|live)script/i;var cacheMarker=Math.floor((new Date).getTime()/1e3/config.urlRefreshTime);var whitelist=compileWhitelistPatterns(config.whitelist);phast.scripts.push(function(){overrideDOMMethod("appendChild");overrideDOMMethod("insertBefore")});function compileWhitelistPatterns(a){var b=/^(.)(.*)\1([a-z]*)$/i;var c=[];a.forEach(function(d){var e=b.exec(d);if(!e){window.console&&window.console.log("Phast: Not a pattern:",d);return}try{c.push(new RegExp(e[2],e[3]))}catch(f){window.console&&window.console.log("Phast: Failed to compile pattern:",d)}});return c}function checkWhitelist(g){for(var h=0;h<whitelist.length;h++){if(whitelist[h].exec(g)){return true}}return false}function overrideDOMMethod(i){var j=Element.prototype[i];var k=function(){var l=processNode(arguments[0]);var m=j.apply(this,arguments);l();return m};Element.prototype[i]=k;window.addEventListener("load",function(){if(Element.prototype[i]===k){delete Element.prototype[i]}})}function processNode(n){if(!n||n.nodeType!==Node.ELEMENT_NODE||n.tagName!=="SCRIPT"||!urlPattern.test(n.src)||n.type&&!typePattern.test(n.type)||n.src.substr(0,config.serviceUrl.length)===config.serviceUrl||!checkWhitelist(n.src)){return function(){}}var o=n.src;n.src=phast.buildServiceUrl(config,{service:"scripts",src:o,cacheMarker:cacheMarker});n.setAttribute("data-phast-rewritten","");return function(){n.src=o}} }),(function(){(function(){var a=function(){if(!("FontFace"in window)){return false}var b=new FontFace("t",'url( "data:font/woff2;base64,d09GMgABAAAAAADwAAoAAAAAAiQAAACoAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAALAogOAE2AiQDBgsGAAQgBSAHIBuDAciO1EZ3I/mL5/+5/rfPnTt9/9Qa8H4cUUZxaRbh36LiKJoVh61XGzw6ufkpoeZBW4KphwFYIJGHB4LAY4hby++gW+6N1EN94I49v86yCpUdYgqeZrOWN34CMQg2tAmthdli0eePIwAKNIIRS4AGZFzdX9lbBUAQlm//f262/61o8PlYO/D1/X4FrWFFgdCQD9DpGJSxmFyjOAGUU4P0qigcNb82GAAA" ) format( "woff2" )',{});b.load()["catch"](function(){});return b.status=="loading"||b.status=="loaded"}();if(a){return}console.log("[Phast] Browser does not support WOFF2, falling back to original stylesheets");Array.prototype.forEach.call(document.querySelectorAll("style[data-phast-ie-fallback-url]"),function(c){var d=document.createElement("link");if(c.hasAttribute("media")){d.setAttribute("media",c.getAttribute("media"))}d.setAttribute("rel","stylesheet");d.setAttribute("href",c.getAttribute("data-phast-ie-fallback-url"));c.parentNode.insertBefore(d,c);c.parentNode.removeChild(c)});Array.prototype.forEach.call(document.querySelectorAll("style[data-phast-nested-inlined]"),function(e){e.parentNode.removeChild(e)})})(); }),(function(){phast.stylesLoading=0;var resourceLoader=phast.ResourceLoader.instance;phast.forEachSelectedElement("style[data-phast-params]",function(a){var b=a.getAttribute("data-phast-params");var c=phast.ResourceLoader.RequestParams.fromString(b);phast.stylesLoading++;resourceLoader.get(c).then(function(d){a.textContent=d;a.removeAttribute("data-phast-params")}).catch(function(e){console.warn("[Phast] Failed to load CSS",c,e);var f=a.getAttribute("data-phast-original-src");if(!f){console.error("[Phast] No data-phast-original-src on <style>!",a);return}console.info("[Phast] Falling back to <link> element for",f);var g=document.createElement("link");g.href=f;g.media=a.media;g.rel="stylesheet";g.addEventListener("load",function(){if(a.parentNode){a.parentNode.removeChild(a)}});a.parentNode.insertBefore(g,a.nextSibling)}).finally(function(){phast.stylesLoading--;if(phast.stylesLoading===0&&phast.onStylesLoaded){phast.onStylesLoaded()}})});(function(){var h=[];phast.forEachSelectedElement("style[data-phast-original-id]",function(i){var j=i.getAttribute("data-phast-original-id");if(h[j]){return}h[j]=true;console.warn("[Phast] The style element with id",j,"has been split into multiple style tags due to @import statements and the id attribute has been removed. Normally, this does not cause any issues.")})})(); }),(function(){var Promise=phast.ES6Promise;var hasCurrentScript=!!document.currentScript;phast.ScriptsLoader={};phast.ScriptsLoader.getScriptsInExecutionOrder=function(a,b){var c=Array.prototype.slice.call(a.querySelectorAll('script[type="text/phast"]')).filter(g);var d=[],e=[];for(var f=0;f<c.length;f++){if(getSrc(c[f])!==undefined&&isDefer(c[f])){e.push(c[f])}else{d.push(c[f])}}return d.concat(e).map(function(j){return b.makeScriptFromElement(j)});function g(k){try{var l=phast.config.scriptsLoader.csp}catch(m){return true}if(l.nonce==null){return true}if(k.nonce===l.nonce){return true}try{h(l,k)}catch(n){console.error("Could not send CSP report due to error:",n)}if(l.reportOnly){console.warn("Script with missing or invalid nonce would not be executed (but report-only mode is enabled):",k);return true}console.warn("Script with missing or invalid nonce will not be executed:",k);return false}function h(o,p){var q={"blocked-uri":getSrc(p),disposition:o.reportOnly?"report":"enforce","document-uri":location.href,referrer:a.referrer,"script-sample":i(p),implementation:"phast"};try{p.dispatchEvent(new SecurityPolicyViolationEvent("securitypolicyviolation",{blockedURI:q["blocked-uri"],disposition:q["disposition"],documentURI:q["document-uri"],effectiveDirective:"script-src-elem",originalPolicy:"phast",referrer:q["referrer"],sample:q["script-sample"],statusCode:200,violatedDirective:"script-src-elem"}))}catch(s){console.error("[Phast] Could not dispatch securitypolicyviolation event",s)}if(!o.reportUri){return}var r={"csp-report":q};fetch(o.reportUri,{method:"POST",headers:{"Content-Type":"application/csp-report"},credentials:"same-origin",redirect:"error",keepalive:true,body:JSON.stringify(r)})}function i(t){if(!t.hasAttribute("src")){return t.textContent.substr(0,40)}}};phast.ScriptsLoader.executeScripts=function(u){var v=u.map(function(x){return x.init()});var w=Promise.resolve();u.forEach(function(y){w=phast.ScriptsLoader.chainScript(w,y)});return w.then(function(){return Promise.all(v).catch(function(){})})};phast.ScriptsLoader.chainScript=function(z,A){var B;try{if(A.describe){B=A.describe()}else{B="unknown script"}}catch(C){B="script.describe() failed"}return z.then(function(){var D=A.execute();D.then(function(){console.debug("✓",B)});return D}).catch(function(E){console.error("✘",B);if(E){console.log(E)}})};var insertBefore=window.Element.prototype.insertBefore;phast.ScriptsLoader.Utilities=function(F){this._document=F;var G=0;function H(R){return new Promise(function(S){var T="PhastCompleteScript"+ ++G;var U=I(R);var V=I(T+"()");window[T]=W;F.body.appendChild(U);F.body.appendChild(V);function W(){S();F.body.removeChild(U);F.body.removeChild(V);delete window[T]}})}function I(X){var Y=F.createElement("script");Y.textContent=X;Y.nonce=phast.config.scriptsLoader.csp.nonce;return Y}function J(Z){var $=F.createElement(Z.nodeName);Array.prototype.forEach.call(Z.attributes,function(_){$.setAttribute(_.nodeName,_.nodeValue)});return $}function K(aa){aa.removeAttribute("data-phast-params");var ba={};Array.prototype.map.call(aa.attributes,function(ca){return ca.nodeName}).map(function(da){var ea=da.match(/^data-phast-original-(.*)/i);if(ea){ba[ea[1].toLowerCase()]=aa.getAttribute(da);aa.removeAttribute(da)}});Object.keys(ba).sort().map(function(fa){aa.setAttribute(fa,ba[fa])});if(!("type"in ba)){aa.removeAttribute("type")}}function L(ga,ha){return new Promise(function(ia,ja){var ka=ha.getAttribute("src");ha.addEventListener("load",ia);ha.addEventListener("error",ja);ha.removeAttribute("src");insertBefore.call(ga.parentNode,ha,ga);ga.parentNode.removeChild(ga);if(ka){ha.setAttribute("src",ka)}})}function M(la,ma){return O(la,function(){return P(la,function(){return H(ma)})})}function N(na,oa){return O(oa,function(){return L(na,oa)})}function O(pa,qa){var ra=pa.nextElementSibling;var sa=Promise.resolve();var ta;if(isAsync(pa)){ta="async"}else if(isDefer(pa)){ta="defer"}F.write=function(xa){if(ta){console.warn("document.write call from "+ta+" script ignored");return}ua(xa)};F.writeln=function(ya){if(ta){console.warn("document.writeln call from "+ta+" script ignored");return}ua(ya+"\n")};function ua(za){var Aa=F.createElement("div");Aa.innerHTML=za;var Ba=va(Aa);if(ra&&ra.parentNode!==pa.parentNode){ra=pa.nextElementSibling}while(Aa.firstChild){pa.parentNode.insertBefore(Aa.firstChild,ra)}Ba.map(wa)}function va(Ca){return Array.prototype.slice.call(Ca.getElementsByTagName("script")).filter(function(Da){var Ea=Da.getAttribute("type");return!Ea||/^(text|application)\/javascript(;|$)/i.test(Ea)})}function wa(Fa){var Ga=new phast.ScriptsLoader.Scripts.Factory(F);var Ha=Ga.makeScriptFromElement(Fa);sa=phast.ScriptsLoader.chainScript(sa,Ha)}return qa().then(function(){return sa}).finally(function(){delete F.write;delete F.writeln})}function P(Ia,Ja){if(hasCurrentScript){try{Object.defineProperty(F,"currentScript",{configurable:true,get:function(){return Ia}})}catch(Ka){console.error("[Phast] Unable to override document.currentScript on this browser: ",Ka)}}return Ja().finally(function(){if(hasCurrentScript){delete F.currentScript}})}function Q(La){var Ma=F.createElement("link");Ma.setAttribute("rel","preload");Ma.setAttribute("as","script");Ma.setAttribute("href",La);F.head.appendChild(Ma)}this.executeString=H;this.copyElement=J;this.restoreOriginals=K;this.replaceElement=L;this.writeProtectAndExecuteString=M;this.writeProtectAndReplaceElement=N;this.addPreload=Q};phast.ScriptsLoader.Scripts={};phast.ScriptsLoader.Scripts.InlineScript=function(Na,Oa){this._utils=Na;this._element=Oa;this.init=function(){return Promise.resolve()};this.execute=function(){var Pa=Oa.textContent.replace(/^\s*<!--.*\n/i,"");Na.restoreOriginals(Oa);return Na.writeProtectAndExecuteString(Oa,Pa)};this.describe=function(){return"inline script"}};phast.ScriptsLoader.Scripts.AsyncBrowserScript=function(Qa,Ra){var Sa;this._utils=Qa;this._element=Ra;this.init=function(){Qa.addPreload(getSrc(Ra));return new Promise(function(Ta){Sa=Ta})};this.execute=function(){var Ua=Qa.copyElement(Ra);Qa.restoreOriginals(Ua);Qa.replaceElement(Ra,Ua).then(Sa).catch(Sa);return Promise.resolve()};this.describe=function(){return"async script at "+getSrc(Ra)}};phast.ScriptsLoader.Scripts.SyncBrowserScript=function(Va,Wa){this._utils=Va;this._element=Wa;this.init=function(){Va.addPreload(getSrc(Wa));return Promise.resolve()};this.execute=function(){var Xa=Va.copyElement(Wa);Va.restoreOriginals(Xa);return Va.writeProtectAndReplaceElement(Wa,Xa)};this.describe=function(){return"sync script at "+getSrc(Wa)}};phast.ScriptsLoader.Scripts.AsyncAJAXScript=function(Ya,Za,$a,_a){this._utils=Ya;this._element=Za;this._fetch=$a;this._fallback=_a;var a0;var b0;this.init=function(){a0=$a(Za);return new Promise(function(c0){b0=c0})};this.execute=function(){a0.then(function(d0){Ya.restoreOriginals(Za);return Ya.writeProtectAndExecuteString(Za,d0).then(b0)}).catch(function(){_a.init();return _a.execute().then(b0)});return Promise.resolve()};this.describe=function(){return"bundled async script at "+Za.getAttribute("data-phast-original-src")}};phast.ScriptsLoader.Scripts.SyncAJAXScript=function(e0,f0,g0,h0){this._utils=e0;this._element=f0;this._fetch=g0;this._fallback=h0;var i0;this.init=function(){i0=g0(f0);return i0};this.execute=function(){return i0.then(function(j0){e0.restoreOriginals(f0);return e0.writeProtectAndExecuteString(f0,j0)}).catch(function(){h0.init();return h0.execute()})};this.describe=function(){return"bundled sync script at "+f0.getAttribute("data-phast-original-src")}};phast.ScriptsLoader.Scripts.Factory=function(k0,l0){var m0=phast.ScriptsLoader.Scripts;var n0=new phast.ScriptsLoader.Utilities(k0);this.makeScriptFromElement=function(q0){var r0;if(q0.getAttribute("data-phast-debug-force-method")&&window.location.host.match(/\.test$/)){return new m0[q0.getAttribute("data-phast-debug-force-method")](n0,q0)}if(o0(q0)){if(isAsync(q0)){r0=new m0.AsyncBrowserScript(n0,q0);return l0?new m0.AsyncAJAXScript(n0,q0,l0,r0):r0}r0=new m0.SyncBrowserScript(n0,q0);return l0?new m0.SyncAJAXScript(n0,q0,l0,r0):r0}if(p0(q0)){return new m0.InlineScript(n0,q0)}if(isAsync(q0)){return new m0.AsyncBrowserScript(n0,q0)}return new m0.SyncBrowserScript(n0,q0)};function o0(s0){return s0.hasAttribute("data-phast-params")}function p0(t0){return!t0.hasAttribute("src")}};function getSrc(u0){if(u0.hasAttribute("data-phast-original-src")){return u0.getAttribute("data-phast-original-src")}else if(u0.hasAttribute("src")){return u0.getAttribute("src")}}function isAsync(v0){return v0.hasAttribute("async")||v0.hasAttribute("data-phast-async")}function isDefer(w0){return w0.hasAttribute("defer")||w0.hasAttribute("data-phast-defer")} }),(function(){var Promise=phast.ES6Promise;var go=phast.once(loadScripts);phast.on(document,"DOMContentLoaded").then(function(){if(phast.stylesLoading){phast.onStylesLoaded=go;setTimeout(go,4e3)}else{Promise.resolve().then(go)}});var loadFiltered=false;window.addEventListener("load",function(a){if(!loadFiltered){a.stopImmediatePropagation()}loadFiltered=true});document.addEventListener("readystatechange",function(b){if(document.readyState==="loading"){b.stopImmediatePropagation()}});var didSetTimeout=false;var originalSetTimeout=window.setTimeout;window.setTimeout=function(c,d){if(!d||d<0){didSetTimeout=true}return originalSetTimeout.apply(window,arguments)};function loadScripts(){var e=new phast.ScriptsLoader.Scripts.Factory(document,fetchScript);var f=phast.ScriptsLoader.getScriptsInExecutionOrder(document,e);if(f.length===0){return}setReadyState("loading");phast.ScriptsLoader.executeScripts(f).then(restoreReadyState)}function setReadyState(g){try{Object.defineProperty(document,"readyState",{configurable:true,get:function(){return g}})}catch(h){console.warn("[Phast] Unable to override document.readyState on this browser: ",h)}}function restoreReadyState(){i().then(function(){setReadyState("interactive");triggerEvent(document,"readystatechange");return i()}).then(function(){triggerEvent(document,"DOMContentLoaded");return i()}).then(function(){delete document["readyState"];triggerEvent(document,"readystatechange");if(loadFiltered){triggerEvent(window,"load")}loadFiltered=true});function i(){return new Promise(function(j){(function k(l){if(didSetTimeout&&l<10){didSetTimeout=false;originalSetTimeout.call(window,function(){k(l+1)})}else{requestAnimationFrame(j)}})(0)})}}function triggerEvent(m,n){var o=document.createEvent("Event");o.initEvent(n,true,true);m.dispatchEvent(o)}function fetchScript(p){return phast.ResourceLoader.instance.get(phast.ResourceLoader.RequestParams.fromString(p.getAttribute("data-phast-params")))} })];(phast.scripts.shift())();})({"config":"eyJyZXNvdXJjZXNMb2FkZXIiOnsic2VydmljZVVybCI6Imh0dHBzOi8vd3d3LmFnZW5jZS1zZW8tbHlvbi5mci93cC1jb250ZW50L3BsdWdpbnMvcGhhc3RwcmVzcy9waGFzdC5waHA/Iiwic2hvcnRQYXJhbXNNYXBwaW5ncyI6eyJzcmMiOiJzIiwic3RyaXAtaW1wb3J0cyI6ImkiLCJjYWNoZU1hcmtlciI6ImMiLCJ0b2tlbiI6InQiLCJpc1NjcmlwdCI6ImoiLCJyZWYiOiJyIn0sInBhdGhJbmZvIjpmYWxzZX0sInNjcmlwdC1wcm94eS1zZXJ2aWNlIjp7InNlcnZpY2VVcmwiOiJodHRwczovL3d3dy5hZ2VuY2Utc2VvLWx5b24uZnIvd3AtY29udGVudC9wbHVnaW5zL3BoYXN0cHJlc3MvcGhhc3QucGhwIiwicGF0aEluZm8iOmZhbHNlLCJ1cmxSZWZyZXNoVGltZSI6NzIwMCwid2hpdGVsaXN0IjpbIn5eaHR0cHM/Oi8vd3d3XFwuYWdlbmNlXFwtc2VvXFwtbHlvblxcLmZyL34iXX0sInNjcmlwdHNMb2FkZXIiOnsiY3NwIjp7Im5vbmNlIjpudWxsLCJyZXBvcnRPbmx5IjpmYWxzZSwicmVwb3J0VXJpIjpudWxsfX19"});</script></body> </html> <!-- [Phast] Document optimized in 20ms -->