North-Brothers-Logo

Transform Your Water with a Reverse Osmosis Drinking Water System…

And Create Delicious, Healthy Water Free of up to 99% of Common Contaminants Found In Our Local Water.

Better Water Alaska offers a variety of installed drinking water systems designed to remove contaminants from the water your family drinks. Installed drinking water systems can be tucked away under the kitchen counter, saving you valuable kitchen space.

The perfect complement to a water refiner or water softener for the water-conscious family is a reverse osmosis drinking water system. Our exclusive line of reverse osmosis water purifier systems are specifically designed to provide clean, clear, better-tasting drinking water by removing more than 95% of dissolved solids including many harmful contaminants. Now you can have bottle-quality water at your tap.

With a Water Reverse Osmosis System, You Get:

  • Semi-permeable membranes to reject solids
  • Four-stage water filtration
  • Specially formulated pre and post-filters to reduce contaminants, eliminate odors, and improve the taste.
  • Automatic shut-off to conserve water
  • Space-saving designs

Here’s How Reverse Osmosis Works:

  1. Household water is directed through a pre-filter for filtration to remove sediment, chlorine taste and odor, and particulate matter.
  2. Final polishing of the water is accomplished by an activated carbon absorption block filter removing tastes and odors. The water passes through this final filtering process immediately before going to the faucet whether it comes directly from the unit or the storage tanks.
  3. The automatic shut-off control shuts down the system when the storage tank is filled and water is not being drawn. This “demand production” feature conserves water by eliminating the constant running to the drain found in some units. The control also depressurizes the membrane when not in service extending the membrane life and reducing the need for maintenance of your reverse osmosis water purifier.

Better Water Alaska offers a broad range of reverse osmosis purification systems, a state-of-the-art reverse osmosis filter. These products reduce substances such as chlorine taste, sediment, nitrates, lead, cysts, and detergents.

Fill out the form below or call 907-306-2210 for more information & a free quote!

  • This field is for validation purposes and should be left unchanged.

 class="wp-image-48588 alignnone size-full bv-tag-attr-replace bv-lazyload-tag-img"  ></a> 

<a href onclick= class="wp-image-48588 alignnone size-full bv-tag-attr-replace bv-lazyload-tag-img"  ></a> 

</p>
</div></div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_3 et_pb_column_5  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_7  et_pb_text_align_center et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Local Matsu-Valley & Anchorage Reviews</p></div>
			</div><div class="et_pb_module et_pb_text et_pb_text_8  et_pb_text_align_center et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><em>"<span>Chris is fantastic to work with! He is honest and transparent and local! Additionally, his water softener systems are actually made in the USA, one main driving factor for going with his company among the many offered in Alaska. He is extremely customer focus and I am more than happy with both the water softener and reverse osmosis system! Would recommend to my friends and family!"</span></em><strong> - Lico Contreras</strong></p>
<p><em>"Chris was great to work with. Our water problem was solved. Everything was straight forward. The quality of work was excellent. I would highly recommend using Better Water Alaska."</em> <strong> - John Houghton</strong></p>
<p><em>"Great service and very thorough"</em><strong> - Maina Adams</strong></p>
<p><em>"We love our RO system and scheduling was easy. Work was well done and left spotless. Great value!"</em> <strong>- Solvejg Rogers</strong></p>
<p><em>"It has been several months since Better Water has installed the new system. The water quality hasn't changed and is still very much improved from what it was. Unfortunately, we had been dealing with very bad water for 22 + years before Better Water became available. We strongly recommend Better Water after having tried several other systems over the years and none had come close to improving our water quality as this system Better Water has installed. If you need to improve the quality of your water don't waste time trying other systems just get Better Water. PS. Our water comes out of our well with a very high level of iron."</em><strong> - John Zylstra</strong></p>
</div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_6 et_pb_with_background et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_4">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_6  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_9  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Copyright 2024 Better Water Alaska</p></div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_7  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_10  et_pb_text_align_right et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><a href="https://betterwateralaska.com/privacy-policy/">Privacy Policy</a></p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>		</div>
	</div>
						</div>

				
				</article>

			

</div>


	</div>

	<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/Divi/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>


<script src="data:text/javascript;base64,alF1ZXJ5KGZ1bmN0aW9uKCl7b21TaG9ydGNvZGVzLmluaXQoWyJidXR0b25zIiwidG9vbHRpcHMiLCJ0b2dnbGUiLCJ0YWJzIiwicmVzcG9uc2l2ZWJveCIsImNvdW50ZXIiXSk7fSk7" type="text/javascript" defer="defer" data-cfasync="false" defer></script>

<script defer="defer" data-cfasync="false" defer src="https://backend.leadconnectorhq.com/appengine/loc/9bhUOdugtAJPgcmOrZuZ/pool/33xbLL4WmZuZ3t89ef5b/number_pool.js"></script>
<script defer="defer" data-cfasync="false" defer src="https://backend.leadconnectorhq.com/appengine/js/user_session.js"></script>
<script src="data:text/javascript;base64,KGZ1bmN0aW9uICgpIHsKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgLy8gTVhTV0FQIHY1LjgKICAvLyAtIFNpbmdsZXRvbiBndWFyZAogIC8vIC0gU2tpcCBpZiBubyB0ZWw6CiAgLy8gLSBTa2lwIGRpcmVjdCBGSVJTVCBUT1VDSCAobXhfdHApCiAgLy8gLSBUaHJvdHRsZSArIGRlYm91bmNlZCBvYnNlcnZlcgogIC8vIC0gU3RhYmxlIHRlbCByZXF1aXJlbWVudCAoZmxpY2tlciBwcm90ZWN0aW9uKQogIC8vIC0gQ29va2llIGxvY2sgT3B0aW9uIEE6IHBlciAobG9jYXRpb25faWQgKyB0cmFja2luZ19udW1iZXIpIGZvciAyNGgKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogIC8vIOKchSBTSU5HTEVUT04gR1VBUkQgKHBlciBwYWdlKQogIGlmICh3aW5kb3cuX19NWFNXQVBfTE9BREVEX18pIHJldHVybjsKICB3aW5kb3cuX19NWFNXQVBfTE9BREVEX18gPSB0cnVlOwoKICBjb25zdCBERUJVRyA9IHRydWU7CgogIC8vIENvb2xkb3duIGJldHdlZW4gYXR0ZW1wdFNlbmQgY2FsbHMKICBjb25zdCBNSU5fR0FQX01TID0gMjAwMDA7IC8vIDIwcwoKICAvLyBNdXRhdGlvbiBkZWJvdW5jZQogIGNvbnN0IE1VVEFUSU9OX0RFQk9VTkNFX01TID0gNTAwOwoKICAvLyBSZXF1aXJlIHRlbCBudW1iZXIgdG8gYmUgc3RhYmxlIHRoaXMgbG9uZyBiZWZvcmUgUE9TVGluZyAoZmxpY2tlciBjb250cm9sKQogIGNvbnN0IFNUQUJMRV9NUyA9IDIwMDA7CgogIC8vIE9wdGlvbiBBIGNvb2tpZSBsb2NrOiBzYW1lIGxvY2F0aW9uK3RyYWNraW5nIGdldHMgMjRoIGxvY2sKICBjb25zdCBMT0NLX1RUTF9IT1VSUyA9IDI0OwogIGNvbnN0IENPT0tJRV9MT0NLX1NFTlQgPSAibXhzd2FwX2xvY2tfc2VudF92MSI7IC8vIHN0b3JlcyAibG9jYXRpb25JZDpsYXN0MTAiCiAgY29uc3QgQ09PS0lFX0xPQ0tfVFMgICA9ICJteHN3YXBfbG9ja190c192MSI7ICAgLy8gbXMgZXBvY2gKCiAgLy8gU3RvcCBvYnNlcnZpbmcgYWZ0ZXIgZmlyc3Qgc3VjY2Vzc2Z1bCBQT1NUICh1c3VhbGx5IHNhZmUpCiAgY29uc3QgRElTQ09OTkVDVF9PQlNFUlZFUl9BRlRFUl9TVUNDRVNTID0gdHJ1ZTsKCiAgLy8gU2tpcCBwYWdlcyB0aGF0IGhhdmUgbm8gdGVsIGxpbmtzIGF0IGJvb3QgdGltZQogIGNvbnN0IFNLSVBfSUZfTk9fVEVMX0xJTktTID0gdHJ1ZTsKCiAgZnVuY3Rpb24gbG9nKCkgewogICAgaWYgKCFERUJVRykgcmV0dXJuOwogICAgdHJ5IHsgY29uc29sZS5sb2cuYXBwbHkoY29uc29sZSwgYXJndW1lbnRzKTsgfSBjYXRjaCAoZSkge30KICB9CgogIGZ1bmN0aW9uIGdldENvbmZpZygpIHsKICAgIGNvbnN0IGxvY2F0aW9uSWQgPSBTdHJpbmcod2luZG93Lk1BVFlYX01YX0xPQ0FUSU9OX0lEIHx8IHdpbmRvdy5fX01BVFlYX18/LmxvY2F0aW9uSWQgfHwgIiIpLnRyaW0oKTsKICAgIGNvbnN0IHN3YXBVcmwgPSBTdHJpbmcod2luZG93Lk1BVFlYX1NXQVBfVVJMIHx8IHdpbmRvdy5fX01BVFlYX18/LnN3YXBVcmwgfHwgIiIpLnRyaW0oKTsKICAgIHJldHVybiB7IGxvY2F0aW9uSWQsIHN3YXBVcmwgfTsKICB9CgogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAvLyBDb29raWUgaGVscGVycwogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgewogICAgdHJ5IHsKICAgICAgY29uc3QgbSA9IGRvY3VtZW50LmNvb2tpZS5tYXRjaCgKICAgICAgICBuZXcgUmVnRXhwKCIoPzpefDsgKSIgKyBuYW1lLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCAiXFwkJiIpICsgIj0oW147XSopIikKICAgICAgKTsKICAgICAgcmV0dXJuIG0gPyBkZWNvZGVVUklDb21wb25lbnQobVsxXSkgOiAiIjsKICAgIH0gY2F0Y2ggKGUpIHsgcmV0dXJuICIiOyB9CiAgfQoKICBmdW5jdGlvbiBzZXRDb29raWVIb3VycyhuYW1lLCB2YWx1ZSwgaG91cnMpIHsKICAgIHRyeSB7CiAgICAgIGNvbnN0IHBhcnRzID0gW107CiAgICAgIHBhcnRzLnB1c2gobmFtZSArICI9IiArIGVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcodmFsdWUgfHwgIiIpKSk7CiAgICAgIHBhcnRzLnB1c2goInBhdGg9LyIpOwogICAgICBwYXJ0cy5wdXNoKCJTYW1lU2l0ZT1MYXgiKTsKICAgICAgaWYgKHR5cGVvZiBob3VycyA9PT0gIm51bWJlciIpIHsKICAgICAgICBjb25zdCBkID0gbmV3IERhdGUoKTsKICAgICAgICBkLnNldFRpbWUoZC5nZXRUaW1lKCkgKyBob3VycyAqIDYwICogNjAgKiAxMDAwKTsKICAgICAgICBwYXJ0cy5wdXNoKCJleHBpcmVzPSIgKyBkLnRvVVRDU3RyaW5nKCkpOwogICAgICB9CiAgICAgIGlmIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gImh0dHBzOiIpIHBhcnRzLnB1c2goIlNlY3VyZSIpOwogICAgICBkb2N1bWVudC5jb29raWUgPSBwYXJ0cy5qb2luKCI7ICIpOwogICAgfSBjYXRjaCAoZSkge30KICB9CgogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAvLyBPcHRpb24gQSBsb2NrIGhlbHBlcnMKICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZnVuY3Rpb24gZ2V0TG9jaygpIHsKICAgIGNvbnN0IHNlbnQgPSBTdHJpbmcoZ2V0Q29va2llKENPT0tJRV9MT0NLX1NFTlQpIHx8ICIiKS50cmltKCk7IC8vICJsb2M6bGFzdDEwIgogICAgY29uc3QgdHNTdHIgPSBTdHJpbmcoZ2V0Q29va2llKENPT0tJRV9MT0NLX1RTKSB8fCAiIikudHJpbSgpOwogICAgY29uc3QgdHMgPSB0c1N0ciA/IE51bWJlcih0c1N0cikgOiAwOwogICAgcmV0dXJuIHsgc2VudCwgdHM6IE51bWJlci5pc0Zpbml0ZSh0cykgPyB0cyA6IDAgfTsKICB9CgogIGZ1bmN0aW9uIGxvY2tJc0ZyZXNoKHRzKSB7CiAgICBpZiAoIXRzKSByZXR1cm4gZmFsc2U7CiAgICBjb25zdCBhZ2VNcyA9IERhdGUubm93KCkgLSB0czsKICAgIHJldHVybiBhZ2VNcyA+PSAwICYmIGFnZU1zIDw9IChMT0NLX1RUTF9IT1VSUyAqIDYwICogNjAgKiAxMDAwKTsKICB9CgogIGZ1bmN0aW9uIGlzTG9ja2VkKGxvY2F0aW9uSWQsIGxhc3QxMCkgewogICAgY29uc3Qga2V5ID0gYCR7bG9jYXRpb25JZH06JHtsYXN0MTB9YDsKICAgIGNvbnN0IHsgc2VudCwgdHMgfSA9IGdldExvY2soKTsKICAgIHJldHVybiAhIShzZW50ICYmIHRzICYmIGxvY2tJc0ZyZXNoKHRzKSAmJiBzZW50ID09PSBrZXkpOwogIH0KCiAgZnVuY3Rpb24gc2V0TG9jayhsb2NhdGlvbklkLCBsYXN0MTApIHsKICAgIGNvbnN0IGtleSA9IGAke2xvY2F0aW9uSWR9OiR7bGFzdDEwfWA7CiAgICBzZXRDb29raWVIb3VycyhDT09LSUVfTE9DS19TRU5ULCBrZXksIExPQ0tfVFRMX0hPVVJTKTsKICAgIHNldENvb2tpZUhvdXJzKENPT0tJRV9MT0NLX1RTLCBTdHJpbmcoRGF0ZS5ub3coKSksIExPQ0tfVFRMX0hPVVJTKTsKICB9CgogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAvLyBMYW5kaW5nICsgY2xpY2sgSURzICsgVVRNcyBzdG9yYWdlICh1bmNoYW5nZWQgbG9naWMpCiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGNvbnN0IEtFWV9MQU5ESU5HX1VSTCAgPSAibXhfbGFuZGluZ191cmxfdjEiOwogIGNvbnN0IEtFWV9VVE1fU09VUkNFICAgPSAibXhfdXRtX3NvdXJjZV92MSI7CiAgY29uc3QgS0VZX1VUTV9NRURJVU0gICA9ICJteF91dG1fbWVkaXVtX3YxIjsKICBjb25zdCBLRVlfVVRNX0NBTVBBSUdOID0gIm14X3V0bV9jYW1wYWlnbl92MSI7CgogIGNvbnN0IENPT0tJRV9MQU5ESU5HX1VSTCA9ICJteF9sYW5kaW5nX3VybF92MSI7CiAgY29uc3QgREFZU19UT19LRUVQID0gMjsKCiAgZnVuY3Rpb24gc2V0Q29va2llRGF5cyhuYW1lLCB2YWx1ZSwgZGF5cykgewogICAgdHJ5IHsKICAgICAgY29uc3QgcGFydHMgPSBbXTsKICAgICAgcGFydHMucHVzaChuYW1lICsgIj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyh2YWx1ZSB8fCAiIikpKTsKICAgICAgcGFydHMucHVzaCgicGF0aD0vIik7CiAgICAgIHBhcnRzLnB1c2goIlNhbWVTaXRlPUxheCIpOwogICAgICBpZiAodHlwZW9mIGRheXMgPT09ICJudW1iZXIiKSB7CiAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKCk7CiAgICAgICAgZC5zZXRUaW1lKGQuZ2V0VGltZSgpICsgZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApOwogICAgICAgIHBhcnRzLnB1c2goImV4cGlyZXM9IiArIGQudG9VVENTdHJpbmcoKSk7CiAgICAgIH0KICAgICAgaWYgKGxvY2F0aW9uLnByb3RvY29sID09PSAiaHR0cHM6IikgcGFydHMucHVzaCgiU2VjdXJlIik7CiAgICAgIGRvY3VtZW50LmNvb2tpZSA9IHBhcnRzLmpvaW4oIjsgIik7CiAgICB9IGNhdGNoIChlKSB7fQogIH0KCiAgZnVuY3Rpb24gc2FmZVVybChzdHIpIHsKICAgIHRyeSB7IHJldHVybiBuZXcgVVJMKFN0cmluZyhzdHIgfHwgIiIpKTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gbnVsbDsgfQogIH0KCiAgZnVuY3Rpb24gc3BIYXNBbnkoc3AsIGtleXMpIHsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoc3AuaGFzKGtleXNbaV0pKSByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIGdldFBhcmFtKHUsIGtleSkgewogICAgdHJ5IHsgcmV0dXJuICh1ICYmIHUuc2VhcmNoUGFyYW1zLmdldChrZXkpKSA/IFN0cmluZyh1LnNlYXJjaFBhcmFtcy5nZXQoa2V5KSkgOiAiIjsgfQogICAgY2F0Y2ggKGUpIHsgcmV0dXJuICIiOyB9CiAgfQoKICBmdW5jdGlvbiBzdG9yZUxhbmRpbmdBbmRVdG1zT25jZSgpIHsKICAgIHRyeSB7CiAgICAgIGlmIChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKEtFWV9MQU5ESU5HX1VSTCkpIHJldHVybjsKCiAgICAgIGNvbnN0IGhyZWYgPSBTdHJpbmcobG9jYXRpb24uaHJlZiB8fCAiIik7CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oS0VZX0xBTkRJTkdfVVJMLCBocmVmKTsKCiAgICAgIGlmICghZ2V0Q29va2llKENPT0tJRV9MQU5ESU5HX1VSTCkpIHNldENvb2tpZURheXMoQ09PS0lFX0xBTkRJTkdfVVJMLCBocmVmLCBEQVlTX1RPX0tFRVApOwoKICAgICAgY29uc3QgdSA9IHNhZmVVcmwoaHJlZik7CiAgICAgIGlmICghdSkgcmV0dXJuOwoKICAgICAgY29uc3Qgc3AgPSB1LnNlYXJjaFBhcmFtczsKICAgICAgY29uc3Qgc3JjID0gKHNwLmdldCgidXRtX3NvdXJjZSIpIHx8ICIiKS50cmltKCk7CiAgICAgIGNvbnN0IG1lZCA9IChzcC5nZXQoInV0bV9tZWRpdW0iKSB8fCAiIikudHJpbSgpOwogICAgICBjb25zdCBjYW0gPSAoc3AuZ2V0KCJ1dG1fY2FtcGFpZ24iKSB8fCAiIikudHJpbSgpOwoKICAgICAgaWYgKHNyYykgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShLRVlfVVRNX1NPVVJDRSwgc3JjKTsKICAgICAgaWYgKG1lZCkgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShLRVlfVVRNX01FRElVTSwgbWVkKTsKICAgICAgaWYgKGNhbSkgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShLRVlfVVRNX0NBTVBBSUdOLCBjYW0pOwogICAgfSBjYXRjaCAoZSkge30KICB9CgogIGZ1bmN0aW9uIGdldExhbmRpbmdVcmwoKSB7CiAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShLRVlfTEFORElOR19VUkwpIHx8IGdldENvb2tpZShDT09LSUVfTEFORElOR19VUkwpIHx8ICIiOwogIH0KCiAgZnVuY3Rpb24gZ2V0QmVzdEF0dHJpYnV0aW9uVXJsKGxhbmRpbmdTdHIsIGN1cnJlbnRTdHIpIHsKICAgIGNvbnN0IENMSUNLX0tFWVMgPSBbImdjbGlkIiwiZ2JyYWlkIiwid2JyYWlkIiwibXNjbGtpZCIsImZiY2xpZCIsInR0Y2xpZCIsInR3Y2xpZCJdOwogICAgY29uc3QgVVRNX0tFWVMgICA9IFsidXRtX3NvdXJjZSIsInV0bV9tZWRpdW0iLCJ1dG1fY2FtcGFpZ24iLCJ1dG1fY29udGVudCIsInV0bV90ZXJtIl07CgogICAgY29uc3QgbGFuZGluZyA9IHNhZmVVcmwobGFuZGluZ1N0cik7CiAgICBpZiAobGFuZGluZykgewogICAgICBjb25zdCBzcCA9IGxhbmRpbmcuc2VhcmNoUGFyYW1zOwogICAgICBpZiAoc3BIYXNBbnkoc3AsIENMSUNLX0tFWVMpIHx8IHNwSGFzQW55KHNwLCBVVE1fS0VZUykpIHJldHVybiBsYW5kaW5nU3RyOwogICAgfQogICAgcmV0dXJuIGN1cnJlbnRTdHI7CiAgfQoKICBmdW5jdGlvbiBleHRyYWN0Q2xpY2tJZHMocHJpbWFyeVVybFN0ciwgZmFsbGJhY2tVcmxTdHIpIHsKICAgIGNvbnN0IHAgPSBzYWZlVXJsKHByaW1hcnlVcmxTdHIpOwogICAgY29uc3QgZiA9IHNhZmVVcmwoZmFsbGJhY2tVcmxTdHIpOwoKICAgIHJldHVybiB7CiAgICAgIGdjbGlkOiAgIChnZXRQYXJhbShwLCAiZ2NsaWQiKSAgIHx8IGdldFBhcmFtKGYsICJnY2xpZCIpICAgfHwgIiIpLnRyaW0oKSwKICAgICAgZ2JyYWlkOiAgKGdldFBhcmFtKHAsICJnYnJhaWQiKSAgfHwgZ2V0UGFyYW0oZiwgImdicmFpZCIpICB8fCAiIikudHJpbSgpLAogICAgICB3YnJhaWQ6ICAoZ2V0UGFyYW0ocCwgIndicmFpZCIpICB8fCBnZXRQYXJhbShmLCAid2JyYWlkIikgIHx8ICIiKS50cmltKCksCiAgICAgIG1zY2xraWQ6IChnZXRQYXJhbShwLCAibXNjbGtpZCIpIHx8IGdldFBhcmFtKGYsICJtc2Nsa2lkIikgfHwgIiIpLnRyaW0oKSwKICAgICAgZmJjbGlkOiAgKGdldFBhcmFtKHAsICJmYmNsaWQiKSAgfHwgZ2V0UGFyYW0oZiwgImZiY2xpZCIpICB8fCAiIikudHJpbSgpCiAgICB9OwogIH0KCiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIC8vIFRlbCBleHRyYWN0aW9uCiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGZ1bmN0aW9uIGxhc3QxMEZyb21UZWxIcmVmKGhyZWYpIHsKICAgIGxldCBoID0gU3RyaW5nKGhyZWYgfHwgIiIpOwogICAgdHJ5IHsgaCA9IGRlY29kZVVSSUNvbXBvbmVudChoKTsgfSBjYXRjaCAoZSkge30KICAgIGggPSBoLnJlcGxhY2UoL150ZWw6L2ksICIiKTsKICAgIGNvbnN0IGQgPSBoLnJlcGxhY2UoL1xEL2csICIiKTsKICAgIHJldHVybiBkLmxlbmd0aCA+PSAxMCA/IGQuc2xpY2UoLTEwKSA6ICIiOwogIH0KCiAgZnVuY3Rpb24gZ2V0QWxsVGVsTGFzdDEwKCkgewogICAgY29uc3Qgb3V0ID0gW107CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWZePSJ0ZWw6Il0nKS5mb3JFYWNoKGEgPT4gewogICAgICBjb25zdCBsMTAgPSBsYXN0MTBGcm9tVGVsSHJlZihhLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKICAgICAgaWYgKGwxMCkgb3V0LnB1c2gobDEwKTsKICAgIH0pOwogICAgcmV0dXJuIG91dDsKICB9CgogIGZ1bmN0aW9uIHBpY2tNb3N0RnJlcXVlbnQoYXJyKSB7CiAgICBjb25zdCBjb3VudHMgPSBuZXcgTWFwKCk7CiAgICBmb3IgKGNvbnN0IG4gb2YgYXJyKSBjb3VudHMuc2V0KG4sIChjb3VudHMuZ2V0KG4pIHx8IDApICsgMSk7CiAgICBsZXQgYmVzdCA9IG51bGwsIGJlc3RDb3VudCA9IDA7CiAgICBmb3IgKGNvbnN0IFtuLCBjXSBvZiBjb3VudHMuZW50cmllcygpKSB7CiAgICAgIGlmIChjID4gYmVzdENvdW50KSB7IGJlc3QgPSBuOyBiZXN0Q291bnQgPSBjOyB9CiAgICB9CiAgICByZXR1cm4gYmVzdDsKICB9CgogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAvLyBTdGFibGUtbnVtYmVyIChmbGlja2VyKSBndWFyZAogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBjb25zdCBTU19DQU5ESURBVEUgPSAibXhzd2FwX2NhbmRpZGF0ZV92MSI7CiAgY29uc3QgU1NfQ0FORElEQVRFX1RTID0gIm14c3dhcF9jYW5kaWRhdGVfdHNfdjEiOwoKICBmdW5jdGlvbiBzc0dldChrKSB7IHRyeSB7IHJldHVybiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGspIHx8ICIiOyB9IGNhdGNoIChlKSB7IHJldHVybiAiIjsgfSB9CiAgZnVuY3Rpb24gc3NTZXQoaywgdikgeyB0cnkgeyBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGssIFN0cmluZyh2IHx8ICIiKSk7IH0gY2F0Y2ggKGUpIHt9IH0KCiAgZnVuY3Rpb24gaXNTdGFibGUoYmVzdCkgewogICAgY29uc3QgcHJldiA9IHNzR2V0KFNTX0NBTkRJREFURSk7CiAgICBjb25zdCB0cyA9IE51bWJlcihzc0dldChTU19DQU5ESURBVEVfVFMpIHx8IDApOwogICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTsKCiAgICBpZiAocHJldiAhPT0gYmVzdCkgewogICAgICBzc1NldChTU19DQU5ESURBVEUsIGJlc3QpOwogICAgICBzc1NldChTU19DQU5ESURBVEVfVFMsIFN0cmluZyhub3cpKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgcmV0dXJuIChub3cgLSB0cykgPj0gU1RBQkxFX01TOwogIH0KCiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIC8vIFBPU1QKICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgbGV0IGluRmxpZ2h0ID0gZmFsc2U7CiAgbGV0IG9icyA9IG51bGw7CiAgbGV0IGxhc3RBdHRlbXB0QXQgPSAwOwoKICBhc3luYyBmdW5jdGlvbiBwb3N0U3dhcChsb2NhdGlvbklkLCBzd2FwVXJsLCB0cmFja2luZ0xhc3QxMCwgcmVhc29uKSB7CiAgICBjb25zdCBteFRwID0gKGdldENvb2tpZSgibXhfdHAiKSB8fCAiZGlyZWN0IikudG9Mb3dlckNhc2UoKS50cmltKCk7CiAgICBjb25zdCBteExhc3QgPSAoZ2V0Q29va2llKCJteF9sYXN0IikgfHwgbXhUcCkudG9Mb3dlckNhc2UoKS50cmltKCk7CiAgICBjb25zdCBteExwVXJsID0gKGdldENvb2tpZSgibXhfbHBfdXJsIikgfHwgIiIpLnRyaW0oKTsKCiAgICBjb25zdCBsYW5kaW5nX3VybCA9IGdldExhbmRpbmdVcmwoKSB8fCAiIjsKICAgIGNvbnN0IGN1cnJlbnRfdXJsID0gU3RyaW5nKGxvY2F0aW9uLmhyZWYgfHwgIiIpOwogICAgY29uc3QgYmVzdF91cmwgPSBnZXRCZXN0QXR0cmlidXRpb25VcmwobGFuZGluZ191cmwsIGN1cnJlbnRfdXJsKTsKCiAgICBjb25zdCBpZHMgPSBleHRyYWN0Q2xpY2tJZHMobGFuZGluZ191cmwsIGN1cnJlbnRfdXJsKTsKCiAgICBjb25zdCBwYXlsb2FkID0gewogICAgICBsb2NhdGlvbl9pZDogbG9jYXRpb25JZCwKICAgICAgdHJhY2tpbmdfbnVtYmVyOiB0cmFja2luZ0xhc3QxMCwKCiAgICAgIG14X3RwOiBteFRwLAogICAgICBteF9sYXN0OiBteExhc3QsCiAgICAgIG14X2xwX3VybDogbXhMcFVybCwKCiAgICAgIGxhbmRpbmdfdXJsLAogICAgICBjdXJyZW50X3VybCwKICAgICAgcGFnZV91cmw6IGJlc3RfdXJsLAoKICAgICAgZ2NsaWQ6IGlkcy5nY2xpZCwKICAgICAgZ2JyYWlkOiBpZHMuZ2JyYWlkLAogICAgICB3YnJhaWQ6IGlkcy53YnJhaWQsCiAgICAgIG1zY2xraWQ6IGlkcy5tc2Nsa2lkLAogICAgICBmYmNsaWQ6IGlkcy5mYmNsaWQsCgogICAgICB1dG1fc291cmNlOiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKEtFWV9VVE1fU09VUkNFKSB8fCAiIiwKICAgICAgdXRtX21lZGl1bTogc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShLRVlfVVRNX01FRElVTSkgfHwgIiIsCiAgICAgIHV0bV9jYW1wYWlnbjogc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShLRVlfVVRNX0NBTVBBSUdOKSB8fCAiIiwKCiAgICAgIHRzOiBEYXRlLm5vdygpLAogICAgICBzY3JpcHRfaWQ6ICJteHN3YXBfdjVfOF9za2lwX2RpcmVjdF9zdGFibGVfbG9ja0Ffc2luZ2xldG9uIiwKICAgICAgcmVhc29uOiBTdHJpbmcocmVhc29uIHx8ICIiKQogICAgfTsKCiAgICBsb2coIltteHN3YXBdIHBvc3RpbmciLCB7IHN3YXBVcmwsIHRyYWNraW5nTGFzdDEwLCByZWFzb24sIG14X3RwOiBwYXlsb2FkLm14X3RwIH0pOwoKICAgIHRyeSB7CiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHN3YXBVcmwsIHsKICAgICAgICBtZXRob2Q6ICJQT1NUIiwKICAgICAgICBoZWFkZXJzOiB7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgfSwKICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKQogICAgICB9KTsKICAgICAgY29uc3Qgb2sgPSAhIShyZXMgJiYgcmVzLm9rKTsKICAgICAgbG9nKCJbbXhzd2FwXSBwb3N0IHJlc3VsdCIsIG9rLCByZXMgJiYgcmVzLnN0YXR1cyk7CiAgICAgIHJldHVybiBvazsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgbG9nKCJbbXhzd2FwXSBwb3N0IGZhaWxlZCIsIGUpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgfQoKICBhc3luYyBmdW5jdGlvbiBhdHRlbXB0U2VuZChyZWFzb24pIHsKICAgIGNvbnN0IHsgbG9jYXRpb25JZCwgc3dhcFVybCB9ID0gZ2V0Q29uZmlnKCk7CiAgICBpZiAoIWxvY2F0aW9uSWQgfHwgIXN3YXBVcmwpIHsKICAgICAgbG9nKCJbbXhzd2FwXSBibG9ja2VkOiBtaXNzaW5nIGNvbmZpZyIsIHsgcmVhc29uLCBsb2NhdGlvbklkLCBzd2FwVXJsIH0pOwogICAgICByZXR1cm47CiAgICB9CgogICAgLy8g4pyFIFNraXAgaWYgRklSU1QgVE9VQ0ggaXMgZGlyZWN0CiAgICBjb25zdCBteFRwR2F0ZSA9IChnZXRDb29raWUoIm14X3RwIikgfHwgImRpcmVjdCIpLnRvTG93ZXJDYXNlKCkudHJpbSgpOwogICAgaWYgKG14VHBHYXRlID09PSAiZGlyZWN0IikgewogICAgICBsb2coIltteHN3YXBdIHNraXBwZWQ6IG14X3RwIGlzIGRpcmVjdCIsIHsgcmVhc29uIH0pOwogICAgICByZXR1cm47CiAgICB9CgogICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTsKICAgIGlmIChub3cgLSBsYXN0QXR0ZW1wdEF0IDwgTUlOX0dBUF9NUykgcmV0dXJuOwogICAgbGFzdEF0dGVtcHRBdCA9IG5vdzsKCiAgICBpZiAoaW5GbGlnaHQpIHJldHVybjsKCiAgICBjb25zdCB0ZWxOdW1zID0gZ2V0QWxsVGVsTGFzdDEwKCk7CiAgICBjb25zdCBiZXN0ID0gcGlja01vc3RGcmVxdWVudCh0ZWxOdW1zKTsKCiAgICBpZiAoIWJlc3QpIHJldHVybjsKCiAgICAvLyDinIUgZmxpY2tlciBwcm90ZWN0aW9uOiByZXF1aXJlIHN0YWJsZSBiZXN0IG51bWJlcgogICAgaWYgKCFpc1N0YWJsZShiZXN0KSkgewogICAgICBsb2coIltteHN3YXBdIHdhaXRpbmcgZm9yIHN0YWJsZSB0ZWwgbnVtYmVyIiwgeyBiZXN0LCByZWFzb24gfSk7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyDinIUgT3B0aW9uIEEgbG9jazogc2FtZSBsb2NhdGlvbitudW1iZXIgd2l0aGluIDI0aAogICAgaWYgKGlzTG9ja2VkKGxvY2F0aW9uSWQsIGJlc3QpKSB7CiAgICAgIGxvZygiW214c3dhcF0gbG9ja2VkICgyNGgpIGZvciBzYW1lIGxvYytudW1iZXIiLCB7IGxvY2F0aW9uSWQsIGJlc3QsIHJlYXNvbiwgbG9jazogZ2V0TG9jaygpIH0pOwogICAgICByZXR1cm47CiAgICB9CgogICAgaW5GbGlnaHQgPSB0cnVlOwogICAgY29uc3Qgb2sgPSBhd2FpdCBwb3N0U3dhcChsb2NhdGlvbklkLCBzd2FwVXJsLCBiZXN0LCByZWFzb24pOwogICAgaW5GbGlnaHQgPSBmYWxzZTsKCiAgICBpZiAob2spIHsKICAgICAgc2V0TG9jayhsb2NhdGlvbklkLCBiZXN0KTsKCiAgICAgIGlmIChESVNDT05ORUNUX09CU0VSVkVSX0FGVEVSX1NVQ0NFU1MgJiYgb2JzKSB7CiAgICAgICAgdHJ5IHsgb2JzLmRpc2Nvbm5lY3QoKTsgfSBjYXRjaCAoZSkge30KICAgICAgICBvYnMgPSBudWxsOwogICAgICAgIGxvZygiW214c3dhcF0gb2JzZXJ2ZXIgZGlzY29ubmVjdGVkIGFmdGVyIHN1Y2Nlc3MiKTsKICAgICAgfQogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5zdGFsbE9ic2VydmVyKCkgewogICAgaWYgKG9icykgcmV0dXJuOwoKICAgIGxldCBtdXRUaW1lciA9IG51bGw7CiAgICBvYnMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7CiAgICAgIHRyeSB7IGlmIChtdXRUaW1lcikgY2xlYXJUaW1lb3V0KG11dFRpbWVyKTsgfSBjYXRjaCAoZSkge30KICAgICAgbXV0VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IGF0dGVtcHRTZW5kKCJtdXRhdGlvbl9kZWJvdW5jZWQiKSwgTVVUQVRJT05fREVCT1VOQ0VfTVMpOwogICAgfSk7CgogICAgb2JzLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB7CiAgICAgIHN1YnRyZWU6IHRydWUsCiAgICAgIGNoaWxkTGlzdDogdHJ1ZSwKICAgICAgYXR0cmlidXRlczogdHJ1ZSwKICAgICAgYXR0cmlidXRlRmlsdGVyOiBbImhyZWYiXQogICAgfSk7CiAgfQoKICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgLy8gQm9vdAogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBzdG9yZUxhbmRpbmdBbmRVdG1zT25jZSgpOwoKICBmdW5jdGlvbiBib290V2hlblJlYWR5KCkgewogICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpOwogICAgY29uc3QgbWF4TXMgPSAxMDAwMDsKCiAgICBjb25zdCB0aWNrID0gKCkgPT4gewogICAgICBjb25zdCB7IGxvY2F0aW9uSWQsIHN3YXBVcmwgfSA9IGdldENvbmZpZygpOwogICAgICBpZiAobG9jYXRpb25JZCAmJiBzd2FwVXJsKSB7CiAgICAgICAgbG9nKCJbbXhzd2FwXSBib290IE9LIiwgeyBsb2NhdGlvbklkLCBzd2FwVXJsIH0pOwoKICAgICAgICBpZiAoU0tJUF9JRl9OT19URUxfTElOS1MgJiYgIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FbaHJlZl49InRlbDoiXScpKSB7CiAgICAgICAgICBsb2coIltteHN3YXBdIHNraXBwZWQ6IG5vIHRlbCBsaW5rcyBvbiBwYWdlIik7CiAgICAgICAgICB3aW5kb3cuX19NWFNXQVBfVEVTVF9fID0gbWFrZVRlc3RIb29rKCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBhdHRlbXB0U2VuZCgiaW5pdCIpOwogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCAoKSA9PiBhdHRlbXB0U2VuZCgiZG9tY29udGVudGxvYWRlZCIpKTsKICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsICgpID0+IGF0dGVtcHRTZW5kKCJsb2FkIikpOwoKICAgICAgICAvLyBzaG9ydCByZXRyeSB3aW5kb3cgZm9yIGxhdGUgdGVsIHJlbmRlcmluZwogICAgICAgIGxldCB0cmllcyA9IDA7CiAgICAgICAgY29uc3QgbWF4VHJpZXMgPSAxMjsKICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICAgIHRyaWVzKys7CiAgICAgICAgICBhdHRlbXB0U2VuZCgiaW50ZXJ2YWxfIiArIHRyaWVzKTsKICAgICAgICAgIGlmICh0cmllcyA+PSBtYXhUcmllcykgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7CiAgICAgICAgfSwgMTAwMCk7CgogICAgICAgIGluc3RhbGxPYnNlcnZlcigpOwoKICAgICAgICB3aW5kb3cuX19NWFNXQVBfVEVTVF9fID0gbWFrZVRlc3RIb29rKCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBpZiAoRGF0ZS5ub3coKSAtIHN0YXJ0ID4gbWF4TXMpIHsKICAgICAgICBsb2coIltteHN3YXBdIGJvb3QgRkFJTEVEOiBubyBjb25maWcgYWZ0ZXIgMTBzIiwgZ2V0Q29uZmlnKCkpOwogICAgICAgIHdpbmRvdy5fX01YU1dBUF9URVNUX18gPSBtYWtlVGVzdEhvb2soKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHNldFRpbWVvdXQodGljaywgMjUwKTsKICAgIH07CgogICAgdGljaygpOwogIH0KCiAgZnVuY3Rpb24gbWFrZVRlc3RIb29rKCkgewogICAgcmV0dXJuIHsKICAgICAgYXR0ZW1wdFNlbmQsCiAgICAgIGdldENvbmZpZywKICAgICAgZ2V0VGVsTnVtczogKCkgPT4gZ2V0QWxsVGVsTGFzdDEwKCksCiAgICAgIHNpbmdsZXRvbjogKCkgPT4gKHdpbmRvdy5fX01YU1dBUF9MT0FERURfXyA9PT0gdHJ1ZSksCiAgICAgIGdldE14VHA6ICgpID0+IChnZXRDb29raWUoIm14X3RwIikgfHwgImRpcmVjdCIpLnRvTG93ZXJDYXNlKCkudHJpbSgpLAogICAgICBnZXRMb2NrLAogICAgICBjbGVhckxvY2s6ICgpID0+IHsKICAgICAgICAvLyBiZXN0LWVmZm9ydCBjbGVhciAoc2V0IGV4cGlyZWQpCiAgICAgICAgc2V0Q29va2llSG91cnMoQ09PS0lFX0xPQ0tfU0VOVCwgIiIsIC0xKTsKICAgICAgICBzZXRDb29raWVIb3VycyhDT09LSUVfTE9DS19UUywgIiIsIC0xKTsKICAgICAgfQogICAgfTsKICB9CgogIGJvb3RXaGVuUmVhZHkoKTsKfSkoKTs=" defer="defer" data-cfasync="false" defer></script><script src="data:text/javascript;base64,KGZ1bmN0aW9uICgpIHsKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAvLyBNYXR5eCBDb21iaW5lZCBBdHRyaWJ1dGlvbiAoQ29va2llICsgVVJMIFN0YW1wZXIpIOKAlCB2My4zCiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAvLyBDb25maWcKICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgdmFyIERBWVNfVE9fS0VFUCA9IDMwOwoKICB2YXIgQ09PS0lFX1RQICAgICAgID0gIm14X3RwIjsgICAgICAgLy8gZmlyc3QgdG91Y2ggKHN0aWNreSkKICB2YXIgQ09PS0lFX0xBU1QgICAgID0gIm14X2xhc3QiOyAgICAgLy8gbGFzdCB0b3VjaCAodXBkYXRlcykKICB2YXIgQ09PS0lFX0xQX1VSTCAgID0gIm14X2xwX3VybCI7ICAgLy8gZmlyc3QgbGFuZGluZyBmdWxsIFVSTAogIHZhciBDT09LSUVfVFNfRklSU1QgPSAibXhfdHNfZmlyc3QiOyAvLyB3aGVuIGZpcnN0IHRvdWNoIHdhcyBzZXQKICB2YXIgQ09PS0lFX1RTX0xBU1QgID0gIm14X3RzX2xhc3QiOyAgLy8gd2hlbiBsYXN0IHdhcyBzZXQKCiAgdmFyIFBBUkFNX1RQICAgPSAibXhfdHAiOyAgICAgICAgICAgIC8vIHNob3cgaW4gVVJMCiAgdmFyIFBBUkFNX0xBU1QgPSAibXhfbGFzdCI7ICAgICAgICAgIC8vIG9wdGlvbmFsIHNob3cgaW4gVVJMCiAgdmFyIFNUQU1QX0xBU1RfSU5fVVJMID0gZmFsc2U7ICAgICAgIC8vIGtlZXAgZmFsc2UgdW5sZXNzIHlvdSBleHBsaWNpdGx5IHdhbnQgaXQKCiAgLy8gT3B0aW9uYWw6IGV4Y2x1ZGUgYWRtaW4vbG9naW4gcGF0aHMKICB2YXIgRVhDTFVERV9QQVRIX1BSRUZJWEVTID0gWyIvd3AtYWRtaW4iLCAiL3dwLWxvZ2luLnBocCJdOwoKICAvLyBEZXRlY3Rpb24gaW5wdXRzCiAgdmFyIFBQQ19DTElDS19JRFMgICAgID0gWyJnY2xpZCIsImdicmFpZCIsIndicmFpZCIsIm1zY2xraWQiXTsKICB2YXIgU09DSUFMX0NMSUNLX0lEUyAgPSBbImZiY2xpZCIsInR0Y2xpZCIsInR3Y2xpZCJdOwoKICB2YXIgUFBDX1VUTV9NRURJVU1TICAgICA9IFsiY3BjIiwicHBjIiwicGFpZHNlYXJjaCIsInNlbSJdOwogIHZhciBTT0NJQUxfVVRNX01FRElVTVMgID0gWyJwYWlkX3NvY2lhbCIsInBhaWRzb2NpYWwiLCJzb2NpYWxfcGFpZCJdOwogIHZhciBFTUFJTF9VVE1fTUVESVVNUyAgID0gWyJlbWFpbCIsIm5ld3NsZXR0ZXIiXTsKCiAgdmFyIFNFQVJDSF9IT1NUX0hJTlRTID0gWyJnb29nbGUuIiwiYmluZy4iLCJ5YWhvby4iLCJkdWNrZHVja2dvLiJdOwoKICB2YXIgU09DSUFMX0hPU1RTID0gWwogICAgImZhY2Vib29rLmNvbSIsIm0uZmFjZWJvb2suY29tIiwibC5mYWNlYm9vay5jb20iLCJsbS5mYWNlYm9vay5jb20iLAogICAgImluc3RhZ3JhbS5jb20iLCJsLmluc3RhZ3JhbS5jb20iLAogICAgInQuY28iLCJ4LmNvbSIsInR3aXR0ZXIuY29tIiwKICAgICJsaW5rZWRpbi5jb20iLCJsbmtkLmluIiwKICAgICJwaW50ZXJlc3QuY29tIiwKICAgICJyZWRkaXQuY29tIgogIF07CgogIC8vIEJMT0c6IHBhdGggaGludHMKICB2YXIgQkxPR19QQVRIX0hJTlRTID0gWyIvYmxvZyIsICIvYmxvZ3MiLCAiL25ld3MiLCAiL3Jlc291cmNlcyJdOwoKICAvLyBBbGxvd2VkIGF0dHJpYnV0aW9uIHZhbHVlcyAoa2VlcCB0aWdodCkKICB2YXIgQUxMT1dFRCA9IFsicHBjIiwicGFpZF9zb2NpYWwiLCJlbWFpbCIsIm9yZ2FuaWMiLCJvcmdhbmljX3NvY2lhbCIsInJlZmVycmFsIiwiZGlyZWN0IiwiYmxvZyJdOwoKICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgLy8gSGVscGVycwogIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmdW5jdGlvbiB0b0xvd2VyKHYpIHsgcmV0dXJuICh2ID09IG51bGwgPyAiIiA6IFN0cmluZyh2KSkudG9Mb3dlckNhc2UoKS50cmltKCk7IH0KCiAgZnVuY3Rpb24gaXNFeGNsdWRlZFBhdGgoKSB7CiAgICB0cnkgewogICAgICB2YXIgcCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSB8fCAiLyI7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgRVhDTFVERV9QQVRIX1BSRUZJWEVTLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHAuaW5kZXhPZihFWENMVURFX1BBVEhfUFJFRklYRVNbaV0pID09PSAwKSByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfSBjYXRjaCAoZSkge30KICAgIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIGlzQWxsb3dlZCh2KSB7CiAgICB2ID0gdG9Mb3dlcih2KTsKICAgIHJldHVybiBBTExPV0VELmluZGV4T2YodikgIT09IC0xOwogIH0KCiAgZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsKICAgIHRyeSB7CiAgICAgIHZhciBtID0gZG9jdW1lbnQuY29va2llLm1hdGNoKAogICAgICAgIG5ldyBSZWdFeHAoIihefDsgKSIgKyBuYW1lLnJlcGxhY2UoL1stW1xde30oKSorPy4sXFxeJHwjXFxzXS9nLCAiXFwkJiIpICsgIj0oW147XSopIikKICAgICAgKTsKICAgICAgcmV0dXJuIG0gPyBkZWNvZGVVUklDb21wb25lbnQobVsyXSkgOiAiIjsKICAgIH0gY2F0Y2ggKGUpIHsgcmV0dXJuICIiOyB9CiAgfQoKICBmdW5jdGlvbiBzZXRDb29raWUobmFtZSwgdmFsdWUsIGRheXMpIHsKICAgIHRyeSB7CiAgICAgIHZhciBwYXJ0cyA9IFtdOwogICAgICBwYXJ0cy5wdXNoKG5hbWUgKyAiPSIgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpKTsKICAgICAgcGFydHMucHVzaCgicGF0aD0vIik7CiAgICAgIHBhcnRzLnB1c2goIlNhbWVTaXRlPUxheCIpOwoKICAgICAgaWYgKHR5cGVvZiBkYXlzID09PSAibnVtYmVyIikgewogICAgICAgIHZhciBkID0gbmV3IERhdGUoKTsKICAgICAgICBkLnNldFRpbWUoZC5nZXRUaW1lKCkgKyBkYXlzICogMjQgKiA2MCAqIDYwICogMTAwMCk7CiAgICAgICAgcGFydHMucHVzaCgiZXhwaXJlcz0iICsgZC50b1VUQ1N0cmluZygpKTsKICAgICAgfQoKICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PT0gImh0dHBzOiIpIHBhcnRzLnB1c2goIlNlY3VyZSIpOwogICAgICBkb2N1bWVudC5jb29raWUgPSBwYXJ0cy5qb2luKCI7ICIpOwogICAgfSBjYXRjaCAoZSkge30KICB9CgogIGZ1bmN0aW9uIHNhZmVVcmwoc3RyKSB7CiAgICB0cnkgeyByZXR1cm4gbmV3IFVSTChTdHJpbmcoc3RyIHx8ICIiKSk7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIG51bGw7IH0KICB9CgogIGZ1bmN0aW9uIHVybEhhc0FueVBhcmFtKHVybE9iaiwgbmFtZXMpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKHVybE9iai5zZWFyY2hQYXJhbXMuaGFzKG5hbWVzW2ldKSkgcmV0dXJuIHRydWU7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBnZXRVdG1NZWRpdW0odXJsT2JqKSB7CiAgICB0cnkgeyByZXR1cm4gKHVybE9iai5zZWFyY2hQYXJhbXMuZ2V0KCJ1dG1fbWVkaXVtIikgfHwgIiIpLnRvTG93ZXJDYXNlKCk7IH0KICAgIGNhdGNoIChlKSB7IHJldHVybiAiIjsgfQogIH0KCiAgZnVuY3Rpb24gaG9zdE1hdGNoZXMoaG9zdCwgY2FuZGlkYXRlcykgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYW5kaWRhdGVzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBjID0gY2FuZGlkYXRlc1tpXTsKICAgICAgaWYgKGhvc3QgPT09IGMpIHJldHVybiB0cnVlOwogICAgICBpZiAoaG9zdC5lbmRzV2l0aCgiLiIgKyBjKSkgcmV0dXJuIHRydWU7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBpc0ludGVybmFsUmVmZXJyZXIocmVmVXJsU3RyKSB7CiAgICB0cnkgewogICAgICBpZiAoIXJlZlVybFN0cikgcmV0dXJuIGZhbHNlOwogICAgICB2YXIgcmVmID0gbmV3IFVSTChyZWZVcmxTdHIpOwogICAgICByZXR1cm4gcmVmLmhvc3RuYW1lID09PSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7CiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfQogIH0KCiAgZnVuY3Rpb24gc3RhbXBVcmxQYXJhbSh1LCBrZXksIHZhbCkgewogICAgdHJ5IHsKICAgICAgaWYgKCF2YWwpIHJldHVybiBmYWxzZTsKICAgICAgdS5zZWFyY2hQYXJhbXMuc2V0KGtleSwgdmFsKTsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfQogIH0KCiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIC8vIEJMT0cgZGV0ZWN0b3JzCiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGZ1bmN0aW9uIGhhc0JvZHlDbGFzcyhjbHMpIHsKICAgIHRyeSB7CiAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5ICYmIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0ICYmIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKGNscyk7CiAgICB9IGNhdGNoIChlKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGlzV3BCbG9nUG9zdFBhZ2UoKSB7CiAgICB0cnkgewogICAgICBpZiAoaGFzQm9keUNsYXNzKCJzaW5nbGUtcG9zdCIpKSByZXR1cm4gdHJ1ZTsKICAgICAgaWYgKGhhc0JvZHlDbGFzcygicG9zdC10ZW1wbGF0ZS1kZWZhdWx0IikpIHJldHVybiB0cnVlOwogICAgICBpZiAoZG9jdW1lbnQuYm9keSAmJiBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSAmJiBTdHJpbmcoZG9jdW1lbnQuYm9keS5jbGFzc05hbWUpLmluZGV4T2YoInBvc3RpZC0iKSAhPT0gLTEpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfSBjYXRjaCAoZSkge30KICAgIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIGlzQmxvZ1VybCh1cmxTdHIpIHsKICAgIHRyeSB7CiAgICAgIHZhciB1ID0gc2FmZVVybCh1cmxTdHIpOwogICAgICBpZiAoIXUpIHJldHVybiBmYWxzZTsKICAgICAgdmFyIHAgPSAodS5wYXRobmFtZSB8fCAiLyIpLnRvTG93ZXJDYXNlKCk7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgQkxPR19QQVRIX0hJTlRTLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGhpbnQgPSBTdHJpbmcoQkxPR19QQVRIX0hJTlRTW2ldIHx8ICIiKS50b0xvd2VyQ2FzZSgpOwogICAgICAgIGlmICghaGludCkgY29udGludWU7CiAgICAgICAgaWYgKHAgPT09IGhpbnQgfHwgcC5pbmRleE9mKGhpbnQgKyAiLyIpID09PSAwIHx8IHAuaW5kZXhPZihoaW50KSA9PT0gMCkgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgIH0gY2F0Y2ggKGUpIHt9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgLy8gRGV0ZWN0aW9uCiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGZ1bmN0aW9uIGRldGVjdFRwKGN1clVybCkgewogICAgdmFyIHV0bU1lZGl1bSA9IGdldFV0bU1lZGl1bShjdXJVcmwpOwoKICAgIC8vIFBhaWQgd2lucwogICAgaWYgKHVybEhhc0FueVBhcmFtKGN1clVybCwgUFBDX0NMSUNLX0lEUykgfHwgUFBDX1VUTV9NRURJVU1TLmluZGV4T2YodXRtTWVkaXVtKSAhPT0gLTEpIHJldHVybiAicHBjIjsKICAgIGlmICh1cmxIYXNBbnlQYXJhbShjdXJVcmwsIFNPQ0lBTF9DTElDS19JRFMpIHx8IFNPQ0lBTF9VVE1fTUVESVVNUy5pbmRleE9mKHV0bU1lZGl1bSkgIT09IC0xKSByZXR1cm4gInBhaWRfc29jaWFsIjsKICAgIGlmIChFTUFJTF9VVE1fTUVESVVNUy5pbmRleE9mKHV0bU1lZGl1bSkgIT09IC0xKSByZXR1cm4gImVtYWlsIjsKCiAgICAvLyBCbG9nIHBhZ2UgaXRzZWxmCiAgICBpZiAoaXNXcEJsb2dQb3N0UGFnZSgpIHx8IGlzQmxvZ1VybChjdXJVcmwudG9TdHJpbmcoKSkpIHJldHVybiAiYmxvZyI7CgogICAgLy8gUmVmZXJyZXIgZmFsbGJhY2sKICAgIHRyeSB7CiAgICAgIHZhciByZWYgPSBkb2N1bWVudC5yZWZlcnJlciB8fCAiIjsKICAgICAgaWYgKCFyZWYpIHJldHVybiAiZGlyZWN0IjsKCiAgICAgIC8vIEludGVybmFsIHJlZmVycmVyOiBkb24ndCBjYWxsIGl0IHJlZmVycmFsLgogICAgICBpZiAoaXNJbnRlcm5hbFJlZmVycmVyKHJlZikpIHsKICAgICAgICBpZiAoaXNCbG9nVXJsKHJlZikpIHJldHVybiAiYmxvZyI7CiAgICAgICAgcmV0dXJuIG51bGw7IC8vIG5vIGNoYW5nZQogICAgICB9CgogICAgICB2YXIgcmVmSG9zdCA9IG5ldyBVUkwocmVmKS5ob3N0bmFtZS5yZXBsYWNlKC9ed3d3XC4vaSwgIiIpLnRvTG93ZXJDYXNlKCk7CgogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IFNFQVJDSF9IT1NUX0hJTlRTLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHJlZkhvc3QuaW5kZXhPZihTRUFSQ0hfSE9TVF9ISU5UU1tpXSkgIT09IC0xKSByZXR1cm4gIm9yZ2FuaWMiOwogICAgICB9CgogICAgICBpZiAoaG9zdE1hdGNoZXMocmVmSG9zdCwgU09DSUFMX0hPU1RTKSkgcmV0dXJuICJvcmdhbmljX3NvY2lhbCI7CgogICAgICByZXR1cm4gInJlZmVycmFsIjsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgcmV0dXJuICJkaXJlY3QiOwogICAgfQogIH0KCiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIC8vIE1haW4KICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZnVuY3Rpb24gcnVuKCkgewogICAgaWYgKGlzRXhjbHVkZWRQYXRoKCkpIHJldHVybjsKCiAgICB2YXIgY3VyID0gc2FmZVVybCh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICBpZiAoIWN1cikgcmV0dXJuOwoKICAgIC8vIFN0b3JlIGZpcnN0IGxhbmRpbmcgZnVsbCBVUkwgb25jZQogICAgaWYgKCFnZXRDb29raWUoQ09PS0lFX0xQX1VSTCkpIHsKICAgICAgc2V0Q29va2llKENPT0tJRV9MUF9VUkwsIFN0cmluZyhjdXIudG9TdHJpbmcoKSksIERBWVNfVE9fS0VFUCk7CiAgICB9CgogICAgdmFyIGZpcnN0RXhpc3RpbmcgPSB0b0xvd2VyKGdldENvb2tpZShDT09LSUVfVFApIHx8ICIiKTsKICAgIHZhciBsYXN0RXhpc3RpbmcgID0gdG9Mb3dlcihnZXRDb29raWUoQ09PS0lFX0xBU1QpIHx8ICIiKTsKCiAgICAvLyAxKSBJZiBVUkwgaGFzIG14X3RwLCBPTkxZIHVzZSBpdCB0byBzZWVkIEZJUlNUIFRPVUNIIGlmIHdlIGRvbid0IGhhdmUgb25lIHlldAogICAgdmFyIHVybFRwID0gdG9Mb3dlcihjdXIuc2VhcmNoUGFyYW1zLmdldChQQVJBTV9UUCkgfHwgIiIpOwogICAgaWYgKHVybFRwICYmIGlzQWxsb3dlZCh1cmxUcCkgJiYgIWZpcnN0RXhpc3RpbmcpIHsKICAgICAgc2V0Q29va2llKENPT0tJRV9UUCwgdXJsVHAsIERBWVNfVE9fS0VFUCk7CiAgICAgIHNldENvb2tpZShDT09LSUVfVFNfRklSU1QsIFN0cmluZyhEYXRlLm5vdygpKSwgREFZU19UT19LRUVQKTsKCiAgICAgIHNldENvb2tpZShDT09LSUVfTEFTVCwgdXJsVHAsIERBWVNfVE9fS0VFUCk7CiAgICAgIHNldENvb2tpZShDT09LSUVfVFNfTEFTVCwgU3RyaW5nKERhdGUubm93KCkpLCBEQVlTX1RPX0tFRVApOwoKICAgICAgZmlyc3RFeGlzdGluZyA9IHVybFRwOwogICAgICBsYXN0RXhpc3RpbmcgPSB1cmxUcDsKICAgIH0KCiAgICAvLyAyKSBEZXRlY3Rpb24gdXBkYXRlcyBsYXN0IHRvdWNoIChhbmQgc2VlZHMgZmlyc3QgaWYgc3RpbGwgbWlzc2luZykKICAgIHZhciBkZXRlY3RlZCA9IGRldGVjdFRwKGN1cik7CgogICAgaWYgKGRldGVjdGVkKSB7CiAgICAgIGlmICghaXNBbGxvd2VkKGRldGVjdGVkKSkgZGV0ZWN0ZWQgPSAiZGlyZWN0IjsKCiAgICAgIC8vIEVuc3VyZSBmaXJzdCBleGlzdHMKICAgICAgaWYgKCFmaXJzdEV4aXN0aW5nKSB7CiAgICAgICAgc2V0Q29va2llKENPT0tJRV9UUCwgZGV0ZWN0ZWQsIERBWVNfVE9fS0VFUCk7CiAgICAgICAgc2V0Q29va2llKENPT0tJRV9UU19GSVJTVCwgU3RyaW5nKERhdGUubm93KCkpLCBEQVlTX1RPX0tFRVApOwogICAgICAgIGZpcnN0RXhpc3RpbmcgPSBkZXRlY3RlZDsKICAgICAgfQoKICAgICAgLy8gVXBkYXRlIGxhc3QgdG91Y2ggaWYgaXQgY2hhbmdlZAogICAgICBpZiAoZGV0ZWN0ZWQgIT09IGxhc3RFeGlzdGluZykgewogICAgICAgIHNldENvb2tpZShDT09LSUVfTEFTVCwgZGV0ZWN0ZWQsIERBWVNfVE9fS0VFUCk7CiAgICAgICAgc2V0Q29va2llKENPT0tJRV9UU19MQVNULCBTdHJpbmcoRGF0ZS5ub3coKSksIERBWVNfVE9fS0VFUCk7CiAgICAgICAgbGFzdEV4aXN0aW5nID0gZGV0ZWN0ZWQ7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIC8vIE5vIGNoYW5nZSBkZXRlY3RlZCAoaW50ZXJuYWwgcmVmZXJyZXIgY2FzZSkKICAgICAgLy8gRW5zdXJlIG14X2xhc3QgZXhpc3RzIGF0IGxlYXN0CiAgICAgIGlmIChmaXJzdEV4aXN0aW5nICYmICFsYXN0RXhpc3RpbmcpIHsKICAgICAgICBzZXRDb29raWUoQ09PS0lFX0xBU1QsIGZpcnN0RXhpc3RpbmcsIERBWVNfVE9fS0VFUCk7CiAgICAgICAgc2V0Q29va2llKENPT0tJRV9UU19MQVNULCBTdHJpbmcoRGF0ZS5ub3coKSksIERBWVNfVE9fS0VFUCk7CiAgICAgICAgbGFzdEV4aXN0aW5nID0gZmlyc3RFeGlzdGluZzsKICAgICAgfQogICAgfQoKICAgIC8vIFJlZnJlc2ggY29va2llIHZhbHVlcyAoYXV0aG9yaXRhdGl2ZSkKICAgIHZhciBjb29raWVUcE5vdyA9IHRvTG93ZXIoZ2V0Q29va2llKENPT0tJRV9UUCkgfHwgIiIpOwogICAgdmFyIGNvb2tpZUxhc3ROb3cgPSB0b0xvd2VyKGdldENvb2tpZShDT09LSUVfTEFTVCkgfHwgIiIpOwoKICAgIGlmICghY29va2llVHBOb3cpIGNvb2tpZVRwTm93ID0gImRpcmVjdCI7CgogICAgLy8gMykgQlJBTkRJTkcgUlVMRTogVVJMIG14X3RwIEFMV0FZUyBtaXJyb3JzIGNvb2tpZSBteF90cCAob25jZSBjb29raWUgZXhpc3RzKQogICAgLy8gICAgSWYgY29va2llIGV4aXN0cyBhbmQgVVJMIGRpZmZlcnMsIG92ZXJ3cml0ZSBVUkwuCiAgICB2YXIgY2hhbmdlZCA9IGZhbHNlOwogICAgdmFyIHVybFRwTm93ID0gdG9Mb3dlcihjdXIuc2VhcmNoUGFyYW1zLmdldChQQVJBTV9UUCkgfHwgIiIpOwoKICAgIGlmIChjb29raWVUcE5vdyAmJiBpc0FsbG93ZWQoY29va2llVHBOb3cpKSB7CiAgICAgIGlmICh1cmxUcE5vdyAhPT0gY29va2llVHBOb3cpIHsKICAgICAgICBjaGFuZ2VkID0gc3RhbXBVcmxQYXJhbShjdXIsIFBBUkFNX1RQLCBjb29raWVUcE5vdykgfHwgY2hhbmdlZDsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgLy8gSWYgY29va2llIHZhbHVlIGlzIHNvbWVob3cgaW52YWxpZCwgZmFsbCBiYWNrIHRvIHN0YW1waW5nIGNvbXB1dGVkIGZpcnN0RXhpc3RpbmcKICAgICAgdmFyIGZhbGxiYWNrVHAgPSAoZmlyc3RFeGlzdGluZyAmJiBpc0FsbG93ZWQoZmlyc3RFeGlzdGluZykpID8gZmlyc3RFeGlzdGluZyA6ICJkaXJlY3QiOwogICAgICBpZiAoIXVybFRwTm93IHx8ICFpc0FsbG93ZWQodXJsVHBOb3cpIHx8IHVybFRwTm93ICE9PSBmYWxsYmFja1RwKSB7CiAgICAgICAgY2hhbmdlZCA9IHN0YW1wVXJsUGFyYW0oY3VyLCBQQVJBTV9UUCwgZmFsbGJhY2tUcCkgfHwgY2hhbmdlZDsKICAgICAgfQogICAgfQoKICAgIC8vIE9wdGlvbmFsOiBzdGFtcCBteF9sYXN0IHRvbyAob2ZmIGJ5IGRlZmF1bHQpCiAgICBpZiAoU1RBTVBfTEFTVF9JTl9VUkwpIHsKICAgICAgaWYgKGNvb2tpZUxhc3ROb3cgJiYgaXNBbGxvd2VkKGNvb2tpZUxhc3ROb3cpKSB7CiAgICAgICAgY2hhbmdlZCA9IHN0YW1wVXJsUGFyYW0oY3VyLCBQQVJBTV9MQVNULCBjb29raWVMYXN0Tm93KSB8fCBjaGFuZ2VkOwogICAgICB9CiAgICB9CgogICAgaWYgKGNoYW5nZWQpIHsKICAgICAgdHJ5IHsgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCAiIiwgY3VyLnRvU3RyaW5nKCkpOyB9IGNhdGNoIChlMikge30KICAgIH0KICB9CgogIHJ1bigpOwp9KSgpOw==" defer="defer" data-cfasync="false" defer></script><script src="data:text/javascript;base64,d2luZG93Ll9fTUFUWVhfXyA9IHdpbmRvdy5fX01BVFlYX18gfHwge307CiAgd2luZG93Ll9fTUFUWVhfXy5sb2NhdGlvbklkID0gIjliaFVPZHVndEFKUGdjbU9yWnVaIjsKICB3aW5kb3cuX19NQVRZWF9fLnN3YXBVcmwgPSAiaHR0cHM6Ly9lb3F4ZGllc2Y1cGJybXcubS5waXBlZHJlYW0ubmV0IjsKCiAgLy8gQmFja3dhcmRzLWNvbXBhdCBnbG9iYWxzIChzb21lIHNjcmlwdHMgcmVhZCB0aGVzZSkKICB3aW5kb3cuTUFUWVhfTVhfTE9DQVRJT05fSUQgPSB3aW5kb3cuX19NQVRZWF9fLmxvY2F0aW9uSWQ7CiAgd2luZG93Lk1BVFlYX1NXQVBfVVJMID0gd2luZG93Ll9fTUFUWVhfXy5zd2FwVXJsOw==" defer="defer" data-cfasync="false" defer></script><script src="data:text/javascript;base64,KGZ1bmN0aW9uKCQpIHsKICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoKICAgICAgICAkKCcuZXQtc29jaWFsLWljb25zIC5ldC1zb2NpYWwtaWNvbiBhJykuYXR0ciggJ3RhcmdldCcsICdfYmxhbmsnKTsKICAgICAgICAKICAgIH0pOwp9KShqUXVlcnkpOw==" defer="defer" data-cfasync="false" defer></script><script src="data:text/javascript;base64,LyogPCFbQ0RBVEFbICovCnZhciBzYU90dG9EYXRhID0geyJvdHRvX3V1aWQiOiI3OTdjN2U1OC04NjViLTRiYTEtOWRlZi0zYjEwNDIxMDQ2YzIiLCJwYWdlX3VybCI6Imh0dHBzOi8vYmV0dGVyd2F0ZXJhbGFza2EuY29tL3JldmVyc2Utb3Ntb3Npcy1zeXN0ZW1zLWxwLyIsImNvbnRleHQiOm51bGwsImVuYWJsZV9tZXRhZGVzYyI6IjEifTsKLy8jIHNvdXJjZVVSTD1tZXRhc3luYy10cmFja2VyLWpzLWV4dHJhCi8qIF1dPiAqLw==" type="text/javascript" id="metasync-tracker-js-extra" defer="defer" data-cfasync="false" defer></script>
<script type="text/javascript" defer="defer" id="metasync-tracker-js" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/metasync/public/js/69f0464d5612b747285af855/69f0464d5612b747285af855-8019b0b26eb11bcee60ccf5c364fbee4_otto-tracker.min.js?ver=2.6.4"></script>
<script type="text/javascript" defer="defer" id="metasync-js" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/metasync/public/js/69f0464d5612b747285af855/69f0464d5612b747285af855-e4e1b5cf8ee2637a1aa9761590f8800d_metasync-public.js?ver=2.6.4"></script>
<script src="data:text/javascript;base64,LyogPCFbQ0RBVEFbICovCnZhciBESVZJID0geyJpdGVtX2NvdW50IjoiJWQgSXRlbSIsIml0ZW1zX2NvdW50IjoiJWQgSXRlbXMifTsKdmFyIGV0X2J1aWxkZXJfdXRpbHNfcGFyYW1zID0geyJjb25kaXRpb24iOnsiZGl2aVRoZW1lIjp0cnVlLCJleHRyYVRoZW1lIjpmYWxzZX0sInNjcm9sbExvY2F0aW9ucyI6WyJhcHAiLCJ0b3AiXSwiYnVpbGRlclNjcm9sbExvY2F0aW9ucyI6eyJkZXNrdG9wIjoiYXBwIiwidGFibGV0IjoiYXBwIiwicGhvbmUiOiJhcHAifSwib25sb2FkU2Nyb2xsTG9jYXRpb24iOiJhcHAiLCJidWlsZGVyVHlwZSI6ImZlIn07CnZhciBldF9mcm9udGVuZF9zY3JpcHRzID0geyJidWlsZGVyQ3NzQ29udGFpbmVyUHJlZml4IjoiI2V0LWJvYyIsImJ1aWxkZXJDc3NMYXlvdXRQcmVmaXgiOiIjZXQtYm9jIC5ldC1sIn07CnZhciBldF9wYl9jdXN0b20gPSB7ImFqYXh1cmwiOiJodHRwczovL2JldHRlcndhdGVyYWxhc2thLmNvbS93cC1hZG1pbi9hZG1pbi1hamF4LnBocCIsImltYWdlc191cmkiOiJodHRwczovL2JldHRlcndhdGVyYWxhc2thLmNvbS93cC1jb250ZW50L3RoZW1lcy9EaXZpL2ltYWdlcyIsImJ1aWxkZXJfaW1hZ2VzX3VyaSI6Imh0dHBzOi8vYmV0dGVyd2F0ZXJhbGFza2EuY29tL3dwLWNvbnRlbnQvdGhlbWVzL0RpdmkvaW5jbHVkZXMvYnVpbGRlci9pbWFnZXMiLCJldF9mcm9udGVuZF9ub25jZSI6IjZjMmVmNzJiOTgiLCJzdWJzY3JpcHRpb25fZmFpbGVkIjoiUGxlYXNlLCBjaGVjayB0aGUgZmllbGRzIGJlbG93IHRvIG1ha2Ugc3VyZSB5b3UgZW50ZXJlZCB0aGUgY29ycmVjdCBpbmZvcm1hdGlvbi4iLCJldF9hYl9sb2dfbm9uY2UiOiI2Y2NjODc3ODY1IiwiZmlsbF9tZXNzYWdlIjoiUGxlYXNlLCBmaWxsIGluIHRoZSBmb2xsb3dpbmcgZmllbGRzOiIsImNvbnRhY3RfZXJyb3JfbWVzc2FnZSI6IlBsZWFzZSwgZml4IHRoZSBmb2xsb3dpbmcgZXJyb3JzOiIsImludmFsaWQiOiJJbnZhbGlkIGVtYWlsIiwiY2FwdGNoYSI6IkNhcHRjaGEiLCJwcmV2IjoiUHJldiIsInByZXZpb3VzIjoiUHJldmlvdXMiLCJuZXh0IjoiTmV4dCIsIndyb25nX2NhcHRjaGEiOiJZb3UgZW50ZXJlZCB0aGUgd3JvbmcgbnVtYmVyIGluIGNhcHRjaGEuIiwid3JvbmdfY2hlY2tib3giOiJDaGVja2JveCIsImlnbm9yZV93YXlwb2ludHMiOiJubyIsImlzX2RpdmlfdGhlbWVfdXNlZCI6IjEiLCJ3aWRnZXRfc2VhcmNoX3NlbGVjdG9yIjoiLndpZGdldF9zZWFyY2giLCJhYl90ZXN0cyI6W10sImlzX2FiX3Rlc3RpbmdfYWN0aXZlIjoiIiwicGFnZV9pZCI6Ijk4ODUiLCJ1bmlxdWVfdGVzdF9pZCI6IiIsImFiX2JvdW5jZV9yYXRlIjoiNSIsImlzX2NhY2hlX3BsdWdpbl9hY3RpdmUiOiJ5ZXMiLCJpc19zaG9ydGNvZGVfdHJhY2tpbmciOiIiLCJ0aW55bWNlX3VyaSI6Imh0dHBzOi8vYmV0dGVyd2F0ZXJhbGFza2EuY29tL3dwLWNvbnRlbnQvdGhlbWVzL0RpdmkvaW5jbHVkZXMvYnVpbGRlci9mcm9udGVuZC1idWlsZGVyL2Fzc2V0cy92ZW5kb3JzIiwiYWNjZW50X2NvbG9yIjoiIzEzMjg0NyIsIndheXBvaW50c19vcHRpb25zIjpbXX07CnZhciBldF9wYl9ib3hfc2hhZG93X2VsZW1lbnRzID0gW107Ci8vIyBzb3VyY2VVUkw9ZGl2aS1jdXN0b20tc2NyaXB0LWpzLWV4dHJhCi8qIF1dPiAqLw==" type="text/javascript" id="divi-custom-script-js-extra" defer="defer" data-cfasync="false" defer></script>
<script type="text/javascript" id="divi-custom-script-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/themes/Divi/js/69f0464d5612b747285af855/69f0464d5612b747285af855-caa6467696abb78c17f9be6c8142c2bb_scripts.min.js?ver=4.27.6"></script>
<script type="text/javascript" id="et_pb_wpt_gravityform-frontend-bundle-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/wp-tools-gravity-forms-divi-module-premium/scripts/69f0464d5612b747285af855/69f0464d5612b747285af855-d923574752bb1f2c0a624db2bce8ee76_frontend-bundle.min.js?ver=8.5.0"></script>
<script type="text/javascript" id="et-core-common-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/themes/Divi/core/admin/js/69f0464d5612b747285af855/69f0464d5612b747285af855-d71b75b2327258b1d01d50590c1f67ca_common.js?ver=4.27.6"></script>
<script type="text/javascript" id="params-cookie-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/ldm-gf-analytics-tracking/js/69f0464d5612b747285af855/69f0464d5612b747285af855-9cc9ff7d9e9bbc292ce4d8f465984690_params-cookie.js"></script>
<script type="text/javascript" id="DiviBars-main-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/divi-bars/assets/js/69f0464d5612b747285af855/69f0464d5612b747285af855-5d07c51fd6eb4054cb7a26f7ce6f5439_main.js?ver=1.9.6"></script>
<script type="text/javascript" id="DiviBars-main-helper-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/divi-bars/assets/js/69f0464d5612b747285af855/69f0464d5612b747285af855-d41d8cd98f00b204e9800998ecf8427e_main.helper.js?ver=1.9.6"></script>
<script type="text/javascript" id="actual-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/divi-bars/assets/js/69f0464d5612b747285af855/69f0464d5612b747285af855-f88958c621f55d206f0321856d8dcea4_actual.min.js?ver=6.9.4"></script>
<script type="text/javascript" id="exit-intent-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/divi-bars/assets/js/69f0464d5612b747285af855/69f0464d5612b747285af855-926d4f7c4a9124ef9f2bb2c3f4dd8540_jquery.exitintent.min.js?ver=6.9.4"></script>
<script type="text/javascript" id="wp-dom-ready-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-includes/js/dist/69f0464d5612b747285af855/69f0464d5612b747285af855-e4bc17cc45ca91ab0f09dea134975c51_dom-ready.min.js?ver=f77871ff7694fffea381"></script>
<script type="text/javascript" id="wp-hooks-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-includes/js/dist/69f0464d5612b747285af855/69f0464d5612b747285af855-90e932bd9e62583fc494c00498cfe7f5_hooks.min.js?ver=dd5603f07f9220ed27f1"></script>
<script type="text/javascript" id="wp-i18n-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-includes/js/dist/69f0464d5612b747285af855/69f0464d5612b747285af855-3a5838d1182eb0b11f5a58bfe26e2529_i18n.min.js?ver=c26c3dc7bed366793375"></script>
<script src="data:text/javascript;base64,LyogPCFbQ0RBVEFbICovCndwLmkxOG4uc2V0TG9jYWxlRGF0YSggeyAndGV4dCBkaXJlY3Rpb25cdTAwMDRsdHInOiBbICdsdHInIF0gfSApOwovLyMgc291cmNlVVJMPXdwLWkxOG4tanMtYWZ0ZXIKLyogXV0+ICov" type="text/javascript" id="wp-i18n-js-after" defer="defer" data-cfasync="false" defer></script>
<script type="text/javascript" id="wp-a11y-js" defer="defer" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-includes/js/dist/69f0464d5612b747285af855/69f0464d5612b747285af855-fc6bf7359b5df821cb6e4f8038a53296_a11y.min.js?ver=cb460b4676c94bd228ed"></script>
<script type="text/javascript" defer="defer" id="gform_json-js" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/gravityforms/js/69f0464d5612b747285af855/69f0464d5612b747285af855-c58410747c21811997f56094a47b17dd_jquery.json.min.js?ver=2.10.0"></script>
<script src="data:text/javascript;base64,LyogPCFbQ0RBVEFbICovCnZhciBnZm9ybV9pMThuID0geyJkYXRlcGlja2VyIjp7ImRheXMiOnsibW9uZGF5IjoiTW8iLCJ0dWVzZGF5IjoiVHUiLCJ3ZWRuZXNkYXkiOiJXZSIsInRodXJzZGF5IjoiVGgiLCJmcmlkYXkiOiJGciIsInNhdHVyZGF5IjoiU2EiLCJzdW5kYXkiOiJTdSJ9LCJtb250aHMiOnsiamFudWFyeSI6IkphbnVhcnkiLCJmZWJydWFyeSI6IkZlYnJ1YXJ5IiwibWFyY2giOiJNYXJjaCIsImFwcmlsIjoiQXByaWwiLCJtYXkiOiJNYXkiLCJqdW5lIjoiSnVuZSIsImp1bHkiOiJKdWx5IiwiYXVndXN0IjoiQXVndXN0Iiwic2VwdGVtYmVyIjoiU2VwdGVtYmVyIiwib2N0b2JlciI6Ik9jdG9iZXIiLCJub3ZlbWJlciI6Ik5vdmVtYmVyIiwiZGVjZW1iZXIiOiJEZWNlbWJlciJ9LCJmaXJzdERheSI6MCwiaWNvblRleHQiOiJTZWxlY3QgZGF0ZSJ9fTsKdmFyIGdmX2xlZ2FjeV9tdWx0aSA9IFtdOwp2YXIgZ2Zvcm1fZ3Jhdml0eWZvcm1zID0geyJzdHJpbmdzIjp7ImludmFsaWRfZmlsZV9leHRlbnNpb24iOiJUaGlzIHR5cGUgb2YgZmlsZSBpcyBub3QgYWxsb3dlZC4gTXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoiLCJkZWxldGVfZmlsZSI6IkRlbGV0ZSB0aGlzIGZpbGUiLCJpbl9wcm9ncmVzcyI6ImluIHByb2dyZXNzIiwiZmlsZV9leGNlZWRzX2xpbWl0IjoiRmlsZSBleGNlZWRzIHNpemUgbGltaXQiLCJpbGxlZ2FsX2V4dGVuc2lvbiI6IlRoaXMgdHlwZSBvZiBmaWxlIGlzIG5vdCBhbGxvd2VkLiIsIm1heF9yZWFjaGVkIjoiTWF4aW11bSBudW1iZXIgb2YgZmlsZXMgcmVhY2hlZCIsInVua25vd25fZXJyb3IiOiJUaGVyZSB3YXMgYSBwcm9ibGVtIHdoaWxlIHNhdmluZyB0aGUgZmlsZSBvbiB0aGUgc2VydmVyIiwiY3VycmVudGx5X3VwbG9hZGluZyI6IlBsZWFzZSB3YWl0IGZvciB0aGUgdXBsb2FkaW5nIHRvIGNvbXBsZXRlIiwiY2FuY2VsIjoiQ2FuY2VsIiwiY2FuY2VsX3VwbG9hZCI6IkNhbmNlbCB0aGlzIHVwbG9hZCIsImNhbmNlbGxlZCI6IkNhbmNlbGxlZCIsImVycm9yIjoiRXJyb3IiLCJtZXNzYWdlIjoiTWVzc2FnZSJ9LCJ2YXJzIjp7ImltYWdlc191cmwiOiJodHRwczovL2JldHRlcndhdGVyYWxhc2thLmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcyJ9fTsKdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyLCJjb2RlIjoiVVNEIn0sImJhc2VfdXJsIjoiaHR0cHM6Ly9iZXR0ZXJ3YXRlcmFsYXNrYS5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHBzOi8vYmV0dGVyd2F0ZXJhbGFza2EuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuc3ZnIiwidmVyc2lvbl9oYXNoIjoiZDA5MWQ2OWI0NjFmMzU4NDViMDkwNWM1OThjMGQ0MjEiLCJzdHJpbmdzIjp7Im5ld1Jvd0FkZGVkIjoiTmV3IHJvdyBhZGRlZC4iLCJyb3dSZW1vdmVkIjoiUm93IHJlbW92ZWQiLCJmb3JtU2F2ZWQiOiJUaGUgZm9ybSBoYXMgYmVlbiBzYXZlZC4gIFRoZSBjb250ZW50IGNvbnRhaW5zIHRoZSBsaW5rIHRvIHJldHVybiBhbmQgY29tcGxldGUgdGhlIGZvcm0uIn19OwovLyMgc291cmNlVVJMPWdmb3JtX2dyYXZpdHlmb3Jtcy1qcy1leHRyYQovKiBdXT4gKi8=" type="text/javascript" id="gform_gravityforms-js-extra" defer="defer" data-cfasync="false" defer></script>
<script type="text/javascript" defer="defer" id="gform_gravityforms-js" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/gravityforms/js/69f0464d5612b747285af855/69f0464d5612b747285af855-59f1aaf0a95a65c62e1d409c575c184f_gravityforms.min.js?ver=2.10.0"></script>
<script type="text/javascript" defer="defer" id="gform_recaptcha-js" data-cfasync="false" defer src="https://www.google.com/recaptcha/api.js?hl=en&ver=6.9.4#038;render=explicit"></script>
<script type="text/javascript" defer="defer" id="gform_masked_input-js" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/gravityforms/js/69f0464d5612b747285af855/69f0464d5612b747285af855-9f6e1d3ccb6335c760110e9cbd7c33cd_jquery.maskedinput.min.js?ver=2.10.0"></script>
<script type="text/javascript" defer="defer" id="gform_placeholder-js" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/gravityforms/js/69f0464d5612b747285af855/69f0464d5612b747285af855-a39e45502bab7e9e26723e6ab243e8f8_placeholders.jquery.min.js?ver=2.10.0"></script>
<script type="text/javascript" defer="defer" id="gform_gravityforms_utils-js" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/gravityforms/assets/js/dist/69f0464d5612b747285af855/69f0464d5612b747285af855-3f278756f0a3032bed328ff6a9f6c01d_utils.min.js?ver=3f278756f0a3032bed328ff6a9f6c01d"></script>
<script type="text/javascript" defer="defer" id="gform_gravityforms_theme_vendors-js" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/gravityforms/assets/js/dist/69f0464d5612b747285af855/69f0464d5612b747285af855-4f8b3915c1c1e1a6800825abd64b03cb_vendor-theme.min.js?ver=4f8b3915c1c1e1a6800825abd64b03cb"></script>
<script src="data:text/javascript;base64,LyogPCFbQ0RBVEFbICovCnZhciBnZm9ybV90aGVtZV9jb25maWcgPSB7ImNvbW1vbiI6eyJmb3JtIjp7ImhvbmV5cG90Ijp7InZlcnNpb25faGFzaCI6ImQwOTFkNjliNDYxZjM1ODQ1YjA5MDVjNTk4YzBkNDIxIn0sImFqYXgiOnsiYWpheHVybCI6Imh0dHBzOi8vYmV0dGVyd2F0ZXJhbGFza2EuY29tL3dwLWFkbWluL2FkbWluLWFqYXgucGhwIiwiYWpheF9zdWJtaXNzaW9uX25vbmNlIjoiZjM4YTA1M2Y3MCIsImkxOG4iOnsic3RlcF9hbm5vdW5jZW1lbnQiOiJTdGVwICUxJHMgb2YgJTIkcywgJTMkcyIsInVua25vd25fZXJyb3IiOiJUaGVyZSB3YXMgYW4gdW5rbm93biBlcnJvciBwcm9jZXNzaW5nIHlvdXIgcmVxdWVzdC4gUGxlYXNlIHRyeSBhZ2Fpbi4iLCJlcnJvcl80MDMiOiJUaGUgcmVxdWVzdCB3YXMgYmxvY2tlZCAoNDAzIGVycm9yKSBmb3IgdW5rbm93biBzZWN1cml0eSByZWFzb25zLiBSZW1vdmUgYW55IGNvZGUtbGlrZSB0ZXh0IChzY3JpcHRzIG9yIERCIHF1ZXJpZXMpIGFuZCB0cnkgYWdhaW4uIn19LCJsb2dnaW5nIjp7ImlzX2VuYWJsZWQiOmZhbHNlfX19LCJobXJfZGV2IjoiIiwicHVibGljX3BhdGgiOiJodHRwczovL2JldHRlcndhdGVyYWxhc2thLmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2Fzc2V0cy9qcy9kaXN0LyIsImNvbmZpZ19ub25jZSI6IjNiMDI2ZWIyYTAifTsKLy8jIHNvdXJjZVVSTD1nZm9ybV9ncmF2aXR5Zm9ybXNfdGhlbWUtanMtZXh0cmEKLyogXV0+ICov" type="text/javascript" id="gform_gravityforms_theme-js-extra" defer="defer" data-cfasync="false" defer></script>
<script type="text/javascript" defer="defer" id="gform_gravityforms_theme-js" data-cfasync="false" defer src="https://betterwateralaska.com/wp-content/uploads/al_opt_content/SCRIPT/betterwateralaska.com/./wp-content/plugins/gravityforms/assets/js/dist/69f0464d5612b747285af855/69f0464d5612b747285af855-c6a2001023348ccf279dfc6bcec0a654_scripts-theme.min.js?ver=c6a2001023348ccf279dfc6bcec0a654"></script>
<style id="et-builder-module-design-deferred-9885-cached-inline-styles">.et_pb_section_0.et_pb_section,.et_pb_section_1.et_pb_section{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px}.et_pb_image_0{margin-bottom:20px!important;width:100%;max-width:225px;text-align:center}.et_pb_text_0{line-height:0.75em;font-size:24px;line-height:0.75em;padding-top:0px!important;padding-bottom:0px!important;margin-top:-10px!important;margin-bottom:0px!important}.et_pb_section_2.et_pb_section{padding-top:15px;padding-right:0px;padding-bottom:9px;padding-left:0px}.et_pb_row_1.et_pb_row{padding-top:35px!important;padding-right:0px!important;padding-bottom:0px!important;padding-left:0px!important;padding-top:35px;padding-right:0px;padding-bottom:0;padding-left:0px}.et_pb_text_1 h1{font-family: