devxlogo

Connecting to the Web: I/O Programming in Android

Connecting to the Web: I/O Programming in Android

o far all the previous articles in this Android series have been concerned with location-based services and the use of Google Maps for mapping applications. In this article, let’s turn our attention to some bread-and-butter issues?like connecting your Android application to the Web to download files.

Very often, you need to connect your Android application to the outside world, such as downloading images as well as consuming web services. This article will show you how to make your Android application communicate with the outside world using an HTTP connection. You’ll also learn how to parse XML files so that useful information can be extracted from XML documents.

Figure 1. The New Project: The new Android project is called HttpDownload.

Creating the Project
Using Eclipse, create a new Android project and name it HttpDownload, as shown in Figure 1.

In the HttpDownload.java file, first import the various namespaces that you will need for this project (see Listing 1).

As you’ll be accessing the Internet, you’ll need to add the relevant permissions to your AndroidManifest.xml file:

                                                                                    

Let’s define a helper function called OpenHttpConnection() that opens a connection to a HTTP server and returns an InputStream object (Listing 2).

To open a connection to a server, you first create an instance of the URL class and initialize it with the URL of the server. When the connection is established, you pass this connection to an URLConnection object. You then verify whether the protocol is indeed HTTP; if not you will throw an IOException. The URLConnection object is then cast into an HttpURLConnection object and you set the various properties of the HTTP connection. Next, you connect to the HTTP server and get a response from the server. If the response code is HTTP_OK, you then get the InputStream object from the connection so that you can begin to read incoming data from the server. The function then returns the InputStream object obtained.

In the main.xml file, insert the and elements. These will allow you to visually display the downloaded images and text (Listing 3).

Downloading Images
The first thing you want to do is to download some images stored on a web server. To do this, define the DownloadImage() function as follows:

    private Bitmap DownloadImage(String URL)    {                Bitmap bitmap = null;        InputStream in = null;                try {            in = OpenHttpConnection(URL);            bitmap = BitmapFactory.decodeStream(in);            in.close();        } catch (IOException e1) {            // TODO Auto-generated catch block            e1.printStackTrace();        }        return bitmap;                    }

The DownloadImage() function takes in a string containing the URL of the image to download. It then calls the OpenHttpConnection() function to obtain an InputStream object for reading the image data. The InputStream object is sent to the decodeStream() method of the BitmapFactory class. The decodeStream() method decodes an InputStream object into a bitmap. The decoded bitmap is then returned by the DownloadImage() function.

To test the DownloadImage() function, modify the onCreate() event as follows:

@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                Bitmap bitmap =             DownloadImage(            "http://www.streetcar.org/mim/cable/images/cable-01.jpg");        img = (ImageView) findViewById(R.id.img);        img.setImageBitmap(bitmap);    }

Press F11 in Eclipse to test the application on the Android emulator. Figure 2 shows the image downloaded and displayed in the ImageView view.


Figure 2. The Downloaded Image: The image is downloaded and displayed in the ImageView view.
 
Figure 3. The Downloaded File: The text file is downloaded and displayed in a TextView view.

Downloading Text
Now, let’s try to download text files from the web and display them using the TextView view. First, define the DownloadText() function as shown in Listing 4.

As usual, you call the OpenHttpConnnection() function to obtain an InputStream object. The InputStream object is then used by the InputStreamReader class so that characters can be read from the stream. The characters are read into a char array and then copied into a string variable. The string variable is then returned.

To test the DownloadText() function, modify the onCreate() event as follows:

    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                /*        Bitmap bitmap =             DownloadImage(            "http://www.streetcar.org/mim/cable/images/cable-01.jpg");        img = (ImageView) findViewById(R.id.img);        img.setImageBitmap(bitmap);        */        String str =            DownloadText("http://www.appleinsider.com/appleinsider.rss");        txt = (TextView) findViewById(R.id.text);        txt.setText(str);            }   

Press F11 in Eclipse to test the application on the Android emulator. Figure 3 shows the file downloaded and displayed in the TextView view.

Downloading RSS Feeds
Very often, you need to download XML files and parse the contents (a good example of this is consuming web services). And so in this section, you will learn how to download a RSS feed and then extract the relevant parts (such as the </span> element) and display its content.</p> <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="http://assets.devx.com/articlefigs/39810_4.jpg" width="150" height="150"></a></td> <td width="12"> </td> </tr> <tr> <td class="smallfont"><a href="javascript:showSupportItem('figure4')"><strong>Figure 4.</a> An Example:</strong> The “<em><item>/<title>“</em> element contains the title of each posting.</td> </tr> </table> <p>Define the <span class="pf">DownloadRSS()</span> function as shown in <a href="javascript:showSupportItem('listing5')">Listing 5</a>. </p> <p>First, call the <span class="pf">OpenHttpConnnection()</span> function to obtain an <span class="pf">InputStream</span> object. To process XML documents, use the following classes:</p> <ul> <li> <em>Document</em>: This represents an XML document.</li> <li> <em>DocumentBuilder</em>: This converts a XML source (such as files, streams, and so on) into a Document.</li> <li> <em>DocumentBuilderFactory</em>: This provides a factory for <span class="pf">DocumentBuilder</span> instances.</li> </ul> <p>Essentially, the <span class="pf">InputStream</span> object is used to read the XML data and then parsed into a <span class="pf">Document</span> object. </p> <p>After the XML document is loaded into a <span class="pf">Document</span> object, you locate the relevant elements to extract. In particular, for an RSS document, the “<span class="pf"><item>/<title>“</span> element contains the title of each posting (see <a href="javascript:showSupportItem('figure4')">Figure 4</a>).</p> <table border="0" cellspacing="0" cellpadding="5" align="RIGHT" width="239"> <tr> <td valign="top"><a href="javascript:showSupportItem('figure5')"><img loading="lazy" decoding="async" border="0" alt="" src="http://assets.devx.com/articlefigs/39810_5.jpg" width="150" height="150"></a></td> <td width="12"> </td> </tr> <tr> <td class="smallfont"><a href="javascript:showSupportItem('figure5')"><strong>Figure 5.</a> The RSS Feed:</strong> Displaying all the titles of the postings in a RSS feed using the Toast class.</td> </tr> </table> <p>Once the title of each posting is retrieved, it is displayed using the Toast class. To test the DownloadRSS() function, modify the onCreate() event as shown in <a href="javascript:showSupportItem('listing6')">Listing 6</a>. </p> <p>Press F11 in Eclipse to test the application on the Android emulator. <a href="javascript:showSupportItem('figure5')">Figure 5</a> shows the titles of all the postings contained within the RSS feed displayed by the Toast class. </p> <p>That’s it! If you have interesting ideas involving things you can do with HTTP downloads, send me an email.</p> <p> </div> </div> <div class="elementor-element elementor-element-9809e6b elementor-align-right elementor-widget elementor-widget-button" data-id="9809e6b" data-element_type="widget" data-widget_type="button.default"> <div class="elementor-widget-container"> <div class="elementor-button-wrapper"> <a class="elementor-button elementor-button-link elementor-size-sm" href="https://www.devx.com/disclosure/"> <span class="elementor-button-content-wrapper"> <span class="elementor-button-icon elementor-align-icon-left"> <i aria-hidden="true" class="far fa-money-bill-alt"></i> </span> <span class="elementor-button-text">Disclosure</span> </span> </a> </div> </div> </div> <div class="elementor-element elementor-element-2298440 elementor-widget elementor-widget-image" data-id="2298440" data-element_type="widget" data-widget_type="image.default"> <div class="elementor-widget-container"> <img width="150" height="68" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="attachment-thumbnail size-thumbnail wp-image-24484 ewww_webp" alt="devxblackblue" srcset="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== 1w" sizes="(max-width: 150px) 100vw, 150px" data-src-img="https://www.devx.com/wp-content/uploads/DevX-1-150x68.png" data-src-webp="https://www.devx.com/wp-content/uploads/DevX-1-150x68.png.webp" data-srcset-webp="https://www.devx.com/wp-content/uploads/DevX-1-150x68.png.webp 150w, https://www.devx.com/wp-content/uploads/DevX-1-300x135.png.webp 300w, https://www.devx.com/wp-content/uploads/DevX-1-1024x461.png.webp 1024w, https://www.devx.com/wp-content/uploads/DevX-1-768x346.png.webp 768w, https://www.devx.com/wp-content/uploads/DevX-1-1536x691.png.webp 1536w, https://www.devx.com/wp-content/uploads/DevX-1.png.webp 2000w" data-srcset-img="https://www.devx.com/wp-content/uploads/DevX-1-150x68.png 150w, https://www.devx.com/wp-content/uploads/DevX-1-300x135.png 300w, https://www.devx.com/wp-content/uploads/DevX-1-1024x461.png 1024w, https://www.devx.com/wp-content/uploads/DevX-1-768x346.png 768w, https://www.devx.com/wp-content/uploads/DevX-1-1536x691.png 1536w, https://www.devx.com/wp-content/uploads/DevX-1.png 2000w" data-eio="j" /><noscript><img width="150" height="68" src="https://www.devx.com/wp-content/uploads/DevX-1-150x68.png" class="attachment-thumbnail size-thumbnail wp-image-24484" alt="devxblackblue" srcset="https://www.devx.com/wp-content/uploads/DevX-1-150x68.png 150w, https://www.devx.com/wp-content/uploads/DevX-1-300x135.png 300w, https://www.devx.com/wp-content/uploads/DevX-1-1024x461.png 1024w, https://www.devx.com/wp-content/uploads/DevX-1-768x346.png 768w, https://www.devx.com/wp-content/uploads/DevX-1-1536x691.png 1536w, https://www.devx.com/wp-content/uploads/DevX-1.png 2000w" sizes="(max-width: 150px) 100vw, 150px" /></noscript> </div> </div> <div class="elementor-element elementor-element-b24b1f0 elementor-widget elementor-widget-heading" data-id="b24b1f0" data-element_type="widget" data-widget_type="heading.default"> <div class="elementor-widget-container"> <h2 class="elementor-heading-title elementor-size-default">About Our Editorial Process</h2> </div> </div> <div class="elementor-element elementor-element-bf49e8d elementor-widget elementor-widget-text-editor" data-id="bf49e8d" data-element_type="widget" data-widget_type="text-editor.default"> <div class="elementor-widget-container"> <style>/*! elementor - v3.20.0 - 10-04-2024 */ .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>At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.</p><p>See our full <a href="https://www.devx.com/publication-guidelines/">editorial policy</a>.</p> </div> </div> <div class="elementor-element elementor-element-0f1a6bf elementor-widget elementor-widget-heading" data-id="0f1a6bf" data-element_type="widget" data-widget_type="heading.default"> <div class="elementor-widget-container"> <h2 class="elementor-heading-title elementor-size-default">About Our Journalist</h2> </div> </div> <div class="elementor-element elementor-element-4b5870b elementor-author-box--link-yes elementor-author-box--align-left 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"> <a href="https://www.devx.com/author/devx-admin/"> <h3 class="elementor-author-box__name"> Charlie Frank </h3> </a> <div class="elementor-author-box__bio"> Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience. </div> <a class="elementor-author-box__button elementor-button elementor-size-xs" href="https://www.devx.com/author/devx-admin/"> View Author </a> </div> </div> </div> </div> </div> </div> </div> </section> <div class="elementor-element elementor-element-39bd7056 elementor-grid-1 elementor-posts--thumbnail-left elementor-grid-tablet-1 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":"1","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"> <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-53309 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/harriss-vp-choice-may-shape-climate-agenda/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53307 ewww_webp" alt="VP Climate" data-src-img="https://www.devx.com/wp-content/uploads/VP-Climate-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/VP-Climate-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/VP-Climate-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53307" alt="VP Climate" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/harriss-vp-choice-may-shape-climate-agenda/" > Harris’s VP choice may shape climate agenda </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 5:45 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53292 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/salesforce-and-workday-announce-ai-partnership/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53289 ewww_webp" alt="AI Partnership" data-src-img="https://www.devx.com/wp-content/uploads/AI-Partnership-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/AI-Partnership-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/AI-Partnership-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53289" alt="AI Partnership" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/salesforce-and-workday-announce-ai-partnership/" > Salesforce and Workday announce AI partnership </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Cameron Wiggins </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 5:18 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53288 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/pil-partners-with-wavebl-for-ebl-digitization/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53287 ewww_webp" alt="WaveBL Digitization" data-src-img="https://www.devx.com/wp-content/uploads/WaveBL-Digitization-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/WaveBL-Digitization-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/WaveBL-Digitization-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53287" alt="WaveBL Digitization" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/pil-partners-with-wavebl-for-ebl-digitization/" > Pil partners with WaveBL for eBL digitization </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Rashan Dixon </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 1:48 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53294 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/musk-activates-internet-in-gaza-hospital/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53291 ewww_webp" alt="Internet Hospital" data-src-img="https://www.devx.com/wp-content/uploads/Internet-Hospital-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Internet-Hospital-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Internet-Hospital-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53291" alt="Internet Hospital" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/musk-activates-internet-in-gaza-hospital/" > Musk activates internet in Gaza hospital </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Cameron Wiggins </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 1:44 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53318 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/experts-debate-ai-impact-on-cybersecurity/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53315 ewww_webp" alt="AI Cybersecurity Debate" data-src-img="https://www.devx.com/wp-content/uploads/AI-Cybersecurity-Debate-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/AI-Cybersecurity-Debate-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/AI-Cybersecurity-Debate-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53315" alt="AI Cybersecurity Debate" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/experts-debate-ai-impact-on-cybersecurity/" > Experts debate AI impact on cybersecurity </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 1:43 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53280 post type-post status-publish format-standard has-post-thumbnail hentry category-news tag-c3-ai tag-palantir-technologies"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/palantir-and-c3-ai-high-potential-ai-stocks/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53279 ewww_webp" alt="AI Stocks" data-src-img="https://www.devx.com/wp-content/uploads/AI-Stocks-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/AI-Stocks-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/AI-Stocks-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53279" alt="AI Stocks" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/palantir-and-c3-ai-high-potential-ai-stocks/" > Palantir and C3.ai: high-potential AI stocks </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Rashan Dixon </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 11:35 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53293 post type-post status-publish format-standard has-post-thumbnail hentry category-cybersecurity category-data-and-privacy category-news tag-carl-windsor tag-eddy-zervigon tag-fortinet tag-new-quantum-security tag-patricia-diez-munoz tag-quantum-xchange tag-telefonica tag-warpcom"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/telefonica-unveils-new-quantum-security-solution/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53290 ewww_webp" alt="Quantum Security" data-src-img="https://www.devx.com/wp-content/uploads/Quantum-Security-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Quantum-Security-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Quantum-Security-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53290" alt="Quantum Security" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/telefonica-unveils-new-quantum-security-solution/" > Telefónica unveils new quantum security solution </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 11:34 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53284 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/musk-updates-tesla-roadster-production-timeline/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53282 ewww_webp" alt="Tesla Roadster" data-src-img="https://www.devx.com/wp-content/uploads/Tesla-Roadster-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Tesla-Roadster-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Tesla-Roadster-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53282" alt="Tesla Roadster" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/musk-updates-tesla-roadster-production-timeline/" > Musk updates Tesla Roadster production timeline </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Cameron Wiggins </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 11:26 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53317 post type-post status-publish format-standard has-post-thumbnail hentry category-news tag-ai tag-higher-workload tag-kelly-monahan-upwork"> <a class="elementor-post__thumbnail__link" href="https://www.devx.com/news/employees-report-ai-increases-their-workload/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53314 ewww_webp" alt="Report Workload" data-src-img="https://www.devx.com/wp-content/uploads/Report-Workload-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Report-Workload-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Report-Workload-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53314" alt="Report Workload" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/employees-report-ai-increases-their-workload/" > Employees report AI increases their workload </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Rashan Dixon </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 11:24 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53308 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/protect-your-online-privacy-with-vpn/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53304 ewww_webp" alt="Online Privacy" data-src-img="https://www.devx.com/wp-content/uploads/Online-Privacy-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Online-Privacy-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Online-Privacy-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53304" alt="Online Privacy" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/protect-your-online-privacy-with-vpn/" > Protect your online privacy with VPN </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Cameron Wiggins </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 11:24 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53269 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/amd-announces-ryzen-ai-9-hx-375/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53266 ewww_webp" alt="Ryzen AI" data-src-img="https://www.devx.com/wp-content/uploads/Ryzen-AI-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Ryzen-AI-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Ryzen-AI-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53266" alt="Ryzen AI" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/amd-announces-ryzen-ai-9-hx-375/" > Amd announces Ryzen AI 9 HX 375 </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 11:19 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53324 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/us-faces-hurdles-to-meet-climate-goals/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53323 ewww_webp" alt="Climate Hurdles" data-src-img="https://www.devx.com/wp-content/uploads/Climate-Hurdles-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Climate-Hurdles-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Climate-Hurdles-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53323" alt="Climate Hurdles" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/us-faces-hurdles-to-meet-climate-goals/" > US faces hurdles to meet climate goals </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Cameron Wiggins </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 11:13 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53270 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/elon-musks-xai-launches-memphis-supercomputer/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53267 ewww_webp" alt="xAI Supercomputer" data-src-img="https://www.devx.com/wp-content/uploads/xAI-Supercomputer-2-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/xAI-Supercomputer-2-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/xAI-Supercomputer-2-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53267" alt="xAI Supercomputer" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/elon-musks-xai-launches-memphis-supercomputer/" > Elon Musk’s xAI launches Memphis supercomputer </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 11:08 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53271 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/switzerland-mandates-open-source-software-for-government/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53268 ewww_webp" alt="Open-Source Switzerland" data-src-img="https://www.devx.com/wp-content/uploads/Open-Source-Switzerland-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Open-Source-Switzerland-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Open-Source-Switzerland-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53268" alt="Open-Source Switzerland" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/switzerland-mandates-open-source-software-for-government/" > Switzerland mandates open-source software for government </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Noah Nguyen </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 8:53 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53283 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/reddit-blocks-most-search-engines-except-google/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53281 ewww_webp" alt="Reddit Google" data-src-img="https://www.devx.com/wp-content/uploads/Reddit-Google-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Reddit-Google-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Reddit-Google-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53281" alt="Reddit Google" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/reddit-blocks-most-search-engines-except-google/" > Reddit blocks most search engines except Google </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Cameron Wiggins </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 8:46 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53296 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/monday-sets-record-for-hottest-day/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53295 ewww_webp" alt="Hottest Monday" data-src-img="https://www.devx.com/wp-content/uploads/Hottest-Monday-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Hottest-Monday-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Hottest-Monday-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53295" alt="Hottest Monday" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/monday-sets-record-for-hottest-day/" > Monday sets record for hottest day </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 8:02 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53303 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/ibm-stock-rises-on-strong-q2-earnings/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53301 ewww_webp" alt="IBM rises" data-src-img="https://www.devx.com/wp-content/uploads/IBM-rises-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/IBM-rises-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/IBM-rises-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53301" alt="IBM rises" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/ibm-stock-rises-on-strong-q2-earnings/" > IBM stock rises on strong Q2 earnings </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 7:47 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53305 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/wiz-declines-23-billion-offer-from-alphabet/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53302 ewww_webp" alt="Wiz Declines" data-src-img="https://www.devx.com/wp-content/uploads/Wiz-Declines-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Wiz-Declines-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Wiz-Declines-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53302" alt="Wiz Declines" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/wiz-declines-23-billion-offer-from-alphabet/" > Wiz declines $23 billion offer from Alphabet </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Cameron Wiggins </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 7:23 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53319 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/military-crackdown-leaves-200-dead-in-bangladesh/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53316 ewww_webp" alt="Military Crackdown" data-src-img="https://www.devx.com/wp-content/uploads/Military-Crackdown-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Military-Crackdown-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Military-Crackdown-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53316" alt="Military Crackdown" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/military-crackdown-leaves-200-dead-in-bangladesh/" > Military crackdown leaves 200 dead in Bangladesh </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 7:19 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53275 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/elon-musk-attends-netanyahus-address-to-congress/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53273 ewww_webp" alt="Musk Congress" data-src-img="https://www.devx.com/wp-content/uploads/Musk-Congress-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Musk-Congress-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Musk-Congress-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53273" alt="Musk Congress" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/elon-musk-attends-netanyahus-address-to-congress/" > Elon Musk attends Netanyahu’s address to Congress </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Rashan Dixon </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 7:16 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53274 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/ai-powered-gr-supras-complete-tandem-drift/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53272 ewww_webp" alt="Tandem Drift" data-src-img="https://www.devx.com/wp-content/uploads/Tandem-Drift-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Tandem-Drift-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Tandem-Drift-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53272" alt="Tandem Drift" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/ai-powered-gr-supras-complete-tandem-drift/" > Ai-powered GR Supras complete tandem drift </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> April Isaacs </span> <span class="elementor-post-date"> July 26, 2024 </span> <span class="elementor-post-time"> 7:11 AM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53212 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/mega-cap-tech-stocks-under-pressure/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53211 ewww_webp" alt="Tech Pressure" data-src-img="https://www.devx.com/wp-content/uploads/Tech-Pressure-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Tech-Pressure-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Tech-Pressure-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53211" alt="Tech Pressure" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/mega-cap-tech-stocks-under-pressure/" > Mega-cap tech stocks under pressure </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> April Isaacs </span> <span class="elementor-post-date"> July 25, 2024 </span> <span class="elementor-post-time"> 5:45 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53184 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/new-ibm-cybersecurity-certificate-at-community-colleges/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53181 ewww_webp" alt="Cybersecurity Certificate" data-src-img="https://www.devx.com/wp-content/uploads/Cybersecurity-Certificate-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Cybersecurity-Certificate-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Cybersecurity-Certificate-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53181" alt="Cybersecurity Certificate" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/new-ibm-cybersecurity-certificate-at-community-colleges/" > New IBM cybersecurity certificate at community colleges </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> April Isaacs </span> <span class="elementor-post-date"> July 25, 2024 </span> <span class="elementor-post-time"> 5:37 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53185 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/eviden-unveils-qaptiva-quantum-emulator-for-researchers/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53183 ewww_webp" alt="Qaptiva Quantum" data-src-img="https://www.devx.com/wp-content/uploads/Qaptiva-Quantum-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Qaptiva-Quantum-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Qaptiva-Quantum-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53183" alt="Qaptiva Quantum" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/eviden-unveils-qaptiva-quantum-emulator-for-researchers/" > Eviden unveils Qaptivaâ„¢ quantum emulator for researchers </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Johannah Lopez </span> <span class="elementor-post-date"> July 25, 2024 </span> <span class="elementor-post-time"> 5:29 PM </span> </div> </div> </article> <article class="elementor-post elementor-grid-item post-53194 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/telefonica-tech-secures-global-bbva-cybersecurity-deal/" > <div class="elementor-post__thumbnail"><img width="300" height="171" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="elementor-animation-grow attachment-medium size-medium wp-image-53192 ewww_webp" alt="Global Cybersecurity" data-src-img="https://www.devx.com/wp-content/uploads/Global-Cybersecurity-300x171.jpg" data-src-webp="https://www.devx.com/wp-content/uploads/Global-Cybersecurity-300x171.jpg.webp" data-eio="j" /><noscript><img width="300" height="171" src="https://www.devx.com/wp-content/uploads/Global-Cybersecurity-300x171.jpg" class="elementor-animation-grow attachment-medium size-medium wp-image-53192" alt="Global Cybersecurity" /></noscript></div> </a> <div class="elementor-post__text"> <h3 class="elementor-post__title"> <a href="https://www.devx.com/news/telefonica-tech-secures-global-bbva-cybersecurity-deal/" > Telefónica Tech secures global BBVA cybersecurity deal </a> </h3> <div class="elementor-post__meta-data"> <span class="elementor-post-author"> Cameron Wiggins </span> <span class="elementor-post-date"> July 25, 2024 </span> <span class="elementor-post-time"> 5:27 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="828" data-next-page="https://www.devx.com/wireless-zone/39810/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 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 elementor-element-populated"> <div class="elementor-element elementor-element-2f83f51 elementor-widget elementor-widget-html" data-id="2f83f51" data-element_type="widget" data-widget_type="html.default"> <div class="elementor-widget-container"> <ins style="display: block; width: 100%" class="direqt-embed" data-bot-id="660c2a84041d59991d8be45b" data-start-hint="poll" data-story-id="auto" data-gtm="true" data-layout="overlay" ></ins> </div> </div> </div> </div> </div> </section> </div> </div> <footer data-elementor-type="footer" data-elementor-id="23300" class="elementor elementor-23300 elementor-location-footer"> <div class="elementor-section-wrap"> <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"> <style>/*! elementor - v3.20.0 - 10-04-2024 */ .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-block-end:0;flex-grow:1;border-block-start: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--element-align-start .elementor-divider .elementor-divider-separator>.elementor-divider__svg:first-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-start .elementor-divider-separator:before{content:none}.elementor-widget-divider--element-align-start .elementor-divider__element{margin-inline-start:0}.elementor-widget-divider--element-align-end .elementor-divider .elementor-divider-separator>.elementor-divider__svg:last-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-end .elementor-divider-separator:after{content:none}.elementor-widget-divider--element-align-end .elementor-divider__element{margin-inline-end:0}.elementor-widget-divider:not(.elementor-widget-divider--view-line_text):not(.elementor-widget-divider--view-line_icon) .elementor-divider-separator{border-block-start: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> <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> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-46262"><a href="https://www.devx.com/publication-guidelines/" class="elementor-item">Guidelines</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-47967"><a href="https://www.devx.com/expert-review-board/" class="elementor-item">Experts</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> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-46262"><a href="https://www.devx.com/publication-guidelines/" class="elementor-item" tabindex="-1">Guidelines</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-47967"><a href="https://www.devx.com/expert-review-board/" class="elementor-item" tabindex="-1">Experts</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.20.0 - 10-04-2024 */ .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-threads{background-color:#000}.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-x-twitter{background-color:#000}.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">©2024 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"> <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> </div> </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-09632a1'>'use strict';(function(){function v(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");N(c,a);c.prototype=null===a?Object.create(a):(b.prototype=a.prototype,new b)}function S(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 I(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 B(c,a){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(c, a)}function L(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 r(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 w(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="2024-07-25";var N=function(c,a){N=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 N(c,a)},y=function(){y=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 y.apply(this,arguments)};"function"===typeof SuppressedError?SuppressedError:function(c,a,b){b=Error(b);return b.name="SuppressedError",b.error=c,b.suppressed=a,b};var z=function(c){var a={};return function(){for(var b=[],d=0;d<arguments.length;d++)b[d]=arguments[d];d=JSON.stringify(b);if(a[d])return a[d];b=c.apply(this,b);return a[d]=b}},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, w([console.info,a,b],r(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,w([console.warn,a,b],r(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,w([console.error,a,b],r(d),!1));this.sendErrorLogToCommandQueue.apply(this,w([a,b],r(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)})};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,w([],r(e),!1));try{Function.prototype.apply.call(a,console,w([f.join("")],r(g),!1))}catch(h){console.error(h)}};return c}()),u=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},qa=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}},ra=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=r(d.split("="),2);b.set(d[0],d[1]);return b},new Map)},sa=function(c){var a= {},b=ra().get(c);if(b)try{var d=decodeURIComponent(b).replace(/\+/g,"");a=JSON.parse(d);q.event("ExperimentOverridesUtil","getExperimentOverrides",c,a)}catch(e){}return a},ta=z(function(c){void 0===c&&(c=navigator.userAgent);return/Windows NT|Macintosh/i.test(c)}),E=z(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}),ua=function(c){void 0===c&&(c=document);return(c===document? document.body:c).getBoundingClientRect().top},va=function(c){return c.includes(",")?c.split(","):[c]},wa=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},xa=function(c,a,b){void 0===b&&(b=document);var d=wa(b),e=d?[d]:[],f=[];c.forEach(function(h){var k=Array.from(b.querySelectorAll(h.elementSelector)).slice(0,h.skip);va(h.elementSelector).forEach(function(l){var p= b.querySelectorAll(l);l=function(t){var n=p[t];if(a.map.some(function(x){return x.el.isEqualNode(n)}))return"continue";(t=n&&n.parentElement)&&t!==document.body?e.push(t):e.push(n);-1===k.indexOf(n)&&f.push({dynamicAd:h,element:n})};for(var m=0;m<p.length;m++)l(m)})});var g=ua(b);c=f.sort(function(h,k){return h.element.getBoundingClientRect().top-g-(k.element.getBoundingClientRect().top-g)});return[e,c]},ya=function(c,a,b){void 0===b&&(b=document);a=r(xa(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]},M=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(p){}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.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}}c.prototype.init=function(){};return c}()),D;(function(c){c.amznbid="amznbid";c.amzniid="amzniid";c.amznp="amznp";c.amznsz="amznsz"})(D||(D={}));var U;(function(c){c.ThirtyThreeAcross="33across";c.Adform="adform";c.Aidem="aidem";c.AidemServer="aidem_ss";c.AppNexus="appnexus";c.AmazonTAM="amazon";c.AmazonUAM="AmazonUAM";c.AmazonASR="AmazonASR";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.Ozone="ozone";c.Pubmatic="pubmatic";c.PubmaticServer="pubm_ss";c.ResetDigital="resetdigital";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"})(U||(U={}));var V;(function(c){c.Prebid="prebid";c.GAM="gam";c.Amazon="amazon";c.Marmalade="marmalade";c.Floors="floors";c.CMP="cmp";c.Optable="optable"})(V||(V={}));var W;(function(c){c.cm="cm";c.fbrap="fbrap";c.rapml="rapml"})(W||(W={}));var X;(function(c){c.lazy= "lazy";c.raptive="raptive";c.refresh="refresh";c.session="session";c.crossDomain="crossdomain";c.highSequence="highsequence";c.lazyBidPool="lazyBidPool"})(X||(X={}));var Y;(function(c){c.lazy="l";c.raptive="rapml";c.refresh="r";c.session="s";c.crossdomain="c";c.highsequence="hs";c.lazyBidPool="lbp"})(Y||(Y={}));var Z;(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"})(Z||(Z={}));var aa;(function(c){c[c.NA=0]="NA";c[c.OptedOut=1]="OptedOut";c[c.OptedIn=2]="OptedIn"})(aa||(aa={}));var C;(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"})(C||(C={}));var J;(function(c){c.Desktop="desktop";c.Mobile="mobile"})(J||(J={}));var G;(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"})(G||(G={}));var ba;(ba||(ba={})).None="none";var ca;(function(c){c.Default= "default";c.AZ_Animals="5daf495ed42c8605cfc74b0b";c.Natashas_Kitchen="55bccc97303edab84afd77e2";c.RecipeTin_Eats="55cb7e3b4bc841bd0c4ea577";c.Sallys_Baking_Recipes="566aefa94856897050ee7303";c.Spend_With_Pennies="541917f5a90318f9194874cf"})(ca||(ca={}));var za=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},da=function(c){try{return{valid:!0, elements:document.querySelectorAll(c)}}catch(a){return y({valid:!1},a)}},ea=function(c){return""===c?{valid:!0}:da(c)},Aa=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},Ba=["siteId","siteName","adOptions","breakpoints","adUnits"];z=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 z;z=window.adthrive.windowPerformance;var O=z.now.bind(z),Ca=function(c){function a(b){var d=c.call(this)||this;d._featureRollouts=b.enabled?b.siteAds.featureRollouts||{}:{};return d}v(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};c.prototype.getSiteRolloutConfig=function(a){var b;return this.isRolloutEnabled(a)?null!==(b=this._featureRollouts[a].data)&&void 0!==b?b:{}:{}};return c}()),fa=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=Ba);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 Ca(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}(),Da=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=E()?"adthrive-collapse-top-center":"adthrive-collapse-bottom-right");return a};c.addMaxResolutionQueryParam=function(a){var b=E()?"320":"1280";b="max_resolution=".concat(b);var d=r(String(a).split("?"),2);a=d[0];b=(d=d[1])?d+"&".concat(b):b;return"".concat(a,"?").concat(b)};return c}(),Ea=function(){return function(c){this._clsOptions=c;this.removeVideoTitleWrapper=u(this._clsOptions.siteAds.adOptions.removeVideoTitleWrapper,!1);c=this._clsOptions.siteAds.videoPlayers; this.footerSelector=u(c&&c.footerSelector,"");this.players=u(c&&c.players.map(function(a){a.mobileLocation=Da.setMobileLocation(a.mobileLocation);return a}),[]);this.relatedSettings=c&&c.contextual}}(),Fa=function(){return function(c){this.relatedPlayerAdded=this.playlistPlayerAdded=this.mobileStickyPlayerOnPage=!1;this.footerSelector="";this.removeVideoTitleWrapper=!1;this.videoAdOptions=new Ea(c);this.players=this.videoAdOptions.players;this.relatedSettings=this.videoAdOptions.relatedSettings;this.removeVideoTitleWrapper= this.videoAdOptions.removeVideoTitleWrapper;this.footerSelector=this.videoAdOptions.footerSelector}}();D=function(){return function(){}}();var H=function(c){function a(b){var d=c.call(this)||this;d._probability=b;return d}v(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}(D);z=function(){function c(){this._clsOptions=new fa;this.shouldUseCoreExperimentsConfig= !1}c.prototype.setExperimentKey=function(a){void 0===a&&(a=!1);this._clsOptions.setExperiment(this.abgroup,this.result,a)};return c}();var Ga=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}v(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new H(.1)).get()}; return a}(z),ha=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,w([],r(b),!1));void 0!==d&&(a.push(" => %o"),e.push(d));a.push(" %c(".concat(c,"ms)"));e.push("color: #999;")},ia=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=O(),h=d.apply(this,e);if(h instanceof Promise)return h.then(function(l){var p=O();ha(c,a,e,l,g,p);return Promise.resolve(l)}).catch(function(l){l.logged|| (q.error(c,a,l),l.logged=!0);throw l;});var k=O();ha(c,a,e,h,g,k);return h}catch(l){throw l.logged||(q.error(c,a,l),l.logged=!0),l;}}},P=function(c,a){void 0===a&&(a=!1);return function(b){var d,e=Object.getOwnPropertyNames(b.prototype).filter(function(m){return a||0!==m.indexOf("_")}).map(function(m){return[m,Object.getOwnPropertyDescriptor(b.prototype,m)]});try{for(var f=L(e),g=f.next();!g.done;g=f.next()){var h=r(g.value,2),k=h[0],l=h[1];void 0!==l&&"function"===typeof l.value?b.prototype[k]=ia(c, k,l):void 0!==l&&void 0!==l.get&&"function"===typeof l.get&&Object.defineProperty(b.prototype,k,y(y({},l),{get:ia(c,k,l)}))}}catch(m){var p={error:m}}finally{try{g&&!g.done&&(d=f.return)&&d.call(f)}finally{if(p)throw p.error;}}}},Ha=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;E()&&b.largeFormatsMobile&&(d._result=d.run(),d.setExperimentKey());return d}v(a,c);Object.defineProperty(a.prototype, "result",{get:function(){return this._result},enumerable:!1,configurable:!0});a.prototype.run=function(){return(new H(this.weight)).get()};return a=I([P("ParallaxAdsExperiment"),B("design:paramtypes",[Object])],a)}(z),Ia=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";E()&&(b._result=b.run(),b.setExperimentKey());return b}v(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1, configurable:!0});a.prototype.run=function(){return(new H(1)).get()};return a}(z),Ja=[[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]],Ka=[[300,600],[160,600]],La=new Map([["Footer",1],["Header",2],["Sidebar",3],["Content",4],["Recipe",5],["Sidebar_sticky",6],["Below Post",7]]),Ma=function(c){return Ja.filter(function(a){a=r(a,2);var b=a[0],d=a[1]; return c.some(function(e){e=r(e,2);var f=e[1];return b===e[0]&&d===f})})},Na=function(c,a,b,d,e){a=r(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>=r(k,2)[1]}),(d=300<g)&&!b?!0:9===a?!0:a&&5>=a?d?c.sticky:!0:!d):!0},Oa=function(c,a){var b=c.location;c=c.sticky;if("Recipe"===b&&a){var d= a.recipeMobile;a=a.recipeDesktop;if(E()&&(null===d||void 0===d?0:d.enabled)||!E()&&(null===a||void 0===a?0:a.enabled))return!0}return"Footer"===b||c},Pa=function(c,a){var b=a.adUnits,d=a.adTypes?(new Ha(a.adTypes)).result:!1,e=new Ga,f=new Ia;return b.filter(function(g){return void 0!==g.dynamic&&g.dynamic.enabled}).map(function(g){var h=g.location.replace(/\s+/g,"_"),k="Sidebar"===h?0:2;return{auctionPriority:La.get(h)||8,location:h,sequence:u(g.sequence,1),sizes:Ma(g.adSizes).filter(function(l){return Na(g, l,c,e,f)}).concat(d&&"Content"===g.location?Ka:[]),devices:g.devices,pageSelector:u(g.dynamic.pageSelector,"").trim(),elementSelector:u(g.dynamic.elementSelector,"").trim(),position:u(g.dynamic.position,"beforebegin"),max:Math.floor(u(g.dynamic.max,0)),spacing:u(g.dynamic.spacing,0),skip:Math.floor(u(g.dynamic.skip,0)),every:Math.max(Math.floor(u(g.dynamic.every,1)),1),classNames:g.dynamic.classNames||[],sticky:Oa(g,a.adOptions.stickyContainerConfig),stickyOverlapSelector:u(g.stickyOverlapSelector, "").trim(),autosize:g.autosize,special:u(g.targeting,[]).filter(function(l){return"special"===l.key}).reduce(function(l,p){return l.concat.apply(l,w([],r(p.value),!1))},[]),lazy:u(g.dynamic.lazy,!1),lazyMax:u(g.dynamic.lazyMax,k),lazyMaxDefaulted:0===g.dynamic.lazyMax?!1:!g.dynamic.lazyMax,name:g.name}})},ja=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})},Qa=function(){return function(c){this.clsOptions= c;this.enabledLocations=["Below_Post","Content","Recipe","Sidebar"]}}(),Ra=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})}},Q=function(c){return"adthrive-".concat(c.location.replace("_","-").toLowerCase())},ka=function(c){return"".concat(Q(c),"-").concat(c.sequence)}, Sa=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 "))},la=function(c){return c.some(function(a){return null!==document.querySelector(a)})},Ta=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}v(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0}); a.prototype.run=function(){return(new H(1)).get()};return a}(z),R=function(c){function a(b,d){void 0===b&&(b=[]);var e=c.call(this)||this;e._choices=b;e._default=d;return e}v(a,c);a.fromArray=function(b,d){return new a(b.map(function(e){e=r(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=L(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(p){var l={error:p}}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}(D),Ua=function(c){for(var a=5381,b=c.length;b;)a=33*a^c.charCodeAt(--b);return a>>>0},Va=function(c){if(null===c)return null;c=c.map(function(a){return a.choice});return Ua(JSON.stringify(c)).toString(16)}, Wa=function(c,a){var b,d;return null!==(d=null===(b=c.find(function(e){return e.choice===a}))||void 0===b?void 0:b.weight)&&void 0!==d?d:null},ma=function(c){return void 0!==c&&null!==c&&!("number"===typeof c&&isNaN(c))},na=function(){return function(c,a,b){var d=b.value;d&&(b.value=function(){for(var e=[],f=0;f<arguments.length;f++)e[f]=arguments[f];f=Va(this._choices);var g=this._expConfigABGroup?this._expConfigABGroup:this.abgroup;g=g?g.toLowerCase():this.key?this.key.toLowerCase():"";f=f?"".concat(g, "_").concat(f):g;f=this.localStoragePrefix?"".concat(this.localStoragePrefix,"-").concat(f):f;g=M.getLocalStorageValue("branch");!1===(g&&g.enabled)&&M.removeLocalStorageValue(f);e=d.apply(this,e);g=Wa(this._choices,e);a:{var h=void 0,k;void 0===h&&(h=!0);h=M.getLocalStorageValue("abgroup",!0,!0,864E5,h);if(null!==h){var l=h[f],p=null!==(k=h["".concat(f,"_weight")])&&void 0!==k?k:null;if(ma(l)){var m=[l,p];break a}}k=y(y({},h),(m={},m[f]=e,m["".concat(f,"_weight")]=g,m));M.setLocalStorageValue("abgroup", k);m=[e,g]}k=r(m,2);m=k[0];k=k[1];this._stickyResult=m;this._stickyWeight=k;return m})}};D=function(c){function a(){var b=c.apply(this,w([],r(arguments),!1))||this;b._resultValidator=function(){return!0};return b}v(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 R(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()&&ma(a)};return c}());var oa=function(){function c(a){var b=this,d,e;this.siteExperiments=[];this._clsOptions=a;this._device=E()?"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, p=null==f.dateEnd||Date.now()<=f.dateEnd,m=null===f.selector||""!==f.selector&&!!document.querySelector(f.selector),t="mobile"===f.platform&&"mobile"===h;h="desktop"===f.platform&&"desktop"===h;t=null===f.platform||"all"===f.platform||t||h;(h="bernoulliTrial"===f.experimentType?1===f.variants.length:Aa(f.variants))||q.error("SiteTest","validateSiteExperiment","experiment presented invalid choices for key:",f.key,f.variants);f=k&&l&&p&&m&&t&&h}else f=!1;a:switch(k=b._clsOptions.siteAds,g){case C.AdDensity:var n= za(k,b._device);break a;case C.StickyOutstream:var x,A;n=(g=null===(A=null===(x=null===(n=k.videoPlayers)||void 0===n?void 0:n.partners)||void 0===x?void 0:x.stickyOutstream)||void 0===A?void 0:A.blockedPageSelectors)?!document.querySelector(g):!0;break a;case C.Interstitial:n=(n=k.adOptions.interstitialBlockedPageSelectors)?!document.querySelector(n):!0;break a;default:n=!0}return f&&n}))&&void 0!==e?e:[]}c.prototype.getSiteExperimentByKey=function(a){var b=this.siteExperiments.filter(function(f){return f.key.toLowerCase()=== a.toLowerCase()})[0],d=sa("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}(),Xa=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=C.AdLayout;d.abgroup=C.AdLayout;d._clsSiteExperiments= new oa(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}v(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 R(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}})};I([na(),B("design:type",Function),B("design:paramtypes",[]),B("design:returntype",void 0)],a.prototype,"run",null);return a}(D),Ya=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=C.AdDensity;d.abgroup=C.AdDensity;d._clsSiteExperiments=new oa(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}v(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 R(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"}})};I([na(),B("design:type",Function),B("design:paramtypes",[]),B("design:returntype",void 0)],a.prototype,"run",null);return a}(D),Za=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}v(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result}, enumerable:!1,configurable:!0});a.prototype.run=function(){return(new H(this.weight)).get()};return a=I([P("StickyContainerAdsExperiment"),B("design:paramtypes",[])],a)}(z),$a=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}v(a,c);Object.defineProperty(a.prototype,"result",{get:function(){return this._result},enumerable:!1,configurable:!0}); a.prototype.run=function(){return(new H(this.weight)).get()};return a=I([P("StickyContainerRecipeExperiment"),B("design:paramtypes",[])],a)}(z),cb=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=J.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 Qa(a);this._clsOptions.enabledLocations=this._config.enabledLocations;this._clsTargetAdDensitySiteExperiment= this._clsOptions.siteAds.siteExperiments?new Ya(this._clsOptions):null;this._stickyContainerAdsExperiment=new Za;this._stickyContainerRecipeExperiment=new $a;this._removeRecipeCapExperiment=new Ta}c.prototype.start=function(){var a=this,b,d,e,f;try{Ra(this._device);var g=new Xa(this._clsOptions);if(g.enabled){var h=g.result,k=h.startsWith(".")?h.substring(1):h;if(/^[-_a-zA-Z]+[-_a-zA-Z0-9]*$/.test(k))try{document.body.classList.add(k)}catch(m){q.error("ClsDynamicAdsInjector","start","Uncaught CSS Class error: ".concat(m))}else q.error("ClsDynamicAdsInjector", "start","Invalid class name: ".concat(k))}var l=Pa(this._device,this._clsOptions.siteAds).filter(function(m){return a._locationEnabled(m)}).filter(function(m){return m.devices.includes(a._device)}).filter(function(m){return 0===m.pageSelector.length||null!==document.querySelector(m.pageSelector)}),p=this.inject(l);(null===(d=null===(b=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===b?void 0:b.content)||void 0===d?0:d.enabled)&&this._stickyContainerAdsExperiment.result&&!la(this._clsOptions.siteAds.adOptions.stickyContainerConfig.blockedSelectors|| [])&&Sa(null===(f=null===(e=this._clsOptions.siteAds.adOptions.stickyContainerConfig)||void 0===e?void 0:e.content)||void 0===f?void 0:f.minHeight);p.forEach(function(m){return a._clsOptions.setInjectedSlots(m)})}catch(m){q.error("ClsDynamicAdsInjector","start",m)}};c.prototype.inject=function(a,b){void 0===b&&(b=document);this._densityDevice="desktop"===this._device?J.Desktop:J.Mobile;this._overrideDefaultAdDensitySettingsWithSiteExperiment();var d=this._clsOptions.siteAds,e=u(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 w(w([],r(d.length?this._injectNonDensitySlots(d,b):[]),!1),r(a.length?this._injectDensitySlots(a,b):[]),!1)};c.prototype._injectNonDensitySlots=function(a,b){var d,e=this,f,g,h;void 0===b&&(b=document);var k=[],l=[];this._stickyContainerRecipeExperiment.result&&a.some(function(n){return"Recipe"===n.location&&n.sticky})&&!la((null===(f=this._clsOptions.siteAds.adOptions.stickyContainerConfig)|| void 0===f?void 0:f.blockedSelectors)||[])&&(f=this._clsOptions.siteAds.adOptions.stickyContainerConfig,f="phone"===this._device?null===(g=null===f||void 0===f?void 0:f.recipeMobile)||void 0===g?void 0:g.minHeight:null===(h=null===f||void 0===f?void 0:f.recipeDesktop)||void 0===h?void 0:h.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 p=L(a),m=p.next();!m.done;m=p.next())this._insertNonDensityAds(m.value,k,l,b)}catch(n){var t={error:n}}finally{try{m&&!m.done&&(d=p.return)&&d.call(p)}finally{if(t)throw t.error;}}l.forEach(function(n){n.element.style.minHeight=e.locationToMinHeight[n.location]});return k};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,w([],r(w([this._totalAvailableElements.length,g],r(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=ea(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 u(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 p;try{for(var m=L(h._totalAvailableElements),t=m.next();!t.done;t=m.next()){var n=t.value,x=n.dynamicAd,A=n.element;h._logDensityInfo(A,x.elementSelector,l);if(!(!d&&h._elementLargerThanMainContent(A)||h._elementDisplayNone(A)))if(h._isBelowMaxes(e, f))h._checkElementSpacing({dynamicAd:x,element:A,insertEvery:l,targetAll:d,target:g});else break}}catch(K){var F={error:K}}finally{try{t&&!t.done&&(p=m.return)&&p.call(m)}finally{if(F)throw F.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._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),p=function(n){if(h+1>k.length)return"break";var x=l[n];if(0<f){n=qa(x).bottom;if(n<=g)return"continue";g=n+f}n=k[h];var A="".concat(n.location,"_").concat(n.sequence);b.some(function(ab){return ab.name===A})&&(h+=1);var F=m.getDynamicElementId(n),K=Q(a),bb=ka(a);K=w(["Sidebar"=== a.location&&a.sticky&&a.sequence&&5>=a.sequence?"adthrive-sticky-sidebar":"",m._stickyContainerRecipeExperiment.result&&"Recipe"===a.location&&a.sticky?"adthrive-recipe-sticky-container":"",K,bb],r(a.classNames),!1);if(x=m.addAd(x,F,a.position,K))F=ja(n,x),F.length&&(b.push({clsDynamicAd:a,dynamicAd:n,element:x,sizes:F,name:A,infinite:e!==document}),d.push({location:n.location,element:x}),"Recipe"===a.location&&++m._recipeCount,h+=1)},m=this,t=a.skip;t<l.length&&"break"!==p(t);t+=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,y({},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=r(ya(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=Q(b),k=ka(b),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,w([l,h,k],r(b.classNames),!1)))e=ja(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?u(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(y(y({},a),{sequence:g,lazy:h}))}return b};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}(),db=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}v(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,e){var f="mobile"===this._device? [400,225]:[640,360],g=G.Video_In_Post_ClicktoPlay_SoundOn;d&&b.mediaOrPlaylistId&&(e="".concat(b.mediaOrPlaylistId,"_").concat(e),d=this._wrapJWPlayerWithCLS(d,e),this._playersAddedFromPlugin.push(b.mediaOrPlaylistId),d&&this._clsOptions.setInjectedVideoSlots({playerId:b.playerId,playerName:g,playerSize:f,element:d,type:"stationaryRelated"}))};a.prototype._createStickyRelatedPlayer=function(b,d){var e="mobile"===this._device?[400,225]:[640,360],f=G.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?G.Video_Coll_SOff_Smartphone:G.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._relatedMediaIds=[];e._device=ta()?"desktop":"mobile";e._potentialPlayerMap=e.setPotentialPlayersMap();return e}v(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.relatedSettings?this._videoConfig.relatedSettings.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=ea(d),g=f.valid,h=f.elements;f=S(f,["valid","elements"]);var k=da(e),l=k.valid,p=k.elements;k=S(k,["valid","elements"]);return""===d||g?l?this._checkPageSelector(d,g,h)?this._getElementSelector(e,p,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.relatedSettings?this._videoConfig.relatedSettings.defaultPlayerType:"static");this._stickyRelatedOnPage&&(b="static");return b};a.prototype._getMediaId=function(b){return(b=b.getAttribute("data-video-id"))?(this._relatedMediaIds.push(b),b):!1};a.prototype._createRelatedPlayer=function(b,d,e,f){"collapse"===d?this._createCollapsePlayer(b,e):"static"===d&&this._createStaticPlayer(b, e,f)};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(y(y({},g),{mediaId:b}),d)):q.error(this._component,"_createCollapsePlayer","No video player found")};a.prototype._createStaticPlayer= function(b,d,e){this._potentialPlayerMap.stationaryRelated.length&&this._potentialPlayerMap.stationaryRelated[0].playerId?this._createStationaryRelatedPlayer(y(y({},this._potentialPlayerMap.stationaryRelated[0]),{mediaOrPlaylistId:b}),d,e):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=new Map,e=0;e<b.length;e++){var f=b[e],g=f.offsetParent,h=this._getEmbeddedPlayerType(f),k=this._getMediaId(f);g&&k&&(g=(d.get(k)||0)+1,d.set(k,g),this._createRelatedPlayer(k,h,f,g))}};return a}(function(){function c(){}Object.defineProperty(c.prototype,"enabled",{get:function(){return!0},enumerable:!1,configurable:!0});return c}())),eb=function(c){function a(){return null!==c&&c.apply(this,arguments)||this}v(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 fa;c&&c.enabled&&((new cb(c,new eb)).start(), (new db(new Fa(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.20.4' 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":"22656","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=1712228365" 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.20.4" 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.20.4" id="elementor-frontend-modules-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-includes/js/dist/hooks.min.js?ver=2810c76e705dd1a53b18" id="wp-hooks-js"></script> <script type="text/javascript" src="https://www.devx.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" 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":"a9bad546f3","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.3" 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","a11yCarouselWrapperAriaLabel":"Carousel | Horizontal scrolling: Arrow Left & Right","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}}},"version":"3.20.4","is_static":false,"experimentalFeatures":{"e_optimized_assets_loading":true,"e_optimized_css_loading":true,"additional_custom_breakpoints":true,"e_swiper_latest":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"block_editor_assets_optimize":true,"ai-layout":true,"landing-pages":true,"e_image_loading_optimization":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","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":22656,"title":"Connecting%20to%20the%20Web%3A%20I%2FO%20Programming%20in%20Android%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.20.4" 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.126 seconds. --> <!-- Cached page generated by WP-Super-Cache on 2024-07-27 10:22:14 --> <!-- Compression = gzip -->