Sat. Dec 4th, 2021
Spread the love


Throughout the year, CNN Underscored is constantly testing products — from coffee makers to computers to sheets to shower heads — to help our readers find the absolute best things.

Our testing process is rigorous. We spend countless hours of research, consulting experts, reading editorial reviews and perusing user ratings to identify the products we want to bring in for testing, be they things that have stood the test of time or the most promising new contenders. Then we spend weeks or months testing and retesting each product multiple times in real-world settings, putting everything through the sort of use and abuse it’s likely to encounter in your home. We’re confident that our process lets us identify the very best things so you can quickly and easily buy what you need.

Here, we round up all the products that took the top spot in our tests throughout the year.

Amazon

We’ll make this really simple for you: If you want to spend less than $100 on wireless earbuds, you won’t find a better pair than the EarFun Air.

Read more from our testing of budget earbuds here.

Amazon

The Beats Solo 3 headphones were released back in 2016, which in headphones years means they’re basically living their golden years. But despite their age, they consistently held their own during our testing. They were often neck-and-neck with headphones twice their price, if not flat-out surpassing them. The Beat Solo 3 produced sound you’d expect from a much more expensive pair of headphones. Instrumental and vocal clarity were among the best we’ve heard.

Read more from our testing of noise-canceling headphones here.

Benjamin Levin/CNN

The Beat Solo 3s were released back in 2016, which in headphones years means they’re basically living their golden years. But despite their age, they consistently held their own during our testing. They were often neck-and-neck with headphones twice their price, if not flat-out surpassing them.

Read more from our testing of on-ear headphones here.

Amazon

The Sony WH-1000XM4 headphones boast class-leading sound and phenomenal noise-canceling ability, so much so that they ousted our former top overall pick, the Beats Solo Pro, in terms of ANC quality, as the over-ear WH-1000XM4 better seals the ear from outside noise. Whether it was a noise from a dryer, loud neighbors down the hall or high-pitched sirens, these headphones proved impenetrable. This is a feat that other headphones, notably the Solo Pro, could not compete with.

Read more from our testing of over-ear headphones here.

Amazon

Overall, Fluance is a brand that cares deeply about providing the best possible listening experience to consumers. Out of the box, you get everything you need to establish high-quality sound at a premium.

Read more from our testing of record players here.

Roku

While the Streambar Pro didn’t feature the best sound quality of the soundbars we tested, you would have to spend more than double the price to get something more than nominally better.

Read more from our testing of soundbars here.

Amazon

Apple’s AirPods Pro hit all the marks. They deliver a wide soundstage, thanks to on-the-fly equalizing tech that produces playback that seemingly brings you inside the studio with the artist. They have the best noise-canceling ability of all the earbuds we tested, which, aside from stiff-arming distractions, creates a truly immersive experience. To sum it up, you’re getting a comfortable design, a wide soundstage, easy connectivity and long battery life.

Read more from our testing of true wireless earbuds here.

Michael Andronico/CNN

If you’re willing to splurge on a more premium set of earbuds that will help you quiet the chaos happening around you at home, then the Galaxy Buds Pro are worth the premium. Whether it’s a barking dog, a crying baby or a blaring jackhammer from the street below you, the Buds Pro’s dependable active noise cancellation (ANC) works to block it out, leaving you with a little white noise and room to think.

Read more from our testing of work-from-home earbuds and headphones here.

Beauty and Grooming

Amazon

Remington’s Smart Beard Trimmer scored exceptionally well in all of our tests. What sets this trimmer apart from the rest we tested is all of its “smart” abilities. But this isn’t just the dream trimmer for tech nerds; there’s also real substance to it. It was our most durable trimmer, coming out unscathed from our drop test, where we dropped each trimmer from a shaving position three times.

Read more from our testing of beard trimmers here.

Target

DryBar Detox Dry Shampoo was the best at absorbing oil, aptly removed sweat and dirt and had the most pleasing scent, leaving our panelists’ hair feeling cleaner and smelling better than any other dry shampoo we tried. Think of it as a sort of oil-absorbing sheet for your hair — a sponge that, even when applied in a fine, veil-like mist, sops up oil, sweat and dirt for even the greasier-haired among us.

Read more from our testing of dry shampoos here.

Ulta

Through our tests, we found that the best face moisturizer overall is dermatologist favorite Olay Regenerist. The brand describes it as “an anti-aging moisturizer that hydrates skin and helps retain skin’s youthful surface contours.” Essentially, it’s meant to diminish the look of fine lines while improving skin’s elasticity and firmness. What sets it apart is the formula.

Read more from our testing of face moisturizers here.

Sephora

The Dyson Supersonic is expensive. Like, $400 expensive. But, man, does it live up to its hype. It dries hair at warp speed, blasts out heat at a whopping 70 mph, is much, much quieter than other models we tested, and is just futuristic and cool all around.

Read more from our testing of hair dryers here.

Amazon

The Stila Stay All Day Waterproof Liquid Eyeliner excels at many things: It applies smoothly and precisely, and its firm felt marker-like tip allows you to create a perfectly sharp wing with minimal effort. While firm enough to apply with accuracy, though, it does not snag or pull on the eyelid, and its staying power is top-notch — one of the most long wearing of the liners we tested.

Read more from our testing of liquid eyeliners here.

Katie McBroom

The Beautyblender claimed our top spot, thanks to its versatility, effectiveness and overall comfortable feel. It’s a rounded sponge with a teardrop shape, designed to be used while moist.

Read more from our testing of makeup sponges here.

Amazon

The Stila Stay All Day Liquid Lipstick has thousands of 5-star ratings across the internet, and it’s easy to see why. True to its name, this product clings to your lips for hours upon hours, burritos and messy breakfast sandwiches be damned. It’s also surprisingly moisturizing for such a superior stay-put formula, a combo that’s rare to come by.

Read more from our testing of matte lipsticks here.

Best men’s razor: Gillette SkinGuard ($8, originally $9.99; amazon.com)

Kai Burkhardt/CNN

Out of all the razors we tested, the Gillette SkinGuard gave us the easiest, most comfortable shave by far, mainly due to its specialized blades. The razor has little bumpers in between the SkinGuard’s two blades to minimize skin irritation. While Gillette says this causes a shave that isn’t as close as its five-blade razors, we didn’t notice much of a difference between the SkinGuard and the other cartridge blades we tested.

Read more from our testing of men’s razors here.

Best sunscreen: Hawaiian Tropic Island Sport Sunscreen Spray ($8.92, originally $9.69; amazon.com)

Amazon

The Hawaiian Tropic Island Sport Sunscreen Spray scored miles above every other sunscreen we tested. An SPF 30, broad-spectrum, chemical formulation, this spray sunscreen applied super light, rubbed into the skin right away and smelled deliciously of coconut.

Read more from our testing of sunscreens here.

Billie

We loved the Billie razor, from the way it looks, with a cool, colorblocked design and curved cartridge, to its super-sharp blades that removed hairs in a single swipe. The razor is also comfortable to use — the handle has a rubber backing to provide a firm but comfortable grip so there’s no slipping.

Read more from our testing of women’s razors here.

Amazon

The Baratza Virtuoso+ has a sleek, intuitive design. It also has 40 settings from which to choose. Having more options lets you micro-customize the grind size to your liking, so you get the exact taste you want from the beans. It was easy to quickly customize our grinds, from espresso and Turkish coffee to French press or cold brew.

Read more from our testing of coffee grinders here.

Blue Bottle

Blue Bottle’s coffee subscription hit all of our marks during the testing process. It has multiple kinds of subscriptions perfect for all kinds of coffee drinkers. With its solid customizability, variety and — above all — outstanding taste, Blue Bottle beat out every other coffee subscription we tested. No matter what you want from a coffee subscription, Blue Bottle tailors an experience that will always provide you with freshly roasted, delicious coffee right at your doorstep.

Read more from our testing of coffee subscriptions here.

CNN

The Hario Mizudashi Cold Brew coffee pot is a sleek, sophisticated and streamlined carafe that produces 1 liter (about 4.25 cups) of rich, robust brew in just eight hours. It was among the simplest to assemble, it executed an exemplary brew in about the shortest time span and it looked snazzy doing it. Plus, it rang up as the second-most affordable of our inventory.

Read more from our testing of cold brew coffee makers here.

Amazon

We brewed countless pots of coffee with the Braun KF6050WH BrewSense drip coffee maker, ranging from light to dark roast, and each one yielded a strong, delicious cup with no sediment, thanks to the gold tone filter, designed to remove the bitterness from coffee as well as reduce single-use paper-filter waste. The machine we tested was white, but it also comes in black, and it’s compact enough to fit under the cabinets in a smaller space compared to some of the more cumbersome machines we tested.

Read more from our testing of drip coffee makers here.

Amazon

The Kalita Wave 185 Pour-Over Coffee Dripper features a flat bottom with three drip holes, which enables more easily and evenly saturated coffee grounds. The flat-bottom shape and its larger surface resulted in a rich and robust single cup of coffee, and it was also the most user-friendly of the drippers that required a swirled pour, producing between 16 and 26 ounces at a time.

Read more from our testing of pour-over coffee makers here.

Amazon

If you’re in the market for a coffee machine that can brew a consistently great cup that’s piping hot, makes espresso, is extremely easy to use and looks great on your counter, then you need the Breville-Nespresso VertuoPlus. This single-cup coffee maker stood out from the pack in nearly every category. It produced the hottest coffee of the bunch, delivered the same great taste with every cup, allowed for a variety of brewing options and truly could not be easier to use.

Read more from our testing of single-serve coffee makers here.

Amazon

The Razer Kraken X delivers some of the best comfort and sound quality out of all of the affordable wired headsets we tested. It also works well with nearly every platform, thanks to its versatile 3.5mm wired headphone connection.

Read more from our testing of gaming headsets here.

SteelSeries

When it comes to a keyboard that checks all of the possible boxes and then some, the Apex Pro shines bright, delivering extreme value with adjustable switches, individual key lighting and an OLED display that makes quickly changing settings a breeze.

Read more from our testing of gaming keyboards here.

Asus

The Asus ROG Strix G15 Advantage Edition offers the best combination of performance, battery life and features for the price, all packed into an attractive and highly customizable design.

Read more from our testing of gaming laptops here.

Corsair

The Corsair Dark Core RGB does it all. It’s a gaming mouse that offers wired and wireless connectivity, a comfortable and adjustable grip, and eight programmable buttons.

Read more from our testing of gaming mice here.

MSI

The MSI Aegis RS delivers high-end performance in blockbuster games for an affordable price, and has plenty of space for future upgrades.

Read more from our testing of gaming PCs here.

Amazon

The Jall Wooden Digital Alarm Clock has everything you need and more in an alarm clock. It’s simple to set, easy to read in the dark and has an alarm that is loud but won’t scare you awake. It’s got a polished feel to it, and its wooden design gives it a look unlike any other clocks we tested.

Read more from our testing of alarm clocks here.

Frontgate

Fresh out of the box, Frontgate’s Resort Cotton Bath Towel was among the most luxurious-feeling in our testing pool. Thick, soft and snuggly, this product truly feels like a fine hotel bathing experience. At a generous 58 inches by 30 inches, it looks the part too, with a lush surface punctuated by a nice 2-inch-long trim near each towel end.

Read more from our testing of bath towels here.

Best bug repellent and spray: Proven Mosquito and Tick Spray ($16.97; homedepot.com)

Amazon

The Proven’s Mosquito and Tick Spray proved to be a winner during our user testing. Proven was nice and light to the point we barely felt it on our skin. While you might forget you’re wearing it, though, bugs won’t.

Read more from our testing of bug repellents and sprays here.

Amazon

The 22-inch Weber Original Premium Kettle Grill was the easiest grill to control temperature on during our testing, with the flames inside the kettle responding expertly to any tap of the vents. Our hamburgers cooked to a medium rare temperature, and our chicken ended up juicy, with a solid sear on the outside. The grill includes Weber’s One-Touch cleaning system, meaning that it comes with a large enclosed ash pan for easy cleanup, and it also boasts a built-in thermometer and lid hook.

Read more from our testing of charcoal grills here.

Amazon

The Honeywell Quietset Whole Room tower fan is well built, quiet and affordable, with a solid, stable build and a beautiful, colorfully laid out control panel that was simpler to figure out and use than the competition. It was easier to assemble than the other tower fans we tested, with tool-free construction and a simple connection to the base that was a lot easier to deal with than the other tower models we looked at.

Read more from our testing of cooling fans here.

Amazon

The Frigidaire dehumidifier was among the best performers in our testing, tying for first place in removing moisture from the air in our test space, but it also stood out because of its superior interface and usability. Its control panel is better thought out than the other dehumidifiers we looked at, with comfortable buttons clearly labeled with both easy-to-understand graphical icons as well as text, something missing in some of the other contenders.

Read more from our testing of dehumidifiers here.

Brooklinen

With the Brooklinen Down Comforter, we truly felt like we were sleeping on a cloud and never wanted to get out of bed. Between the softness of the outer material and the fluffiness of the fill, it’s one of those comforters that make you want to stay in bed all day — 12 months a year.

Read more from our testing of down comforters here.

Casper

The Casper Sateen Duvet Cove checked all the boxes for us: For starters, it’s 100% cotton with a smooth, sateen feel that’s soft, not silky. During our testing, washing the cover was a breeze, and it dried completely with one cycle.

Read more from our testing of duvet covers here.

Amazon

The Fitbit Inspire 2 is the best choice for anyone who wants better clarity and more robust data about their health, fitness and wellness lifestyle.

Read more from our testing of fitness trackers here.

Garnet Hill

From straight out of the packaging through to waking up on a chilly morning, Garnet Hill’s Hemstitched Supima Flannel Sheets were our best overall. Garnet Hill’s sheets offered a warm, restful night of sleep without feeling overheated, which was a factor with some of the other sets. The design of the Garnet Hill sheets is simple and pretty, with a stitched hem on the top of the top sheet and on the pillowcases, and they’re available in 11 tasteful colors, more than any other brand we tested.

Read more from our testing of flannel sheets here.

Amazon

The Ring Alarm is a budget-conscious system that doesn’t sacrifice the necessary feature set, all while giving you the ability to customize to your specific needs.

Read more from our testing of home security systems here.

Amazon

The TaoTronics Cool Mist Humidifier was a breeze to use from the start. It was packaged so that the unit was easy to remove and assemble, and it was filled and misting quickly. The bulk of this humidifier is the tank, so it takes up minimal space, which is just one reason this humidifier ranked as our top choice. It was also a standout when it came to cleaning, which is huge if you’ve ever dealt with a gross, moldy humidifier filter or tank.

Read more from our testing of humidifiers here.

Amazon

Lightweight, super-steamy, able to get rid of even the stubbornest of wrinkles and priced affordably, Maytag’s M400 practically had us looking forward to laundry day. Heating up in a lightning-fast 39 seconds, the quickest of all irons we tested, it also features a handy indicator light that turns green to alert you it’s ready.

Read more from our testing of irons here.

Athleta

Featuring, as its name suggests, pockets big enough to stash things like your phone or wallet, we loved this pair for its comfort during workouts and everyday activities alike, high-quality construction, secure waistband and chic aesthetic.

Read more from our testing of leggings here.

Parachute

Well made, luxurious to the touch and with the most versatile shopping options (six sizes, nine colors and the ability to order individual sheets), these linen sheets from Parachute were, by a narrow margin, our favorite set. From the satisfying unboxing to a sumptuous sleep, with a la carte availability, Parachute set the gold standard in linen luxury

Read more from our testing of linen sheets here.

Patagonia

Well made, luxurious to the touch and with the most versatile shopping options (six sizes, nine colors and the ability to order individual sheets), these linen sheets from Parachute were, by a narrow margin, our favorite set. From the satisfying unboxing to a sumptuous sleep, with a la carte availability, Parachute set the gold standard in linen luxury.

Read more from our testing of rain jackets here.

Amazon

The Happy Light Luxe by Verilux is sleek, slim, packable and stable, and its well-thought-out controls — which were missing from almost every other light that we tested — made customizing the experience a pleasure.

Read more from our testing of SAD light therapy lamps here.

Amazon

The Kohler Forte Shower He​​ad topped our list because of the immersive shower experience it provides. Delivering a powerful rainfall spray composed of big, full droplets of water, the shower head’s main “full coverage” setting is all-encompassing and perfect for daily use. The intense pressure makes washing shampoo and conditioner out of your hair a quick process, and it’s super helpful when rinsing off soaped-up little ones who are much shorter and farther away from the head.

Read more from our testing of shower heads here.

Amazon

Fishers Finery — made from the finest silk available — felt luxuriously silky, fit our pillows perfectly, offered beautiful nights of sleep and were easy to wash and dry both by hand and in the machine.

Read more from our testing of silk pillowcases here.

Amazon

Our favorite thing about this mask is its adjustable nose wire, which lets you get the perfect light-blocking, lock-in-place fit. Many masks we tested had a slight crack of light around the nose bridge. This mask, though, formed the best seal around the edges, blocking out more light than any other mask we tested.

Read more from our testing of sleep masks here.

Amazon

This thermometer can be held up to 2 inches away, and there’s a positioning sensor that shines a light on your forehead to ensure you’re on the right point of the head when taking temperature. With an option to silence any noise and an LED display that can be seen in the dark, the Braun No-Touch thermometer offers everything you need — plus some — in a thermometer.

Read more from our testing of thermometers here.

Ring

Ring’s Video Doorbell 2 Pro uses radar to give you highly accurate motion alerts, has stellar looking video with a wide, tall field of view and crisp audio, and can even show you on a map the route someone took as they made their way to your door.

Read more from our testing of video doorbell cameras here.

Geox

Functional, breathable and incredibly comfortable, the Geox New Aneko B Abx Woman kept our feet dry through puddles, rainfall and spills. We ordered a half size up for a great fit.

Read more from our testing of waterproof shoes for women here.

Amazon

The Sound+Sleep Mini contains 48 different sounds, like rain, brooks, fans, ocean sounds, white noise, and many more. The other devices we tested feature some of these soundscapes, but the Mini is one of the only ones that has them all.

Read more from our testing of white noise machines here.

Midea

Midea’s U-shaped design makes installation a cinch and keeps the compressor outside with the window acting as a noise barrier, so it’s much quieter compared to other ACs. It cooled the room not only more quickly, but also more effectively thanks to a motorized vent that automatically moves to waft cold air throughout the room.

Read more from our testing of window ACs here.

Lululemon

The Lululemon brand is practically synonymous with the word “athleisure,” and whether you love it or love to hate it, one thing is certain: Lululemon makes some seriously fantastic leggings. Yes, $98 may seem like a steep price to pay, but if you’re serious about your fitness and/or yoga gear, you won’t be able to find anything better than the Lululemon Align Pant.

Read more from our testing of workout leggings here.

Lululemon

Hands down our favorite feature of the mat is the fact that it’s dual-sided, with a smooth and sticky polyurethane-coated top side and a textured natural rubber bottom side that provides loads of traction. Beyond that, though, we also loved that the mat is slightly oversized and provides an ample cushion given its 5-millimeter thickness.

Read more from our testing of yoga mats here.

Amazon

With 1,800 watts of motor power, the Breville Super Q blender features a slew of preset buttons, comes in multiple colors, includes key accessories and is touted for being quieter than other models. It does carry a steep price tag, but for those who can’t imagine a smoothie-less morning, what breaks down to less than $2 per day over one year seems like a bargain.

Read more from our testing of blenders here.

Best bread machine: Zojirushi Home Bakery Virtuoso Plus Bread Maker ($339.95; wayfair.com)

Zojirushi

The Zojirushi Virtuoso Plus is expensive for sure, but in this case, you get what you pay for. Each loaf we baked turned out beautifully, as if it came straight from our favorite bakery, with a crisp, golden-brown crust; soft, even crumb; perfect rise; airy, fluffy texture; and delicious taste.

Read more from our testing of bread machines here.

Sur La Table

The Lodge Chef Collection 12-Inch Skillet rose to the top of our rankings for not only delivering great results across all of our testing criteria but also for its affordable price. Weighing just 6.5 pounds, the Chef Collection comes pre-seasoned with 100% natural vegetable oil and has two slightly larger pour spouts that allowed us to deftly remove oil from the pan without a dribble in sight. It outperformed most of its much higher-priced competitors at nearly every test we threw at it.

Read more from our testing of cast-iron skillets here.

Teakhaus

The Teakhaus Professional is a cutting board made from teak, a wood that stands up to heavy use, is resistant to stains and knife cuts, cleans up easily, is heavy enough to stay in place while you work and is reasonably priced compared to other wooden cutting boards of similar quality. Plus, it’s beautiful enough to earn a permanent spot on your kitchen countertop.

Read more from our testing of cutting boards here.

Amazon

The Lodge Enameled 6-Quart Cast-Iron Dutch Oven’s shiny, smooth finish had zero flaws out of the box, and the ombre blue hue was just plain pretty. Its 6-quart size was just right for all sorts of tasks. Its large handles and the lid’s amply sized metal knob are both features that make using a heavy pan easier. And its slightly sloped sides allowed a spatula to scrape up everything along the edges.

Read more from our testing of Dutch ovens here.

Amazon

The Kona BBQ Grill Brush features a durable, stainless steel brush head that, according to the manufacturer, works best when dipped in water. This proved true in our testing, and the wet brush melts away any leftover food or gunk on the grill. The solid brush head ensures that no bristles, wire bits, food or residue from the tool is left behind on your grill.

Read more from our testing of grill brushes here.

Best hand mixer: Cuisinart Power Advantage Plus 9-Speed Handheld Mixer ($79.95; amazon.com)

Amazon

This Cuisinart mixer caught our eye right out of the box, with a sleek design and sturdy build that felt stable in the hand. Testing confirmed our initial impression, with the appliance scoring top marks across the board for function — easily mixing, whisking, beating and kneading — as well as ease of use and storage.

Read more from our testing of hand mixers here.

Amazon

The Cuisinart 1.5-Quart Frozen Yogurt ICE-21P1 is incredibly easy to use, and made one of the smoothest ice creams, with only a little iciness, of all the ice cream makers we tested. While it was one of the loudest machines we tested, it also churned ice cream faster than many of its competitors (it only took about 15 minutes for both of the recipes we tested), so you won’t have to suffer through the noise for too long.

Read more from our testing of ice cream makers here.

ThermoWorks

The price of the ThermoWorks Thermapen One may make you raise an eyebrow, but based on our testing, it’s worth every penny. The backlit display is easy to read, and the digits automatically adjust their orientation when holding the thermometer vertically — something that was exclusive to this model.

Read more from our testing of meat thermometers here.

Amazon

This knife block set lets you easily take on almost any cutting jobl. Not only did the core knives included (chef’s, paring, utility and serrated) perform admirably, but the set included a bevy of extras, including a full set of steak knives. We were blown away by their solid construction and reliable execution for such an incredible value. The knives stayed sharp through our multitude of tests, and we were big fans of the cushion-grip handles that kept them from slipping.

Read more from our testing of kitchen knife sets here.

Best kitchen scale: Ozeri ZK14-S Pronto Digital Multifunction Kitchen and Food Scale (starting at $9.84, originally $14.95; amazon.com)

Amazon

Simplicity and reliability is what you’ll get with this scale. It can measure grams, pounds, ounces and milliliters, all the way up to 11.24 pounds. Of all the options we tested under $20, this one handled the most weight. When measuring the same item several times and/or comparing it to other scales, its accuracy was dependable.

Read more from our testing of kitchen scales here.

Amazon

If you’re a minimalist and prefer to have just a single pan in your kitchen, then you’d be set with the T-fal E76597. This pan’s depth gives it multipurpose functionality: It cooks standard frying pan foods like eggs and meats, and its 2.5-inch sides are tall enough to prepare recipes you’d usually reserve for pots, like rices and stews. It’s a high-quality and affordable pan that outperformed some of the more expensive ones in our testing field.

Read more from our testing of nonstick pans here.

Amazon

The Spiralizer 7-Blade Spiral Slicer impressed us with the fact that every veggie we tested — on all seven provided blades — turned out perfect spirals, with almost all requiring barely any exertion on our part. There are blades for vermicelli, spaghetti, fettuccine, curly fry, chips/ribbons, fine groovy chips and coarse groovy chips, and they’re all clearly labeled by name. The spiralizer is dishwasher-safe and comes with a lifetime warranty.

Read more from our testing of spiralizers here.

Amazon

The Cuisinart 3-in-1 Cook Central Multicooker gave us perfectly cooked meals, and while it’s very easy to use, it offers the best range of useful functions — browning, sautéing and steaming — of all the slow cookers we tested.

Read more from our testing of slow cookers here.

Amazon

If you need a machine that makes great waffles, doesn’t take up too much of your precious counter space and still lets you make multiple waffles per batch, then this waffle maker may be the perfect waffle maker for you. This model goes a step beyond most flip waffle makers, featuring two sets of waffle grills, one on each side of the flip mechanism, so you can make two rounds of waffles at once — a real bonus for a hungry breakfast crowd.

Read more from our testing of waffle makers here.

Yeti

While the Yeti Rambler is a bit on the pricier side, this 26-ounce water bottle is easily the best one we tested. Not only does it keep your drinks hot or cold for many hours, it’s solidly durable and has the best lid we’ve ever tested. The Yeti Rambler is also customizable, available in 14 colors and five sizes ranging from 12 ounces to 46 ounces, and it’s dishwasher-safe as well.

Read more from our testing of water bottles here.

Best water filter pitcher: Brita Standard Everyday Water Filter Pitcher ($26.98, originally $34.99; amazon.com)

Brita

The Brita Standard Everyday Water Filter Pitcher was a cinch to set up, left water free of any odd flavoring, features a simple pouring mechanism and is ideally designed for storage within a fridge.

Read more from our testing of water filter pitchers here.

Amazon

Lever-style wine openers are meant to be stable and easy to use, and the Rabbit Wine Corkscrew With Foil Cutter satisfies this most important requirement. During our testing, we got the cork out of our bottle in three seconds, as advertised. There was no setup or assembly required prior to use, and the silicone-lined exterior of this opener felt immediately comfortable in-hand upon unboxing.

Read more from our testing of wine openers here.

Jake Krol/CNN

The Wyze Bulb Color ticks all the boxes you want from a smart bulb, outpacing all other bulbs we tested — no matter their price point. If you prefer a white light, you have the option to adjust the temperature, changing the resulting light from warmer, orange glows to cooler, more natural white light.

Read more from our testing of smart bulbs here.

Amazon

The Echo Show 8 is the best smart display we tested, with a versatile 8-inch screen in a build that really fits anywhere. It can do everything you’d expect from a smart display, and Alexa can respond to your queries both vocally and visually.

Read more from our testing of smart displays here.

Peloton

The Peloton Bike+ came out on top (but honestly, just barely) due to its sturdy construction, variety of knowledgeable, inspiring instructors and many high-quality off-the-bike classes. It’s a great something-for-everyone buy.

Read more from our testing of smart exercise bikes here.

Amazon

The Chamberlain MyQ can manage up to two garage doors, and the wireless hub makes it easy to install. With a price tag of only $29.99, it’s also an excellent value for a basic smart garage controller.

Read more from our testing of smart garage door opener controllers here.

Jake Krol/CNN

Apple’s iPhone 13 has a modern build with an immersive display, and is one of the best cameras of all the phones we’ve ever tested. The iPhone 13, equipped with Apple’s latest mobile processor, the A15 Bionic, shone in performance, as FaceTime calls, browsing the web, posting on social media, playing games and even doing work all happened promptly and without hiccups.

Read more from our testing of smartphones here.

Jake Krol/CNN

The Wyze Plug has everything a smart plug needs —- a plug to go into your current outlet, an outlet on the front to plug other devices in and connectivity to make it controllable —- and excels at the overall experience.

Read more from our testing of smart plugs here.

Wyze

Pulling this thin, elegant glass scale out of the box, we were immediately sold on its simple good looks. The design of this scale is on par with several we tested that were far more expensive. It’s sleek and lightweight, and it fits in places most people like to stash a scale — like under the bed, a dresser or a very slim bathroom vanity.

Read more from our testing of smart scales here.

Google

The Nest Learning Thermostat studies your habits and controls the temperature in your home automatically. These smarts, along with the simple interface, make it best in class.

Read more from our testing of smart thermostats here.

Jake Krol/CNN

Amazon’s fourth-gen Echo is the biggest redesign to the original smart speaker; Amazon swapped the tall cylinder design for a spherical one. Not only does this give it a more appealing aesthetic than most competing speakers, but the form factor also aids in delivering richer and clearer sound with ample access to Alexa smarts.

Read more from our testing of smart speakers here.

Apple

The Apple Watch Series 6 isn’t just the best smartwatch for the iPhone; it’s the best smartwatch period. It’s the fastest smartwatch we’ve ever tested and it not only tracks countless activities but can also take an electrocardiogram (ECG), measure heart rate, track blood oxygen levels and detect if you’ve fallen.

Read more from our testing of smartwatches here.

Away

The Away Carry-On has everything you want in a suitcase: durability, thoughtful organization, smart features and chic design, all at a fair price point to boot. It stood up very well to our abuse, handling being kicked, jumped on and dropped down stairs with only minor scuffing and zero lasting dents. It also utilizes smooth YKK zippers, an aluminum telescopic handle and four double Hinomoto spinner wheels, which in our testing glided seamlessly on pavement, hardwood and grass alike.

Read more from our testing of carry-on luggage here.

Away

The Away Medium suitcase was the most well-rounded piece of luggage we tested, outdoing the other bags in many of our most important tests. It’s solidly durable, with only a few scuffs from its trip down the stairs. It also has an incredible interior compression system, is easily maneuverable and is even comfortable to carry for those times you need to lift it in and out of the car.

Read more from our testing of checked luggage here.

Amazon

The Anker PowerCore 13000 packs a ton of value. You can quickly charge a lot with the PowerCore 13000; it can bring an iPhone 11 to full charge two and a half times, or two Samsung Galaxy S20s from empty to more than 90%. And you won’t be sitting by idly for too long, either, as the PowerCore 13000 takes just 41 minutes to charge an iPhone 11 to 50%, tying for fastest charging in our testing.

Read more from our testing of portable chargers here.

Julianne Ross

The Cabeau Evolution S3 updates the standard U-shaped travel pillow design with raised sides that gently cradled our head and neck when we used it. The S3’s flat back also rested relatively flush against our seat, preventing our head from uncomfortably jutting forward, while an adjustable front clasp let us slightly tighten or loosen the neck opening to our liking, which makes it possible to tailor the pillow to travelers of different sizes.

Read more from our testing of travel pillows here.

TCL

No matter what content you’re watching, the 55-inch TCL 6-Series TV makes it look good. It zooms past the 5-Series with better color accuracy and holds up better at various viewing angles. The 6-Series features Mini LEDs, meaning it packs more LEDs behind the panel to allow the TV to illuminate more specific details when creating an image. The result is a strong image with vibrant colors and strong contrast points.

Read more from our testing of smart TVs here.

Best streaming stick and device: Roku Ultra ($89.50, originally $99.99; amazon.com)

Roku

We previously named the 2019 version of the Roku Ultra CNN Underscored’s best overall streaming device. With the 2020 version of the Ultra, Roku took another winning approach and made it even more attractive. From the moment you switch it on, the Roku Ultra presents one of the most seamless experiences of any streaming device we tested.

Read more from our testing of streaming sticks and devices here.

PocketGuard

Without question, PocketGuard is our favorite budget app. It’s easy to set up an account and straightforward to use. The app is available from the Apple Store and Google Play, and there’s a desktop version if you get sick of the tiny screen on your phone.

Read more from our testing of budget apps here.

Acer

The Acer XF243Y is one of the least expensive monitors we tested, which was surprising given its high refresh rate, FreeSync and G-Sync compatibility, total lack of screen tearing and overall ease of use. It features a fairly standard 1920 x 1080 23.8-inch IPS panel, but its support for HDR10 makes it a standout option at this price.

Read more from our testing of budget gaming monitors here.

Mike Andronico/CNN

The Yeti consistently delivered warm, bright voice recordings, preserving every detail of our voice without any distortion or crackling. It sounded nearly identical to its more expensive sibling (the $169 Yeti X, which offers more sound customization and LED lighting), and was just a bit richer and crisper than premium rivals like the HyperX QuadCast S.

Read more from our testing of computer microphones here.

Lenovo

After many hours of testing with a multitude of content and workflows, the Lenovo L24q-30 monitor stood out as the best overall option. This 23.8-inch QHD monitor has the chops to handle whatever you need it to, from Word docs to gaming. The Lenovo’s super-slim bezels don’t distract the eye from its vibrant panel, and its relatively small footprint will fit into any workspace. A blue-light filter also helps decrease eye strain, making it ideal for longer workdays.

Read more from our testing of computer monitors here.

Logitech

The Logitech MX Master 3 mouse supports three devices over Bluetooth and lets you switch between them with a single button on the mouse’s underside. It’s also compatible with Logitech’s Flow software, which lets you control multiple computers and drag and drop files between them. It even works cross-platform; in our testing, we used a Windows desktop and a MacBook Air.

Read more from our testing of computer mice here.

Christian De Looper/CNN

The Logitech Z407 computer speakers leverage the company’s years of experience in building computer peripherals, delivering a versatile, high-quality pair of speakers that doesn’t break the bank. Perhaps the best thing about these speakers is how great they sound for the price, boasting relatively crisp highs with a well-tuned mid range.

Read more from our testing of computer speakers here.

Best ergonomic keyboard: Logitech Ergo K860 ($128.99; bestbuy.com)

Best Buy

We found the Logitech Ergo K860 to be a phenomenally comfortable keyboard. Its build, featuring a split keyboard coupled with a wave-like curvature across the body, allows both your shoulders and hands to rest in a more natural position. Add the cozy palm rest along the bottom edge and you’ll find yourself sitting pretty comfortably.

Read more from our testing of ergonomic keyboards here.

Amazon

With access to Amazon’s vast library, a display that’s adjustable enough to let you read without fatigue in almost any light, easy-to-use controls and a comfortable design, the Kindle Oasis is the best e-reader we’ve tested.

Read more from our testing of e-readers here.

Amazon

The Logitech MX Master 3 is an unequivocally comfortable mouse. It’s shaped to perfection, with special attention to the fingers that do the clicking. Using it felt like our fingers were lounging — with a sculpted ergonomic groove for nearly every finger.

Read more from our testing of ergonomic mice here.

CNN

The WD My Passport solid-state drive is not the cheapest external drive on the market, but its somewhat lofty price brings big returns. Files transfer quickly: We were able to back up Word documents in just a few seconds, full photo albums in less than 20 seconds and even large video files in under a minute. The WD My Passport has enough space to store all your files, packing close to 100,000 photo files or, in our case, two backups of our entire library.

Read more from our testing of external hard drives here.

Logitech

The full-size, full-featured Logitech MX Keys keyboard offers a terrific typing experience, easy device switching, and simple customization.

Read more from our testing of keyboards here.

Amazon

The entry-level M1-powered MacBook Air keeps the same exact build of the previous Air, including the Magic Keyboard that’s truly a treat to type on. But this new model removes the fan and swaps out the Intel chip for the M1, the first Apple Silicon processor. Apple’s M1 chip sets a new standard with blazing performance, and it’s so energy efficient that it stays cool enough that the new Air doesn’t need a cooling fan. That’s something we haven’t encountered on a Mac before.

Read more from our testing of laptops here.

Whitson Gordon/CNN

Anker’s Powerline II is a basic cable that does everything well, without any bells and whistles that increase the cost. The 6-foot cable does come in three colors, though: white, green and black — alongside a 3-foot version that comes in white and black. We stress tested the cables with some hard tugs and some tight bends, and it felt like it would hold up well over time, where other cables might break down and fray at the ends.

Read more from our testing of lightning cables here.

Amazon

The MacBook Air with M1 is a budget laptop that can take on any task — from web browsing to productivity to 4K video editing. And if you’re in the Apple ecosystem, it will work perfectly with other Apple devices.

Read more from our testing of MacBooks here.

Best mesh Wi-Fi router: Eero 6 and two extenders ($195, originally $279; amazon.com)

Eero

With its foolproof setup process, nearly unrivaled speeds and coverage areas, Eero 6 is your best bet when opting for a mesh router. It’s an investment but one that will last for several years, thanks to the latest standards being supported inside.

Read more from our testing of mesh Wi-Fi routers here.

Steelcase

The Steelcase Series 1 chair scored among the highest overall, standing out as one of the most customizable, high-quality, comfortable office chairs on the market. The Steelcase Series 1 beat out most of its pricier competitors across testing categories, scoring less than a single point lower than our highest-rated chair, the Steelcase Leap, easily making it the best bang for the buck and a clear winner for our best office chair.

Read more from our testing of office chairs here.

1Password

1Password offers the total package: security, usability, features and pricing. After signing up for your account, which includes the option for a free 14-day trial, you can download an app or a browser extension. The apps and extensions are used to create, fill and store your complex passwords so you don’t have to remember them.

Read more from our testing of password managers here.

Ultimate Ears

The UE Boom 3 gives you robust, 360-degree sound in a waterproof, dust-proof canister that you can take everywhere. It’s pretty much everything you could want in a Bluetooth speaker for the price.

Read more from our testing of portable Bluetooth speakers here.

Jake Krol/CNN

The HP Envy Pro 6455 is a feature-filled and reliable unit that proves you don’t need to spend a ton for great performance. As an all-in-one unit it offers quality prints across text and visually heavy tasks alike, while also being able to scan and copy with ease.

Read more from our testing of printers here.

Amazon

The Emart 10-Inch Standing Ring Light comes with a tripod that’s fully adjustable — from 19 inches to 50 inches — making it a great option whether you’re setting it atop your desk for video calls or need some overhead lighting so no weird shadows creep into your photos. Its three light modes (warm, cool and a nice mix of the two), along with 11 brightness levels (among the most settings on any of the lights we tested), ensure you’re always framed in the right light.

Read more from our testing of ring lights here.

Best standing desk: Branch Adjustable Standing Desk ($699; branchfurniture.com)

Branch Furniture

Branch’s standing desk comes in two sizes, a handful of colors, and shows a high level of craftsmanship. It has a sturdy build and a design that doesn’t distract. It starts with the desktop, which, as tested, is a 48-inch-wide by 30-inch-deep particle board laminate. You can also opt for white or a dark walnut finish. What’s lovely about this desk is that the depth is wider than the average desk, making it easy for it to hold multiple monitors, a laptop (maybe a tablet as well) and a notebook, with room to spare.

Read more from our testing of standing desks here.

Apple

The new ninth-generation Apple iPad keeps the classic design and a quality display but upgrades the front-facing camera and tosses in a faster chip, the A13 Bionic, which should keep this tablet working for many years to come. Most importantly, the price still starts at $329 with 64GB of internal storage. Last year that only got you 32GB, which filled up way too fast. It’s plenty of iPad for most users.

Read more from our testing of tablets here.

TurboTax

Throughout the entire process, TurboTax is the easiest to use, helping you figure out which forms you need in a customer-friendly way and offering live customer support whenever you need it. From the moment you arrive at the TurboTax website, the company holds your hand to help you figure out the right software version to use for your specific taxes.

Read more from our testing of tax software here.

Anker

Anker’s Powerline + USB-C cable is durable and functional, with a braided jacket, robust connectors, and handles up to 60 watts of power for fast charging. And it’s backed by a lifetime warranty.

Read more from our testing of USB-C cables here.

Satechi

If you’re looking to expand the functionality of a 13-inch laptop (such as a MacBook Air or Dell XPS 13), the Satechi Multi-Port Adapter V2 is the best hub of its kind we tested in terms of overall speed and reliability. Satechi’s sleek “Space Gray” hub stands out against the rest of our testing pool, having one of the sleekest designs and some of the fastest data transfer speeds.

Read more from our testing of USB-C hubs here.

Logitech

The Logitech C920S is the best webcam for most people, delivering excellent picture quality in both bright and dim lighting conditions. Its design is sturdy and versatile, and it has some handy companion software for customizing your shots.

Read more from our testing of webcams here.

Dell

The Dell XPS 13 packs a gorgeous, lightweight, slim and highly portable design for working anywhere, a nearly borderless display that makes content pop and a powerful 11th Gen Intel processor that can burn through most workloads with ease.

Read more from our testing of Windows laptops here.

(function(){
  function addScript({ async, defer, name, src, ucStates, id, data }) {
    try {
      if (src && typeof src === 'string') {
        if (ucStates && ucStates.length) {
          WM.UserConsent.addScript({ src, async, defer }, ucStates);
        } else {
          const script = document.createElement('script');
          script.src = src;
          script.dataset.uid = name;
          script.async = async;
          script.defer = defer;
          script.onload = () => {window.dispatchEvent(new CustomEvent(name+'.loaded'));};
          if (id) {
            script.id = id;
          }
          if (data && typeof data === 'object') {
            Object.keys(data).forEach(key => script.dataset[key] = data[key]);
          }
          document.head.appendChild(script);
        }
      }
    } catch(e) {
      console.error('ExternalScripts: error adding script "' + name + '"', e);
    }
  };
//snippet: user-consent
    window.WM=window.WM||{},function(e,o){"use strict";var n;"function"!=typeof e.CustomEvent&amp;&amp;((n=function(e,n){var t;return n=n||{bubbles:!1,cancelable:!1,detail:void 0},(t=o.createEvent("CustomEvent")).initCustomEvent(e,n.bubbles,n.cancelable,n.detail),t}).prototype=e.Event.prototype,e.CustomEvent=n,"function"!==e.Event&amp;&amp;(e.Event=n))}(window,document),window.WM.UserConsent=window.WM.UserConsent||function(y,C){"use strict";var I,k={},v=!1,f=[],m=0,b=null,h=null,S="",E={},T="",A="",D="",x=!1,O=!1,w=!1,n=!1,L="",t="3.1.12",M=null,P=!1,U=!1,R=null,_="",G={brand:"",categories:{req:"required",ven:"vendor",p1:"data-store",p2:"ads-contextual",p3:"ads-person-prof",p4:"ads-person",p5:"content-person-prof",p6:"content-person",p7:"measure-ads",p8:"measure-content",p9:"measure-market",p10:"product-develop",sp1:"product-security",sp2:"deliver-content",f1:"combine-data",f2:"link-devices",f3:"id-devices",sf1:"geolocate",sf2:"scan-devices"},ccCookie:"countryCode",compatCategories:{"ads-general":["ads-contextual","ads-person","ads-measure"],"ads-vendor":["vendor","ads-contextual","ads-person","ads-measure"],"behavior-general":["content-person"],"behavior-vendor":["vendor","content-person"],"perf-general":["measure-content","measure-market","product-develop"],"perf-vendor":["vendor","measure-content","measure-market","product-develop"],"person-general":["ads-person-prof","content-person-prof"],"person-vendor":["vendor","ads-person-prof","content-person-prof"],"social-vendor":["vendor"],"storage-general":["data-store"],"storage-vendor":["vendor","data-store"]},confirmCookie:"OptanonAlertBoxClosed",consentChangeAction:null,consentChangeActionDelay:1e3,consentCookie:"OptanonConsent",consentDefaults:{required:!0,vendor:!0,"data-store":!0,"ads-contextual":!0,"ads-person":!0,"ads-person-prof":!0,"content-person":!0,"content-person-prof":!0,"measure-ads":!0,"measure-content":!0,"measure-market":!0,"product-develop":!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0,geolocate:!0,"scan-devices":!0},consentExpireIn:1,consentLinkTitle:"",controlCookie:"OptanonControl",cookieSameSite:"Lax",cookieSecure:!1,enableDebug:!1,enableTransitionCheck:!0,enableWebViewCheck:!0,gdprApplies:!1,gdprIabCookie:"eupubconsent-v2",gdprIabIsGlobal:!1,gdprIabMaxPurposes:10,gdprIabMaxSpecialFeats:2,gdprIabPolicy:2,geoUsedByOneTrust:!0,languageFromBrowser:!0,privacyCenterLinkTitle:"",psmAppId:"",psmEnv:"prod",regionChangeAction:null,regions:[{id:"ccpa",compatCodes:{adv:["ven"],bbv:["ven"],pfv:["ven"],pzv:["ven"],sav:["ven"],smv:["ven"]},compatTransition:{cond:!1,new:"ven",old:"pzv"},consentExpireIn:3,consentImpliedDefaults:{required:!0,"data-store":!0,"ads-contextual":!0,"ads-person":!0,"ads-person-prof":!0,"content-person":!0,"content-person-prof":!0,"measure-ads":!0,"measure-content":!0,"measure-market":!0,"product-develop":!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0,geolocate:!0,"scan-devices":!0},consentLinkTitle:"Do Not Sell My Personal Information",geoMatch:["US","PR","VI","UM",""]},{id:"gdpr",compatCodes:{ad:["p2","p4","p7"],adv:["p2","p4","p7"],bb:["p6"],bbv:["p6"],pf:["p8","p9","p10"],pfv:["p8","p9","p10"],pz:["p3","p5"],pzv:["p3","p5"],sa:["p1"],sav:["p1"]},consentDefaults:{required:!0,vendor:!0,"data-store":!1,"ads-contextual":!1,"ads-person-prof":!1,"ads-person":!1,"content-person-prof":!1,"content-person":!1,"measure-ads":!1,"measure-content":!1,"measure-market":!1,"product-develop":!1,"product-security":!0,"deliver-content":!0,"combine-data":!1,"link-devices":!1,"id-devices":!1,geolocate:!1,"scan-devices":!1},consentImpliedDefaults:{required:!0,vendor:!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0},consentLinkTitle:"Manage Cookies+",gdprApplies:!0,geoMatch:["GB","DE","FR","IT","ES","PL","RO","NL","BE","GR","CZ","PT","SE","HU","AT","BG","DK","FI","SK","IE","HR","LT","SI","LV","EE","CY","LU","MT","NO","IS","LI"]},{id:"global",geoMatch:["*"]}],reloadOnConsentChange:!0,scCookie:"stateCode",useIAB:!0,uspApiCookieName:"usprivacy",uspApiExplicitNotice:!0,uspApiIsLspa:!1};function W(e){var n=Array.prototype.slice.call(arguments);n[0]="[WMUC]"+(0===T.length?"":" ("+T+")")+":",("error"===e?console.error:console.log).apply(console,n)}function p(e){return!!Number(e)}function d(e){return parseInt(e,2)||0}function l(e){return 100*d(e)}function g(e){for(var n="A".charCodeAt(),t=e.match(/.{6}/g),o="",r=0;r&lt;t.length;r++)o+=String.fromCharCode(d(t[r])+n);return o}function B(e){for(var n=e.split(&quot;&quot;),t={},o=0;o&lt;n.length;o++)p(n[o])&amp;&amp;(t[o+1]=!0);return t}function z(e){var n,t,o,r,s,i,a=[];if(&quot;string&quot;!=typeof e)return W(&quot;error&quot;,&quot;Invalid TC string specified&quot;),a;for(o=e.split(&quot;.&quot;),r=0;r&lt;o.length;r++){for(n=function(e){if(&quot;function&quot;==typeof y.atob)try{return atob(e.replace(/_/g,&quot;/&quot;).replace(/-/g,&quot;+&quot;))}catch(e){W(&quot;error&quot;,&quot;Failed to decode TC string&quot;)}return&quot;&quot;}(o[r]),s=0,i=&quot;&quot;;s&lt;n.length;s++)t=n.charCodeAt(s).toString(2),i+=&quot;00000000&quot;.slice(0,8-t.length)+t;a.push(i)}return 2!==d(a[0].slice(0,6))?(W(&quot;error&quot;,&quot;Unsupported TC string version&quot;),[]):a}function N(e){for(var t=0,i=function(n,e,t,o){function r(){if(o.pubRestrictionEntry&amp;&amp;o.rangeEntry)for(var e in o.rangeEntry)Object.prototype.hasOwnProperty.call(o.rangeEntry,e)&amp;&amp;(o.pubRestrictionEntry[e]=(o.pubRestrictionEntry[e]||[]).concat(o.rangeEntry[e]));o.numPubRestrictions&amp;&amp;(o.numPubRestrictions--,n.push({key:&quot;purposeId&quot;,size:6},{key:&quot;restrictionType&quot;,size:2},{key:&quot;numEntries&quot;,size:12}))}function s(){o.numEntries?(o.numEntries--,n.push({key:&quot;isRange&quot;,size:1,decoder:p},{key:&quot;startVendorId&quot;,size:16})):r()}function i(){return!o.purposeId||[{purpose:o.purposeId,isAllowed:0!==o.restrictionType,isConsentRequired:1===o.restrictionType,isLegitimateInterestRequired:2===o.restrictionType}]}if(&quot;isRangeEncoding&quot;===e.key)n.push(t?{key:&quot;numEntries&quot;,size:12}:{key:&quot;bitField&quot;,size:o.maxVendorId,decoder:B});else if(&quot;numEntries&quot;===e.key)o.rangeEntry={},s();else if(&quot;isRange&quot;===e.key)t&amp;&amp;n.push({key:&quot;endVendorId&quot;,size:16});else if(&quot;startVendorId&quot;===e.key)o.isRange||(o.rangeEntry[t]=i(),s());else if(&quot;endVendorId&quot;===e.key){for(var a=o.startVendorId;a&lt;=o.endVendorId;a+=1)o.rangeEntry[a]=i();s()}else&quot;numCustomPurposes&quot;===e.key?n.push({key:&quot;customPurposeConsents&quot;,size:o.numCustomPurposes,decoder:B},{key:&quot;customPurposeLegitimateInterests&quot;,size:o.numCustomPurposes,decoder:B}):&quot;numPubRestrictions&quot;===e.key&amp;&amp;(o.pubRestrictionEntry={},r())},a=function(e){return e.pubRestrictionEntry||e.rangeEntry||e.bitField||e},c=function(e,n){n=n.slice(t,t+e.size);return t+=e.size,(e.decoder||d)(n)},n=function(e,n){for(var t,o,r={},s=0;s&lt;e.queue.length;s++)o=function(e,n){var t,o,r,s={};if(!e.queue)return c(e,n);for(t=0;t&lt;e.queue.length;t+=1)o=e.queue[t],r=c(o,n),s[o.key]=r,i(e.queue,o,r,s);return a(s)}(t=e.queue[s],n),r[t.key]=o,i(e.queue,t,o,r);return a(r)},o=z(e),r=function(e){for(var n=[{key:&quot;purposeConsents&quot;,size:24,decoder:B},{key:&quot;purposeLegitimateInterests&quot;,size:24,decoder:B}],t=[{key:&quot;version&quot;,size:6},{key:&quot;created&quot;,size:36,decoder:l},{key:&quot;lastUpdated&quot;,size:36,decoder:l},{key:&quot;cmpId&quot;,size:12},{key:&quot;cmpVersion&quot;,size:12},{key:&quot;consentScreen&quot;,size:6},{key:&quot;consentLanguage&quot;,size:12,decoder:g},{key:&quot;vendorListVersion&quot;,size:12},{key:&quot;policyVersion&quot;,size:6},{key:&quot;isServiceSpecified&quot;,size:1,decoder:p},{key:&quot;useNonStandardStacks&quot;,size:1,decoder:p},{key:&quot;specialFeatureOptins&quot;,size:12,decoder:B}].concat(n).concat({key:&quot;purposeOneTreatment&quot;,size:1,decoder:p},{key:&quot;publisherCountryCode&quot;,size:12,decoder:g}),o=[].concat([{size:3}]).concat(n).concat({key:&quot;numCustomPurposes&quot;,size:6}),r=[{key:&quot;core&quot;,queue:t}],s=1;s&lt;e.length;s++)3===d(e[s].slice(0,3))&amp;&amp;r.push({key:&quot;publisherTC&quot;,queue:o});return r}(o),s={},u=0;u&lt;r.length;u++)s[r[u].key]=n(r[u],o[u]),t=0;return s}function V(e){e=new RegExp(&quot;(^|;) *&quot;+e+&quot; *= *([^;]+)&quot;),e=C.cookie.match(e);return e?e.pop():null}function o(e,n,t){e&amp;&amp;(C.cookie=e+&quot;=&quot;+(&quot;string&quot;==typeof n?n:&quot;&quot;)+&quot;; Domain=&quot;+((t=t||{}).domain||k.cookieDomain)+&quot;; Path=&quot;+(t.path||&quot;/&quot;)+(t.maxage?&quot;; Max-Age=&quot;+t.maxage:t.expires?&quot;; Expires=&quot;+t.expires:&quot;&quot;)+(t.secure?&quot;; Secure&quot;:&quot;&quot;)+(t.samesite?&quot;; SameSite=&quot;+t.samesite:&quot;&quot;))}function F(e){for(var n=0,t={},n=0;n&lt;I.length;n++)t[I[n]]=e[I[n]];return t}function q(){var e,n,t,o,r,s,i,a,c,u,p,d,l=[],g=[],C=V(k.consentCookie),f=!1,m=!1,b=!1;if(C&amp;&amp;-1!==C.indexOf(&quot;&amp;groups=&quot;)||!0===k.useExternalConsent||(v=!1,h=null),!0===k.useExternalConsent&amp;&amp;(C=&quot;groups=&quot;+encodeURIComponent(y.OTExternalConsent.groups)),!1===v?(p=F(k.consentDefaults),m=!0):k.gdprApplies&amp;&amp;k.useIAB&amp;&amp;k.gdprIabCookie&amp;&amp;(p=function(e){var n,t,o,r=null;if(&quot;string&quot;==typeof e&amp;&amp;0!==e.length)if(e=!0===k.useExternalConsent&amp;&amp;y.OTExternalConsent.tcString?(L=y.OTExternalConsent.tcString,&quot;external consent&quot;):(L=V(e),'&quot;'+e+'&quot; cookie'),L)if((o=N(L))&amp;&amp;o.core&amp;&amp;o.core.policyVersion===k.gdprIabPolicy&amp;&amp;o.core.purposeConsents){for(k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Processed TC string from &quot;+e+&quot;: &quot;,o),r=F(k.consentImpliedDefaults),o.core.purposeLegitimateInterests=o.core.purposeLegitimateInterests||{},o.core.specialFeatureOptins=o.core.specialFeatureOptins||{},n=1;n&lt;=k.gdprIabMaxPurposes;n++)r[t=k.categories[&quot;p&quot;+n.toString(10)]]=&quot;boolean&quot;==typeof o.core.purposeConsents[n]?o.core.purposeConsents[n]:&quot;boolean&quot;==typeof o.core.purposeLegitimateInterests[n]?o.core.purposeLegitimateInterests[n]:&quot;boolean&quot;==typeof k.consentImpliedDefaults[t]&amp;&amp;k.consentImpliedDefaults[t];for(n=1;n&lt;=k.gdprIabMaxSpecialFeats;n++)r[t=k.categories[&quot;sf&quot;+n.toString(10)]]=&quot;boolean&quot;==typeof o.core.specialFeatureOptins[n]?o.core.specialFeatureOptins[n]:&quot;boolean&quot;==typeof k.consentImpliedDefaults[t]&amp;&amp;k.consentImpliedDefaults[t]}else W(&quot;error&quot;,&quot;Error: Invalid TC string in &quot;+e+&quot;.&quot;),L=&quot;&quot;;else L=&quot;&quot;;return r}(k.gdprIabCookie))?m=!0:p=function(e,n){var t=0;if(n)for(e=e||{},t=0;t&lt;I.length;t++)&quot;boolean&quot;==typeof n[I[t]]&amp;&amp;(e[I[t]]=n[I[t]]);return e}(F(k.consentDefaults),k.consentImpliedDefaults),C)for(s=C.split(&quot;&amp;&quot;),r=0;r&lt;s.length;r++)if(u=s[r])if(u=(d=u.split(&quot;=&quot;))[0],d=d[1],!1===m&amp;&amp;&quot;groups&quot;===u&amp;&amp;d){for(a=decodeURIComponent(d).split(&quot;,&quot;),c=0;c&lt;a.length;c++)o=(i=a[c].split(&quot;:&quot;))[0].toLowerCase(),i=&quot;1&quot;===i[1],o&amp;&amp;(k.categories[o]?(p[k.categories[o]]=i,&quot;req&quot;!==o&amp;&amp;(f=!0)):(k.compatTransition&amp;&amp;k.compatTransition.old===o&amp;&amp;k.compatTransition.cond===i&amp;&amp;(b=!0),k.compatCodes[o]&amp;&amp;(l.push(o),g.push(i))));if(!1===f&amp;&amp;0&lt;l.length)for(P=!0,c=0;c&lt;l.length;c++)for(t=k.compatCodes[l[c]],n=0;n&lt;t.length;n++)(e=k.categories[t[n]])&amp;&amp;(p[e]=g[c]);else!0===b&amp;&amp;p[k.categories[k.compatTransition.new]]!==k.compatTransition.cond&amp;&amp;(p[k.categories[k.compatTransition.new]]=k.compatTransition.cond)}else&quot;version&quot;===u&amp;&amp;d?S=d:&quot;isIABGlobal&quot;===u&amp;&amp;(x=&quot;true&quot;===d);return p}function e(){return F(b)}function r(){return O}function j(){return!1===O}function s(){return&quot;ccpa&quot;===k.regId}function u(){return null!==b}function i(e,n){var t,o,r,s,i=!0,a=&quot;iab-&quot;+k.regId,c=&quot;not ready&quot;;if(u()&amp;&amp;e)for(e=Array.isArray(e)?e:[e],s=0;s&lt;e.length&amp;&amp;!0===i;s++)if((c=e[s])&amp;&amp;&quot;required&quot;!==c)if(&quot;iab&quot;===c||c===a){if(k.useIAB&amp;&amp;(!n||!n.ignoreIAB))break}else if(&quot;boolean&quot;==typeof b[c]&amp;&amp;!1===b[c])i=!1;else if(k.compatCategories[c])for(r=k.compatCategories[c],t=0;t&lt;r.length;t++)if(o=r[t],&quot;boolean&quot;==typeof b[o]&amp;&amp;!1===b[o]){i=!1;break}return k.debug&amp;&amp;((n=n||{}).name=n.name||n.id||&quot;unnamed&quot;,f.push({ts:new Date,act:n.cact||&quot;CHK&quot;,desc:n.name,res:i,note:!i&amp;&amp;c||&quot;&quot;}),W(&quot;debug&quot;,!0===i?&quot;Check for consent [&quot;+(e&amp;&amp;e.join(&quot;,&quot;)||&quot;empty&quot;)+'] ALLOWS &quot;'+n.name+'&quot;'+(&quot;ADD&quot;===n.cact?&quot;, script added&quot;:&quot;&quot;):&quot;Check for consent [&quot;+(e&amp;&amp;e.join(&quot;,&quot;)||&quot;empty&quot;)+'] REJECTS &quot;'+n.name+'&quot;'+(&quot;ADD&quot;===n.cact?&quot;, script NOT added&quot;:&quot;&quot;))),i}function J(){var e=s()?!0===U?(b.vendor?y.WM.CDP.ccpaShareData():y.WM.CDP.ccpaDoNotShare(),y.WM.CDP.getUSPString()):&quot;1&quot;+(k.uspApiExplicitNotice?&quot;Y&quot;:&quot;N&quot;)+(b.vendor?&quot;N&quot;:&quot;Y&quot;)+(k.uspApiIsLspa?&quot;Y&quot;:&quot;N&quot;):&quot;1---&quot;;return j()&amp;&amp;e!==_&amp;&amp;(_=e,!1===U&amp;&amp;null===R&amp;&amp;o(k.uspApiCookieName,e,{domain:k.cookieDomain,path:&quot;/&quot;,samesite:k.cookieSameSite,secure:k.cookieSecure}),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;USP string updated: &quot;,e)),_}function H(){y.location.reload()}function Y(e){var n;return!y.frames[e]&amp;&amp;(C.body?((n=C.createElement(&quot;iframe&quot;)).style.cssText=&quot;display:none&quot;,n.name=e,C.body.appendChild(n)):setTimeout(Y.bind(y,e),5),!0)}function Z(e){for(var n=null,t=y;t;t=t.parent){try{if(t.frames&amp;&amp;t.frames[e]){n=t;break}}catch(e){}if(t===y.top)break}return n}function K(e){y.addEventListener?y.addEventListener(&quot;message&quot;,e,!1):y.attachEvent(&quot;onmessage&quot;,e)}function Q(e){var n;E=e||{ccpaTCS:_,consentInteractions:m,consentTime:h,consentVersion:S,countryCode:A,region:k.regId,stateCode:D,userConsentVersion:t},j()&amp;&amp;o(k.controlCookie,&quot;ccc=&quot;+E.countryCode+&quot;&amp;csc=&quot;+E.stateCode+&quot;&amp;cic=&quot;+E.consentInteractions+&quot;&amp;otvers=&quot;+E.consentVersion+&quot;&amp;pctm=&quot;+(E.consentTime&amp;&amp;encodeURIComponent(E.consentTime.toISOString())||&quot;0&quot;)+&quot;&amp;reg=&quot;+E.region+&quot;&amp;ustcs=&quot;+encodeURIComponent(E.ccpaTCS)+&quot;&amp;vers=&quot;+E.userConsentVersion,{domain:k.cookieDomain,expires:(e=k.consentExpireIn,(n=n?new Date(n):new Date).setUTCFullYear(n.getUTCFullYear()+e),n.toUTCString()),path:&quot;/&quot;,samesite:k.cookieSameSite,secure:k.cookieSecure})}function X(){var e=null,n=V(k.confirmCookie);return&quot;string&quot;==typeof n&amp;&amp;0!==n.length&amp;&amp;(e=new Date(n),!1===y.isNaN(e.valueOf()))?e:null}function a(){var e,n,t=X(),o=!1,r=0&lt;y.WM.UserConsent_wrapproc?new Date(y.WM.UserConsent_wrapproc):null,s=v,i=h;for(y.WM.UserConsent_wrapproc=0,t&amp;&amp;(null===h||h&lt;t)&amp;&amp;(v=!0,h=t),n=q(),e=0;e<I>h.getTime()+k.consentChangeActionDelay+1e3)&amp;&amp;(h=r),r=b,b=n,J(),Q(),!0===o){if(!0===k.debug)try{f.push({ts:new Date,act:"CHG",desc:JSON.stringify(n),res:k.reloadOnConsentChange,note:"function"==typeof k.consentChangeAction?"change function":""})}catch(e){W("error","Failed to track consent change: ",e)}if("function"==typeof k.consentChangeAction&amp;&amp;k.consentChangeAction(F(b),k.regId,S,r),C.dispatchEvent(new CustomEvent("userConsentChanged",{bubbles:!1,cancelable:!1,detail:{region:k.regId,time:h,old:r,new:F(b),usp:_,tcf:L}})),!0===k.reloadOnConsentChange)setTimeout(H,100);else if(j())try{y.sessionStorage.setItem("_ucWMCons",JSON.stringify({consentState:b,consentTime:h,consentVersion:S,iabIsGlobal:x})),y.postMessage("_ucWMConsReset","*")}catch(e){W("error","Failed to update session storage and notify children of consent change: ",e)}}}else h=i,(!E.region||!E.consentVersion&amp;&amp;S||!E.userConsentVersion||E.userConsentVersion&lt;&quot;3.1.1&quot;)&amp;&amp;Q()}function c(e){var n,t,o,r,s,i,a,c,u,p,d=C.getElementsByTagName(&quot;head&quot;)[0],l=C.createElement(&quot;script&quot;),g=null;if(null===b){if(null!==(s=Z(&quot;_usrConWM&quot;))){T=y.name||&quot;child&quot;;try{r=JSON.parse(y.sessionStorage.getItem(&quot;_ucWMConf&quot;))}catch(e){r=null,W(&quot;error&quot;,&quot;Failed to parse parent frame consent settings.&quot;)}if(&quot;object&quot;==typeof r&amp;&amp;null!==r){e.countryCode=r.countryCode,e.cookieDomain=r.cookieDomain,e.cookieSameSite=r.cookieSameSite,e.cookieSecure=r.cookieSecure,e.domId=r.domId,e.languageFromBrowser=r.langFromBrowser,e.enableDebug=r.enableDebug,e.regId=r.regId,e.stateCode=r.stateCode,e.src=r.src;try{i=JSON.parse(y.sessionStorage.getItem(&quot;_ucWMCons&quot;))}catch(e){i=null,W(&quot;error&quot;,&quot;Failed to parse parent frame consent state.&quot;)}&quot;object&quot;==typeof i&amp;&amp;null!==i&amp;&amp;(b=i.consentState,h=i.consentTime,S=i.consentVersion,e.gdprIabIsGlobal=i.iabIsGlobal,O=!0),!1===r.parentReload&amp;&amp;K(function(e){var n;if(&quot;_ucWMConsReset&quot;===e.data)if(!0===k.reloadOnConsentChange)setTimeout(H,100);else{try{n=y.sessionStorage.getItem(&quot;_ucWMCons&quot;)}catch(e){n=null}&quot;object&quot;==typeof n&amp;&amp;null!==n&amp;&amp;(b=n.consentState,h=n.consentTime,S=n.consentVersion,J())}})}}if(!(e&amp;&amp;e.src&amp;&amp;e.domId&amp;&amp;e.cookieDomain))throw new Error(&quot;Invalid config passed to user-consent!&quot;);if(k.cookieDomain=e.cookieDomain,k.cookieSameSite=e.cookieSameSite||G.cookieSameSite,k.cookieSecure=(&quot;boolean&quot;==typeof e.cookieSecure?e:G).cookieSecure,k.debug=!(!console||!e.enableDebug&amp;&amp;-1===y.location.search.search(/[?&amp;]wmuc_debug=[1t]/)),&quot;object&quot;==typeof y.GetExternalConsent&amp;&amp;null!==y.GetExternalConsent&amp;&amp;&quot;function&quot;==typeof y.GetExternalConsent.oneTrustCookie){try{t=JSON.parse(y.GetExternalConsent.oneTrustCookie())}catch(e){t=null}&quot;object&quot;==typeof t&amp;&amp;null!==t&amp;&amp;t.consentedDate&amp;&amp;(t.tcString||t.groups)&amp;&amp;(y.OTExternalConsent=t),&quot;function&quot;==typeof y.GetExternalConsent.countryCode&amp;&amp;y.GetExternalConsent.countryCode()&amp;&amp;(y.ExternalConsentGeo={countryCode:y.GetExternalConsent.countryCode(),stateCode:y.GetExternalConsent.stateCode()||&quot;&quot;})}for((&quot;boolean&quot;==typeof e.enableWebViewCheck?e:G).enableWebViewCheck&amp;&amp;&quot;object&quot;==typeof y.OTExternalConsent&amp;&amp;null!==y.OTExternalConsent&amp;&amp;y.OTExternalConsent.consentedDate?(k.useExternalConsent=!0,k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Reading consent from external consent data: &quot;,y.OTExternalConsent)):k.useExternalConsent=!1,k.geoUsedByOneTrust=(&quot;boolean&quot;==typeof e.geoUsedByOneTrust?e:G).geoUsedByOneTrust,!0===j()&amp;&amp;!0===k.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_cc=[A-Za-z]{2}/)?W(&quot;debug&quot;,&quot;Set debug CC to: &quot;,A=y.location.search.match(/[?&amp;]wmuc_cc=([A-Za-z]{2})/)[1].toUpperCase()):A=k.useExternalConsent&amp;&amp;&quot;object&quot;==typeof y.ExternalConsentGeo&amp;&amp;&quot;string&quot;==typeof y.ExternalConsentGeo.countryCode&amp;&amp;2===y.ExternalConsentGeo.countryCode.length?y.ExternalConsentGeo.countryCode.toUpperCase():&quot;string&quot;==typeof e.countryCode&amp;&amp;2===e.countryCode.length?e.countryCode.toUpperCase():(i=V(e.ccCookie||&quot;countryCode&quot;))&amp;&amp;2===i.length?i.toUpperCase():(W(&quot;error&quot;,&quot;User-Consent unable to determine country, missing or invalid cookies!&quot;),&quot;US&quot;),k.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_sc=[A-Za-z]{2}/)?W(&quot;debug&quot;,&quot;Set debug SC to: &quot;,D=y.location.search.match(/[?&amp;]wmuc_sc=([A-Za-z]{2})/)[1].toUpperCase()):k.useExternalConsent&amp;&amp;&quot;object&quot;==typeof y.ExternalConsentGeo&amp;&amp;&quot;string&quot;==typeof y.ExternalConsentGeo.stateCode&amp;&amp;2===y.ExternalConsentGeo.stateCode.length?D=y.ExternalConsentGeo.stateCode.toUpperCase():&quot;string&quot;==typeof e.stateCode&amp;&amp;2===e.stateCode.length?D=e.stateCode.toUpperCase():(i=V(e.scCookie||&quot;stateCode&quot;))&amp;&amp;2===i.length?D=i.toUpperCase():k.debug&amp;&amp;W(&quot;debug&quot;,&quot;User-Consent unable to determine state, leaving unset.&quot;),!0===j()&amp;&amp;!0===k.geoUsedByOneTrust&amp;&amp;!1===w&amp;&amp;(y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:A,stateCode:D},i=function(e){!1===w?(w=!0,y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:A,stateCode:D},y.OneTrustStub&amp;&amp;&quot;function&quot;==typeof y.OneTrustStub.setGeoLocation&amp;&amp;y.OneTrustStub.setGeoLocation(A,D),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Set OneTrust geo-location.&quot;)):&quot;function&quot;==typeof y.OptanonWrapper&amp;&amp;y.OptanonWrapper()},y.addEventListener?y.addEventListener(&quot;consent.onetrust&quot;,i,!1):y.attachEvent(&quot;consent.onetrust&quot;,i)),k.categories=e.categories||G.categories,k.regions=e.regions||G.regions,k.consentChangeAction=e.consentChangeAction||G.consentChangeAction,k.consentChangeActionDelay=e.consentChangeActionDelay||G.consentChangeActionDelay,k.controlCookie=e.controlCookie||G.controlCookie,k.brand=e.brand||G.brand||&quot;&quot;,k.psmAppId=e.psmAppId||G.psmAppId||&quot;&quot;,k.psmEnv=e.psmEnv||G.psmEnv||&quot;prod&quot;,k.languageFromBrowser=(&quot;boolean&quot;==typeof e.languageFromBrowser?e:G).languageFromBrowser,k.regionChangeAction=e.regionChangeAction||G.regionChangeAction,k.reloadOnConsentChange=(&quot;boolean&quot;==typeof e.reloadOnConsentChange?e:G).reloadOnConsentChange,n=Object.keys(k.categories),I=[],o=0;o&lt;n.length;o++)I.push(k.categories[n[o]]);for(o=0;o&lt;k.regions.length;o++)if(!0===j()&amp;&amp;function(e){for(var n=0;n&lt;e.length;n++)if(A===e[n].toUpperCase()||&quot;*&quot;===e[n])return 1}(k.regions[o].geoMatch)||!0===O&amp;&amp;k.regions[o].id===e.regId){g=k.regions[o];break}if(!g){if(O)throw new Error(&quot;No matching user-consent region, parent and iframe configs do not match!&quot;);throw new Error(&quot;No matching user-consent region!&quot;)}if(k.regId=g.id,k.compatTransition=(e.enableTransitionCheck||G.enableTransitionCheck)&amp;&amp;g.compatTransition?g.compatTransition:null,k.compatCategories=g.compatCategories||e.compatCategories||G.compatCategories||{},k.compatCodes=g.compatCodes||e.compatCodes||G.compatCodes||{},k.consentExpireIn=g.consentExpireIn||e.consentExpireIn||G.consentExpireIn||1,k.consentLinkAction=g.consentLinkAction||e.consentLinkAction||null,k.consentLinkTitle=g.consentLinkTitle||e.consentLinkTitle||G.consentLinkTitle,k.confirmCookie=g.confirmCookie||e.confirmCookie||G.confirmCookie,k.consentCookie=g.consentCookie||e.consentCookie||G.consentCookie,k.consentDefaults=g.consentDefaults||e.consentDefaults||G.consentDefaults,k.consentImpliedDefaults=g.consentImpliedDefaults||G.consentImpliedDefaults||k.consentDefaults,k.domId=g.domId||e.domId,k.gdprIabCookie=g.gdprIabCookie||e.gdprIabCookie||G.gdprIabCookie,k.gdprIabMaxPurposes=g.gdprIabMaxPurposes||e.gdprIabMaxPurposes||G.gdprIabMaxPurposes,k.gdprIabMaxSpecialFeats=g.gdprIabMaxSpecialFeats||e.gdprIabMaxSpecialFeats||G.gdprIabMaxSpecialFeats,k.gdprIabPolicy=g.gdprIabPolicy||e.gdprIabPolicy||G.gdprIabPolicy,k.privacyCenterLinkAction=g.privacyCenterLinkAction||e.privacyCenterLinkAction||null,k.privacyCenterLinkTitle=g.privacyCenterLinkTitle||e.privacyCenterLinkTitle||G.privacyCenterLinkTitle,k.src=g.src||e.src,k.useIAB=(&quot;boolean&quot;==typeof e.useIAB?e:G).useIAB,k.uspApiExplicitNotice=e.uspApiExplicitNotice||G.uspApiExplicitNotice,k.uspApiIsLspa=e.uspApiIsLspa||G.uspApiIsLspa,k.uspApiCookieName=e.uspApiCookieName||G.uspApiCookieName,k.gdprApplies=(&quot;boolean&quot;==typeof g.gdprApplies?g:&quot;boolean&quot;==typeof e.gdprApplies?e:G).gdprApplies,x=e.gdprIabIsGlobal||G.gdprIabIsGlobal||!1,k.debug&amp;&amp;(W(&quot;debug&quot;,&quot;GeoIP Country Code: &quot;+A+&quot;, using consent region: &quot;+k.regId),W(&quot;debug&quot;,&quot;IAB &quot;+(k.useIAB?&quot;enabled&quot;:&quot;disabled&quot;))),!0===j()){if(k.psmAppId&amp;&amp;y.WM.CDP&amp;&amp;&quot;function&quot;==typeof y.WM.CDP.initPsm&amp;&amp;&quot;function&quot;==typeof y.WM.CDP.isPrivacyEnabled&amp;&amp;!k.useExternalConsent){try{y.WM.CDP.initPsm(k.psmAppId,k.brand,k.psmEnv,k.cookieDomain,A),U=y.WM.CDP.isPrivacyEnabled(),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;PSM found and initialized.  Privacy is &quot;+(U?&quot;enabled.&quot;:&quot;disabled.&quot;))}catch(e){U=!1,W(&quot;error&quot;,&quot;PSM found but failed to initialize: &quot;,e)}U&amp;&amp;(&quot;string&quot;!=typeof(u=y.WM.CDP.getUSPString())||0===u.length?U=!1:_=u,k.debug&amp;&amp;W(&quot;debug&quot;,&quot;PSM privacy enabled &quot;+(U?&quot;so using.&quot;:&quot;but not working so ignoring it.&quot;)))}else k.debug&amp;&amp;W(&quot;debug&quot;,&quot;PSM not found.&quot;);if(E=function(){var n,e,t,o,r={consentInteractions:m,consentTime:null,consentVersion:&quot;&quot;,countryCode:&quot;&quot;,region:&quot;&quot;,stateCode:&quot;&quot;,userConsentVersion:&quot;&quot;},s=V(k.controlCookie);if(&quot;string&quot;==typeof s&amp;&amp;0!==s.length)for(t=s.split(&quot;&amp;&quot;),e=0;e&lt;t.length;e++)if(&quot;string&quot;==typeof(o=t[e].split(&quot;=&quot;))[0]&amp;&amp;0!==o[0].length&amp;&amp;&quot;string&quot;==typeof o[1])switch(o[0]){case&quot;ccc&quot;:r.countryCode=o[1].toLowerCase();break;case&quot;csc&quot;:r.stateCode=o[1].toLowerCase();break;case&quot;cic&quot;:r.consentInteractions=parseInt(o[1],10),(isNaN(r.consentInteractions)||r.consentInteractionsh)?(h=E.consentTime,k.debug&amp;&amp;W("debug",'Consent time read from "'+k.controlCookie+'": ',h)):null!==h&amp;&amp;k.debug&amp;&amp;W("debug",'Consent time read from "'+k.confirmCookie+'": ',h);if(null!==h?(v=!0,b=q(),!0===v?(l.async=!0,null!==E.consentTime&amp;&amp;E.consentTime&lt;h&amp;&amp;(E.region=&quot;&quot;),k.debug&amp;&amp;(W(&quot;debug&quot;,'Consent state read from &quot;'+(k.useExternalConsent?&quot;external consent&quot;:k.consentCookie)+'&quot; ('+S+&quot;): &quot;,b),P&amp;&amp;W(&quot;debug&quot;,&quot;Consent state using compatibility config.&quot;))):(h=null,E.region=&quot;&quot;,k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Consent state expired or removed, reset from defaults: &quot;,b))):(b=F(k.consentDefaults),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Consent state from defaults: &quot;,b)),k.debug)try{f.push({ts:new Date,act:&quot;SET&quot;,desc:JSON.stringify(b),res:null!==h,note:k.regId})}catch(e){W(&quot;error&quot;,&quot;Failed to track setting initial consent: &quot;,e)}}if(y.WM.UserConsent_initted)W(&quot;error&quot;,&quot;ERROR:  Second instance of UserConsent initialized!&quot;);else{if(y.WM.UserConsent_initted=!0,k.useIAB&amp;&amp;(p=function(o,r){var s,n,i=&quot;string&quot;==typeof r.data,e=o+&quot;Call&quot;;try{n=i?JSON.parse(r.data):r.data}catch(e){n={}}&quot;object&quot;==typeof n&amp;&amp;null!==n&amp;&amp;n[e]&amp;&amp;(s=n[e],y[o](s.command,s.version,function(e,n){var t={};t[o+&quot;Return&quot;]={returnValue:e,success:n,callId:s.callId};try{r.source.postMessage(i?JSON.stringify(t):t,&quot;*&quot;)}catch(e){W(&quot;error&quot;,&quot;Failed to post reply: &quot;,e)}},s.parameter))},U||(null===(R=Z(&quot;__uspapiLocator&quot;))?(Y(&quot;__uspapiLocator&quot;),y.__uspapi=function(e,n,t){if(&quot;function&quot;==typeof t){if(n=0===n?1:n,&quot;getUSPData&quot;===e&amp;&amp;1===n)return t({version:1,uspString:y.WM.UserConsent.getUspAPIstring()},!0),!0;if(&quot;ping&quot;===e)return t({version:1,uspapiLoaded:!0},!0),!0;t(null,!1)}return!1},y.__uspapi.msgHandler=p.bind(y,&quot;__uspapi&quot;),K(y.__uspapi.msgHandler),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB for CCPA ready.&quot;)):k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB for CCPA ready (via frame).&quot;)),!x&amp;&amp;&quot;gdpr&quot;!==k.regId||(c=P?&quot;1.1&quot;:&quot;2.0&quot;,null===(M=Z((a=P?&quot;__cmp&quot;:&quot;__tcfapi&quot;)+&quot;Locator&quot;))&amp;&amp;&quot;function&quot;!=typeof y[a]?(Y(a+&quot;Locator&quot;),y[a]=function(){var e=arguments,n=0;return y[a].a=y[a].a||[],0&lt;e.length&amp;&amp;(n=0===(n=1&lt;e.length&amp;&amp;parseInt(e[1],10)||0)?2:n,&quot;ping&quot;===e[0]?e[2]({apiVersion:c,gdprApplies:k.gdprApplies,gdprAppliesGlobally:x,cmpLoaded:!1,cmpStatus:&quot;stub&quot;,displayStatus:k.gdprApplies?&quot;hidden&quot;:&quot;disabled&quot;},!0):&quot;setGdprApplies&quot;===e[0]&amp;&amp;3&lt;e.length&amp;&amp;&quot;boolean&quot;==typeof e[3]?k.gdprApplies=e[3]:y[a].a.push([].slice.apply(e))),y[a].a},y[a].msgHandler=p.bind(y,a),K(y[a].msgHandler),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready.&quot;),y[a](&quot;getTCData&quot;,0,y.OptanonWrapper)):M&amp;&amp;k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready (via frame).&quot;))),J(),!0===j()){if(k.useExternalConsent?Q():E.region&amp;&amp;E.region!==k.regId&amp;&amp;(u=E.region,p=k.regId,k.debug&amp;&amp;W(&quot;debug&quot;,'User-Consent detected region change from &quot;'+u+'&quot; to &quot;'+p+'&quot;.'),&quot;function&quot;==typeof k.regionChangeAction&amp;&amp;k.regionChangeAction(u,p,k.consentLinkAction)),null===s&amp;&amp;Y(&quot;_usrConWM&quot;))try{y.sessionStorage.setItem(&quot;_ucWMConf&quot;,JSON.stringify({cookieDomain:k.cookieDomain,cookieSameSite:k.cookieSameSite,cookieSecure:k.cookieSecure,countryCode:A,domId:k.domId,enableDebug:k.debug,langFromBrowser:k.languageFromBrowser,parentReload:k.reloadOnConsentChange,regId:k.regId,src:k.src,stateCode:D})),y.sessionStorage.setItem(&quot;_ucWMCons&quot;,JSON.stringify({consentState:b,consentTime:h,consentVersion:S,iabIsGlobal:x}))}catch(e){W(&quot;error&quot;,&quot;Failed to set UserConsent frame data!&quot;)}!(l.charset=&quot;utf-8&quot;)===k.languageFromBrowser&amp;&amp;(l.dataset.documentLanguage=&quot;true&quot;),l.dataset.domainScript=k.domId,l.src=k.src,d.appendChild(l)}k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Dispatching UserConsentReady event.&quot;),C.dispatchEvent(new CustomEvent(&quot;userConsentReady&quot;,{bubbles:!1,cancelable:!1,detail:{region:k.regId,time:new Date,consentConfirmed:v}}))}}}return!0===y.WM.UserConsent_loaded?W(&quot;error&quot;,&quot;ERROR:  Second instance of UserConsent loaded!&quot;):(y.WM.UserConsent_loaded=!0,y.WM.UserConsent_wrapproc=0,y.OptanonWrapper=function(){var e;n||(n=!0,k.geoUsedByOneTrust&amp;&amp;y.Optanon&amp;&amp;&quot;function&quot;==typeof y.Optanon.getGeolocationData&amp;&amp;(e=y.Optanon.getGeolocationData())&amp;&amp;e.country!==A&amp;&amp;&quot;function&quot;==typeof y.Optanon.setGeoLocation&amp;&amp;(y.Optanon.setGeoLocation(A,D),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Reset OneTrust geo-location to match site.&quot;)),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Dispatching OptanonLoaded event.&quot;),C.dispatchEvent(new CustomEvent(&quot;optanonLoaded&quot;,{bubbles:!1,cancelable:!1,detail:{region:k.regId,time:new Date,consentConfirmed:v}})),!0===k.useExternalConsent&amp;&amp;!0!==y.Optanon.IsAlertBoxClosed()&amp;&amp;y.Optanon.Close()),null!==b&amp;&amp;0===y.WM.UserConsent_wrapproc&amp;&amp;(y.WM.UserConsent_wrapproc=(new Date).getTime(),setTimeout(a,(&quot;number&quot;==typeof k.consentChangeActionDelay?k:G).consentChangeActionDelay))},&quot;object&quot;==typeof y.WM.UserConsentConfig&amp;&amp;null!==y.WM.UserConsentConfig&amp;&amp;c(y.WM.UserConsentConfig)),{addScript:function(e,n,t){var o,r,s,t=t||C.head;if(e&amp;&amp;(e.src||e.text)){if(!0===i(n,{cact:&quot;ADD&quot;,name:e.name||e.src||e.id||&quot;unnamed inline&quot;})){for(o=C.createElement(&quot;script&quot;),s=Object.keys(e),r=0;r<s> {
if (
  window.CNN.Zion.apiKey &amp;&amp;
  window.CNN.Zion.environmentType &amp;&amp;
  window.CNN.Zion.sourceId &amp;&amp;
  window.ZION_SDK
) {
  const accessKey = window.CNN.Zion.apiKey;
  const environment = window.ZION_SDK.EnvironmentType[window.CNN.Zion.environmentType];
  const enableLogging = environment !== window.ZION_SDK.EnvironmentType.Prod;

  new window.ZION_SDK.ZionAnalytics(window.ZION_SDK.ClientType.Web, environment, {
    accessKey,
    bridgeEnabled: true,
    bufferSize: 20,
    enabled: true,
    enableLogging,
    trackAdvertising: false,
    trackBluetooth: false,
    trackDeeplink: false,
    trackLifecycle: false,
    trackLocation: false,
    trackNotifications: false,
    trackPurchases: false,
    trackScreens: false,
    trackUxMetrics: true,
    uxMetricsPercentage: 100,
    telemetryEndpoint: window.env.ZION_TELEMETRY_ENDPOINT
  });

  if (window.zion_analytics) {
    window.zion_analytics.track(new window.ZION_SDK.Pageview({
      canonicalUrl: window.CNN.contentModel.canonicalUrl,
      traits: {
        event_source: window.CNN.contentModel.techStack || 'stellar',
        page_variant: window.CNN.contentModel.templateType || '',
        raw_url: window.location.href,
        cms_id: CNN.contentModel.cmsId || '',
        page_type: CNN.contentModel.pageType || '',
        edition: CNN.contentModel.edition,
        section: CNN.contentModel.section || '',
        subsection: CNN.contentModel.subsection || '',
        experience_type: window.location.href.includes('plus') ? 'cnn_plus' : 'cnn_core'
      },
      sourceId: window.CNN.contentModel.sourceId || ''
    }));
  }
} else {
  throw new Error('zion: missing either "apiKey", "environmentType" or "sourceId"');
}

});
})()

    }

//script: fave
addScript({ async: false, defer: true, name: ‘fave’, src: ‘https://registry.api.cnn.io/bundles/fave/latest-4.x/js’ });

//snippet: airship
!function(n,r,e,t,c){var i,o=”Promise”in n,u={then:function(){return u},catch:function(n){ return n(new Error(“Airship SDK Error: Unsupported browser”)),u}},s=o?new Promise((function(n,r){i=function(e,t){e?r(e):n(t)}})):u ;s._async_setup=function(n){if(o)try{i(null,n(c))}catch(n){i(n)}},n[t]=s;var a=r.createElement(“script”);a.src=e,a.async=!0,a.id=”_uasdk”, a.rel=t,r.head.appendChild(a)}(window,document, window.env.AIRSHIP_SRC, ‘UA’, { vapidPublicKey: window.env.AIRSHIP_VAPID_PUBLIC_KEY, websitePushId: window.env.AIRSHIP_WEB_SITE_PUSH_ID, appKey: window.env.AIRSHIP_APP_KEY, token: window.env.AIRSHIP_TOKEN, workerUrl:window.env.AIRSHIP_WORKER }); (function(){const c = { auto: true, position: ‘top’, appearDelay: 5000, stylesheet: ‘https://z.cdn.cnn.com/cnn/tmpl_asset/static/css/vendor/airship.css’, askAgainDelay: 2592000, disappearDelay: 1000, type: ‘alert’, logo: ‘https://z.cdn.cnn.com/cnn/tmpl_asset/static/images/cnn_underscored_stacked_256.png’, i18n: { en: { title: ‘Subscribe to CNN Underscored notifications’, message: ‘Never miss out on a product worth buying or a sale worth shopping by subscribing to our push notifications.’, bubble: ‘Unlock permission to allow notifications’, button: ‘Allow’, accept: ‘Yes, Subscribe me!’, deny: ‘No thanks’}}}; window.UA.then((sdk) => { sdk.plugins.load(‘html-prompt’, ‘https://aswpsdkus.com/notify/v1/ua-html-prompt.min.js’, c).then((plugin) => plugin.prompt(c)); sdk.addEventListener(‘channel’, ev => { sdk.channel.tags.add(‘underscored’); }, { once: true }); }); })();

//snippet: krux-id
if (window.WM.UserConsent.inUserConsentState([‘vendor’,’data-store’,’ads-person-prof’,’ads-person’,’measure-ads’,’measure-content’,’measure-market’])) {
const MODULE_NAME=”Krux Module”,MODULE_VERSION=”v4.1.4″,config={DOM_CONTROLTAG:window.env.KRUX_DOM_CONTROLTAG,INTL_CONTROLTAG:window.env.KRUX_INTL_CONTROLTAG,SEND_VALUES_TO_ZION:window.env.KRUX_SEND_VALUES_TO_ZION};let zionBus,setControlTag,sendValuesToZion,hostname,messageSent=!1,subscribersSet=!1;const readCookie=e=>{let n=!1,t=null;var o;return void 0!==window.localStorage&&(n=!0),”https://www.cnn.com/2021/10/04/cnn-underscored/best-tested-products/undefined”==typeof value&&(n&&(t=window.localStorage.getItem(e)),n&&null!==t||(o=e,t=”https://www.cnn.com/2021/10/04/cnn-underscored/best-tested-products/undefined”!=typeof document&&document.cookie&&document.cookie.match(RegExp(${o}=.*?;))?document.cookie.match(RegExp(${o}=.*?;))[0].replace(RegExp(${o}=|;,”g”),””):null)),t},setHostAndPathNames=()=>{const e=”https://www.cnn.com/2021/10/04/cnn-underscored/best-tested-products/undefined”!=typeof document?document.createElement(“a”):{href:””,hostname:””,pathname:””};e.href=”https://www.cnn.com/2021/10/04/cnn-underscored/best-tested-products/undefined”!=typeof document?document.location.href:””,hostname=e.hostname},countryCode=readCookie(“countryCode”)||(readCookie(“CG”)?readCookie(“CG”).substr(0,2):””),getURLParam=e=>{if(“https://www.cnn.com/2021/10/04/cnn-underscored/best-tested-products/undefined”==typeof document)return””;const n=e.replace(/[[]/,”[“).replace(/[]]/,”]”),t=new RegExp([?&amp;]${n}=([^&amp;#]*));if(document&&document.location&&document.location.search){const e=t.exec(document.location.search);return e?e[1]:””}return””},isIntl=()=>{let e=!1;return setHostAndPathNames(),e=”true”===getURLParam(“isIntl”)||(hostname.search(/^.(edition|edition-m|arabic|cnnespanol|cnne-test)./)>=0||””!==countryCode&&null!==countryCode&&(“US”!==countryCode&&”CA”!==countryCode)),e},piiRE=/(([^()[].,;:[email protected]”]+(.[^()[].,;:[email protected]”]+))|(“.+”))@(([^()[].,;:[email protected]”]+.)+[^()[].,;:[email protected]”]{2,})/i,piiIsPresentInQueryString=()=>{if(document.location.search){const e=document.location.search.search(piiRE)+1;let n;try{n=decodeURIComponent(document.location.search).search(piiRE)+1}catch(t){n=e}return 1===e||1===n}return!1},piiIsPresentInHash=()=>{if(document.location.hash){const e=document.location.hash.search(piiRE)+1;let n;try{n=decodeURIComponent(document.location.hash).search(piiRE)+1}catch(t){n=e}return e||n}return!1},piiIsPresentInReferrer=()=>{if(document.referrer){const e=document.referrer.search(piiRE)+1;let n;try{n=decodeURIComponent(document.referrer).search(piiRE)+1}catch(t){n=e}return e||n}return!1},piiFilter={qs:piiIsPresentInQueryString,hash:piiIsPresentInHash,ref:piiIsPresentInReferrer},retrieve=e=>{const n=kx${e},t=(()=>{try{return window.localStorage}catch(e){return null}})();if(t)return t[n]||””;if(navigator.cookieEnabled){const e=document.cookie.match(${n}=([^;]*));return e&&unescape(e[1])||””}return””},init=e=>{const n=new Promise((n=>{window.Krux||((window.Krux=function(){window.Krux.q.push([arguments])}).q=[]),window.krux_getFWKeyValues=(e,n)=>{window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[];const t=e||”_fwu:386123:”,o=n||35,r={};for(let e=0;e<window.Krux.segments.length;e++)e{let e=”&kxid=”;return window.Krux.user&&(e+=window.Krux.user),e+=&amp;kxseg=${window.kvs.join(",")},e},window.krux_getFWSegments=()=>(window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[],kxseg=${window.Krux.segments.join(",kxseg=")}),window.krux_getUser=()=>(window.Krux.user=retrieve(“user”),window.Krux.user),window.krux_getKuid=()=>(window.Krux.kuid=retrieve(“kuid”),window.Krux.kuid),setControlTag=e=>{const n=document,t=n.createElement(“script”),o=n.getElementsByTagName(“head”)[0];t.type=”text/javascript”,t.async=!0,t.src=`https://cdn.krxd.net/controltag?confid=${e}`,piiFilter.hash()||piiFilter.qs()||piiFilter.ref()||o.appendChild(t)},sendValuesToZion=()=>{window.Krux.user=retrieve(“user”),window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[],window.Krux.kuid=retrieve(“kuid”);const n=window.Krux.user,t=window.Krux.segments.filter((function(e,n){return n{if(e){const n=e.CONTROLTAGS?e.CONTROLTAGS:{DOM:e.DOM_CONTROLTAG,INTL:e.INTL_CONTROLTAG},t=isIntl()?n.INTL:n.DOM;setControlTag(t),e.SEND_VALUES_TO_ZION&&!subscribersSet&&(subscribersSet=!0,window.ZION_SDK?(zionBus=window.ZION_SDK.ZionMessageBus.getInstance(),sendValuesToZion()):window.addEventListener(“zion.loaded”,(()=>{zionBus=window.ZION_SDK.ZionMessageBus.getInstance(),sendValuesToZion()})))}n()})()}));return n.id=”Krux Module v4.1.4″,n};init(config);

    }

//snippet: hyphensocial
(function () {
window.addEventListener(“load”, (event) => {
if (document.location.href.includes(“facebook-paid”)) {
function getURLParameter(e, t) {
return (RegExp(t + “=(.+?)(&|$)”).exec(e) || [, null])[1];
}
function parse_query_string(e) {
for (var t = e.split(“&”), n = {}, a = 0; a -1 || e.indexOf(“FBAV”) > -1;
}
function os_system() {
var e = navigator.userAgent || navigator.vendor || window.opera;
return /windows phone/i.test(e)
? “Windows Phone”
: /android/i.test(e)
? “Android”
: /iPad|iPhone|iPod/.test(e) && !window.MSStream
? “iOS”
: “unknown”;
}
function affSwap() {
(window.aff_params = {}),
(window.base_tag = null),
(window.tag_count = 0);
let e = document
.querySelector(‘[data-editable=”content”]’)
.querySelectorAll(‘a:not([swapped=”true”])’);
if (e.length >= 5) {
for (const t of e) {
let e = [
getURLParameter(t.href.replace(“-20”, “”), “tag”),
getURLParameter(t.href.replace(“|”, “&”), “subId1”),
getURLParameter(t.href.replace(“|”, “&”), “u1”),
getURLParameter(t.href.replace(“|”, “&”), “afftrack”),
].join(“”);
(e in aff_params) & (“” != e)
? ((window.aff_params[e] += 1),
window.aff_params[e] > window.tag_count &&
((tag_count = window.aff_params[e]), (window.base_tag = e)))
: (aff_params[e] = 1);
}
for (const t of e) {
(t.onclick = function () {
fbq(“trackSingleCustom”, “404409197807416”, “affClick”, {
href: t.href,
});
}),
t.setAttribute(“swapped”, !0);
let e = params().utm_term;
if (e && “https://www.cnn.com/2021/10/04/cnn-underscored/best-tested-products/undefined” !== e) {
let n = t.href.replace(base_tag, e);
t.setAttribute(“href”, n);
}
if (
t.href.includes(“amazon”) &
browser() &
(“Android” == os_system())
) {
t.setAttribute(“target”, “_blank”);
let e =
“intent://#Intent;scheme=com.amazon.mobile.shopping.web://amazon.com/o/ASIN/” +
i
.getAttribute(“href”)
.match(“(?:[/dp/]|$)([A-Z0-9]{10})”)[0]
.replace(“/”, “”) +
“/” +
i.getAttribute(“href”).split(“?”)[1].split(“tag=”)[1] +
“/ref=nosim//;end”;
t.setAttribute(“href”, e);
}
}
}
}
!(function (e, t, n, a, r, o, i) {
e.fbq ||
((r = e.fbq =
function () {
r.callMethod
? r.callMethod.apply(r, arguments)
: r.queue.push(arguments);
}),
e._fbq || (e._fbq = r),
(r.push = r),
(r.loaded = !0),
(r.version = “2.0”),
(r.queue = []),
((o = t.createElement(n)).async = !0),
(o.src = “https://connect.facebook.net/en_US/fbevents.js”),
(i = t.getElementsByTagName(n)[0]).parentNode.insertBefore(o, i));
})(window, document, “script”),
fbq(“init”, “404409197807416”),
fbq(“track”, “PageView”),
affSwap(),
setInterval(affSwap, 5e3);
}
});
})();

}())

Leave a Reply