devxlogo

Create Data-Aware Applications in “Avalon”—the Windows Presentation Foundation

Create Data-Aware Applications in “Avalon”—the Windows Presentation Foundation

n the first article in this series, I discussed how to create Windows Presentation Foundation (WPF; code named Avalon) applications using XAML. In a follow-up article, I discussed the new navigational model in WPF. In this third installment, I will explore another important concept in WPF programming?data binding.

In WPF you can bind UI elements to a wide variety of data sources, including XML data, Web services, as well as databases. Data binding is a big topic in WPF and it is beyond the scope of this article to discuss every nook and cranny of data binding. To keep things manageable, I will show you how you can data bind a typical WPF application to an XML data source and explain the nuts and bolts behind it. To make the example useful, I will build a simple RSS reader that accepts an RSS XML document and displays the various items in the document using data binding. Figure 1 shows the completed application.

Binding to a Static XML Source
To build the sample application in this article, you need Visual Studio 2005 Beta 2 with the WinFX SDK installed. Using Visual Studio 2005 Beta 2, create a new AvalonNavigation application (see Figure 2). Name the application DataBinding and click OK.


Figure 1. The Avalon RSS Reader Application: In this example, the DevX New Articles RSS feed is used to generate the data for the sample application.
?
Figure 2. Creating a New AvalonNavigation Application: Start your project in Visual Studio in the usual way, choosing the AvalonNavigation type.

What You Need
  • Microsoft Visual Studio 2005
  • Microsoft Pre-Release Software: Windows Presentation Framework (“Avalon”) and Windows Communication Framework (“Indigo”) Beta1 RC
  • The WinFX SDK

In the default Page1.xaml, you will first build the UI of the application by populating the page with the relevant XAML elements.

First, add a element to the page and set its background color to “Cornsilk”:

   

Add a element to the page (see Listing 1). The element allows you to define an XML Data source (also known as XML data island) to be used for this application. In this case, the XML source is an RSS document. The XPath attribute is set to “/rss/channel” as the starting node of the document tree so that later on you can simply refer to the child elements using relative paths. The XML data source is given the key RSSData. The code is shown in Listing 1.

Next, add a element to the element. The element is used to bind the content of the XML data island with a control (in this case the TextBlock control). The TextBlock data template is bound to the element (of the XML tree) and given the name RSSTemplate:</p> <pre><code> <DataTemplate x:Key="RSSTemplate"> <TextBlock FontSize="Small"> <TextBlock.TextContent> <Binding XPath="title"/> </TextBlock.TextContent> </TextBlock> </DataTemplate> </DockPanel.Resources></code></pre> <p>Next, you will display a header (“Titles”) on your page, as well as create a ListBox control to display all the titles (encapsulated within the <title> element) in the XML data island (see <a href="javascript:showSupportItem('figure3')">Figure 3</a>). Note that you use the ItemsSource attribute to indicate the data source (<span class="pf">Binding Source={StaticResource RSSData}</span>, which is known as the compact binding expression) and the node at which to start looking (<span class="pf">XPath=item</span>). </p> <p>You use the ItemTemplate attribute to apply a template to the control (<span class="pf">{StaticResource RSSTemplate}</span>). Finally, when a selection in the ListBox control changes, the TitleChanged event is fired (as specified in the SelectionChanged attribute):</p> <pre><code> <StackPanel> <TextBlock DockPanel.Dock="Left" FontSize="18" FontWeight="Bold" Margin="10" HorizontalAlignment="Left"> Titles </TextBlock> <ListBox HorizontalAlignment="Left" Margin="10,0,10,10" Width="300" Background="LightYellow" ItemsSource="{Binding Source={StaticResource RSSData}, XPath=item}" ItemTemplate="{StaticResource RSSTemplate}" SelectionChanged="TitleChanged" /> </StackPanel></code></pre> <table border="0" cellspacing="0" cellpadding="5" align="right" width="239"> <tr> <td valign="top"><a href="javascript:showSupportItem('figure3')"><img loading="lazy" decoding="async" border="0" alt="" src="/assets/articlefigs/13771.jpg" width="220" height="150"></a></td> <td width="12"> </td> </tr> <tr> <td class="smallfont"><a href="javascript:showSupportItem('figure3')"><strong>Figure 3</strong>.</a> Binding XML Data to Data Controls: The XML for the RSS feed is bound to data controls in the application code. </td> </tr> </table> <p>When an item in the ListBox control is selected, the application displays the description of the item on the right-hand side of the page. In the next step you want to display the header (“Description”), followed by a <DockPanel> element containing a <TextBlock> element bound to the description element (<span class="pf">{Binding XPath=description}</span>). A second <DockPanel> element is used to display the URL associated (<span class="pf">{Binding XPath=link}</span>) with the selected item (see <a href="javascript:showSupportItem('figure4')">Figure 4</a>):</p> <pre><code> <StackPanel> <TextBlock DockPanel.Dock="Left" FontSize="18" FontWeight="Bold" Margin="10" HorizontalAlignment="Left"> Description </TextBlock> <DockPanel HorizontalAlignment="Left" Name="dpDescription" Width="500"> <TextBlock Name="txtDescription" DockPanel.Dock="Top" FontSize="Small" HorizontalAlignment="Left" TextWrap="wrap" Margin="10,0,10,10" Background="Black" Foreground="White" TextContent="{Binding XPath=description}" /> </DockPanel> <DockPanel HorizontalAlignment="Left" Name="dpURL" Width="500"> <TextBlock Name="txtURL" DockPanel.Dock="Top" FontSize="Small" HorizontalAlignment="Left" TextWrap="wrap" TextContent="{Binding XPath=link}" Margin="10,10,10,10" Foreground="Blue"/> </DockPanel> </StackPanel> </DockPanel></Page></code></pre> <table border="0" cellspacing="0" cellpadding="5" align="right" width="239"> <tr> <td valign="top"><a href="javascript:showSupportItem('figure4')"><img loading="lazy" decoding="async" border="0" alt="" src="/assets/articlefigs/13772.jpg" width="220" height="150"></a></td> <td width="12"> </td> </tr> <tr> <td class="smallfont"><a href="javascript:showSupportItem('figure4')"><strong>Figure 4</strong>.</a> Displaying Detailed Description: The description and link for the selected RSS item are bound to the TextBlock controls. They are changed whenever the user selects an item in the ListBox control.</td> </tr> </table> <p>Finally, you need to service the <span class="pf">TitleChanged()</span> event that you specified earlier. In this event, you will change the DataContext property of the <span class="pf">dpDescription</span> and <span class="pf">dpURL</span> <DockPanel> elements whenever the user selects an item in the ListBox controls:</p> <pre><code>Partial Public Class Page1 Inherits Page Private Sub TitleChanged(ByVal sender As Object, _ ByVal args As SelectionChangedEventArgs) Dim lstbox As ListBox = sender If lstbox.SelectedItem IsNot Nothing Then dpDescription.DataContext = _ lstbox.SelectedItem dpURL.DataContext = lstbox.SelectedItem End If End SubEnd Class</code></pre> <p>That’s it! Press F5 to test the application. The items in the RSS XML document are displayed in the ListBox control. You can click on the items in the ListBox control to make the corresponding description and URL show up on the right side of the page (see <a href="javascript:showSupportItem('figure1')">Figure 1</a>). </p> <p><strong>Binding to an External XML Source</strong><br />The previous example shows how you can bind an XML data island to the various controls in your WPF application. One problem with using an XML data island within the application is that any changes to the XML data will require the application to be modified/compiled. A better approach would be to store the XML data in an external file and then reference it within the application. For example, you could save the XML data in a file called RSS.xml and then reference it within the application as:</p> <pre><code> <XmlDataSource x:Key="RSSData" Source="RSS.xml" XPath="/rss/channel" /></code></pre> <p><strong>Dynamically Loading the XML Source</strong><br />While you can reference an external XML file, a better approach would be to dynamically load the XML document from a URL. In this case, you would modify your <XmlDataSource> element as:</p> <pre><code> <XmlDataSource x:Key="RSSData" Source="http://services.devx.com/outgoing/devxfeed.xml" XPath="/rss/channel" /></code></pre> <p>Try using the following URLs and see that the application loads a different set of RSS items each time:</p> <ul> <li> <a href='http://services.devx.com/outgoing/dotnet.xml' target='_blank'>http://services.devx.com/outgoing/dotnet.xml</a></li> <li> <a href='http://services.devx.com/outgoing/wirelessfeed.xml' target='_blank'>http://services.devx.com/outgoing/wirelessfeed.xml</a> </li> <li> <a href='http://services.devx.com/outgoing/enterprisefeed.xml' target='_blank'>http://services.devx.com/outgoing/enterprisefeed.xml</a> </li> <li> <a href='http://services.devx.com/outgoing/xmlfeed.xml' target='_blank'>http://services.devx.com/outgoing/xmlfeed.xml</a> </li> </ul> <p><strong>Going Further</strong><br />In this article, you have seen how data-binding works in WPF. For those who want to take the sample application further, consider modifying the application to allow users to select from a list of URLs (instead of manually modifying the source of the XML document). Otherwise, I encourage you to download the sample code and see for yourself how data binding works in WPF. </p> <p> </div> </div> <div class="elementor-element elementor-element-d5a4ee5 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="d5a4ee5" data-element_type="widget" data-widget_type="divider.default"> <div class="elementor-widget-container"> <style>/*! elementor - v3.12.2 - 23-04-2023 */ .elementor-widget-divider{--divider-border-style:none;--divider-border-width:1px;--divider-color:#0c0d0e;--divider-icon-size:20px;--divider-element-spacing:10px;--divider-pattern-height:24px;--divider-pattern-size:20px;--divider-pattern-url:none;--divider-pattern-repeat:repeat-x}.elementor-widget-divider .elementor-divider{display:flex}.elementor-widget-divider .elementor-divider__text{font-size:15px;line-height:1;max-width:95%}.elementor-widget-divider .elementor-divider__element{margin:0 var(--divider-element-spacing);flex-shrink:0}.elementor-widget-divider .elementor-icon{font-size:var(--divider-icon-size)}.elementor-widget-divider .elementor-divider-separator{display:flex;margin:0;direction:ltr}.elementor-widget-divider--view-line_icon .elementor-divider-separator,.elementor-widget-divider--view-line_text .elementor-divider-separator{align-items:center}.elementor-widget-divider--view-line_icon .elementor-divider-separator:after,.elementor-widget-divider--view-line_icon .elementor-divider-separator:before,.elementor-widget-divider--view-line_text .elementor-divider-separator:after,.elementor-widget-divider--view-line_text .elementor-divider-separator:before{display:block;content:"";border-bottom:0;flex-grow:1;border-top:var(--divider-border-width) var(--divider-border-style) var(--divider-color)}.elementor-widget-divider--element-align-left .elementor-divider .elementor-divider-separator>.elementor-divider__svg:first-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-left .elementor-divider-separator:before{content:none}.elementor-widget-divider--element-align-left .elementor-divider__element{margin-left:0}.elementor-widget-divider--element-align-right .elementor-divider .elementor-divider-separator>.elementor-divider__svg:last-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-right .elementor-divider-separator:after{content:none}.elementor-widget-divider--element-align-right .elementor-divider__element{margin-right:0}.elementor-widget-divider:not(.elementor-widget-divider--view-line_text):not(.elementor-widget-divider--view-line_icon) .elementor-divider-separator{border-top:var(--divider-border-width) var(--divider-border-style) var(--divider-color)}.elementor-widget-divider--separator-type-pattern{--divider-border-style:none}.elementor-widget-divider--separator-type-pattern.elementor-widget-divider--view-line .elementor-divider-separator,.elementor-widget-divider--separator-type-pattern:not(.elementor-widget-divider--view-line) .elementor-divider-separator:after,.elementor-widget-divider--separator-type-pattern:not(.elementor-widget-divider--view-line) .elementor-divider-separator:before,.elementor-widget-divider--separator-type-pattern:not([class*=elementor-widget-divider--view]) .elementor-divider-separator{width:100%;min-height:var(--divider-pattern-height);-webkit-mask-size:var(--divider-pattern-size) 100%;mask-size:var(--divider-pattern-size) 100%;-webkit-mask-repeat:var(--divider-pattern-repeat);mask-repeat:var(--divider-pattern-repeat);background-color:var(--divider-color);-webkit-mask-image:var(--divider-pattern-url);mask-image:var(--divider-pattern-url)}.elementor-widget-divider--no-spacing{--divider-pattern-size:auto}.elementor-widget-divider--bg-round{--divider-pattern-repeat:round}.rtl .elementor-widget-divider .elementor-divider__text{direction:rtl}.e-con-inner>.elementor-widget-divider,.e-con>.elementor-widget-divider{width:var(--container-widget-width,100%);--flex-grow:var(--container-widget-flex-grow)}</style> <div class="elementor-divider"> <span class="elementor-divider-separator"> </span> </div> </div> </div> <div class="elementor-element elementor-element-4b5870b elementor-author-box--name-yes elementor-author-box--biography-yes elementor-widget elementor-widget-author-box" data-id="4b5870b" data-element_type="widget" data-widget_type="author-box.default"> <div class="elementor-widget-container"> <div class="elementor-author-box"> <div class="elementor-author-box__text"> <div > <h4 class="elementor-author-box__name"> devx-admin </h4> </div> <div class="elementor-author-box__bio"> </div> </div> </div> </div> </div> <div class="elementor-element elementor-element-fc3388d elementor-widget elementor-widget-post-navigation" data-id="fc3388d" data-element_type="widget" data-widget_type="post-navigation.default"> <div class="elementor-widget-container"> <div class="elementor-post-navigation"> <div class="elementor-post-navigation__prev elementor-post-navigation__link"> <a href="https://www.devx.com/tip-bank/29136/" rel="prev"><span class="elementor-post-navigation__link__prev"><span class="post-navigation__prev--label">Previous</span></span></a> </div> <div class="elementor-post-navigation__next elementor-post-navigation__link"> <a href="https://www.devx.com/dotnet-zone/29150/" rel="next"><span class="elementor-post-navigation__link__next"><span class="post-navigation__next--label">Next</span></span></a> </div> </div> </div> </div> <div class="elementor-element elementor-element-2bf5b4bc elementor-widget elementor-widget-heading" data-id="2bf5b4bc" data-element_type="widget" data-widget_type="heading.default"> <div class="elementor-widget-container"> <span class="elementor-heading-title elementor-size-default">Share the Post:</span> </div> </div> <div class="elementor-element elementor-element-496b8f65 elementor-share-buttons--view-icon elementor-share-buttons--skin-minimal elementor-share-buttons--color-custom elementor-share-buttons--shape-square elementor-grid-0 elementor-widget elementor-widget-share-buttons" data-id="496b8f65" data-element_type="widget" data-widget_type="share-buttons.default"> <div class="elementor-widget-container"> <link rel="stylesheet" href="https://www.devx.com/wp-content/plugins/elementor-pro/assets/css/widget-share-buttons.min.css"> <div class="elementor-grid"> <div class="elementor-grid-item"> <div class="elementor-share-btn elementor-share-btn_facebook" role="button" tabindex="0" aria-label="Share on facebook" > <span class="elementor-share-btn__icon"> <i class="fab fa-facebook" aria-hidden="true"></i> </span> </div> </div> <div class="elementor-grid-item"> <div class="elementor-share-btn elementor-share-btn_twitter" role="button" tabindex="0" aria-label="Share on twitter" > <span class="elementor-share-btn__icon"> <i class="fab fa-twitter" aria-hidden="true"></i> </span> </div> </div> <div class="elementor-grid-item"> <div class="elementor-share-btn elementor-share-btn_linkedin" role="button" tabindex="0" aria-label="Share on linkedin" > <span class="elementor-share-btn__icon"> <i class="fab fa-linkedin" aria-hidden="true"></i> </span> </div> </div> </div> </div> </div> <div class="elementor-element elementor-element-fe66bf1 elementor-hidden-desktop elementor-hidden-tablet elementor-grid-3 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-posts--thumbnail-top elementor-widget elementor-widget-posts" data-id="fe66bf1" data-element_type="widget" data-settings="{"classic_columns":"3","classic_columns_tablet":"2","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"> <link rel="stylesheet" href="https://www.devx.com/wp-content/plugins/elementor-pro/assets/css/widget-posts.min.css"> <div class="elementor-posts-container elementor-posts elementor-posts--skin-classic elementor-grid"> <article class="elementor-post elementor-grid-item post-38699 post type-post status-publish format-standard has-post-thumbnail hentry category-evs category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/first-public-roadway-with-wireless-ev-charging/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-medium size-medium wp-image-38691 ewww_webp" alt="Charging Roadway" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Charging-Roadway-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Charging-Roadway-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Charging-Roadway-300x171.jpg" class="attachment-medium size-medium wp-image-38691" alt="Charging Roadway" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/first-public-roadway-with-wireless-ev-charging/" > First Public Roadway with Wireless EV Charging </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Lila Anderson </span> <span class="elementor-post-date"> December 1, 2023 </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38719 post type-post status-publish format-standard has-post-thumbnail hentry category-algorithms category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/novel-crispr-systems-enhance-gene-editing-precision/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-medium size-medium wp-image-38716 ewww_webp" alt="CRISPR Precision" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/CRISPR-Precision-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/CRISPR-Precision-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/CRISPR-Precision-300x171.jpg" class="attachment-medium size-medium wp-image-38716" alt="CRISPR Precision" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/novel-crispr-systems-enhance-gene-editing-precision/" > Novel CRISPR Systems Enhance Gene-Editing Precision </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> December 1, 2023 </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38689 post type-post status-publish format-standard has-post-thumbnail hentry category-batteries category-news category-technology"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/power-saving-mode-extends-android-battery-life/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-medium size-medium wp-image-38686 ewww_webp" alt="Mode Extends" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Mode-Extends-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Mode-Extends-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Mode-Extends-300x171.jpg" class="attachment-medium size-medium wp-image-38686" alt="Mode Extends" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/power-saving-mode-extends-android-battery-life/" > Power-saving Mode Extends Android Battery Life </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Jordan Williams </span> <span class="elementor-post-date"> December 1, 2023 </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38697 post type-post status-publish format-standard has-post-thumbnail hentry category-energy category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/setbacks-illuminate-advanced-nuclear-power-struggles/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-medium size-medium wp-image-38694 ewww_webp" alt="Nuclear Power Struggles" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Nuclear-Power-Struggles-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Nuclear-Power-Struggles-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Nuclear-Power-Struggles-300x171.jpg" class="attachment-medium size-medium wp-image-38694" alt="Nuclear Power Struggles" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/setbacks-illuminate-advanced-nuclear-power-struggles/" > Setbacks Illuminate Advanced Nuclear Power Struggles </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> December 1, 2023 </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38701 post type-post status-publish format-standard has-post-thumbnail hentry category-evs category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/bidens-guidelines-challenge-ev-industrys-reliance-on-china/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-medium size-medium wp-image-38698 ewww_webp" alt="Biden-China Challenge" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Biden-China-Challenge-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Biden-China-Challenge-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Biden-China-Challenge-300x171.jpg" class="attachment-medium size-medium wp-image-38698" alt="Biden-China Challenge" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/bidens-guidelines-challenge-ev-industrys-reliance-on-china/" > Biden’s Guidelines Challenge EV Industry’s Reliance on China </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> December 1, 2023 </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38705 post type-post status-publish format-standard has-post-thumbnail hentry category-news category-technology"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/sustainable-urban-transport-innovative-solutions/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-medium size-medium wp-image-38702 ewww_webp" alt="Sustainable Transport" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Sustainable-Transport-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Sustainable-Transport-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Sustainable-Transport-300x171.jpg" class="attachment-medium size-medium wp-image-38702" alt="Sustainable Transport" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/sustainable-urban-transport-innovative-solutions/" > Sustainable Urban Transport: Innovative Solutions </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Grace Phillips </span> <span class="elementor-post-date"> December 1, 2023 </span> </div> </div> </article> </div> </div> </div> <div class="elementor-element elementor-element-39bd7056 elementor-grid-1 elementor-posts--thumbnail-left elementor-hidden-mobile elementor-grid-tablet-2 elementor-grid-mobile-1 load-more-align-center elementor-widget elementor-widget-posts" data-id="39bd7056" data-element_type="widget" data-settings="{"classic_columns":"1","classic_row_gap":{"unit":"px","size":0,"sizes":[]},"pagination_type":"load_more_on_click","classic_columns_tablet":"2","classic_columns_mobile":"1","classic_row_gap_tablet":{"unit":"px","size":"","sizes":[]},"classic_row_gap_mobile":{"unit":"px","size":"","sizes":[]},"load_more_spinner":{"value":"fas fa-spinner","library":"fa-solid"}}" 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-38699 post type-post status-publish format-standard has-post-thumbnail hentry category-evs category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/first-public-roadway-with-wireless-ev-charging/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38691 ewww_webp" alt="Charging Roadway" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Charging-Roadway.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Charging-Roadway.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Charging-Roadway.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38691" alt="Charging Roadway" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/first-public-roadway-with-wireless-ev-charging/" > First Public Roadway with Wireless EV Charging </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Lila Anderson </span> <span class="elementor-post-date"> December 1, 2023 </span> <span class="elementor-post-time"> 4:15 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38719 post type-post status-publish format-standard has-post-thumbnail hentry category-algorithms category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/novel-crispr-systems-enhance-gene-editing-precision/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38716 ewww_webp" alt="CRISPR Precision" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/CRISPR-Precision.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/CRISPR-Precision.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/CRISPR-Precision.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38716" alt="CRISPR Precision" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/novel-crispr-systems-enhance-gene-editing-precision/" > Novel CRISPR Systems Enhance Gene-Editing Precision </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> December 1, 2023 </span> <span class="elementor-post-time"> 1:33 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38689 post type-post status-publish format-standard has-post-thumbnail hentry category-batteries category-news category-technology"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/power-saving-mode-extends-android-battery-life/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38686 ewww_webp" alt="Mode Extends" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Mode-Extends.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Mode-Extends.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Mode-Extends.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38686" alt="Mode Extends" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/power-saving-mode-extends-android-battery-life/" > Power-saving Mode Extends Android Battery Life </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Jordan Williams </span> <span class="elementor-post-date"> December 1, 2023 </span> <span class="elementor-post-time"> 12:52 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38697 post type-post status-publish format-standard has-post-thumbnail hentry category-energy category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/setbacks-illuminate-advanced-nuclear-power-struggles/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38694 ewww_webp" alt="Nuclear Power Struggles" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Nuclear-Power-Struggles.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Nuclear-Power-Struggles.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Nuclear-Power-Struggles.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38694" alt="Nuclear Power Struggles" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/setbacks-illuminate-advanced-nuclear-power-struggles/" > Setbacks Illuminate Advanced Nuclear Power Struggles </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> December 1, 2023 </span> <span class="elementor-post-time"> 11:49 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38701 post type-post status-publish format-standard has-post-thumbnail hentry category-evs category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/bidens-guidelines-challenge-ev-industrys-reliance-on-china/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38698 ewww_webp" alt="Biden-China Challenge" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Biden-China-Challenge.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Biden-China-Challenge.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Biden-China-Challenge.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38698" alt="Biden-China Challenge" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/bidens-guidelines-challenge-ev-industrys-reliance-on-china/" > Biden’s Guidelines Challenge EV Industry’s Reliance on China </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> December 1, 2023 </span> <span class="elementor-post-time"> 10:46 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38705 post type-post status-publish format-standard has-post-thumbnail hentry category-news category-technology"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/sustainable-urban-transport-innovative-solutions/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38702 ewww_webp" alt="Sustainable Transport" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Sustainable-Transport.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Sustainable-Transport.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Sustainable-Transport.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38702" alt="Sustainable Transport" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/sustainable-urban-transport-innovative-solutions/" > Sustainable Urban Transport: Innovative Solutions </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Grace Phillips </span> <span class="elementor-post-date"> December 1, 2023 </span> <span class="elementor-post-time"> 9:44 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38712 post type-post status-publish format-standard has-post-thumbnail hentry category-news category-technology"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/ikea-launches-smart-sensors-for-home-monitoring/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38709 ewww_webp" alt="IKEA Smart Sensors" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/IKEA-Smart-Sensors.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/IKEA-Smart-Sensors.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/IKEA-Smart-Sensors.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38709" alt="IKEA Smart Sensors" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/ikea-launches-smart-sensors-for-home-monitoring/" > IKEA Launches Smart Sensors for Home Monitoring </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Lila Anderson </span> <span class="elementor-post-date"> December 1, 2023 </span> <span class="elementor-post-time"> 8:41 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38717 post type-post status-publish format-standard has-post-thumbnail hentry category-algorithms category-artificial-intelligence-ai category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/openais-q-algorithm-solving-complex-math-problems/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38714 ewww_webp" alt="Q Algorithm" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Q-Algorithm.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Q-Algorithm.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Q-Algorithm.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38714" alt="Q Algorithm" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/openais-q-algorithm-solving-complex-math-problems/" > OpenAI’s Q* Algorithm: Solving Complex Math Problems </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Jordan Williams </span> <span class="elementor-post-date"> December 1, 2023 </span> <span class="elementor-post-time"> 7:38 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38713 post type-post status-publish format-standard has-post-thumbnail hentry category-news category-smarthomes"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/neo-tokyo-embraces-efficient-smart-homes/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38710 ewww_webp" alt="Neo-Tokyo Homes" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Neo-Tokyo-Homes.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Neo-Tokyo-Homes.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Neo-Tokyo-Homes.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38710" alt="Neo-Tokyo Homes" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/neo-tokyo-embraces-efficient-smart-homes/" > Neo-Tokyo Embraces Efficient Smart Homes </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> December 1, 2023 </span> <span class="elementor-post-time"> 6:35 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38624 post type-post status-publish format-standard has-post-thumbnail hentry category-news category-technology"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/ai-and-5g-integration-transforms-industries/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38621 ewww_webp" alt="AI 5G Integration" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/AI-5G-Integration.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/AI-5G-Integration.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/AI-5G-Integration.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38621" alt="AI 5G Integration" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/ai-and-5g-integration-transforms-industries/" > AI and 5G Integration Transforms Industries </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Grace Phillips </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 3:41 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38625 post type-post status-publish format-standard has-post-thumbnail hentry category-5g category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/11-prepares-for-upcoming-5g-launch/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38622 ewww_webp" alt="5G Launch" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/5G-Launch.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/5G-Launch.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/5G-Launch.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38622" alt="5G Launch" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/11-prepares-for-upcoming-5g-launch/" > 1&1 Prepares for Upcoming 5G Launch </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Lila Anderson </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 2:38 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38635 post type-post status-publish format-standard has-post-thumbnail hentry category-drone category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/us-army-selects-lockheed-northrop-for-drone-defense-systems/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38632 ewww_webp" alt="Drone Defense Systems" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Drone-Defense-Systems.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Drone-Defense-Systems.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Drone-Defense-Systems.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38632" alt="Drone Defense Systems" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/us-army-selects-lockheed-northrop-for-drone-defense-systems/" > US Army Selects Lockheed, Northrop for Drone Defense Systems </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Jordan Williams </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 1:36 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38618 post type-post status-publish format-standard has-post-thumbnail hentry category-finance category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/tsmc-exhibits-strong-growth-potential-attracts-investors/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38614 ewww_webp" alt="Growth Potential" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Growth-Potential.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Growth-Potential.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Growth-Potential.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38614" alt="Growth Potential" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/tsmc-exhibits-strong-growth-potential-attracts-investors/" > TSMC Exhibits Strong Growth Potential, Attracts Investors </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 12:53 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38643 post type-post status-publish format-standard has-post-thumbnail hentry category-energy category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/uc-shifts-focus-from-carbon-offsets-to-sustainability/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38640 ewww_webp" alt="Sustainability Shift" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Sustainability-Shift.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Sustainability-Shift.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Sustainability-Shift.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38640" alt="Sustainability Shift" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/uc-shifts-focus-from-carbon-offsets-to-sustainability/" > UC Shifts Focus from Carbon Offsets to Sustainability </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 10:17 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38623 post type-post status-publish format-standard has-post-thumbnail hentry category-5g category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/verizon-nokia-showcase-5g-innovations-in-dallas/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38616 ewww_webp" alt="Dallas 5G Showcase" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Dallas-5G-Showcase.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Dallas-5G-Showcase.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Dallas-5G-Showcase.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38616" alt="Dallas 5G Showcase" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/verizon-nokia-showcase-5g-innovations-in-dallas/" > Verizon, Nokia Showcase 5G Innovations in Dallas </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 9:31 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38637 post type-post status-publish format-standard has-post-thumbnail hentry category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/government-unveils-comprehensive-environmental-strategies/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38634 ewww_webp" alt="Environmental Strategies" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Environmental-Strategies.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Environmental-Strategies.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Environmental-Strategies.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38634" alt="Environmental Strategies" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/government-unveils-comprehensive-environmental-strategies/" > Government Unveils Comprehensive Environmental Strategies </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Grace Phillips </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 9:28 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38641 post type-post status-publish format-standard has-post-thumbnail hentry category-algorithms category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/google-deepminds-gnome-accelerates-material-discovery/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38638 ewww_webp" alt="GNoME Discovery" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/GNoME-Discovery.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/GNoME-Discovery.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/GNoME-Discovery.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38638" alt="GNoME Discovery" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/google-deepminds-gnome-accelerates-material-discovery/" > Google DeepMind’s GNoME Accelerates Material Discovery </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Lila Anderson </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 8:25 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38609 post type-post status-publish format-standard has-post-thumbnail hentry category-artificial-intelligence-ai"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/artificial-intelligence-ai/the-sam-altman-saga-whats-going-on-at-openai/" > <div class="elementor-post__thumbnail"><img width="1920" height="1280" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38612 ewww_webp" alt="sam altman" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/sam-altman.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/sam-altman.jpg.webp" data-eio="j" /><noscript><img width="1920" height="1280" src="https://www.devx.com/wp-content/uploads/sam-altman.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38612" alt="sam altman" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/artificial-intelligence-ai/the-sam-altman-saga-whats-going-on-at-openai/" > The Sam Altman Saga – What’s Going On At OpenAI? </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> DevX Editor </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 7:31 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38636 post type-post status-publish format-standard has-post-thumbnail hentry category-drone category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/brincs-drones-enhance-emergency-response-efforts/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38633 ewww_webp" alt="Emergency Drones" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Emergency-Drones.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Emergency-Drones.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Emergency-Drones.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38633" alt="Emergency Drones" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/brincs-drones-enhance-emergency-response-efforts/" > Brinc’s Drones Enhance Emergency Response Efforts </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Jordan Williams </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 7:23 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38603 post type-post status-publish format-standard has-post-thumbnail hentry category-tech-trends"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/tech-trends/balancing-technical-and-soft-skills-the-ideal-skill-set-for-tech-professionals/" > <div class="elementor-post__thumbnail"><img width="1920" height="1281" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38607 ewww_webp" alt="Balancing Technical and Soft Skills" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Balancing-Technical-and-Soft-Skills.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Balancing-Technical-and-Soft-Skills.jpg.webp" data-eio="j" /><noscript><img width="1920" height="1281" src="https://www.devx.com/wp-content/uploads/Balancing-Technical-and-Soft-Skills.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38607" alt="Balancing Technical and Soft Skills" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/tech-trends/balancing-technical-and-soft-skills-the-ideal-skill-set-for-tech-professionals/" > Balancing Technical and Soft Skills: The Ideal Skill Set for Tech Professionals </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> DevX Editor </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 7:10 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38599 post type-post status-publish format-standard has-post-thumbnail hentry category-tech-trends"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/tech-trends/how-posigens-affordable-solar-solutions-are-transforming-homeownership/" > <div class="elementor-post__thumbnail"><img width="1920" height="1440" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38600 ewww_webp" alt="PosiGen Affordable Solar Solutions" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/PosiGen-Affordable-Solar-Solutions.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/PosiGen-Affordable-Solar-Solutions.jpg.webp" data-eio="j" /><noscript><img width="1920" height="1440" src="https://www.devx.com/wp-content/uploads/PosiGen-Affordable-Solar-Solutions.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38600" alt="PosiGen Affordable Solar Solutions" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/tech-trends/how-posigens-affordable-solar-solutions-are-transforming-homeownership/" > How PosiGen’s Affordable Solar Solutions Are Transforming Homeownership </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Rashan Dixon </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 6:48 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38642 post type-post status-publish format-standard has-post-thumbnail hentry category-artificial-intelligence-ai category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/openai-develops-q-for-enhanced-math-problem-solving/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38639 ewww_webp" alt="Q* Math" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Q-Math.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Q-Math.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Q-Math.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38639" alt="Q* Math" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/openai-develops-q-for-enhanced-math-problem-solving/" > OpenAI Develops Q* for Enhanced Math Problem-Solving </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> November 30, 2023 </span> <span class="elementor-post-time"> 6:20 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38467 post type-post status-publish format-standard has-post-thumbnail hentry category-news category-technology"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/affordable-alternatives-to-costly-smartphone-upgrades/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38463 ewww_webp" alt="Affordable Alternatives" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Affordable-Alternatives.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Affordable-Alternatives.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Affordable-Alternatives.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38463" alt="Affordable Alternatives" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/affordable-alternatives-to-costly-smartphone-upgrades/" > Affordable Alternatives to Costly Smartphone Upgrades </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Grace Phillips </span> <span class="elementor-post-date"> November 28, 2023 </span> <span class="elementor-post-time"> 4:53 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38466 post type-post status-publish format-standard has-post-thumbnail hentry category-news category-technology"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/foxconn-invests-1-5-billion-in-india-for-unnamed-project/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38462 ewww_webp" alt="Foxconn India Investment" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Foxconn-India-Investment.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Foxconn-India-Investment.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Foxconn-India-Investment.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38462" alt="Foxconn India Investment" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/foxconn-invests-1-5-billion-in-india-for-unnamed-project/" > Foxconn Invests $1.5 Billion in India for Unnamed Project </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Lila Anderson </span> <span class="elementor-post-date"> November 28, 2023 </span> <span class="elementor-post-time"> 3:50 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-38469 post type-post status-publish format-standard has-post-thumbnail hentry category-apple category-news"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/apple-retires-touch-id-on-future-iphones/" > <div class="elementor-post__thumbnail"><img width="1792" height="1024" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-full size-full wp-image-38465 ewww_webp" alt="Touch ID Retirement" loading="lazy" data-src-img="https://www.devx.com/wp-content/uploads/Touch-ID-Retirement.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Touch-ID-Retirement.jpg.webp" data-eio="j" /><noscript><img width="1792" height="1024" src="https://www.devx.com/wp-content/uploads/Touch-ID-Retirement.jpg" class="elementor-animation-grow attachment-full size-full wp-image-38465" alt="Touch ID Retirement" loading="lazy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/apple-retires-touch-id-on-future-iphones/" > Apple Retires Touch ID on Future iPhones </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Jordan Williams </span> <span class="elementor-post-date"> November 28, 2023 </span> <span class="elementor-post-time"> 2:48 PM </span> </div> </div> </article> </div> <span class="e-load-more-spinner"> <i aria-hidden="true" class="fas fa-spinner"></i> </span> <div class="e-load-more-anchor" data-page="1" data-max-page="756" data-next-page="https://www.devx.com/dotnet-zone/29142/2/"></div> <div class="elementor-button-wrapper"> <a href="#" class="elementor-button-link elementor-button elementor-animation-grow" role="button"> <span class="elementor-button-content-wrapper"> <span class="elementor-button-text">Show More</span> </span> </a> </div> <div class="e-load-more-message"></div> </div> </div> </div> </div> </div> </section> </div> </div> <div class="elementor-column elementor-col-20 elementor-top-column elementor-element elementor-element-270dc71" data-id="270dc71" data-element_type="column"> <div class="elementor-widget-wrap"> </div> </div> <div class="elementor-column elementor-col-20 elementor-top-column elementor-element elementor-element-8905b95 elementor-hidden-tablet" data-id="8905b95" data-element_type="column"> <div class="elementor-widget-wrap"> </div> </div> </div> </section> </div> <footer data-elementor-type="footer" data-elementor-id="23300" class="elementor elementor-23300 elementor-location-footer"> <footer class="elementor-section elementor-top-section elementor-element elementor-element-1588a538 elementor-section-height-min-height elementor-section-content-middle elementor-section-full_width elementor-section-height-default elementor-section-items-middle" data-id="1588a538" data-element_type="section" data-settings="{"background_background":"classic"}"> <div class="elementor-container elementor-column-gap-no"> <div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-9d2a788" data-id="9d2a788" data-element_type="column"> <div class="elementor-widget-wrap"> </div> </div> <div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-2e0ce949" data-id="2e0ce949" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-4f9ec08 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="4f9ec08" data-element_type="widget" data-widget_type="divider.default"> <div class="elementor-widget-container"> <div class="elementor-divider"> <span class="elementor-divider-separator"> </span> </div> </div> </div> <section class="elementor-section elementor-inner-section elementor-element elementor-element-73a9986 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="73a9986" data-element_type="section"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-7f08930" data-id="7f08930" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-269b367 elementor-nav-menu__align-right elementor-nav-menu--dropdown-tablet elementor-nav-menu__text-align-aside elementor-nav-menu--toggle elementor-nav-menu--burger elementor-widget elementor-widget-nav-menu" data-id="269b367" data-element_type="widget" data-settings="{"layout":"horizontal","submenu_icon":{"value":"<i class=\"fas fa-caret-down\"><\/i>","library":"fa-solid"},"toggle":"burger"}" data-widget_type="nav-menu.default"> <div class="elementor-widget-container"> <nav class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-underline e--animation-fade"> <ul id="menu-1-269b367" class="elementor-nav-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-23808"><a href="https://www.devx.com/" class="elementor-item">Home</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23809"><a href="https://www.devx.com/advertise/" class="elementor-item">Advertise</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23816"><a href="https://www.devx.com/about/" class="elementor-item">About</a></li> </ul> </nav> <div class="elementor-menu-toggle" role="button" tabindex="0" aria-label="Menu Toggle" aria-expanded="false"> <i aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--open eicon-menu-bar"></i><i aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--close eicon-close"></i> <span class="elementor-screen-only">Menu</span> </div> <nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true"> <ul id="menu-2-269b367" class="elementor-nav-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-23808"><a href="https://www.devx.com/" class="elementor-item" tabindex="-1">Home</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23809"><a href="https://www.devx.com/advertise/" class="elementor-item" tabindex="-1">Advertise</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23816"><a href="https://www.devx.com/about/" class="elementor-item" tabindex="-1">About</a></li> </ul> </nav> </div> </div> </div> </div> <div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-21928d3" data-id="21928d3" data-element_type="column"> <div class="elementor-widget-wrap"> </div> </div> <div class="elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-869862d" data-id="869862d" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-5d5f4dc5 e-grid-align-left elementor-shape-rounded elementor-grid-0 elementor-widget elementor-widget-social-icons" data-id="5d5f4dc5" data-element_type="widget" data-widget_type="social-icons.default"> <div class="elementor-widget-container"> <style>/*! elementor - v3.12.2 - 23-04-2023 */ .elementor-widget-social-icons.elementor-grid-0 .elementor-widget-container,.elementor-widget-social-icons.elementor-grid-mobile-0 .elementor-widget-container,.elementor-widget-social-icons.elementor-grid-tablet-0 .elementor-widget-container{line-height:1;font-size:0}.elementor-widget-social-icons:not(.elementor-grid-0):not(.elementor-grid-tablet-0):not(.elementor-grid-mobile-0) .elementor-grid{display:inline-grid}.elementor-widget-social-icons .elementor-grid{grid-column-gap:var(--grid-column-gap,5px);grid-row-gap:var(--grid-row-gap,5px);grid-template-columns:var(--grid-template-columns);justify-content:var(--justify-content,center);justify-items:var(--justify-content,center)}.elementor-icon.elementor-social-icon{font-size:var(--icon-size,25px);line-height:var(--icon-size,25px);width:calc(var(--icon-size, 25px) + (2 * var(--icon-padding, .5em)));height:calc(var(--icon-size, 25px) + (2 * var(--icon-padding, .5em)))}.elementor-social-icon{--e-social-icon-icon-color:#fff;display:inline-flex;background-color:#69727d;align-items:center;justify-content:center;text-align:center;cursor:pointer}.elementor-social-icon i{color:var(--e-social-icon-icon-color)}.elementor-social-icon svg{fill:var(--e-social-icon-icon-color)}.elementor-social-icon:last-child{margin:0}.elementor-social-icon:hover{opacity:.9;color:#fff}.elementor-social-icon-android{background-color:#a4c639}.elementor-social-icon-apple{background-color:#999}.elementor-social-icon-behance{background-color:#1769ff}.elementor-social-icon-bitbucket{background-color:#205081}.elementor-social-icon-codepen{background-color:#000}.elementor-social-icon-delicious{background-color:#39f}.elementor-social-icon-deviantart{background-color:#05cc47}.elementor-social-icon-digg{background-color:#005be2}.elementor-social-icon-dribbble{background-color:#ea4c89}.elementor-social-icon-elementor{background-color:#d30c5c}.elementor-social-icon-envelope{background-color:#ea4335}.elementor-social-icon-facebook,.elementor-social-icon-facebook-f{background-color:#3b5998}.elementor-social-icon-flickr{background-color:#0063dc}.elementor-social-icon-foursquare{background-color:#2d5be3}.elementor-social-icon-free-code-camp,.elementor-social-icon-freecodecamp{background-color:#006400}.elementor-social-icon-github{background-color:#333}.elementor-social-icon-gitlab{background-color:#e24329}.elementor-social-icon-globe{background-color:#69727d}.elementor-social-icon-google-plus,.elementor-social-icon-google-plus-g{background-color:#dd4b39}.elementor-social-icon-houzz{background-color:#7ac142}.elementor-social-icon-instagram{background-color:#262626}.elementor-social-icon-jsfiddle{background-color:#487aa2}.elementor-social-icon-link{background-color:#818a91}.elementor-social-icon-linkedin,.elementor-social-icon-linkedin-in{background-color:#0077b5}.elementor-social-icon-medium{background-color:#00ab6b}.elementor-social-icon-meetup{background-color:#ec1c40}.elementor-social-icon-mixcloud{background-color:#273a4b}.elementor-social-icon-odnoklassniki{background-color:#f4731c}.elementor-social-icon-pinterest{background-color:#bd081c}.elementor-social-icon-product-hunt{background-color:#da552f}.elementor-social-icon-reddit{background-color:#ff4500}.elementor-social-icon-rss{background-color:#f26522}.elementor-social-icon-shopping-cart{background-color:#4caf50}.elementor-social-icon-skype{background-color:#00aff0}.elementor-social-icon-slideshare{background-color:#0077b5}.elementor-social-icon-snapchat{background-color:#fffc00}.elementor-social-icon-soundcloud{background-color:#f80}.elementor-social-icon-spotify{background-color:#2ebd59}.elementor-social-icon-stack-overflow{background-color:#fe7a15}.elementor-social-icon-steam{background-color:#00adee}.elementor-social-icon-stumbleupon{background-color:#eb4924}.elementor-social-icon-telegram{background-color:#2ca5e0}.elementor-social-icon-thumb-tack{background-color:#1aa1d8}.elementor-social-icon-tripadvisor{background-color:#589442}.elementor-social-icon-tumblr{background-color:#35465c}.elementor-social-icon-twitch{background-color:#6441a5}.elementor-social-icon-twitter{background-color:#1da1f2}.elementor-social-icon-viber{background-color:#665cac}.elementor-social-icon-vimeo{background-color:#1ab7ea}.elementor-social-icon-vk{background-color:#45668e}.elementor-social-icon-weibo{background-color:#dd2430}.elementor-social-icon-weixin{background-color:#31a918}.elementor-social-icon-whatsapp{background-color:#25d366}.elementor-social-icon-wordpress{background-color:#21759b}.elementor-social-icon-xing{background-color:#026466}.elementor-social-icon-yelp{background-color:#af0606}.elementor-social-icon-youtube{background-color:#cd201f}.elementor-social-icon-500px{background-color:#0099e5}.elementor-shape-rounded .elementor-icon.elementor-social-icon{border-radius:10%}.elementor-shape-circle .elementor-icon.elementor-social-icon{border-radius:50%}</style> <div class="elementor-social-icons-wrapper elementor-grid"> <span class="elementor-grid-item"> <a class="elementor-icon elementor-social-icon elementor-social-icon-linkedin elementor-repeater-item-5c0ce3c" href="https://www.linkedin.com/company/devx" target="_blank"> <span class="elementor-screen-only">Linkedin</span> <i class="fab fa-linkedin"></i> </a> </span> <span class="elementor-grid-item"> <a class="elementor-icon elementor-social-icon elementor-social-icon-twitter elementor-repeater-item-828f132" href="https://twitter.com/DevX_Com" target="_blank"> <span class="elementor-screen-only">Twitter</span> <i class="fab fa-twitter"></i> </a> </span> </div> </div> </div> </div> </div> </div> </section> <section class="elementor-section elementor-inner-section elementor-element elementor-element-e509954 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e509954" data-element_type="section"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-f77ca98" data-id="f77ca98" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-c500cdf elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="c500cdf" data-element_type="widget" data-widget_type="divider.default"> <div class="elementor-widget-container"> <div class="elementor-divider"> <span class="elementor-divider-separator"> </span> </div> </div> </div> <div class="elementor-element elementor-element-fbeb59f elementor-nav-menu__align-center elementor-nav-menu--dropdown-tablet elementor-nav-menu__text-align-aside elementor-nav-menu--toggle elementor-nav-menu--burger elementor-widget elementor-widget-nav-menu" data-id="fbeb59f" data-element_type="widget" data-settings="{"layout":"horizontal","submenu_icon":{"value":"<i class=\"fas fa-caret-down\"><\/i>","library":"fa-solid"},"toggle":"burger"}" data-widget_type="nav-menu.default"> <div class="elementor-widget-container"> <nav class="elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-underline e--animation-fade"> <ul id="menu-1-fbeb59f" class="elementor-nav-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27045"><a href="https://www.devx.com/a-terms/" class="elementor-item">A</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27044"><a href="https://www.devx.com/b-terms/" class="elementor-item">B</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27043"><a href="https://www.devx.com/c-terms/" class="elementor-item">C</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27152"><a href="https://www.devx.com/d-terms/" class="elementor-item">D</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27153"><a href="https://www.devx.com/e-terms/" class="elementor-item">E</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27154"><a href="https://www.devx.com/f-terms/" class="elementor-item">F</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27155"><a href="https://www.devx.com/g-terms/" class="elementor-item">G</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27156"><a href="https://www.devx.com/h-terms/" class="elementor-item">H</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27157"><a href="https://www.devx.com/i-terms/" class="elementor-item">I</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27158"><a href="https://www.devx.com/j-terms/" class="elementor-item">J</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27159"><a href="https://www.devx.com/k-terms/" class="elementor-item">K</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27137"><a href="https://www.devx.com/l-terms/" class="elementor-item">L</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27151"><a href="https://www.devx.com/m-terms/" class="elementor-item">M</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27150"><a href="https://www.devx.com/n-terms/" class="elementor-item">N</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27149"><a href="https://www.devx.com/o-terms/" class="elementor-item">O</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27148"><a href="https://www.devx.com/p-terms/" class="elementor-item">P</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27147"><a href="https://www.devx.com/q-terms/" class="elementor-item">Q</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27146"><a href="https://www.devx.com/r-terms/" class="elementor-item">R</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27145"><a href="https://www.devx.com/s-terms/" class="elementor-item">S</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27144"><a href="https://www.devx.com/t-terms/" class="elementor-item">T</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27143"><a href="https://www.devx.com/u-terms/" class="elementor-item">U</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27142"><a href="https://www.devx.com/v-terms/" class="elementor-item">V</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27141"><a href="https://www.devx.com/w-terms/" class="elementor-item">W</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27140"><a href="https://www.devx.com/x-terms/" class="elementor-item">X</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27139"><a href="https://www.devx.com/y-terms/" class="elementor-item">Y</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27138"><a href="https://www.devx.com/z-terms/" class="elementor-item">Z</a></li> </ul> </nav> <div class="elementor-menu-toggle" role="button" tabindex="0" aria-label="Menu Toggle" aria-expanded="false"> <i aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--open eicon-menu-bar"></i><i aria-hidden="true" role="presentation" class="elementor-menu-toggle__icon--close eicon-close"></i> <span class="elementor-screen-only">Menu</span> </div> <nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" aria-hidden="true"> <ul id="menu-2-fbeb59f" class="elementor-nav-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27045"><a href="https://www.devx.com/a-terms/" class="elementor-item" tabindex="-1">A</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27044"><a href="https://www.devx.com/b-terms/" class="elementor-item" tabindex="-1">B</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27043"><a href="https://www.devx.com/c-terms/" class="elementor-item" tabindex="-1">C</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27152"><a href="https://www.devx.com/d-terms/" class="elementor-item" tabindex="-1">D</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27153"><a href="https://www.devx.com/e-terms/" class="elementor-item" tabindex="-1">E</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27154"><a href="https://www.devx.com/f-terms/" class="elementor-item" tabindex="-1">F</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27155"><a href="https://www.devx.com/g-terms/" class="elementor-item" tabindex="-1">G</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27156"><a href="https://www.devx.com/h-terms/" class="elementor-item" tabindex="-1">H</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27157"><a href="https://www.devx.com/i-terms/" class="elementor-item" tabindex="-1">I</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27158"><a href="https://www.devx.com/j-terms/" class="elementor-item" tabindex="-1">J</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27159"><a href="https://www.devx.com/k-terms/" class="elementor-item" tabindex="-1">K</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27137"><a href="https://www.devx.com/l-terms/" class="elementor-item" tabindex="-1">L</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27151"><a href="https://www.devx.com/m-terms/" class="elementor-item" tabindex="-1">M</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27150"><a href="https://www.devx.com/n-terms/" class="elementor-item" tabindex="-1">N</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27149"><a href="https://www.devx.com/o-terms/" class="elementor-item" tabindex="-1">O</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27148"><a href="https://www.devx.com/p-terms/" class="elementor-item" tabindex="-1">P</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27147"><a href="https://www.devx.com/q-terms/" class="elementor-item" tabindex="-1">Q</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27146"><a href="https://www.devx.com/r-terms/" class="elementor-item" tabindex="-1">R</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27145"><a href="https://www.devx.com/s-terms/" class="elementor-item" tabindex="-1">S</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27144"><a href="https://www.devx.com/t-terms/" class="elementor-item" tabindex="-1">T</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27143"><a href="https://www.devx.com/u-terms/" class="elementor-item" tabindex="-1">U</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27142"><a href="https://www.devx.com/v-terms/" class="elementor-item" tabindex="-1">V</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27141"><a href="https://www.devx.com/w-terms/" class="elementor-item" tabindex="-1">W</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27140"><a href="https://www.devx.com/x-terms/" class="elementor-item" tabindex="-1">X</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27139"><a href="https://www.devx.com/y-terms/" class="elementor-item" tabindex="-1">Y</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27138"><a href="https://www.devx.com/z-terms/" class="elementor-item" tabindex="-1">Z</a></li> </ul> </nav> </div> </div> <div class="elementor-element elementor-element-6963de5 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="6963de5" data-element_type="widget" data-widget_type="divider.default"> <div class="elementor-widget-container"> <div class="elementor-divider"> <span class="elementor-divider-separator"> </span> </div> </div> </div> </div> </div> </div> </section> </div> </div> <div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-c5e10d2" data-id="c5e10d2" data-element_type="column"> <div class="elementor-widget-wrap"> </div> </div> </div> </footer> <section class="elementor-section elementor-top-section elementor-element elementor-element-a4f01a6 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a4f01a6" data-element_type="section"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-a1bc5b1" data-id="a1bc5b1" data-element_type="column"> <div class="elementor-widget-wrap"> </div> </div> <div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-e4f110b" data-id="e4f110b" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-4a914653 elementor-widget elementor-widget-heading" data-id="4a914653" data-element_type="widget" data-widget_type="heading.default"> <div class="elementor-widget-container"> <p class="elementor-heading-title elementor-size-default">©2023 Copyright DevX - All Rights Reserved. Registration or use of this site constitutes acceptance of our Terms of Service and Privacy Policy.</p> </div> </div> <div class="elementor-element elementor-element-d2cf216 elementor-widget elementor-widget-text-editor" data-id="d2cf216" data-element_type="widget" data-widget_type="text-editor.default"> <div class="elementor-widget-container"> <style>/*! elementor - v3.12.2 - 23-04-2023 */ .elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}</style> <p><strong><a href="https://www.devx.com/sitemap/">Sitemap</a> — </strong><strong><a href="https://www.devx.com/privacy-policy/">Privacy Policy</a></strong></p> </div> </div> </div> </div> <div class="elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-1daca18" data-id="1daca18" data-element_type="column"> <div class="elementor-widget-wrap"> </div> </div> </div> </section> </footer> <!-- AdThrive - Override Elementor 100% iframe width --> <script> setInterval(() => { const elementorPage = document.querySelector('[class*="elementor"]') const adThriveLoaded = document.getElementsByTagName('body')[0].classList.contains('adthrive-device-phone') || document.getElementsByTagName('body')[0].classList.contains('adthrive-device-tablet') || document.getElementsByTagName('body')[0].classList.contains('adthrive-device-desktop') if (!adThriveLoaded) { console.log('Waiting for AdThrive...') return } if (elementorPage) { const ads = document.querySelectorAll(".adthrive-ad iframe"); ads.forEach(ad => { if (typeof ad.width !== "undefined" && ad.width !== "1") { ad.style.width = ad.width + "px"; } }) } }, 50); </script> <script data-no-optimize='1' data-cfasync='false' id='cls-insertion-3fe49da'>'use strict';(function(){function x(c,a){function b(){this.constructor=c}if("function"!==typeof a&&null!==a)throw new TypeError("Class extends value "+String(a)+" is not a constructor or null");S(c,a);c.prototype=null===a?Object.create(a):(b.prototype=a.prototype,new b)}function Y(c,a){var b={},d;for(d in c)Object.prototype.hasOwnProperty.call(c,d)&&0>a.indexOf(d)&&(b[d]=c[d]);if(null!=c&&"function"===typeof Object.getOwnPropertySymbols){var e=0;for(d=Object.getOwnPropertySymbols(c);e<d.length;e++)0> a.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(c,d[e])&&(b[d[e]]=c[d[e]])}return b}function J(c,a,b,d){var e=arguments.length,f=3>e?a:null===d?d=Object.getOwnPropertyDescriptor(a,b):d,g;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)f=Reflect.decorate(c,a,b,d);else for(var h=c.length-1;0<=h;h--)if(g=c[h])f=(3>e?g(f):3<e?g(a,b,f):g(a,b))||f;return 3<e&&f&&Object.defineProperty(a,b,f),f}function E(c,a){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(c, a)}function Q(c){var a="function"===typeof Symbol&&Symbol.iterator,b=a&&c[a],d=0;if(b)return b.call(c);if(c&&"number"===typeof c.length)return{next:function(){c&&d>=c.length&&(c=void 0);return{value:c&&c[d++],done:!c}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.");}function u(c,a){var b="function"===typeof Symbol&&c[Symbol.iterator];if(!b)return c;c=b.call(c);var d,e=[];try{for(;(void 0===a||0<a--)&&!(d=c.next()).done;)e.push(d.value)}catch(g){var f={error:g}}finally{try{d&& !d.done&&(b=c["return"])&&b.call(c)}finally{if(f)throw f.error;}}return e}function C(c,a,b){if(b||2===arguments.length)for(var d=0,e=a.length,f;d<e;d++)!f&&d in a||(f||(f=Array.prototype.slice.call(a,0,d)),f[d]=a[d]);return c.concat(f||Array.prototype.slice.call(a))}function T(c,a){void 0===a&&(a={});a=a.insertAt;if(c&&"undefined"!==typeof document){var b=document.head||document.getElementsByTagName("head")[0],d=document.createElement("style");d.type="text/css";"top"===a?b.firstChild?b.insertBefore(d, b.firstChild):b.appendChild(d):b.appendChild(d);d.styleSheet?d.styleSheet.cssText=c:d.appendChild(document.createTextNode(c))}}window.adthriveCLS.buildDate="2023-11-30";var S=function(c,a){S=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,d){b.__proto__=d}||function(b,d){for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b[e]=d[e])};return S(c,a)},z=function(){z=Object.assign||function(c){for(var a,b=1,d=arguments.length;b<d;b++){a=arguments[b];for(var e in a)Object.prototype.hasOwnProperty.call(a, e)&&(c[e]=a[e])}return c};return z.apply(this,arguments)},q=new (function(){function c(){}c.prototype.info=function(a,b){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,C([console.info,a,b],u(d),!1))};c.prototype.warn=function(a,b){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,C([console.warn,a,b],u(d),!1))};c.prototype.error=function(a,b){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];this.call.apply(this,C([console.error, a,b],u(d),!1));this.sendErrorLogToCommandQueue.apply(this,C([a,b],u(d),!1))};c.prototype.event=function(a,b){for(var d,e=2;e<arguments.length;e++);"debug"===(null===(d=window.adthriveCLS)||void 0===d?void 0:d.bucket)&&this.info(a,b)};c.prototype.sendErrorLogToCommandQueue=function(a,b){for(var d=[],e=2;e<arguments.length;e++)d[e-2]=arguments[e];window.adthrive=window.adthrive||{};window.adthrive.cmd=window.adthrive.cmd||[];window.adthrive.cmd.push(function(){void 0!==window.adthrive.logError&&"function"=== typeof window.adthrive.logError&&window.adthrive.logError(a,b,d)}.bind(a,b,d))};c.prototype.call=function(a,b,d){for(var e=[],f=3;f<arguments.length;f++)e[f-3]=arguments[f];f=["%c".concat(b,"::").concat(d," ")];var g=["color: #999; font-weight: bold;"];0<e.length&&"string"===typeof e[0]&&f.push(e.shift());g.push.apply(g,C([],u(e),!1));try{Function.prototype.apply.call(a,console,C([f.join("")],u(g),!1))}catch(h){console.error(h)}};return c}()),w=function(c,a){return null==c||c!==c?a:c},pa=function(c){var a= c.clientWidth;getComputedStyle&&(c=getComputedStyle(c,null),a-=parseFloat(c.paddingLeft||"0")+parseFloat(c.paddingRight||"0"));return a},Z=function(c){var a=c.offsetHeight,b=c.offsetWidth,d=c.getBoundingClientRect(),e=document.body,f=document.documentElement;c=Math.round(d.top+(window.pageYOffset||f.scrollTop||e.scrollTop)-(f.clientTop||e.clientTop||0));d=Math.round(d.left+(window.pageXOffset||f.scrollLeft||e.scrollLeft)-(f.clientLeft||e.clientLeft||0));return{top:c,left:d,bottom:c+a,right:d+b,width:b, height:a}},G=function(){var c=navigator.userAgent,a=/Tablet|iPad|Playbook|Nook|webOS|Kindle|Android (?!.*Mobile).*Safari|CrOS/i.test(c);return/Mobi|iP(hone|od)|Opera Mini/i.test(c)&&!a},qa=function(c){void 0===c&&(c=document);return(c===document?document.body:c).getBoundingClientRect().top},ra=function(c){return c.includes(",")?c.split(","):[c]},sa=function(c){void 0===c&&(c=document);c=c.querySelectorAll("article");return 0===c.length?null:(c=Array.from(c).reduce(function(a,b){return b.offsetHeight> a.offsetHeight?b:a}))&&c.offsetHeight>1.5*window.innerHeight?c:null},ta=function(c,a,b){void 0===b&&(b=document);var d=sa(b),e=d?[d]:[],f=[];c.forEach(function(h){var k=Array.from(b.querySelectorAll(h.elementSelector)).slice(0,h.skip);ra(h.elementSelector).forEach(function(l){var n=b.querySelectorAll(l);l=function(r){var m=n[r];if(a.map.some(function(t){return t.el.isEqualNode(m)}))return"continue";(r=m&&m.parentElement)&&r!==document.body?e.push(r):e.push(m);-1===k.indexOf(m)&&f.push({dynamicAd:h, element:m})};for(var p=0;p<n.length;p++)l(p)})});var g=qa(b);c=f.sort(function(h,k){return h.element.getBoundingClientRect().top-g-(k.element.getBoundingClientRect().top-g)});return[e,c]},ua=function(c,a,b){void 0===b&&(b=document);a=u(ta(c,a,b),2);c=a[0];a=a[1];if(0===c.length)throw Error("No Main Content Elements Found");return[Array.from(c).reduce(function(d,e){return e.offsetHeight>d.offsetHeight?e:d})||document.body,a]},A;(function(c){c.amznbid="amznbid";c.amzniid="amzniid";c.amznp="amznp";c.amznsz= "amznsz"})(A||(A={}));var H;(function(c){c.ThirtyThreeAcross="33across";c.AppNexus="appnexus";c.Amazon="amazon";c.Colossus="colossus";c.ColossusServer="col_ss";c.Conversant="conversant";c.Concert="concert";c.Criteo="criteo";c.GumGum="gumgum";c.ImproveDigital="improvedigital";c.ImproveDigitalServer="improve_ss";c.IndexExchange="ix";c.Kargo="kargo";c.KargoServer="krgo_ss";c.MediaGrid="grid";c.MediaGridVideo="gridvid";c.Nativo="nativo";c.OpenX="openx";c.Ogury="ogury";c.OpenXServer="opnx_ss";c.Pubmatic= "pubmatic";c.PubmaticServer="pubm_ss";c.ResetDigital="resetdigital";c.Roundel="roundel";c.Rtbhouse="rtbhouse";c.Rubicon="rubicon";c.RubiconServer="rubi_ss";c.Sharethrough="sharethrough";c.Teads="teads";c.Triplelift="triplelift";c.TripleliftServer="tripl_ss";c.TTD="ttd";c.Undertone="undertone";c.UndertoneServer="under_ss";c.Unruly="unruly";c.YahooSSP="yahoossp";c.YahooSSPServer="yah_ss";c.Verizon="verizon";c.Yieldmo="yieldmo"})(H||(H={}));var aa;(function(c){c.Prebid="prebid";c.GAM="gam";c.Amazon= "amazon";c.Marmalade="marmalade";c.Floors="floors";c.CMP="cmp"})(aa||(aa={}));var ba;(function(c){c.cm="cm";c.fbrap="fbrap";c.rapml="rapml"})(ba||(ba={}));var ca;(function(c){c.lazy="lazy";c.raptive="raptive";c.refresh="refresh";c.session="session";c.crossDomain="crossdomain";c.highSequence="highsequence";c.lazyBidPool="lazyBidPool"})(ca||(ca={}));var da;(function(c){c.lazy="l";c.raptive="rapml";c.refresh="r";c.session="s";c.crossdomain="c";c.highsequence="hs";c.lazyBidPool="lbp"})(da||(da={}));var ea; (function(c){c.Version="Version";c.SharingNotice="SharingNotice";c.SaleOptOutNotice="SaleOptOutNotice";c.SharingOptOutNotice="SharingOptOutNotice";c.TargetedAdvertisingOptOutNotice="TargetedAdvertisingOptOutNotice";c.SensitiveDataProcessingOptOutNotice="SensitiveDataProcessingOptOutNotice";c.SensitiveDataLimitUseNotice="SensitiveDataLimitUseNotice";c.SaleOptOut="SaleOptOut";c.SharingOptOut="SharingOptOut";c.TargetedAdvertisingOptOut="TargetedAdvertisingOptOut";c.SensitiveDataProcessing="SensitiveDataProcessing"; c.KnownChildSensitiveDataConsents="KnownChildSensitiveDataConsents";c.PersonalDataConsents="PersonalDataConsents";c.MspaCoveredTransaction="MspaCoveredTransaction";c.MspaOptOutOptionMode="MspaOptOutOptionMode";c.MspaServiceProviderMode="MspaServiceProviderMode";c.SubSectionType="SubsectionType";c.Gpc="Gpc"})(ea||(ea={}));var fa;(function(c){c[c.NA=0]="NA";c[c.OptedOut=1]="OptedOut";c[c.OptedIn=2]="OptedIn"})(fa||(fa={}));var F;(function(c){c.AdDensity="addensity";c.AdLayout="adlayout";c.FooterCloseButton= "footerclose";c.Interstitial="interstitial";c.RemoveVideoTitleWrapper="removevideotitlewrapper";c.StickyOutstream="stickyoutstream";c.StickyOutstreamOnStickyPlayer="sospp";c.VideoAdvancePlaylistRelatedPlayer="videoadvanceplaylistrp";c.MobileStickyPlayerPosition="mspp"})(F||(F={}));var M;(function(c){c.Desktop="desktop";c.Mobile="mobile"})(M||(M={}));var L;(function(c){c.Video_Collapse_Autoplay_SoundOff="Video_Collapse_Autoplay_SoundOff";c.Video_Individual_Autoplay_SOff="Video_Individual_Autoplay_SOff"; c.Video_Coll_SOff_Smartphone="Video_Coll_SOff_Smartphone";c.Video_In_Post_ClicktoPlay_SoundOn="Video_In-Post_ClicktoPlay_SoundOn"})(L||(L={}));var ha;(ha||(ha={})).None="none";var va=function(c,a){var b=c.adDensityEnabled;c=c.adDensityLayout.pageOverrides.find(function(d){return!!document.querySelector(d.pageSelector)&&(d[a].onePerViewport||"number"===typeof d[a].adDensity)});return b?!c:!0};A=function(){function c(){this._timeOrigin=0}c.prototype.resetTimeOrigin=function(){this._timeOrigin=window.performance.now()}; c.prototype.now=function(){try{return Math.round(window.performance.now()-this._timeOrigin)}catch(a){return 0}};return c}();window.adthrive.windowPerformance=window.adthrive.windowPerformance||new A;A=window.adthrive.windowPerformance;var U=A.now.bind(A),wa=function(c){void 0===c&&(c=window.location.search);var a=0===c.indexOf("?")?1:0;return c.slice(a).split("&").reduce(function(b,d){d=u(d.split("="),2);b.set(d[0],d[1]);return b},new Map)},ia=function(c){try{return{valid:!0,elements:document.querySelectorAll(c)}}catch(a){return z({valid:!1}, a)}},V=function(c){return""===c?{valid:!0}:ia(c)},xa=function(c){var a=c.reduce(function(b,d){return d.weight?d.weight+b:b},0);return 0<c.length&&c.every(function(b){var d=b.value;b=b.weight;return!(void 0===d||null===d||"number"===typeof d&&isNaN(d)||!b)})&&100===a},ya=["siteId","siteName","adOptions","breakpoints","adUnits"],za=function(c){var a={},b=wa().get(c);if(b)try{var d=decodeURIComponent(b);a=JSON.parse(d);q.event("ExperimentOverridesUtil","getExperimentOverrides",c,a)}catch(e){}return a}, Aa=function(c){function a(b){var d=c.call(this)||this;d._featureRollouts=b.enabled?b.siteAds.featureRollouts||{}:{};return d}x(a,c);return a}(function(){function c(){this._featureRollouts={}}Object.defineProperty(c.prototype,"siteFeatureRollouts",{get:function(){return this._featureRollouts},enumerable:!1,configurable:!0});c.prototype.isRolloutEnabled=function(a){return this._featureRollouts&&this._featureRollouts[a]?this._featureRollouts[a].enabled:!1};return c}()),ja=function(){function c(){this._clsGlobalData= window.adthriveCLS}Object.defineProperty(c.prototype,"enabled",{get:function(){var a;if(a=!!this._clsGlobalData&&!!this._clsGlobalData.siteAds)a:{a=this._clsGlobalData.siteAds;var b=void 0;void 0===b&&(b=ya);if(a){for(var d=0;d<b.length;d++)if(!a[b[d]]){a=!1;break a}a=!0}else a=!1}return a},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"error",{get:function(){return!(!this._clsGlobalData||!this._clsGlobalData.error)},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype, "siteAds",{get:function(){return this._clsGlobalData.siteAds},set:function(a){this._clsGlobalData.siteAds=a},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"disableAds",{get:function(){return this._clsGlobalData.disableAds},set:function(a){this._clsGlobalData.disableAds=a},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"enabledLocations",{get:function(){return this._clsGlobalData.enabledLocations},set:function(a){this._clsGlobalData.enabledLocations=a},enumerable:!1, configurable:!0});Object.defineProperty(c.prototype,"injectedFromPlugin",{get:function(){return this._clsGlobalData.injectedFromPlugin},set:function(a){this._clsGlobalData.injectedFromPlugin=a},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"injectedFromSiteAds",{get:function(){return this._clsGlobalData.injectedFromSiteAds},set:function(a){this._clsGlobalData.injectedFromSiteAds=a},enumerable:!1,configurable:!0});c.prototype.overwriteInjectedSlots=function(a){this._clsGlobalData.injectedSlots= a};c.prototype.setInjectedSlots=function(a){this._clsGlobalData.injectedSlots=this._clsGlobalData.injectedSlots||[];this._clsGlobalData.injectedSlots.push(a)};Object.defineProperty(c.prototype,"injectedSlots",{get:function(){return this._clsGlobalData.injectedSlots},enumerable:!1,configurable:!0});c.prototype.setInjectedVideoSlots=function(a){this._clsGlobalData.injectedVideoSlots=this._clsGlobalData.injectedVideoSlots||[];this._clsGlobalData.injectedVideoSlots.push(a)};Object.defineProperty(c.prototype, "injectedVideoSlots",{get:function(){return this._clsGlobalData.injectedVideoSlots},enumerable:!1,configurable:!0});c.prototype.setInjectedScripts=function(a){this._clsGlobalData.injectedScripts=this._clsGlobalData.injectedScripts||[];this._clsGlobalData.injectedScripts.push(a)};Object.defineProperty(c.prototype,"getInjectedScripts",{get:function(){return this._clsGlobalData.injectedScripts},enumerable:!1,configurable:!0});c.prototype.setExperiment=function(a,b,d){void 0===d&&(d=!1);this._clsGlobalData.experiments= this._clsGlobalData.experiments||{};this._clsGlobalData.siteExperiments=this._clsGlobalData.siteExperiments||{};(d?this._clsGlobalData.siteExperiments:this._clsGlobalData.experiments)[a]=b};c.prototype.getExperiment=function(a,b){void 0===b&&(b=!1);return(b=b?this._clsGlobalData.siteExperiments:this._clsGlobalData.experiments)&&b[a]};c.prototype.setWeightedChoiceExperiment=function(a,b,d){void 0===d&&(d=!1);this._clsGlobalData.experimentsWeightedChoice=this._clsGlobalData.experimentsWeightedChoice|| {};this._clsGlobalData.siteExperimentsWeightedChoice=this._clsGlobalData.siteExperimentsWeightedChoice||{};(d?this._clsGlobalData.siteExperimentsWeightedChoice:this._clsGlobalData.experimentsWeightedChoice)[a]=b};c.prototype.getWeightedChoiceExperiment=function(a,b){var d,e;void 0===b&&(b=!1);return(b=b?null===(d=this._clsGlobalData)||void 0===d?void 0:d.siteExperimentsWeightedChoice:null===(e=this._clsGlobalData)||void 0===e?void 0:e.experimentsWeightedChoice)&&b[a]};Object.defineProperty(c.prototype, "branch",{get:function(){return this._clsGlobalData.branch},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"bucket",{get:function(){return this._clsGlobalData.bucket},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"videoDisabledFromPlugin",{get:function(){return this._clsGlobalData.videoDisabledFromPlugin},set:function(a){this._clsGlobalData.videoDisabledFromPlugin=a},enumerable:!1,configurable:!0});Object.defineProperty(c.prototype,"targetDensityLog",{get:function(){return this._clsGlobalData.targetDensityLog}, set:function(a){this._clsGlobalData.targetDensityLog=a},enumerable:!1,configurable:!0});c.prototype.shouldHalveIOSDensity=function(){var a=new Aa(this),b=void 0;void 0===b&&(b=navigator.userAgent);return/iP(hone|od|ad)/i.test(b)&&a.isRolloutEnabled("iOS-Resolution")};c.prototype.getTargetDensity=function(a){return this.shouldHalveIOSDensity()?a/2:a};Object.defineProperty(c.prototype,"removeVideoTitleWrapper",{get:function(){return this._clsGlobalData.siteAds.adOptions.removeVideoTitleWrapper},enumerable:!1, configurable:!0});return c}(),Ba=function(){function c(){}c.getScrollTop=function(){return(window.pageYOffset||document.documentElement.scrollTop)-(document.documentElement.clientTop||0)};c.getScrollBottom=function(){return this.getScrollTop()+(document.documentElement.clientHeight||0)};c.shufflePlaylist=function(a){for(var b=a.length,d,e;0!==b;)e=Math.floor(Math.random()*a.length),--b,d=a[b],a[b]=a[e],a[e]=d;return a};c.isMobileLandscape=function(){return window.matchMedia("(orientation: landscape) and (max-height: 480px)").matches}; c.playerViewable=function(a){a=a.getBoundingClientRect();return this.isMobileLandscape()?window.innerHeight>a.top+a.height/2&&0<a.top+a.height/2:window.innerHeight>a.top+a.height/2};c.createQueryString=function(a){return Object.keys(a).map(function(b){return"".concat(b,"=").concat(a[b])}).join("&")};c.createEncodedQueryString=function(a){return Object.keys(a).map(function(b){return"".concat(b,"=").concat(encodeURIComponent(a[b]))}).join("&")};c.setMobileLocation=function(a){a=a||"bottom-right";"top-left"=== a?a="adthrive-collapse-top-left":"top-right"===a?a="adthrive-collapse-top-right":"bottom-left"===a?a="adthrive-collapse-bottom-left":"bottom-right"===a?a="adthrive-collapse-bottom-right":"top-center"===a&&(a=G()?"adthrive-collapse-top-center":"adthrive-collapse-bottom-right");return a};c.addMaxResolutionQueryParam=function(a){var b=G()?"320":"1280";b="max_resolution=".concat(b);var d=u(String(a).split("?"),2);a=d[0];b=(d=d[1])?d+"&".concat(b):b;return"".concat(a,"?").concat(b)};return c}(),Ca=function(){return function(c){this._clsOptions= c;this.removeVideoTitleWrapper=w(this._clsOptions.siteAds.adOptions.removeVideoTitleWrapper,!1);c=this._clsOptions.siteAds.videoPlayers;this.footerSelector=w(c&&c.footerSelector,"");this.players=w(c&&c.players.map(function(a){a.mobileLocation=Ba.setMobileLocation(a.mobileLocation);return a}),[]);this.contextualSettings=c&&c.contextual}}(),Da=function(){return function(c){this.contextualPlayerAdded=this.playlistPlayerAdded=this.mobileStickyPlayerOnPage=!1;this.footerSelector="";this.removeVideoTitleWrapper= !1;this.videoAdOptions=new Ca(c);this.players=this.videoAdOptions.players;this.contextualSettings=this.videoAdOptions.contextualSettings;this.removeVideoTitleWrapper=this.videoAdOptions.removeVideoTitleWrapper;this.footerSelector=this.videoAdOptions.footerSelector}}();H=function(){return function(){}}();var I=function(c){function a(b){var d=c.call(this)||this;d._probability=b;return d}x(a,c);a.prototype.get=function(){if(0>this._probability||1<this._probability)throw Error("Invalid probability: ".concat(this._probability)); return Math.random()<this._probability};return a}(H);A=function(){function c(){this._clsOptions=new ja;this.shouldUseCoreExperimentsConfig=!1}c.prototype.setExperimentKey=function(a){void 0===a&&(a=!1);this._clsOptions.setExperiment(this.abgroup,this.result,a)};return c}();var Ea=function(c){function a(){var b=c.call(this)||this;b._result=!1;b._choices=[{choice:!0},{choice:!1}];b.key="RemoveLargeSize";b.abgroup="smhd100";b._result=b.run();b.setExperimentKey();return b}x(a,c);Object.defineProperty(a.prototype, "result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new I(.1)).get()};return a}(A),ka=function(c,a,b,d,e,f){c=Math.round(f-e);a=[];e=[];a.push("(",b.map(function(){return"%o"}).join(", "),")");e.push.apply(e,C([],u(b),!1));void 0!==d&&(a.push(" => %o"),e.push(d));a.push(" %c(".concat(c,"ms)"));e.push("color: #999;")},la=function(c,a,b){var d=void 0!==b.get?b.get:b.value;return function(){for(var e=[],f=0;f<arguments.length;f++)e[f]=arguments[f]; try{var g=U(),h=d.apply(this,e);if(h instanceof Promise)return h.then(function(l){var n=U();ka(c,a,e,l,g,n);return Promise.resolve(l)}).catch(function(l){l.logged||(q.error(c,a,l),l.logged=!0);throw l;});var k=U();ka(c,a,e,h,g,k);return h}catch(l){throw l.logged||(q.error(c,a,l),l.logged=!0),l;}}},N=function(c,a){void 0===a&&(a=!1);return function(b){var d,e=Object.getOwnPropertyNames(b.prototype).filter(function(p){return a||0!==p.indexOf("_")}).map(function(p){return[p,Object.getOwnPropertyDescriptor(b.prototype, p)]});try{for(var f=Q(e),g=f.next();!g.done;g=f.next()){var h=u(g.value,2),k=h[0],l=h[1];void 0!==l&&"function"===typeof l.value?b.prototype[k]=la(c,k,l):void 0!==l&&void 0!==l.get&&"function"===typeof l.get&&Object.defineProperty(b.prototype,k,z(z({},l),{get:la(c,k,l)}))}}catch(p){var n={error:p}}finally{try{g&&!g.done&&(d=f.return)&&d.call(f)}finally{if(n)throw n.error;}}}},Fa=function(c){function a(){var b=c.call(this)||this;b._result=!1;b.key="MaxContent";b.abgroup="conmax99";b._choices=[{choice:!0}, {choice:!1}];b.weight=.02;b._result=b.run();b.setExperimentKey();return b}x(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new I(this.weight)).get()};return a=J([N("MaxContentExperiment"),E("design:paramtypes",[])],a)}(A),Ga=function(c){function a(b){var d=c.call(this)||this;d._result=!1;d.key="ParallaxAdsExperiment";d.abgroup="parallax";d._choices=[{choice:!0},{choice:!1}];d.weight=.5;G()&&b.largeFormatsMobile&& (d._result=d.run(),d.setExperimentKey());return d}x(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new I(this.weight)).get()};return a=J([N("ParallaxAdsExperiment"),E("design:paramtypes",[Object])],a)}(A),Ha=function(c){function a(){var b=c.call(this)||this;b._result=!1;b._choices=[{choice:!0},{choice:!1}];b.key="mrsf";b.abgroup="mrsf";G()&&(b._result=b.run(),b.setExperimentKey());return b}x(a, c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new I(1)).get()};return a}(A),Ia=[[728,90],[300,250],[300,600],[320,50],[970,250],[160,600],[300,1050],[336,280],[970,90],[300,50],[320,100],[468,60],[250,250],[120,240],[1,1],[300,300],[552,334],[300,420],[728,250],[320,300],[300,390]],Ja=[[300,600],[160,600]],Ka=new Map([["Footer",1],["Header",2],["Sidebar",3],["Content",4],["Recipe",5],["Sidebar_sticky", 6],["Below Post",7]]),La=function(c){return Ia.filter(function(a){a=u(a,2);var b=a[0],d=a[1];return c.some(function(e){e=u(e,2);var f=e[1];return b===e[0]&&d===f})})},Ma=function(c,a,b,d,e){a=u(a,2);var f=a[0],g=a[1],h=c.location;a=c.sequence;return"Footer"===h?!("phone"===b&&320===f&&100===g):"Header"===h?!(100<g&&d.result):"Recipe"===h?!(e.result&&"phone"===b&&(300===f&&390===g||320===f&&300===g)):"Sidebar"===h?(b=c.adSizes.some(function(k){return 300>=u(k,2)[1]}),(d=300<g)&&!b?!0:9===a?!0:a&&5>= a?d?c.sticky:!0:!d):!0},Na=function(c,a){var b=c.location;c=c.sticky;if("Recipe"===b&&a){var d=a.recipeMobile;a=a.recipeDesktop;if(G()&&(null===d||void 0===d?0:d.enabled)||!G()&&(null===a||void 0===a?0:a.enabled))return!0}return"Footer"===b||c},Oa=function(c,a){var b=a.adUnits,d=a.adTypes?(new Ga(a.adTypes)).result:!1,e=new Ea,f=new Fa,g=new Ha;return b.filter(function(h){return void 0!==h.dynamic&&h.dynamic.enabled}).map(function(h){var k=h.location.replace(/\s+/g,"_"),l="Sidebar"===k?0:2;return{auctionPriority:Ka.get(k)|| 8,location:k,sequence:w(h.sequence,1),sizes:La(h.adSizes).filter(function(n){return Ma(h,n,c,e,g)}).concat(d&&"Content"===h.location?Ja:[]),devices:h.devices,pageSelector:w(h.dynamic.pageSelector,"").trim(),elementSelector:w(h.dynamic.elementSelector,"").trim(),position:w(h.dynamic.position,"beforebegin"),max:f.result&&"Content"===h.location?99:Math.floor(w(h.dynamic.max,0)),spacing:w(h.dynamic.spacing,0),skip:Math.floor(w(h.dynamic.skip,0)),every:Math.max(Math.floor(w(h.dynamic.every,1)),1),classNames:h.dynamic.classNames|| [],sticky:Na(h,a.adOptions.stickyContainerConfig),stickyOverlapSelector:w(h.stickyOverlapSelector,"").trim(),autosize:h.autosize,special:w(h.targeting,[]).filter(function(n){return"special"===n.key}).reduce(function(n,p){return n.concat.apply(n,C([],u(p.value),!1))},[]),lazy:w(h.dynamic.lazy,!1),lazyMax:w(h.dynamic.lazyMax,l),lazyMaxDefaulted:0===h.dynamic.lazyMax?!1:!h.dynamic.lazyMax,name:h.name}})},W=function(c,a){var b=pa(a),d=c.sticky&&"Sidebar"===c.location;return c.sizes.filter(function(e){var f= d?e[1]<=window.innerHeight-100:!0;return(c.autosize?e[0]<=b||320>=e[0]:!0)&&f})},Pa=function(){return function(c){this.clsOptions=c;this.enabledLocations=["Below_Post","Content","Recipe","Sidebar"]}}(),Qa=function(c){var a=document.body;c="adthrive-device-".concat(c);if(!a.classList.contains(c))try{a.classList.add(c)}catch(b){q.error("BodyDeviceClassComponent","init",{message:b.message}),a="classList"in document.createElement("_"),q.error("BodyDeviceClassComponent","init.support",{support:a})}},Ra= function(c,a,b,d){void 0===b&&(b=1200);void 0===d&&(d=25);return Math.min(Math.max(Math.floor((c-a.offsetTop)/(b+10))-2,1),d)},Sa=function(c){if(c&&c.length){for(var a=0,b=0;b<c.length;b++){var d=V(c[b]);if(d.valid&&d.elements&&d.elements[0]){a=Z(d.elements[0]).height;break}}return a}},Ta=function(c){return T('\n .adthrive-device-phone .adthrive-sticky-content {\n height: 450px !important;\n margin-bottom: 100px !important;\n }\n .adthrive-content.adthrive-sticky {\n position: -webkit-sticky;\n position: sticky !important;\n top: 42px !important;\n margin-top: 42px !important;\n }\n .adthrive-content.adthrive-sticky:after {\n content: "\u2014 Advertisement. Scroll down to continue. \u2014";\n font-size: 10pt;\n margin-top: 5px;\n margin-bottom: 5px;\n display:block;\n color: #888;\n }\n .adthrive-sticky-container {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n min-height:'.concat(c? c:400,"px !important;\n margin: 10px 0 10px 0;\n background-color: #FAFAFA;\n padding-bottom:0px;\n }\n "))},Ua=function(c,a){a=null!==a&&void 0!==a?a:5;T("\n .adthrive-ad.adthrive-sticky-sidebar {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n min-height: ".concat(null!==c&&void 0!==c?c:1200,"px !important;\n padding-bottom: 0px;\n margin: 10px 0 10px 0;\n }\n .adthrive-ad.adthrive-sticky-sidebar > div {\n flex-basis: unset;\n position: sticky !important;\n top: ").concat(a, "px;\n }\n "))},X=function(c){return c.some(function(a){return null!==document.querySelector(a)})},Va=function(c){function a(){var b=c.call(this)||this;b._result=!1;b.abgroup="essa";b.key="EnhancedStickySidebarAds";b._choices=[{choice:!0},{choice:!1}];b.weight=.9;b._result=b.run();b.setExperimentKey();return b}x(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new I(this.weight)).get()};return a= J([N("EnhancedStickySidebarAdsExperiment"),E("design:paramtypes",[])],a)}(A),Wa=function(c){function a(){var b=c.call(this)||this;b._result=!1;b._choices=[{choice:!0},{choice:!1}];b.key="RemoveRecipeCap";b.abgroup="rrc";b._result=b.run();b.setExperimentKey();return b}x(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new I(.1)).get()};return a}(A),O=function(c){function a(b,d){void 0===b&&(b=[]); var e=c.call(this)||this;e._choices=b;e._default=d;return e}x(a,c);a.fromArray=function(b,d){return new a(b.map(function(e){e=u(e,2);return{choice:e[0],weight:e[1]}}),d)};a.prototype.addChoice=function(b,d){this._choices.push({choice:b,weight:d})};a.prototype.get=function(){var b,d=100*Math.random(),e=0;try{for(var f=Q(this._choices),g=f.next();!g.done;g=f.next()){var h=g.value,k=h.choice;e+=h.weight;if(e>=d)return k}}catch(n){var l={error:n}}finally{try{g&&!g.done&&(b=f.return)&&b.call(f)}finally{if(l)throw l.error; }}return this._default};Object.defineProperty(a.prototype,"totalWeight",{get:function(){return this._choices.reduce(function(b,d){return b+d.weight},0)},enumerable:!1,configurable:!0});return a}(H),Xa=function(c){for(var a=5381,b=c.length;b;)a=33*a^c.charCodeAt(--b);return a>>>0},R=new (function(){function c(){var a=this;this.name="StorageHandler";this.disable=!1;this.removeLocalStorageValue=function(b){window.localStorage.removeItem("adthrive_".concat(b.toLowerCase()))};this.getLocalStorageValue= function(b,d,e,f,g){void 0===d&&(d=!0);void 0===e&&(e=!0);if(a.disable)return null;try{var h=window.localStorage.getItem("".concat(d?"adthrive_":"").concat(e?b.toLowerCase():b));if(h){var k=JSON.parse(h),l=void 0!==f&&Date.now()-k.created>=f;if(k&&!l)return g&&a.setLocalStorageValue(b,k.value,d),k.value}}catch(n){}return null};this.setLocalStorageValue=function(b,d,e){void 0===e&&(e=!0);try{e=e?"adthrive_":"";var f={value:d,created:Date.now()};window.localStorage.setItem("".concat(e).concat(b.toLowerCase()), JSON.stringify(f))}catch(g){}};this.isValidABGroupLocalStorageValue=function(b){return void 0!==b&&null!==b&&!("number"===typeof b&&isNaN(b))};this.getOrSetLocalStorageValue=function(b,d,e,f,g,h,k){void 0===f&&(f=!0);void 0===g&&(g=!0);void 0===k&&(k=!0);e=a.getLocalStorageValue(b,k,f,e,g);if(null!==e)return e;d=d();a.setLocalStorageValue(b,d,k);h&&h(d);return d};this.getOrSetABGroupLocalStorageValue=function(b,d,e,f,g){var h;void 0===f&&(f=!0);e=a.getLocalStorageValue("abgroup",!0,!0,e,f);if(null!== e&&(f=e[b],a.isValidABGroupLocalStorageValue(f)))return f;d=d();b=z(z({},e),(h={},h[b]=d,h));a.setLocalStorageValue("abgroup",b);g&&g();return d}}c.prototype.init=function(){};return c}()),ma=function(){return function(c,a,b){var d=b.value;d&&(b.value=function(){for(var e=this,f=[],g=0;g<arguments.length;g++)f[g]=arguments[g];g=Array.isArray(this._choices)?Xa(JSON.stringify(this._choices)).toString(16):null;var h=this._expConfigABGroup?this._expConfigABGroup:this.abgroup;h=h?h.toLowerCase():this.key? this.key.toLowerCase():"";g=g?"".concat(h,"_").concat(g):h;g=this.localStoragePrefix?"".concat(this.localStoragePrefix,"-").concat(g):g;h=R.getLocalStorageValue("branch");!1===(h&&h.enabled)&&R.removeLocalStorageValue(g);return R.getOrSetABGroupLocalStorageValue(g,function(){return d.apply(e,f)},864E5)})}};H=function(c){function a(){var b=null!==c&&c.apply(this,arguments)||this;b._resultValidator=function(){return!0};return b}x(a,c);a.prototype._isValidResult=function(b){var d=this;return c.prototype._isValidResult.call(this, b,function(){return d._resultValidator(b)||"control"===b})};a.prototype.run=function(){if(!this.enabled)return q.error("CLSWeightedChoiceSiteExperiment","run","() => %o","No experiment config found. Defaulting to control."),"control";if(!this._mappedChoices||0===this._mappedChoices.length)return q.error("CLSWeightedChoiceSiteExperiment","run","() => %o","No experiment variants found. Defaulting to control."),"control";var b=(new O(this._mappedChoices)).get();if(this._isValidResult(b))return b;q.error("CLSWeightedChoiceSiteExperiment", "run","() => %o","Invalid result from experiment choices. Defaulting to control.");return"control"};return a}(function(){function c(){}Object.defineProperty(c.prototype,"enabled",{get:function(){return void 0!==this.experimentConfig},enumerable:!1,configurable:!0});c.prototype._isValidResult=function(a,b){void 0===b&&(b=function(){return!0});return b()&&R.isValidABGroupLocalStorageValue(a)};return c}());var na=function(){function c(a){var b=this,d,e;this.siteExperiments=[];this._clsOptions=a;this._device= G()?"mobile":"desktop";this.siteExperiments=null!==(e=null===(d=this._clsOptions.siteAds.siteExperiments)||void 0===d?void 0:d.filter(function(f){var g=f.key;var h=b._device;if(f){var k=!!f.enabled,l=null==f.dateStart||Date.now()>=f.dateStart,n=null==f.dateEnd||Date.now()<=f.dateEnd,p=null===f.selector||""!==f.selector&&!!document.querySelector(f.selector),r="mobile"===f.platform&&"mobile"===h;h="desktop"===f.platform&&"desktop"===h;r=null===f.platform||"all"===f.platform||r||h;(h="bernoulliTrial"=== f.experimentType?1===f.variants.length:xa(f.variants))||q.error("SiteTest","validateSiteExperiment","experiment presented invalid choices for key:",f.key,f.variants);f=k&&l&&n&&p&&r&&h}else f=!1;a:switch(k=b._clsOptions.siteAds,g){case F.AdDensity:var m=va(k,b._device);break a;case F.StickyOutstream:var t,v;m=(g=null===(v=null===(t=null===(m=k.videoPlayers)||void 0===m?void 0:m.partners)||void 0===t?void 0:t.stickyOutstream)||void 0===v?void 0:v.blockedPageSelectors)?!document.querySelector(g):!0; break a;case F.Interstitial:m=(m=k.adOptions.interstitialBlockedPageSelectors)?!document.querySelector(m):!0;break a;default:m=!0}return f&&m}))&&void 0!==e?e:[]}c.prototype.getSiteExperimentByKey=function(a){var b=this.siteExperiments.filter(function(f){return f.key.toLowerCase()===a.toLowerCase()})[0],d=za("at_site_features"),e=typeof((null===b||void 0===b?0:b.variants[1])?null===b||void 0===b?void 0:b.variants[1].value:null===b||void 0===b?void 0:b.variants[0].value)===typeof d[a];b&&d[a]&&e&& (b.variants=[{displayName:"test",value:d[a],weight:100,id:0}]);return b};return c}(),Ya=function(c){function a(b){var d=c.call(this)||this;d._choices=[];d._mappedChoices=[];d._result="";d._resultValidator=function(e){return"string"===typeof e};d.key=F.AdLayout;d.abgroup=F.AdLayout;d._clsSiteExperiments=new na(b);d.experimentConfig=d._clsSiteExperiments.getSiteExperimentByKey(d.key);d.enabled&&d.experimentConfig&&(d._choices=d.experimentConfig.variants,d._mappedChoices=d._mapChoices(),d._result=d.run(), b.setWeightedChoiceExperiment(d.abgroup,d._result,!0));return d}x(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){if(!this.enabled)return q.error("CLSAdLayoutSiteExperiment","run","() => %o","No experiment config found. Defaulting to empty class name."),"";var b=(new O(this._mappedChoices)).get();if(this._isValidResult(b))return b;q.error("CLSAdLayoutSiteExperiment","run","() => %o","Invalid result from experiment choices. Defaulting to empty class name."); return""};a.prototype._mapChoices=function(){return this._choices.map(function(b){return{weight:b.weight,choice:b.value}})};J([ma(),E("design:type",Function),E("design:paramtypes",[]),E("design:returntype",void 0)],a.prototype,"run",null);return a}(H),Za=function(c){function a(b){var d=c.call(this)||this;d._choices=[];d._mappedChoices=[];d._result="control";d._resultValidator=function(e){return"number"===typeof e};d.key=F.AdDensity;d.abgroup=F.AdDensity;d._clsSiteExperiments=new na(b);d.experimentConfig= d._clsSiteExperiments.getSiteExperimentByKey(d.key);d.enabled&&d.experimentConfig&&(d._choices=d.experimentConfig.variants,d._mappedChoices=d._mapChoices(),d._result=d.run(),b.setWeightedChoiceExperiment(d.abgroup,d._result,!0));return d}x(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){if(!this.enabled)return q.error("CLSTargetAdDensitySiteExperiment","run","() => %o","No experiment config found. Defaulting to control."), "control";var b=(new O(this._mappedChoices)).get();if(this._isValidResult(b))return b;q.error("CLSTargetAdDensitySiteExperiment","run","() => %o","Invalid result from experiment choices. Defaulting to control.");return"control"};a.prototype._mapChoices=function(){return this._choices.map(function(b){var d=b.value;return{weight:b.weight,choice:"number"===typeof d?(d||0)/100:"control"}})};J([ma(),E("design:type",Function),E("design:paramtypes",[]),E("design:returntype",void 0)],a.prototype,"run",null); return a}(H),$a=function(c){function a(){var b=c.call(this)||this;b._result=!1;b.abgroup="scae";b.key="StickyContainerAds";b._choices=[{choice:!0},{choice:!1}];b.weight=.99;b._result=b.run();b.setExperimentKey();return b}x(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new I(this.weight)).get()};return a=J([N("StickyContainerAdsExperiment"),E("design:paramtypes",[])],a)}(A),ab=function(c){function a(){var b= c.call(this)||this;b._result=!1;b.abgroup="scre";b.key="StickyContainerRecipe";b._choices=[{choice:!0},{choice:!1}];b.weight=.99;b._result=b.run();b.setExperimentKey();return b}x(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new I(this.weight)).get()};return a=J([N("StickyContainerRecipeExperiment"),E("design:paramtypes",[])],a)}(A),bb=function(){function c(a){this.key="DynamicSidebarSlotsMinHeight"; this.abgroup="dssmh";this._result=2700;this._choices=[{choice:1800,weight:10},{choice:2100,weight:10},{choice:2400,weight:10},{choice:2700,weight:60},{choice:3E3,weight:10}];this._isValidResult=function(b){return"number"===typeof b};this._result=this.run();a.setWeightedChoiceExperiment(this.abgroup,this._result,!1)}Object.defineProperty(c.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});c.prototype.run=function(){var a=(new O(this._choices)).get();if(this._isValidResult(a))return a; q.error("setWeightedChoiceExperiment","run","() => %o","Invalid result from experiment choices. Defaulting to 0.");return 0};return c}(),cb=function(){function c(a){this.key="DynamicSidebarSlotsCap";this.abgroup="dssc";this._result=25;this._choices=[{choice:25,weight:25},{choice:50,weight:25},{choice:75,weight:25},{choice:100,weight:25}];this._isValidResult=function(b){return"number"===typeof b};this._result=this.run();a.setWeightedChoiceExperiment(this.abgroup,this._result,!1)}Object.defineProperty(c.prototype, "result",{get:function(){return this._result},enumerable:!1,configurable:!0});c.prototype.run=function(){var a=(new O(this._choices)).get();if(this._isValidResult(a))return a;q.error("DynamicSidebarSlotsCapCLSExperiment","run","() => %o","Invalid result from experiment choices. Defaulting to 0.");return 0};return c}(),eb=function(){function c(a,b){this._clsOptions=a;this._adInjectionMap=b;this._mainContentHeight=this._recipeCount=0;this._mainContentDiv=null;this._totalAvailableElements=[];this._minDivHeight= 250;this._densityDevice=M.Desktop;this._pubLog={onePerViewport:!1,targetDensity:0,targetDensityUnits:0,combinedMax:0};this._densityMax=.99;this._smallerIncrementAttempts=0;this._absoluteMinimumSpacingByDevice=250;this._usedAbsoluteMinimum=!1;this._infPageEndOffset=0;this.locationMaxLazySequence=new Map([["Recipe",5]]);this.locationToMinHeight={Below_Post:"250px",Content:"250px",Recipe:"250px",Sidebar:"250px"};b=this._clsOptions.siteAds.breakpoints;var d=b.tablet;var e=window.innerWidth;b=e>=b.desktop? "desktop":e>=d?"tablet":"phone";this._device=b;this._config=new Pa(a);this._clsOptions.enabledLocations=this._config.enabledLocations;this._clsTargetAdDensitySiteExperiment=this._clsOptions.siteAds.siteExperiments?new Za(this._clsOptions):null;this._dynamicSidebarSlotsMinHeightExperiment=new bb(this._clsOptions);this._dynamicSidebarSlotsCapExperiment=new cb(this._clsOptions);this._stickyContainerAdsExperiment=new $a;this._stickyContainerRecipeExperiment=new ab;this._enhancedStickySidebarAdsExperiment= new Va;this._removeRecipeCapExperiment=new Wa}c.prototype.start=function(){var a=this,b,d,e,f,g,h,k;try{Qa(this._device);var l=new Ya(this._clsOptions);if(l.enabled){var n=l.result,p=n.startsWith(".")?n.substring(1):n;if(/^[-_a-zA-Z]+[-_a-zA-Z0-9]*$/.test(p))try{document.body.classList.add(p)}catch(B){q.error("ClsDynamicAdsInjector","start","Uncaught CSS Class error: ".concat(B))}else q.error("ClsDynamicAdsInjector","start","Invalid class name: ".concat(p))}var r=this._clsOptions.siteAds.adOptions, m=(null===(b=this._dynamicSidebarSlotsMinHeightExperiment)||void 0===b?void 0:b.result)||(null===(e=null===(d=r.sidebarConfig)||void 0===d?void 0:d.dynamicStickySidebar)||void 0===e?void 0:e.minHeight),t=r.siteAttributes,v=G()?null===t||void 0===t?void 0:t.mobileHeaderSelectors:null===t||void 0===t?void 0:t.desktopHeaderSelectors,y=Sa(v);Ua(m,y);var D=Oa(this._device,this._clsOptions.siteAds).filter(function(B){return a._locationEnabled(B)}).filter(function(B){return B.devices.includes(a._device)}).filter(function(B){return 0=== B.pageSelector.length||null!==document.querySelector(B.pageSelector)}),P=this.inject(D);(null===(g=null===(f=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===f?void 0:f.content)||void 0===g?0:g.enabled)&&this._stickyContainerAdsExperiment.result&&!X(this._clsOptions.siteAds.adOptions.stickyContainerConfig.blockedSelectors||[])&&Ta(null===(k=null===(h=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===h?void 0:h.content)||void 0===k?void 0:k.minHeight);P.forEach(function(B){return a._clsOptions.setInjectedSlots(B)})}catch(B){q.error("ClsDynamicAdsInjector", "start",B)}};c.prototype.inject=function(a,b){void 0===b&&(b=document);this._densityDevice="desktop"===this._device?M.Desktop:M.Mobile;this._overrideDefaultAdDensitySettingsWithSiteExperiment();var d=this._clsOptions.siteAds,e=w(d.adDensityEnabled,!0),f=d.adDensityLayout&&e;d=a.filter(function(g){return f?"Content"!==g.location:g});a=a.filter(function(g){return f?"Content"===g.location:null});return C(C([],u(d.length?this._injectNonDensitySlots(d,b):[]),!1),u(a.length?this._injectDensitySlots(a,b): []),!1)};c.prototype._injectNonDensitySlots=function(a,b){var d,e=this,f,g,h,k,l,n,p;void 0===b&&(b=document);var r=[],m=[],t=(null===(g=null===(f=this._clsOptions.siteAds.adOptions.sidebarConfig)||void 0===f?void 0:f.dynamicStickySidebar)||void 0===g?void 0:g.enabled)&&this._enhancedStickySidebarAdsExperiment.result;this._stickyContainerRecipeExperiment.result&&a.some(function(K){return"Recipe"===K.location&&K.sticky})&&!X((null===(h=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0=== h?void 0:h.blockedSelectors)||[])&&(f=this._clsOptions.siteAds.adOptions.stickyContainerConfig,f="phone"===this._device?null===(k=null===f||void 0===f?void 0:f.recipeMobile)||void 0===k?void 0:k.minHeight:null===(l=null===f||void 0===f?void 0:f.recipeDesktop)||void 0===l?void 0:l.minHeight,T("\n .adthrive-recipe.adthrive-sticky {\n position: -webkit-sticky;\n position: sticky !important;\n top: 42px !important;\n margin-top: 42px !important;\n }\n .adthrive-recipe-sticky-container {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n min-height:".concat(f? f:400,"px !important;\n margin: 10px 0 10px 0;\n background-color: #FAFAFA;\n padding-bottom:0px;\n }\n ")));try{for(var v=Q(a),y=v.next();!y.done;y=v.next()){var D=y.value,P="Sidebar"===D.location&&9===D.sequence&&D.sticky,B=(null===(p=null===(n=this._clsOptions.siteAds.adOptions.sidebarConfig)||void 0===n?void 0:n.dynamicStickySidebar)||void 0===p?void 0:p.blockedSelectors)||[],db=X(B);t&&P?db?this._insertNonDensityAds(D,r,m,b):this._insertDynamicStickySidebarAds(D,r,m,b):this._insertNonDensityAds(D, r,m,b)}}catch(K){var oa={error:K}}finally{try{y&&!y.done&&(d=v.return)&&d.call(v)}finally{if(oa)throw oa.error;}}m.forEach(function(K){K.element.style.minHeight=e.locationToMinHeight[K.location]});return r};c.prototype._injectDensitySlots=function(a,b){void 0===b&&(b=document);try{this._calculateMainContentHeightAndAllElements(a,b)}catch(h){return[]}var d=this._getDensitySettings(a,b);a=d.onePerViewport;var e=d.targetAll,f=d.targetDensityUnits,g=d.combinedMax;d=d.numberOfUnits;this._absoluteMinimumSpacingByDevice= a?window.innerHeight:this._absoluteMinimumSpacingByDevice;if(!d)return[];this._adInjectionMap.filterUsed();this._findElementsForAds(d,a,e,g,f,b);return this._insertAds()};c.prototype._overrideDefaultAdDensitySettingsWithSiteExperiment=function(){var a;if(null===(a=this._clsTargetAdDensitySiteExperiment)||void 0===a?0:a.enabled)a=this._clsTargetAdDensitySiteExperiment.result,"number"===typeof a&&(this._clsOptions.siteAds.adDensityEnabled=!0,this._clsOptions.siteAds.adDensityLayout[this._densityDevice].adDensity= a)};c.prototype._getDensitySettings=function(a,b){void 0===b&&(b=document);var d=this._clsOptions.siteAds.adDensityLayout,e=this._determineOverrides(d.pageOverrides);e=e.length?e[0]:d[this._densityDevice];d=this._clsOptions.getTargetDensity(e.adDensity);e=e.onePerViewport;var f=this._shouldTargetAllEligible(d),g=this._getTargetDensityUnits(d,f);a=this._getCombinedMax(a,b);b=Math.min.apply(Math,C([],u(C([this._totalAvailableElements.length,g],u(0<a?[a]:[]),!1)),!1));this._pubLog={onePerViewport:e, targetDensity:d,targetDensityUnits:g,combinedMax:a};return{onePerViewport:e,targetAll:f,targetDensityUnits:g,combinedMax:a,numberOfUnits:b}};c.prototype._determineOverrides=function(a){var b=this;return a.filter(function(d){var e=V(d.pageSelector);return""===d.pageSelector||e.elements&&e.elements.length}).map(function(d){return d[b._densityDevice]})};c.prototype._shouldTargetAllEligible=function(a){return a===this._densityMax};c.prototype._getTargetDensityUnits=function(a,b){return b?this._totalAvailableElements.length: Math.floor(a*this._mainContentHeight/(1-a)/this._minDivHeight)-this._recipeCount};c.prototype._getCombinedMax=function(a,b){void 0===b&&(b=document);return w(a.filter(function(d){try{var e=b.querySelector(d.elementSelector)}catch(f){}return e}).map(function(d){return Number(d.max)+Number(d.lazyMaxDefaulted?0:d.lazyMax)}).sort(function(d,e){return e-d})[0],0)};c.prototype._elementLargerThanMainContent=function(a){return a.offsetHeight>=this._mainContentHeight&&1<this._totalAvailableElements.length}; c.prototype._elementDisplayNone=function(a){var b=window.getComputedStyle(a,null).display;return b&&"none"===b||"none"===a.style.display};c.prototype._isBelowMaxes=function(a,b){return this._adInjectionMap.map.length<a&&this._adInjectionMap.map.length<b};c.prototype._findElementsForAds=function(a,b,d,e,f,g){var h=this;void 0===g&&(g=document);this._clsOptions.targetDensityLog={onePerViewport:b,combinedMax:e,targetDensityUnits:f,targetDensityPercentage:this._pubLog.targetDensity,mainContentHeight:this._mainContentHeight, recipeCount:this._recipeCount,numberOfEls:this._totalAvailableElements.length};var k=function(l){var n;try{for(var p=Q(h._totalAvailableElements),r=p.next();!r.done;r=p.next()){var m=r.value,t=m.dynamicAd,v=m.element;h._logDensityInfo(v,t.elementSelector,l);if(!(!d&&h._elementLargerThanMainContent(v)||h._elementDisplayNone(v)))if(h._isBelowMaxes(e,f))h._checkElementSpacing({dynamicAd:t,element:v,insertEvery:l,targetAll:d,target:g});else break}}catch(D){var y={error:D}}finally{try{r&&!r.done&&(n=p.return)&& n.call(p)}finally{if(y)throw y.error;}}!h._usedAbsoluteMinimum&&5>h._smallerIncrementAttempts&&(++h._smallerIncrementAttempts,k(h._getSmallerIncrement(l)))};a=this._getInsertEvery(a,b,f);k(a)};c.prototype._getSmallerIncrement=function(a){a*=.6;a<=this._absoluteMinimumSpacingByDevice&&(a=this._absoluteMinimumSpacingByDevice,this._usedAbsoluteMinimum=!0);return a};c.prototype._insertDynamicStickySidebarAds=function(a,b,d,e){void 0===e&&(e=document);var f=this.getElements(a.elementSelector,e).item(a.skip); if(null!==f)for(var g=this._repeatDynamicStickySidebar(a,f),h=function(n){var p=g[n],r="".concat(p.location,"_").concat(p.sequence);if(b.some(function(y){return y.name===r}))return"continue";var m=k.getDynamicElementId(p),t="adthrive-".concat(a.location.replace("_","-").toLowerCase()),v="".concat(t,"-").concat(p.sequence);n=C([n!==g.length-1?"adthrive-sticky-sidebar":"",t,v],u(a.classNames),!1);if(m=k.addAd(f,m,p.position,n))n=W(p,m),n.length&&(b.push({clsDynamicAd:a,dynamicAd:p,element:m,sizes:n, name:r,infinite:e!==document}),d.push({location:p.location,element:m}))},k=this,l=0;l<g.length;l++)h(l)};c.prototype._insertNonDensityAds=function(a,b,d,e){void 0===e&&(e=document);var f=0,g=0,h=0;0<a.spacing&&(g=f=window.innerHeight*a.spacing);for(var k=this._repeatDynamicAds(a),l=this.getElements(a.elementSelector,e),n=function(m){if(h+1>k.length)return"break";var t=l[m];if(0<f){m=Z(t).bottom;if(m<=g)return"continue";g=m+f}m=k[h];var v="".concat(m.location,"_").concat(m.sequence);b.some(function(B){return B.name=== v})&&(h+=1);var y=p.getDynamicElementId(m),D="adthrive-".concat(a.location.replace("_","-").toLowerCase()),P="".concat(D,"-").concat(a.sequence);D=C(["Sidebar"===a.location&&a.sticky&&a.sequence&&5>=a.sequence?"adthrive-sticky-sidebar":"",p._stickyContainerRecipeExperiment.result&&"Recipe"===a.location&&a.sticky?"adthrive-recipe-sticky-container":"",D,P],u(a.classNames),!1);if(t=p.addAd(t,y,a.position,D))y=W(m,t),y.length&&(b.push({clsDynamicAd:a,dynamicAd:m,element:t,sizes:y,name:v,infinite:e!== document}),d.push({location:m.location,element:t}),"Recipe"===a.location&&++p._recipeCount,h+=1)},p=this,r=a.skip;r<l.length&&"break"!==n(r);r+=a.every);};c.prototype._insertAds=function(){var a=this,b=[];this._adInjectionMap.filterUsed();this._adInjectionMap.map.forEach(function(d,e){var f=d.el,g=d.dynamicAd;d=d.target;e=Number(g.sequence)+e;var h=g.max;h=g.lazy&&e>h;g.sequence=e;g.lazy=h;if(f=a._addContentAd(f,g,d))g.used=!0,b.push(f)});return b};c.prototype._getInsertEvery=function(a,b,d){this._moreAvailableElementsThanUnitsToInject(d, a)?(this._usedAbsoluteMinimum=!1,a=this._useWiderSpacing(d,a)):(this._usedAbsoluteMinimum=!0,a=this._useSmallestSpacing(b));return b&&window.innerHeight>a?window.innerHeight:a};c.prototype._useWiderSpacing=function(a,b){return this._mainContentHeight/Math.min(a,b)};c.prototype._useSmallestSpacing=function(a){return a&&window.innerHeight>this._absoluteMinimumSpacingByDevice?window.innerHeight:this._absoluteMinimumSpacingByDevice};c.prototype._moreAvailableElementsThanUnitsToInject=function(a,b){return this._totalAvailableElements.length> a||this._totalAvailableElements.length>b};c.prototype._logDensityInfo=function(a,b,d){a=this._pubLog;a.onePerViewport;a.targetDensity;a.combinedMax};c.prototype._checkElementSpacing=function(a){var b=a.dynamicAd,d=a.element,e=a.insertEvery,f=a.targetAll;a=a.target;a=void 0===a?document:a;(this._isFirstAdInjected()||this._hasProperSpacing(d,b,f,e))&&this._markSpotForContentAd(d,z({},b),a)};c.prototype._isFirstAdInjected=function(){return!this._adInjectionMap.map.length};c.prototype._markSpotForContentAd= function(a,b,d){void 0===d&&(d=document);this._adInjectionMap.add(a,this._getElementCoords(a,"beforebegin"===b.position||"afterbegin"===b.position),b,d);this._adInjectionMap.sort()};c.prototype._hasProperSpacing=function(a,b,d,e){var f="beforebegin"===b.position||"afterbegin"===b.position;b="beforeend"===b.position||"afterbegin"===b.position;d=d||this._isElementFarEnoughFromOtherAdElements(a,e,f);f=b||this._isElementNotInRow(a,f);a=-1===a.id.indexOf("AdThrive_".concat("Below_Post"));return d&&f&& a};c.prototype._isElementFarEnoughFromOtherAdElements=function(a,b,d){a=this._getElementCoords(a,d);var e=!1;for(d=0;d<this._adInjectionMap.map.length&&!(e=this._adInjectionMap.map[d+1]&&this._adInjectionMap.map[d+1].coords,e=a-b>this._adInjectionMap.map[d].coords&&(!e||a+b<e));d++);return e};c.prototype._isElementNotInRow=function(a,b){var d=a.previousElementSibling,e=a.nextElementSibling;return(b=b?!d&&e||d&&a.tagName!==d.tagName?e:d:e)&&0===a.getBoundingClientRect().height?!0:b?a.getBoundingClientRect().top!== b.getBoundingClientRect().top:!0};c.prototype._calculateMainContentHeightAndAllElements=function(a,b){void 0===b&&(b=document);a=u(ua(a,this._adInjectionMap,b),2);b=a[1];this._mainContentDiv=a[0];this._totalAvailableElements=b;a=this._mainContentDiv;b=void 0;void 0===b&&(b="div #comments, section .comments");this._mainContentHeight=(b=a.querySelector(b))?a.offsetHeight-b.offsetHeight:a.offsetHeight};c.prototype._getElementCoords=function(a,b){void 0===b&&(b=!1);a=a.getBoundingClientRect();return(b? a.top:a.bottom)+window.scrollY};c.prototype._addContentAd=function(a,b,d){var e,f;void 0===d&&(d=document);var g=null,h="adthrive-".concat(b.location.replace("_","-").toLowerCase()),k="".concat(h,"-").concat(b.sequence),l=(null===(f=null===(e=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===e?void 0:e.content)||void 0===f?0:f.enabled)&&this._stickyContainerAdsExperiment.result?"adthrive-sticky-container":"";if(a=this.addAd(a,this.getDynamicElementId(b),b.position,C([l,h,k],u(b.classNames), !1)))e=W(b,a),e.length&&(a.style.minHeight=this.locationToMinHeight[b.location],g="".concat(b.location,"_").concat(b.sequence),g={clsDynamicAd:b,dynamicAd:b,element:a,sizes:e,name:g,infinite:d!==document});return g};c.prototype.getDynamicElementId=function(a){return"".concat("AdThrive","_").concat(a.location,"_").concat(a.sequence,"_").concat(this._device)};c.prototype.getElements=function(a,b){void 0===b&&(b=document);return b.querySelectorAll(a)};c.prototype.addAd=function(a,b,d,e){void 0===e&& (e=[]);document.getElementById(b)||(e='<div id="'.concat(b,'" class="adthrive-ad ').concat(e.join(" "),'"></div>'),a.insertAdjacentHTML(d,e));return document.getElementById(b)};c.prototype._repeatDynamicAds=function(a){var b=[],d=this._removeRecipeCapExperiment.result&&"Recipe"===a.location?99:this.locationMaxLazySequence.get(a.location),e=a.lazy?w(d,0):0;d=a.max;var f=a.lazyMax;e=Math.max(d,0===e&&a.lazy?d+f:Math.min(Math.max(e-a.sequence+1,0),d+f));for(f=0;f<e;f++){var g=Number(a.sequence)+f,h= a.lazy&&f>=d;b.push(z(z({},a),{sequence:g,lazy:h}))}return b};c.prototype._repeatSpecificDynamicAds=function(a,b,d){void 0===d&&(d=0);for(var e=[],f=0;f<b;f++){var g=d+f;e.push(z(z({},a),{sequence:g}))}return e};c.prototype._repeatDynamicStickySidebar=function(a,b){var d,e,f,g;if("Sidebar"!==a.location||9!==a.sequence||!a.sticky)return[a];if(b){var h=(null===(d=this._dynamicSidebarSlotsMinHeightExperiment)||void 0===d?void 0:d.result)||(null===(f=null===(e=this._clsOptions.siteAds.adOptions.sidebarConfig)|| void 0===e?void 0:e.dynamicStickySidebar)||void 0===f?void 0:f.minHeight);d=a.stickyOverlapSelector?(null===(g=document.querySelector(a.stickyOverlapSelector))||void 0===g?void 0:g.offsetTop)||document.body.scrollHeight:document.body.scrollHeight;b=Ra(d,b,h,this._dynamicSidebarSlotsCapExperiment.result);return this._repeatSpecificDynamicAds(a,b,9).map(function(k){9!==k.sequence&&(k.lazy=!0);return k})}return[a]};c.prototype._locationEnabled=function(a){a=this._clsOptions.enabledLocations.includes(a.location); var b=this._clsOptions.disableAds&&this._clsOptions.disableAds.all||document.body.classList.contains("adthrive-disable-all"),d=!document.body.classList.contains("adthrive-disable-content")&&!this._clsOptions.disableAds.reasons.has("content_plugin");return a&&!b&&d};return c}(),fb=function(c){function a(b,d){var e=c.call(this,b,"ClsVideoInsertion")||this;e._videoConfig=b;e._clsOptions=d;e._IN_POST_SELECTOR=".adthrive-video-player";e._WRAPPER_BAR_HEIGHT=36;e._playersAddedFromPlugin=[];d.removeVideoTitleWrapper&& (e._WRAPPER_BAR_HEIGHT=0);return e}x(a,c);a.prototype.init=function(){this._initializePlayers()};a.prototype._wrapJWPlayerWithCLS=function(b,d,e){void 0===e&&(e=0);return b.parentNode?(d=this._createGenericCLSWrapper(.5625*b.offsetWidth,d,e),b.parentNode.insertBefore(d,b),d.appendChild(b),d):null};a.prototype._createGenericCLSWrapper=function(b,d,e){var f=document.createElement("div");f.id="cls-video-container-".concat(d);f.className="adthrive";f.style.minHeight="".concat(b+e,"px");return f};a.prototype._getTitleHeight= function(b){b.innerText="Title";b.style.visibility="hidden";document.body.appendChild(b);var d=window.getComputedStyle(b),e=parseInt(d.height,10),f=parseInt(d.marginTop,10);d=parseInt(d.marginBottom,10);document.body.removeChild(b);return Math.min(e+d+f,50)};a.prototype._initializePlayers=function(){var b=document.querySelectorAll(this._IN_POST_SELECTOR);b.length&&this._initializeRelatedPlayers(b);this._shouldRunAutoplayPlayers()&&this._determineAutoplayPlayers()};a.prototype._createStationaryRelatedPlayer= function(b,d){var e="mobile"===this._device?[400,225]:[640,360],f=L.Video_In_Post_ClicktoPlay_SoundOn;d&&b.mediaId&&(d=this._wrapJWPlayerWithCLS(d,b.mediaId),this._playersAddedFromPlugin.push(b.mediaId),d&&this._clsOptions.setInjectedVideoSlots({playerId:b.playerId,playerName:f,playerSize:e,element:d,type:"stationaryRelated"}))};a.prototype._createStickyRelatedPlayer=function(b,d){var e="mobile"===this._device?[400,225]:[640,360],f=L.Video_Individual_Autoplay_SOff;this._stickyRelatedOnPage=!0;this._videoConfig.mobileStickyPlayerOnPage= "mobile"===this._device;if(d&&b.position&&b.mediaId){var g=document.createElement("div");d.insertAdjacentElement(b.position,g);d=document.createElement("h3");d.style.margin="10px 0";d=this._getTitleHeight(d);d=this._wrapJWPlayerWithCLS(g,b.mediaId,this._WRAPPER_BAR_HEIGHT+d);this._playersAddedFromPlugin.push(b.mediaId);d&&this._clsOptions.setInjectedVideoSlots({playlistId:b.playlistId,playerId:b.playerId,playerSize:e,playerName:f,element:g,type:"stickyRelated"})}};a.prototype._createPlaylistPlayer= function(b,d){var e=b.playlistId,f="mobile"===this._device?L.Video_Coll_SOff_Smartphone:L.Video_Collapse_Autoplay_SoundOff,g="mobile"===this._device?[400,225]:[640,360];this._videoConfig.mobileStickyPlayerOnPage=!0;var h=document.createElement("div");d.insertAdjacentElement(b.position,h);d=this._wrapJWPlayerWithCLS(h,e,this._WRAPPER_BAR_HEIGHT);this._playersAddedFromPlugin.push("playlist-".concat(e));d&&this._clsOptions.setInjectedVideoSlots({playlistId:b.playlistId,playerId:b.playerId,playerSize:g, playerName:f,element:h,type:"stickyPlaylist"})};a.prototype._isVideoAllowedOnPage=function(){var b=this._clsOptions.disableAds;if(b&&b.video){var d="";b.reasons.has("video_tag")?d="video tag":b.reasons.has("video_plugin")?d="video plugin":b.reasons.has("video_page")&&(d="command queue");q.error(d?"ClsVideoInsertionMigrated":"ClsVideoInsertion","isVideoAllowedOnPage",Error("DBP: Disabled by publisher via ".concat(d||"other")));return!1}return this._clsOptions.videoDisabledFromPlugin?!1:!0};return a}(function(c){function a(b, d){var e=c.call(this)||this;e._videoConfig=b;e._component=d;e._stickyRelatedOnPage=!1;e._contextualMediaIds=[];b=void 0;void 0===b&&(b=navigator.userAgent);b=/Windows NT|Macintosh/i.test(b);e._device=b?"desktop":"mobile";e._potentialPlayerMap=e.setPotentialPlayersMap();return e}x(a,c);a.prototype.setPotentialPlayersMap=function(){var b=this._videoConfig.players||[],d=this._filterPlayerMap();b=b.filter(function(e){return"stationaryRelated"===e.type&&e.enabled});d.stationaryRelated=b;return this._potentialPlayerMap= d};a.prototype._filterPlayerMap=function(){var b=this,d=this._videoConfig.players,e={stickyRelated:[],stickyPlaylist:[],stationaryRelated:[]};return d&&d.length?d.filter(function(f){var g;return null===(g=f.devices)||void 0===g?void 0:g.includes(b._device)}).reduce(function(f,g){f[g.type]||(q.event(b._component,"constructor","Unknown Video Player Type detected",g.type),f[g.type]=[]);g.enabled&&f[g.type].push(g);return f},e):e};a.prototype._checkPlayerSelectorOnPage=function(b){var d=this;b=this._potentialPlayerMap[b].map(function(e){return{player:e, playerElement:d._getPlacementElement(e)}});return b.length?b[0]:{player:null,playerElement:null}};a.prototype._getOverrideElement=function(b,d,e){b&&d?(e=document.createElement("div"),d.insertAdjacentElement(b.position,e)):(d=this._checkPlayerSelectorOnPage("stickyPlaylist"),b=d.player,d=d.playerElement,b&&d&&(e=document.createElement("div"),d.insertAdjacentElement(b.position,e)));return e};a.prototype._shouldOverrideElement=function(b){b=b.getAttribute("override-embed");return"true"===b||"false"=== b?"true"===b:this._videoConfig.contextualSettings?this._videoConfig.contextualSettings.overrideEmbedLocation:!1};a.prototype._checkPageSelector=function(b,d,e){void 0===e&&(e=[]);return b&&d&&0===e.length?("/"!==window.location.pathname&&q.event("VideoUtils","getPlacementElement",Error("PSNF: ".concat(b," does not exist on the page"))),!1):!0};a.prototype._getElementSelector=function(b,d,e){if(d&&d.length>e)return d[e];q.event("VideoUtils","getPlacementElement",Error("ESNF: ".concat(b," does not exist on the page"))); return null};a.prototype._getPlacementElement=function(b){var d=b.pageSelector,e=b.elementSelector;b=b.skip;var f=V(d),g=f.valid,h=f.elements;f=Y(f,["valid","elements"]);var k=ia(e),l=k.valid,n=k.elements;k=Y(k,["valid","elements"]);return""===d||g?l?this._checkPageSelector(d,g,h)?this._getElementSelector(e,n,b)||null:null:(q.error("VideoUtils","getPlacementElement",Error("".concat(e," is not a valid selector")),k),null):(q.error("VideoUtils","getPlacementElement",Error("".concat(d," is not a valid selector")), f),null)};a.prototype._getEmbeddedPlayerType=function(b){(b=b.getAttribute("data-player-type"))&&"default"!==b||(b=this._videoConfig.contextualSettings?this._videoConfig.contextualSettings.defaultPlayerType:"static");this._stickyRelatedOnPage&&(b="static");return b};a.prototype._getUnusedMediaId=function(b){return(b=b.getAttribute("data-video-id"))&&!this._contextualMediaIds.includes(b)?(this._contextualMediaIds.push(b),b):!1};a.prototype._createRelatedPlayer=function(b,d,e){"collapse"===d?this._createCollapsePlayer(b, e):"static"===d&&this._createStaticPlayer(b,e)};a.prototype._createCollapsePlayer=function(b,d){var e=this._checkPlayerSelectorOnPage("stickyRelated"),f=e.player;e=e.playerElement;var g=f?f:this._potentialPlayerMap.stationaryRelated[0];g&&g.playerId?(this._shouldOverrideElement(d)&&(d=this._getOverrideElement(f,e,d)),d=document.querySelector("#cls-video-container-".concat(b," > div"))||d,this._createStickyRelatedPlayer(z(z({},g),{mediaId:b}),d)):q.error(this._component,"_createCollapsePlayer","No video player found")}; a.prototype._createStaticPlayer=function(b,d){this._potentialPlayerMap.stationaryRelated.length&&this._potentialPlayerMap.stationaryRelated[0].playerId?this._createStationaryRelatedPlayer(z(z({},this._potentialPlayerMap.stationaryRelated[0]),{mediaId:b}),d):q.error(this._component,"_createStaticPlayer","No video player found")};a.prototype._shouldRunAutoplayPlayers=function(){return this._isVideoAllowedOnPage()&&(this._potentialPlayerMap.stickyRelated.length||this._potentialPlayerMap.stickyPlaylist.length)? !0:!1};a.prototype._determineAutoplayPlayers=function(){var b=this._component,d="VideoManagerComponent"===b,e=this._config;if(this._stickyRelatedOnPage)q.event(b,"stickyRelatedOnPage",d&&{device:e&&e.context.device,isDesktop:this._device}||{});else{var f=this._checkPlayerSelectorOnPage("stickyPlaylist"),g=f.player;f=f.playerElement;g&&g.playerId&&g.playlistId&&f?this._createPlaylistPlayer(g,f):q.event(b,"noStickyPlaylist",d&&{vendor:"none",device:e&&e.context.device,isDesktop:this._device}||{})}}; a.prototype._initializeRelatedPlayers=function(b){for(var d=0;d<b.length;d++){var e=b[d],f=this._getEmbeddedPlayerType(e),g=this._getUnusedMediaId(e);g&&this._createRelatedPlayer(g,f,e)}};return a}(function(){function c(){}Object.defineProperty(c.prototype,"enabled",{get:function(){return!0},enumerable:!1,configurable:!0});return c}())),gb=function(c){function a(){return null!==c&&c.apply(this,arguments)||this}x(a,c);return a}(function(){function c(){this._map=[]}c.prototype.add=function(a,b,d,e){void 0=== e&&(e=document);this._map.push({el:a,coords:b,dynamicAd:d,target:e})};Object.defineProperty(c.prototype,"map",{get:function(){return this._map},enumerable:!1,configurable:!0});c.prototype.sort=function(){this._map.sort(function(a,b){return a.coords-b.coords})};c.prototype.filterUsed=function(){this._map=this._map.filter(function(a){return!a.dynamicAd.used})};c.prototype.reset=function(){this._map=[]};return c}());try{(function(){var c=new ja;c&&c.enabled&&((new eb(c,new gb)).start(),(new fb(new Da(c), c)).init())})()}catch(c){q.error("CLS","pluginsertion-iife",c),window.adthriveCLS&&(window.adthriveCLS.injectedFromPlugin=!1)}})() </script><script data-no-optimize="1" data-cfasync="false">(function () {var clsElements = document.querySelectorAll("script[id^='cls-']"); window.adthriveCLS && clsElements && clsElements.length === 0 ? window.adthriveCLS.injectedFromPlugin = false : ""; })();</script><link rel='stylesheet' id='e-animations-css' href='https://www.devx.com/wp-content/plugins/elementor/assets/lib/animations/animations.min.css?ver=3.12.2' type='text/css' media='all' /> <script type="text/javascript" id="wpil-frontend-script-js-extra"> /* <![CDATA[ */ var wpilFrontend = {"ajaxUrl":"\/wp-admin\/admin-ajax.php","postId":"1728","postType":"post","openInternalInNewTab":"0","openExternalInNewTab":"0","disableClicks":"0","openLinksWithJS":"0","trackAllElementClicks":"0","clicksI18n":{"imageNoText":"Image in link: No Text","imageText":"Image Title: ","noText":"No Anchor Text Found"}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/link-whisper-premium/js/frontend.min.js?ver=1697227524" id="wpil-frontend-script-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-content/themes/devxnew/assets/js/hello-frontend.min.js?ver=1.0.0" id="hello-theme-frontend-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/elementor-pro/assets/lib/smartmenus/jquery.smartmenus.min.js?ver=1.0.1" id="smartmenus-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-includes/js/imagesloaded.min.js?ver=5.0.0" id="imagesloaded-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=3.12.3" id="elementor-pro-webpack-runtime-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=3.12.2" id="elementor-webpack-runtime-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=3.12.2" id="elementor-frontend-modules-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-includes/js/dist/vendor/wp-polyfill-inert.min.js?ver=3.1.2" id="wp-polyfill-inert-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.14.0" id="regenerator-runtime-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0" id="wp-polyfill-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-includes/js/dist/hooks.min.js?ver=c6aec9a8d4e5a5d543a1" id="wp-hooks-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-includes/js/dist/i18n.min.js?ver=7701b0c3857f914212ef" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" id="elementor-pro-frontend-js-before"> /* <![CDATA[ */ var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/www.devx.com\/wp-admin\/admin-ajax.php","nonce":"dcd1b346c7","urls":{"assets":"https:\/\/www.devx.com\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/www.devx.com\/wp-json\/"},"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"}},"facebook_sdk":{"lang":"en_US","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/www.devx.com\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=3.12.3" id="elementor-pro-frontend-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/elementor/assets/lib/waypoints/waypoints.min.js?ver=4.0.2" id="elementor-waypoints-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.2" id="jquery-ui-core-js"></script> <script type="text/javascript" id="elementor-frontend-js-before"> /* <![CDATA[ */ 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"},"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}}},"version":"3.12.2","is_static":false,"experimentalFeatures":{"e_dom_optimization":true,"e_optimized_assets_loading":true,"e_optimized_css_loading":true,"a11y_improvements":true,"additional_custom_breakpoints":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"landing-pages":true,"page-transitions":true,"notes":true,"loop":true,"form-submissions":true,"e_scroll_snap":true},"urls":{"assets":"https:\/\/www.devx.com\/wp-content\/plugins\/elementor\/assets\/"},"swiperClass":"swiper-container","settings":{"page":[],"editorPreferences":[]},"kit":{"body_background_background":"classic","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":"logo","hello_header_menu_layout":"horizontal","hello_footer_logo_type":"logo"},"post":{"id":1728,"title":"Create%20Data-Aware%20Applications%20in%20%22Avalon%22%26%23151%3Bthe%20Windows%20Presentation%20Foundation%20-%20DevX","excerpt":"","featuredImage":"https:\/\/www.devx.com\/wp-content\/uploads\/2022\/02\/thumbnail.jpg"}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=3.12.2" id="elementor-frontend-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=3.12.3" id="pro-elements-handlers-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-content/plugins/elementor-pro/assets/lib/sticky/jquery.sticky.min.js?ver=3.12.3" id="e-sticky-js"></script> <script>!function(){"use strict";!function(e){if(-1===e.cookie.indexOf("__adblocker")){e.cookie="__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";var t=new XMLHttpRequest;t.open("GET","https://ads.adthrive.com/abd/abd.js",!0),t.onreadystatechange=function(){if(XMLHttpRequest.DONE===t.readyState)if(200===t.status){var a=e.createElement("script");a.innerHTML=t.responseText,e.getElementsByTagName("head")[0].appendChild(a)}else{var n=new Date;n.setTime(n.getTime()+3e5),e.cookie="__adblocker=true; expires="+n.toUTCString()+"; path=/"}},t.send()}}(document)}(); </script><script>!function(){"use strict";var e;e=document,function(){var t,n;function r(){var t=e.createElement("script");t.src="https://cafemedia-com.videoplayerhub.com/galleryplayer.js",e.head.appendChild(t)}function a(){var t=e.cookie.match("(^|[^;]+)\\s*__adblocker\\s*=\\s*([^;]+)");return t&&t.pop()}function c(){clearInterval(n)}return{init:function(){var e;"true"===(t=a())?r():(e=0,n=setInterval((function(){100!==e&&"false"!==t||c(),"true"===t&&(r(),c()),t=a(),e++}),50))}}}().init()}(); </script> </body> </html> <!-- Dynamic page generated in 1.254 seconds. --> <!-- Cached page generated by WP-Super-Cache on 2023-12-03 06:46:22 --> <!-- Compression = gzip -->