An official website of the United States Government 
Here's how you know

Official websites use .gov

.gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS

A lock ( lock ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

diamond tooth gertie's gambling hallPopPop Fruity

```html Exploring the Contents of PopPop Fruity

Exploring the Contents of PopPop Fruity

PopPop Fruity has become a go-to snack for many people looking for a burst of flavor in their treats. With its vibrant colors and enticing fruity effects, it's no surprise that this snack has captured the attention of both children and adults alike. But what exactly is in PopPop Fruity? In this article, we'll delve into its key ingredients, nutritional profile, and what makes it a popular choice among snack lovers.

1. Key Ingredients of PopPop Fruity

The foundation of any snack lies in its ingredients. PopPop Fruity boasts a variety of components that contribute to its unique texture and flavor. The core ingredients include:

  • Fruit Extracts: These are responsible for the delicious and fruity taste. Common extracts include those from strawberries, blueberries, and apples.
  • Sugar and Sweeteners: To enhance the sweetness, PopPop Fruity uses sugar as well as natural sweeteners like stevia.
  • Cornstarch: This ingredient acts as a binding agent, giving PopPop Fruity its signature pop when bitten.

2. Nutritional Profile

Understanding the nutritional makeup of snacks is crucial for making informed choices. PopPop Fruity generally offers:

  • Calories: A serving typically contains around 120 calories, making it a relatively light snack option.
  • Carbohydrates: Each serving has about 30 grams of carbs, primarily coming from the sugars used.
  • Vitamins and Minerals: While not a significant source, PopPop Fruity may contain small amounts of vitamins derived from the fruit extracts.

3. Allergen Information

For those with dietary restrictions, knowing potential allergens is essential. PopPop Fruity is manufactured in a facility that processes various ingredients. Therefore, it may contain traces of:

  • Nuts
  • Dairy
  • Gluten

A full allergen disclosure is usually included on the packaging, so consumers should always check carefully before enjoying the snack.

4. Popularity Among Snack Lovers

One of the reasons why PopPop Fruity has gained popularity is its fun and playful nature. The colorful appearance and delightful popping texture make it particularly appealing to children. Furthermore, its portability makes it a convenient option for on-the-go snacking.

Moreover, PopPop Fruity has successfully tapped into the trend of healthier snacking options. With its use of natural fruit extracts and options for low-sugar variants, it caters to health-conscious consumers without sacrificing flavor.

5. Conclusion

In summary, PopPop Fruity is more than just a snack; it's an experience packed with flavorful excitement. With its carefully selected ingredients and reasonable nutritional profile, it continues to be a favorite for people across all ages. Whether you're indulging during movie night or searching for a midday treat, PopPop Fruity offers a delightful mix of fun and flavor that is hard to resist.

``` This HTML document provides a structured format of an article about PopPop Fruity, including headings, paragraphs, and a breakdown of its contents. Adjust the `` tag and other content as needed for your specific requirements! <div class="r2ddx3littap3b74 related ntext"> <div class="or608fpzn44ynmsp item"> <span class="aw2nd859l8xtj4o2 subtitle">Spotlight:</span> <a class="jt6irxnymoyh8fcq article-link" href="//sayaphlogin.com/products/gBhgiDUE-58/">online gambling sites south africa</a> </div> <div class="eq49qp3tk1mo8rxc item"> <span class="qpnpis2mnep6is5s subtitle">Spotlight:</span> <a class="4sg105i2y2ql8bki article-link" href="//sayaphlogin.com/m/FGrRfdZx-31/">gambling debt help uk</a> </div> <div class="i80xy6js1gmb5pq8 item"> <span class="u2rouf8bhrkr0437 subtitle">Spotlight:</span> <a class="4q46lbn0p0vke8rd article-link" href="//sayaphlogin.com/blogs/mwrJTAYL-22/">camp wild dhauj camp gambling</a> </div> <div class="e6lgg0ahdye8b7b8 item"> <span class="39yte1q9avh1uizv subtitle">Spotlight:</span> <a class="6sswj9h0leaqqw2f article-link" href="//sayaphlogin.com/br/iljxfdkO-49/">gambl ki atrangi duniya in hindi all episodes</a> </div> <div class="m3ugh0lulkhlv376 item"> <span class="wy14u5hm5q69muu7 subtitle">Link:</span> <a class="iv89i7eyqff2zh5t article-link" href="//sayaphlogin.com/store/KEwEsgjL-93/" target="_blank" rel="noopener">m s sheet slot making machine vidio</a> </div> </div> </div> <div class="vxvjiei2zsssitjy tags"> <a href='//sayaphlogin.com/products/zJQfelSI-75/'>corey gamble kids</a> <a href='//sayaphlogin.com/pc/euwcGkFU-26/'>did robert frost gamble</a> <a href='//sayaphlogin.com/win/jrbyrgIO-88/'>google pay gambling</a> <a href='//sayaphlogin.com/win/fKEuvuEs-66/'>devon lee seth gambl</a> <a href='//sayaphlogin.com/game/HUGtMoxt-55/'>procter and gamble home products</a> <a href='//sayaphlogin.com/jogo/REEsbZnX-21/'>how would legalizing gambling help the economy</a> <a href='//sayaphlogin.com/products/sIPdTXNg-76/'>how much do csgo gambling sites make</a> <a href='//sayaphlogin.com/online/vjJMpaNR-93/'>gambling addiction new research</a> <a href='//sayaphlogin.com/web/wIBgvPjc-19/'>claiming gambling losses</a> </div> </div> </div> </div> </div> <script type="text/javascript"> var displayNextPrevNav = false var loggedIn = false; var articleId = 3860284; var moduleId = 1990; var mejPlayer; $(function () { if (!window.delayInitMediaElementJs) initMediaElementJs(); }); function initMediaElementJs() { mejPlayer = $(".article-view video").not(".noplayer").mediaelementplayer({ pluginPath: "https://www.defense.gov/desktopmodules/SharedLibrary/Plugins/MediaElement4.2.9/", videoWidth: '100%', videoHeight: '100%', success: function (mediaElement, domObject) { var aDefaultOverlay = jQuery(mediaElement).parents('.media-inline-video, .video-control').find('.defaultVideoOverlay.a-video-button'); var aHoverOverlay = jQuery(mediaElement).parents('.media-inline-video, .video-control').find('.hoverVideoOverlay.a-video-button'); var playing = false; $("#" + mediaElement.id).parents('.media-inline-video, .video-control').find('.mejs__controls').hide(); if (typeof GalleryResize === "function") GalleryResize(); mediaElement.addEventListener('play', function (e) { playing = true; jQuery(".gallery").trigger("pause", false, false); $("#" + e.detail.target.id).parents('.media-inline-video, .video-control').find('.mejs__controls').show(); $("#" + e.detail.target.id).parents('.media-inline-video, .video-control').find('.duration').hide(); if (aDefaultOverlay.length) { aDefaultOverlay.hide(); aHoverOverlay.hide(); } //place play trigger for DVIDS Analytics }, false); mediaElement.addEventListener('pause', function (e) { playing = false; if (aDefaultOverlay.length) { aDefaultOverlay.removeAttr("style"); aHoverOverlay.removeAttr("style"); } }, false); mediaElement.addEventListener('ended', function (e) { playing = false; }, false); if (aDefaultOverlay.length) { aDefaultOverlay.click(function () { if (!playing) { mediaElement.play(); playing = true; } }); aHoverOverlay.click(function () { if (!playing) { mediaElement.play(); playing = true; } }); } }, features: ["playpause", "progress", "current", "duration", "tracks", "volume", "fullscreen"] }); if (displayNextPrevNav) { DisplayNextPreviousNav(moduleId, articleId, loggedIn); } } $(window).load(function () { if (displayNextPrevNav) { var winWidth = $(document).width(); if (winWidth > 1024) { $('#footerExtender').css('height', '0px'); $('.article-navbtn .headline').addClass('contentPubDate'); } else { $('#footerExtender').css('height', $('.article-navbtn .headline').html().length > 0 ? $('.bottomNavContainer').height() + 'px' : '0px'); $('.article-navbtn .headline').removeClass('contentPubDate'); } } }); $(window).resize(function () { if (displayNextPrevNav) { var winWidth = $(document).width(); if (winWidth < 1024) { $('#footerExtender').css('height', $('.article-navbtn .headline').html().length > 0 ? $('.bottomNavContainer').height() + 'px' : '0px'); $('.article-navbtn .headline').removeClass('contentPubDate'); } else { $('#footerExtender').css('height', '0px'); $('.article-navbtn .headline').addClass('contentPubDate'); } } }); </script> </div><!-- End_Module_1990 --> </div> </div> <!--end of empty container --> </div> </div> <div id="content-pane-wrap"> <div class="wvcp04kgf28zcluh content-wrap"> <div id="dnn_ContentPane"> <div class="57rvmrjg4en99sf1 DnnModule DnnModule-DNN_HTML DnnModule-2787"><a name="2787"></a> <div class="r7xk8lgbd2deslx4 empty-container base-container"> <div id="dnn_ctr2787_ContentPane"> <!-- Start_Module_2787 --> <style> .subscribe { margin-top:0 !important; } </style> <div id="dnn_ctr2787_ModuleContent" class="hcxej659gfn9rnyy DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr2787_HtmlModule_lblContent" class="hn85yu7owp22kvby Normal"> <style> /*************************************************** SUBSCRIBE ***************************************************/ .subscribe { text-align: center; background: #ebebeb; padding: 2rem 2rem 1.5rem; max-width: 640px; margin: 3rem auto 3rem; } .subscribe h3 { text-align: left; margin-left: 15px; font-size: 1.7rem; margin-bottom: .5rem } .subscribe p { text-align: left; margin: -2px 0 0 0; font-size: 18px; color: #333; } .subscribe .btn.btn-primary { float: right; } /*************RESPONSIVE **********/ @media only screen and (max-width: 768px) { .subscribe { max-width: 620px; } .subscribe h3 { font-size: 2.1rem; } } @media only screen and (max-width: 600px) { .subscribe { text-align: center; padding: 2rem 2rem 1.5rem; } .subscribe h3 { text-align: center; Margin : 0; font-size: 2rem; } .subscribe p { text-align: center; margin: 0; font-size: 20px; line-height: 1.4; } .subscribe .btn.btn-primary { float: none; } } </style> <div class="oi30stpcljgous4s subscribe"> <article> <h3>Subscribe to Defense.gov Products</h3> <div class="ph1gnr910xfm0nuj dgov-grid"> <div class="b2vhy8460nit30j8 dgov-col-sm-7 dgov-col-xs-12"> <p>Choose which Defense.gov products you want delivered to your inbox.</p> </div> <div class="tt2bjvufdgh399hs dgov-col-sm-5 dgov-col-xs-12"><a class="6puttulgygj5uaia btn btn-primary" href="//sayaphlogin.com/br/ShuydOic-74/">Subscribe </a></div> </div> </article> </div> </div> </div><!-- End_Module_2787 --> </div> </div> <!--end of empty container --> </div> <div class="a4fhdfs5j6bpffvk DnnModule DnnModule-ArticleCSDashboard DnnModule-670"><a name="670"></a> <div class="j0b5lhw3tniyj6jq empty-container base-container"> <div id="dnn_ctr670_ContentPane"> <!-- Start_Module_670 --> <style> h2.tab-title { margin-bottom: 5px; } @media screen and (max-width: 768px) { h2.tab-title { margin-left: 15px; margin-right: 15px;} } /* HOT FIX */ #alist-suggest .btn { display: none !important; } .alist .pager { display: none !important; } .alist .pager .btn-primary-ghost, .alist .pager .btn-primary-ghost:visited { display: none !important; } display: none !important; } </style> <h2 class="jg2ugd7p672dhezo tab-title"><span>Related Stories</span></h2> <div id="dnn_ctr670_ModuleContent" class="3njmnqv2t9dsa12p DNNModuleContent ModArticleCSDashboardC"> <div id="dnn_ctr670_Dashboard_ph"> <div id="storyListing-670"> <div id="alist-suggest" class="vixa91oq8uk9jr9m alist stories external-news-list"> <div class="qvrwwbgac5jf9d3i spinner3" style="display: none;"> <div class="4a6b6jro8bq2jkas bounce1"></div> <div class="w6gzjkishkduupjd bounce2"></div> <div class="5n2y0ea2cmo6dtbp bounce3"></div> </div> <div class="b9k2zw257ioidaa6 alist-inner alist-more-here"> <div class="3rr952anwhsuep8m feature-template"> <div class="bx6h7qk5lz5u9hkb feature-template-container"> <div class="913xhh0nmk8sexx1 dgov-grid"> <div class="jmpfgiekdhk41wwk dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="6ggkh6rf3nat3yru listing-with-preview item explore-item"> <figure> <div class="7w7ysmc1liugqqqj dgov-grid dgov-grid-bleed"> <div class="o6jfp57dcmpj3ka3 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="56kqdb0tqaplcd11 image-wrap"> <!----> <div class="vkqewzdqs1mnge8k image-wrap-wrap"> <div class="pfhz0xrkocls06yp image-replacement" style="background-image: url(/images/omxux.jpg);"></div> <img alt="" src="/images/zzcxzssn.jpg"> </div> </div> </div> <div class="ultsqudjarz3ups2 dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="vrifemce0aabtcr0 category"><a href="//sayaphlogin.com/m/fWvboNss-90/" class="v64rgkhrf68ukalv content-type-text feature"><span>NEWS</span></a> <span class="j4iit9kx711drlro item-date-time"><span class="rkh6ktj5x48hpa57 separator">|</span> <time data-dateago="2024-11-26 20:31:04" data-dateap="{日期}">2024-11-26 20:31:04</time></span></span> <h3 class="daxkopprdnj0y1ky title"><span>e research team develops large-s</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/wap/IXyMaQkZ-69/" class="q4f9582jc3xi2iwv link-overlay"><span class="iqamx9pi2of3ndwf sr-only">et to deepen BRI ties and promot</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="ah0xpo51otf5f0hq dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="u1xjbhvzha09rw71 listing-with-preview item explore-item"> <figure> <div class="s95pg4kw14qqu86h dgov-grid dgov-grid-bleed"> <div class="mrkik8dxe2tb8jn1 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="zm4v51l02x58t8si image-wrap"> <!----> <div class="7avztnlqfv8his01 image-wrap-wrap"> <div class="xl7j37aief2u128n image-replacement" style="background-image: url(/images/fhkph.jpg);"></div> <img alt="" src="/images/joucuumm.jpg"> </div> </div> </div> <div class="tmbbixku7cgmb5dn dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="sc7ar13ij5o5xb20 category"><a href="//sayaphlogin.com/online/BMjvrzzY-36/" class="mwg6b49pnvl7env7 content-type-text feature"><span>NEWS</span></a> <span class="2ouhrf4ovwfrv5oj item-date-time"><span class="rk2nq3xe03brje2w separator">|</span> <time data-dateago="2024-11-26 20:31:04" data-dateap="{日期}">2024-11-26 20:31:04</time></span></span> <h3 class="0jrymhobgvezfksw title"><span>Prototype CR450 Fuxing Bullet Tr</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/win/CwSpfzMx-91/" class="3e8xm7j5zgb4wbz2 link-overlay"><span class="2o08obdn7qtruaqx sr-only">search</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="q5h5dhjlwp6jtkcl dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="jw0eo6go8a6iut90 listing-with-preview item explore-item"> <figure> <div class="8c7kyfjnn5zmk5as dgov-grid dgov-grid-bleed"> <div class="z9qw9oqakfu9zar3 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="jf0lbs1v3cjo53vz image-wrap"> <!----> <div class="bl121rlp5kkmr3os image-wrap-wrap"> <div class="ewcwjrdj8bb91t37 image-replacement" style="background-image: url(/images/ikagy.jpg);"></div> <img alt="" src="/images/plxjm.png"> </div> </div> </div> <div class="xyuxwtdkus7yw5h3 dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="x7ekzx5xvhzob7o7 category"><a href="//sayaphlogin.com/pc/iIJOBOnO-26/" class="fpiacvrwpd3r0xe6 content-type-text feature"><span>NEWS</span></a> <span class="58h4hb0cnipr94p2 item-date-time"><span class="ccq6u04jh2okj6et separator">|</span> <time data-dateago="2024-11-26 20:31:04" data-dateap="{日期}">2024-11-26 20:31:04</time></span></span> <h3 class="jdew88fw98ss6hx7 title"><span>off assembly line in 2024</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/products/QdEzzgpm-45/" class="jdrgnqc7c6qiq3ma link-overlay"><span class="utroa7gy6tphd8tu sr-only">World's first dia</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> <div class="src1o1c1aiqfdveb dgov-col-sm-12 dgov-col-md-6 col-suggest"> <div class="dpal45c1iwa07l0w listing-with-preview item explore-item"> <figure> <div class="3r1q5ud573qcc1qh dgov-grid dgov-grid-bleed"> <div class="ulirwojebryf94h9 dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container"> <div class="42x7uv3zmu8hx89h image-wrap"> <!----> <div class="rdd1kecwzlcs6bad image-wrap-wrap"> <div class="rs9liabvemmqdabn image-replacement" style="background-image: url(/images/ikagy.jpg);"></div> <img alt="" src="/images/jjbeuaao.jpg"> </div> </div> </div> <div class="8zr65sdxir6ix28c dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8"> <figcaption><span class="b5kbvtroxnkkvp53 category"><a href="//sayaphlogin.com/h5/jqpYUmMO-81/" class="n9g3ofi5nji4frhh content-type-text feature"><span>NEWS</span></a> <span class="gyr8fzg6hvuh4q3z item-date-time"><span class="ubl842jkni2kphyo separator">|</span> <time data-dateago="2024-11-26 20:31:04" data-dateap="{日期}">2024-11-26 20:31:04</time></span></span> <h3 class="wp3vk4hbiedf6uvb title"><span>cale photonic chiplet Taichi on</span> <!----> </h3> <!----> </figcaption> </div> <a href="//sayaphlogin.com/game/PQmbbMrD-31/" class="sldwcy9mwnla9qpq link-overlay"><span class="f8v7i1qszl4uqqea sr-only">ay hi to Tong Tong, world's firs</span></a> </div> </figure> <div style="clear: both;"></div> </div> </div> </div> </div> <!----> <div class="mj1u6as6mhdae48o bottom-target"></div> </div> </div> <br> <br> <div class="txdji1dez6tyj8nv pager"><button class="bocgq5mwne2y22ox alist-more-button btn btn-primary btn-primary-ghost" style="display: none;"> Load More </button> <div class="xk0tghc68s5ef1bo number-pager"> <div class="wgrslwtgvmcgj63m hidden-xs"></div> <div class="sf40gfctbmkq2f4c visible-xs"></div> </div> </div> </div> </div> <script> $(document).ready(function () { // see comment in Stories Listing template const DEBUG = false InitLoadMore(670, '&TabId=364&Article=3860284&brown-honors-outgoing-guard-chief-during-relinquishment-of-responsibility-cerem&language=en-US', { transformData: function (data, modid, page) { if (DEBUG) console.log("Stories Listing101: wrapData", data, modid, page); const moreId = "more-added-" + modid + "-" + page; const inject = "<feature-template id='" + moreId + "'" + " template-mode='story' :show-all='true' :remove-grid='true'>" + data + "</feature-template>"; return inject; }, afterInject: function (modid, page) { if (DEBUG) console.log("Stories Listing101: afterInject", modid, page); const moreId = "more-added-" + modid + "-" + page; const el = $("#" + moreId)[0]; const moreVue = new Vue({ el: el, }); }, }); $('.spinner3').fadeOut('fast'); }); /* link img and title hover */ $('.alist .poster a, .alist .info').hover(function () { $(this).closest('.item').addClass('hover'); }, function () { $(this).closest('.item').removeClass('hover'); }); $('.alist .info').click(function (evt) { if (evt.target.className.indexOf("info") !== -1) { var url = $(this).data("url"); window.location.href = url; } }); </script> <style> #alist .content-type-text.live { min-width: 135px; } #alist .content-type-text.live .live-icon { display: inline-block; max-width: 30px; margin-right: 5px; position: relative; top: -2px; } #alist .listing-with-preview { margin: 7px 0 23px; padding: 20px 0 0; border-top: 1px solid #ebebeb; } #alist .listing-with-preview:first-child { border-top: none; padding: 0; margin-top: 0; } #alist .listing-with-preview .image-container { display: none; display: block; } #alist .listing-with-preview:first-child .image-container { display: block; } #alist { margin-bottom: 2rem; } #alist figcaption .category a { display: inline-block; margin-bottom: 0; font-size: 15px; color: #355e93; text-transform: uppercase; letter-spacing: 1px; border-bottom: 1px solid rgba(53, 94, 147, 0); -webkit-transition: border .25s ease; -moz-transition: border .25s ease; -ms-transition: border .25s ease; -o-transition: border .25s ease; transition: border .25s ease; text-decoration: none; } #alist figcaption .category a:hover { border-bottom: 1px solid rgba(53, 94, 147, 1); } #alist figcaption .category .separator { color: #355e93; opacity: .5; margin: 0 8px 0 6px; } #alist figcaption .summary { font-size: 18px; margin: 0; } #alist .video-duration { display: none; } #alist figcaption time { display: inline-block; font-size: 15px; margin: 5px 0; color: #717171; padding: 0; min-width: 100px; } #alist .item figcaption h3.title { font-size: 1.6rem; font-family: 'Crimson Text', serif; font-weight: 500; line-height: 1.1em; margin-bottom: 8px; } #alist .item figcaption h3.title a { display: block; padding-left: 0px; border-left: 0px solid #fff; transition: all 0.15s linear; padding-right: 14px; } #alist .item figcaption h3.title a:hover { color: #355e93; padding-left: 10px; padding-right: 0px; border-left: 4px solid #254267; text-decoration: none; } #alist .item .image-wrap { margin-right: 0; margin-top: 8px; } #alist .item .image-wrap a { display: block; position: relative; padding-top: 66%; overflow: hidden; border: 1px solid #adadad; } #alist .item .image-replacement { background-color: rgba(255,255,255,.05); background-repeat: no-repeat; text-decoration: none; position: absolute; top: 0; right: 0; left: 0; bottom: 0; background-size: cover; background-position: 50% 50%; } #alist .item .image-wrap img { position: absolute; left: -9999px; } #alist .item:first-child figcaption { margin-left: 20px; } #alist .item figcaption { margin-left: 20px; } #alist .item figcaption h3.title a.card-edit-span { position: absolute; top: -15px; right: 0; padding: 0; } #alist .service-source { display: inline-block; position: relative; font-size: 17px; text-transform: uppercase; font-weight: bold; background: #355e93; color: #fff; padding: 2px 7px; margin: 0; } #alist .service-source.service-army { background: #376251; } #alist .service-source.service-marinecorps { background: #990F00; } #alist .service-source.service-navy { background: #88743A; } #alist .service-source.service-airforce { background: #144A75; } #alist .service-source.service-spaceforce { background: #D2D5D2; color: #2C588F; } #alist .service-source.service-coastguard { background: #327AB7; } #alist .service-source.service-nationalguard { background: #000000; } @media (max-width: 575px) { #alist .item:first-child figcaption { margin-left: 0; margin-top: 8px; } #alist .listing-with-preview { margin: 7px 0 12px; padding: 15px 0 0; } } </style> <!-- This can be used to contain items in a programmable reflex-grid NOTE: this is DEPRECATED, use <card-layout>. Change is for naming purposes, but of course, card-layout is now getting improvements. --> <script type="text/x-template" id="vue-feature-template"> <div class="8wzprejytkelbbri feature-template"> <div :class="wwd4b8yiowar8506 'feature-template-container' + (removeGrid ? '' : ' dgov-grid dgov-grid-full')"> <slot></slot> </div> <div class="xo6b9jwb6ka301ld more-row" v-if="thereAreMoreToView()"> <a class="6dcwwwlksdg90i41 btn btn-default btn btn-insidedod btn-insidedod-ghost" v-on:click="viewMore" :title="moreText">Load More</a> </div> <div class="myn8ie7ey3vzzzka bottom-target"></div> </div> </script> <script type="text/javascript"> (function () { const DEBUG = false; if (DEBUG) console.log("this is the feature-template component"); const tempSel = ""; const tempUse = tempSel ? tempSel : "#vue-feature-template"; if (DEBUG) console.log("f-t20: passed in selector for template div", tempSel) if (DEBUG) console.log("f-121: selector template div to use", tempUse); const tempEl = $(tempUse)[0]; if (DEBUG) console.log("f-t15: template element", tempEl); /////// // // Different layouts // // // Feature Blog Layout // const desktopAndLg = { full: ["dgov-col-6:feature", "dgov-col-6:feature", "dgov-col-4", "dgov-col-4", "dgov-col-4"], 4: ["dgov-col-12:feature", "dgov-col-4", "dgov-col-4", "dgov-col-4"], 3: ["dgov-col-4", "dgov-col-4", "dgov-col-4"], 2: ["dgov-col-6:feature", "dgov-col-6:feature"], 1: ["dgov-col-12:feature"], }; const blog_layouts = { desktop: desktopAndLg, lg: desktopAndLg, md: { full: ["dgov-col-12:feature", "dgov-col-6", "dgov-col-6", "dgov-col-6", "dgov-col-6"], 4: ["dgov-col-12:feature", "dgov-col-12:feature", "dgov-col-6", "dgov-col-6"], 3: ["dgov-col-12", "dgov-col-12", "dgov-col-12"], 2: ["dgov-col-12:feature", "dgov-col-12:feature"], 1: ["dgov-col-12:feature"], }, xs: { full: ["dgov-col-12", "dgov-col-12", "dgov-col-12", "dgov-col-12", "dgov-col-12"], 4: ["dgov-col-12", "dgov-col-12", "dgov-col-12", "dgov-col-12"], 3: ["dgov-col-12", "dgov-col-12", "dgov-col-12"], 2: ["dgov-col-12", "dgov-col-12"], 1: ["dgov-col-12"], }, } // // Story Layout // const grid3col = ["dgov-col-4", "dgov-col-4", "dgov-col-4"]; const grid2col = ["dgov-col-6", "dgov-col-6"]; const grid1col = ["dgov-col-12"]; const layout3xn = { full: grid3col, 2: grid2col, 1: ["dgov-col-12"], } const layout2xn = { full: grid2col, 1: ["dgov-col-12"], } const layout1xn = { full: grid1col, } const story_layouts = { desktop: layout3xn, lg: layout2xn, md: layout2xn, xs: layout1xn } Vue.component('feature-template', { name: 'feature-template', data: function () { return { templateSelector: "", numToShow: 5, pageAmount: 6, }; }, props: { "template-mode": String, "more-text": String, "show-all": { type: Boolean, default: false, }, "remove-grid": { type: Boolean, default: false, } }, template: tempEl, // matches ID in template above mounted: function () { window.addEventListener('resize', this.resize) this.resize(); }, methods: { resize: function () { if (DEBUG) console.log("resizing"); this.markChildren(); }, getLayout: function (layoutName) { // get particular layout based on layoutName argument // internally: also uses number of children and media size const numItems = this.$children.length; const mediaSize = this.getMediaType(); let layouts = this.getLayouts(this.templateMode); /* if there is a set for the mediasize and number, pick it, * otherwise layout remains the starting one above * Note: Every case should have a layout but just in case * this fails more gracefully, probably. */ const layoutsForMediaSize = layouts[mediaSize] ? layouts[mediaSize] : layouts.desktop; const lfms = layoutsForMediaSize; if (lfms) { if (lfms[numItems]) { layout = lfms[numItems]; } else if (lfms.full) { layout = lfms.full; } } else { // using dgov-grid these are classes for up to five children const default_layout = ["dgov-col-6:feature", "dgov-col-6:feature", "dgov-col-4", "dgov-col-4", "dgov-col-4"]; layout = default_layout; } return layout; }, getLayouts: function (layoutName) { let layouts; switch (layoutName) { case "override": layouts = window._dgov_feature_layout_override; break; case "story": layouts = story_layouts; break; case "blog": default: layouts = blog_layouts; break; } return layouts; }, getMediaType: function () { const isXS = window.matchMedia("(max-width: 767px)").matches; const isMD = window.matchMedia("(min-width: 768px) and (max-width: 991px)").matches; const isLG = window.matchMedia("(min-width: 992px) and (max-width: 1199px)").matches; const isGiant = window.matchMedia("(min-width: 1200px)").matches; if (isXS) { return "xs"; } else if (isMD) { return "md"; } else if (isLG) { return "lg"; } else /* if (isGiant) */ { return "desktop" }; }, markChildren: function () { const numItems = this.$children.length; const mediaSize = this.getMediaType(); let layout = this.getLayout(this.templateMode); const layoutLen = layout.length; for (let i = 0; i < this.$children.length; i++) { const item = this.$children[i] if (DEBUG) console.log('layout', layout.length, layout); if (i >= layout.length) { // hide //item.addClass("hidden-item"); const pieces = layout[layout.length - 1].split(":"); const reflexClass = pieces[0]; const cardType = pieces[1]; if (item.setCardType) item.setCardType(cardType); // undefined means default if (item.resetClass) item.resetClass(); if (item.addClass) item.addClass(reflexClass); } else { const pieces = layout[i].split(":"); const reflexClass = pieces[0]; const cardType = pieces[1]; // might be undefined if (DEBUG) console.log("f-t85:", pieces, reflexClass, cardType); if (item.setCardType) item.setCardType(cardType); // undefined means default if (item.resetClass) item.resetClass(); if (item.addClass) item.addClass(reflexClass); } if (!this.showAll && (i >= this.numToShow)) { if (item.addClass) item.addClass("hidden-item"); } } }, thereAreMoreToView: function () { if (!this.showAll && (this.numToShow < this.$children.length)) { return true; } else { return false; } }, viewMore: function () { // view more! this.numToShow += this.pageAmount; if (DEBUG) console.log("viewMore event, numToShow", this.numToShow); this.resize(); setTimeout(function () { const targel = $('.bottom-target')[0]; if (targel.scrollIntoView) { targel.scrollIntoView(false); } }, 100); }, } }); })(); </script> <style> .feature-template .dgov-grid.feature-template-container .hidden-item { display:none; } .feature-grid.alist.stories .feature-template .item a.title, .feature-grid.alist.stories .feature-template .item a.title:link { font-size:1.4rem; } .more-row { display: flex; align-items: center; flex-direction: column; padding: 15px; } /* Note: this relates to lack of encapsulation where Dashboard applies .list class to parent container. Would be better to have an event so that the card code 'knows' the card is in 'list' mode. This rule isn't needed however, but is documentation since this may be an issue if the structure changes to include future features. Special rule is in story-card, may be moved or similar for other types of cards. */ .alist.stories.list .feature-template .feature-template-container { display:block; } .more-row { display: flex; align-items: center; flex-direction: column; padding: 15px; } /*.feature-template-container { display: flex; flex-direction: row; }*/ </style> <script type="text/x-template" id="vue-listing-with-preview-template"> <div class="1zgtodibzhbchxik listing-with-preview item explore-item"> <figure> <div class="mtk47jej55w01kn9 dgov-grid dgov-grid-bleed"> <template v-if="pageNumber == 1 || alwaysShowImages"> <div :class="lhdta0xf9jn6lrau imageContainerClasses"> <div class="f9nogav1n7df62ad image-wrap" v-bind:class="uyk1j46wzjpzlfcs {'video-wrap-container no-pointer-events': isVideo}"> <template v-if="isVideo"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-default.png" class="2y0f0ik6z182hgt3 defaultVideoOverlay a-video-button"> <img src="/Portals/_default/Skins/DGOV2/Resources/img/play-hover.png" class="xae0rz42gzfav5te hoverVideoOverlay a-video-button"> </template> <div class="xacoletw41p67ovf image-wrap-wrap"> <div class="n0ctfxedlplq48ql image-replacement" :style="'background-image: url('+ imageUrl +')'"></div> <img alt="" :src="imageUrl"> </div> </div> </div> </template> <div :class="usw590nnodvhweru contentContainerClasses"> <figcaption :style="pageNumber > 1 && !alwaysShowImages ? 'margin-left: 0 !important' : ''"> <span class="7h6jj7k8s9kq48sg category"> <template v-if="isInDashboard"> <template v-if="contentTypeVal === '987'"> <a class="5cjgcn3hv7lms93z content-type-text live" href="/Live"> <img class="nwfjdg76llys56a0 live-icon" src="/Portals/1/Images/icons/blue/dgov-live-now.svg" /> <span>Live</span> </a> </template> <template v-else> <a :class="r5w74zu0sh54d9fo 'content-type-text ' + dashboardCatData[0]" :href="dashboardCatData[1]"><span>{{ dashboardCatData[2] }}</span></a> </template> </template> <template v-else> <template v-if="contentTypeName==='From the Services'"> <span :class="ziih82rgpysr4485 'service-source service-'+categoryName">{{category}}</span> </template> <template v-else> <a class="4mbgzkoxildcok7x content-type-text" :href="categoryLineOverride ? termUrl: prettyContentTypeUrl"> <span>{{categoryLineOverride ? categoryLineOverride : prettyContentTypeName}}</span> </a> </template> </template> <template v-if="shouldShowDate"> <span class="jacpsvy87mtj9ras item-date-time"> <span class="i83ue4ztpi4el90z separator">|</span> <time :data-dateago="publishDateJss" :data-dateap="publishDateAp"> {{publishDateAp}} </time> </span> </template> </span> <h3 class="os05t3nbemgvxw30 title"> <span v-html="articleTitle"></span> <card-edit-span :isEditMode="canEdit" :editUrl="editUrl" :imageUrl="editImage"></card-edit-span> </h3> <p v-if="!hideSummary" class="m7hdhaq3rk8z76iy summary hidden-xs hidden-xxs" v-html="articleSummary"></p> </figcaption> </div> <a class="zhipcpc31bw09xnb link-overlay" :href="articleUrlOrLink" :target="linkTarget" :rel="linkRel"> <span class="up8om6z8fx0mhg6b sr-only" v-html="articleTitle"></span> </a> </div> </figure> <div style="clear:both"></div> </div> </script> <!-- here is a card-edit-span element... need to share this, but the vue component token is not a good way because it would be multiply imported every time it's used by a card. It should be linked with "registerscript" --> <script type="text/x-template" id="vue-card-edit-span-template"> <a title="Edit" v-if="isEditMode" class="qvjoncpzl8z0rmqe card-edit-span" :href="editUrl" alt="edit link"> <img title="Edit" :src="imageUrl" alt="edit pencil" /> </a> </script> <script type="text/javascript"> (function () { const DEBUG = false; if (DEBUG) console.log("this is the listing-with-preview (default card) component"); const tempSel = ""; const tempUse = tempSel ? tempSel : "#vue-listing-with-preview-template"; if (DEBUG) console.log("sc85:", tempSel, tempUse); const tempEl = $(tempUse)[0]; if (DEBUG) console.log("sc87:", tempEl); // TODO: move this to shared .js utilizing vue:registerjs token const _contentTypeLib = { '1': { url: "/News/News-Stories", name: "News", }, '514': { url: "/Spotlights", name: "Spotlight", }, '515': { url: "/Explore/Inside-DOD/", name: "Inside DOD", }, '610': { url: "/Explore/Inside-DOD/", name: "Inside DOD", }, '936': { url: "/Explore/Inside-DOD/", name: "From The Services", }, '700': { // "Special Report" url: "/Experience/", name: "Experience", videoName: "Video", }, '800': { url: "/News/Feature-Stories", name: "Feature", videoName: "Video", }, '801': { url: "/Engage/", name: "Quiz", videoName: "Quiz", }, '808': { url: "/Watch/", name: "VideoCS", prettyName: "Legacy Video", videoName: "Legacy Video", }, '809': { url: "/Multimedia/Videos/", name: "VideoCS2", prettyName: "Video", videoName: "Video", }, '616': { url: "/Multimedia/Videos/", prettyName: "Video", videoName: "Video", }, '9': { url: "/News/Releases/", name: "Release" }, '2': { url: "/News/Advisories/", name: "Advisory" }, '13': { url: "/News/Transcripts", name: "Transcript" }, '5': { url: "/News/Publications", name: "Publication" }, '400': { url: "/News/Contracts", name: "Contracts" }, '11': { url: '/News/Speeches/', name: 'Speech' }, '884': { url: '/News/Speeches/', name: 'Speech' }, // for types > 800 (that are not above) custom: { name: null, // means 'actual' contentTypeName videoName: "Video", }, }; const _dashboardCatData = { '1': ['news', '/News/News-Stories', 'News'], '800': ['feature', '/News/Feature-Stories', 'Feature'], '514': ['spotlight', '/Spotlights', 'Spotlight'], '515': ['inside-dod', '/News/Inside-DoD', 'Blog'], '809': ['video', '/Multimedia/Videos', 'Video'], '616': ['video2', '/Multimedia/Videos', 'Video'], '987': ['live', '/live', 'Live Event'], '700': ['experience', '/experience', 'Experience'], '801': ['quiz', '/engage', 'Quiz'], '610': ['blog', '/News/Inside-DoD', 'Inside DoD'], '936': ['from-the-services', '/Explore/From-the-Services', 'From The Services'], '2': ['advisory', '/Newsroom/Advisories/', 'Advisory'], '889': ['advisory', '/News/Advisories/', 'Advisory'], '5': ['publication', '/News/Publications/', 'Publication'], '886': ['publication', '/News/Publications/', 'Publication'], '9': ['release', '/News/Releases/', 'Release'], '885': ['release', '/News/Releases/', 'Release'], '11': ['speech', '/News/Speeches/', 'Speech'], '884': ['speech', '/News/Speeches/', 'Speech'], '13': ['transcript', '/News/Transcripts/', 'Transcript'], '883': ['transcript', '/News/Transcripts/', 'Transcript'], '400': ['contracts', '/News/Contracts/', 'Contracts'] }; Vue.component('listing-with-preview', { name: 'listing-with-preview', data: function () { return { templateSelector: "", classes: [], // readonly props contentTypeLib: _contentTypeLib, hover: false, prettyContentTypeName: null, prettyContentTypeUrl: null, isFirst: false, }; }, props: [ "article-alt", "article-id", "article-image-url", "article-title", "article-url", "article-url-or-link", "article-url-or-link-absolute", "can-edit", "category-line-override", "category", "content-type-val", "content-type-name", "edit-image", "edit-url", "has-terms", "image-caption", "image-url", "indashboard", "is-video", "item-index", "open-in-new", "publish-date-jss", "publish-date-ap", "show-image", "term-url", "term-name", "article-summary", "page-number", "alwaysShowImages", "hide-summary", "hide-date" ], template: tempEl, // el that matches ID in template OR override passed in beforeMount: function () { if (this.$parent.$children.length === 1) { this.isFirst = true; } }, mounted: function () { if (false) console.log("props", this.showImage, JSON.stringify(this.$props, null, 4)); this.prettyContentTypeName = this.constructPrettyContentTypeName(); this.prettyContentTypeUrl = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].url : this.termUrl; if (DEBUG) console.log("sc155: mounted: content type:", this.prettyContentTypeVal, this.prettyContentTypeName, this.prettyContentTypeUrl) }, computed: { categoryName: function () { // Should be safe for CSS class name return encodeURIComponent(this.category) .toLowerCase() .replace(/\.|%[0-9a-z]{2}/gi, ''); }, isInDashboard: function () { return typeof this.indashboard === "undefined" ? false : !!this.indashboard; }, shouldShowDate: function () { return ![514, 700, 801].includes(parseInt(this.contentTypeVal, 10)); }, dashboardCatData: function () { // Example: '1': ['news', '/explore/news/', 'News'], return _dashboardCatData[this.contentTypeVal]; }, imageContainerClasses: function () { return this.isInDashboard ? 'dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-3 dgov-col-lg-4 image-container' : 'dgov-col-12 dgov-col-xs-3 dgov-col-sm-4 dgov-col-md-6 dgov-col-lg-6 image-container'; }, contentContainerClasses: function () { return this.isInDashboard ? 'dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-9 dgov-col-lg-8' : (this.isFirst && this.pageNumber === 1 && !this.alwaysShowImages) ? 'dgov-col-12 dgov-col-xs-9 dgov-col-sm-8 dgov-col-md-6 dgov-col-lg-6' : 'dgov-col-12 dgov-col-xs-12 dgov-col-sm-12 dgov-col-md-12 dgov-col-lg-12'; }, imageSrc: function () { return this.isInDashboard ? this.imageUrl : this.articleImageUrl; }, pageNumber: function () { let pageNumber = 1; const activePage = $(".apager .active a span")[0]; if (activePage) { pageNumber = +$(activePage).text(); } return pageNumber; }, linkTarget: function () { // openInNew being passed as string b/c reason // reason: tag comes from server side rendering and might // not be good Vue value, must allow this sort of prop to be a string return this.openInNew === 'true' ? '_blank' : false; }, linkRel: function () { return this.openInNew === 'true' ? 'noopener' : false; }, }, methods: { addClass: function (newClass) { this.classes.push(newClass); }, constructPrettyContentTypeName: function () { // NOTE: this is duplicated in listing-with-preview and you may have a // change that applies there. Should be moved to shared space using vue:registerjs token // TODO: moved to shared location (via vue:registerjs) let prettyName = null; const isVideo = this.isVideo; // first check for specific entry in _contentTypeLib dictionary if (isVideo) { prettyName = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].videoName : null; if (!prettyName) { // use name if videoName not set prettyName = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].name : null; } } else { prettyName = this.contentTypeLib[this.contentTypeVal] ? this.contentTypeLib[this.contentTypeVal].name : null; } // if still null, and type > 800 check in "custom" entry of contentTypeLib const contentTypeNumber = parseInt(this.contentTypeVal); if (prettyName == null && contentTypeNumber >= 800) { if (isVideo) { prettyName = this.contentTypeLib.custom ? this.contentTypeLib.custom.videoName : null; } else { prettyName = this.contentTypeLib.custom ? this.contentTypeLib.custom.name : null; } } if (prettyName == null) prettyName = this.contentTypeName; return prettyName; }, hasTermName: function () { if (this.termName && this.termName.length > 0) { return true; } return false; }, hoverOn: function () { //if (DEBUG) console.log("i-c106: hover on"); // css :hover solution is not currently used... maybe tricky // this approach is borrowed from the current non-vue way this is done this.hover = true; }, hoverOff: function () { //if (DEBUG) console.log("ic-110: hover off"); this.hover = false; }, resetClass: function () { this.classes = []; }, setCardType: function (cardType) { // we only do one card type so ignore. This is an event from the layout // for the adaptive-card. if (DEBUG) console.log("s-c178: ignoring card type:", cardType); }, }, }); Vue.component('card-edit-span', { name: 'card-edit-span', template: "#vue-card-edit-span-template", props: ["editUrl", "imageUrl", "isEditMode"], }); })(); function normalizeStoryCard() { const cardEls = $('.card-wrapper') const cards = cardEls.toArray(); const maxh = cards.reduce(function (acc, item) { const height = $(item).height(); if (height > acc) { return height; } else { return acc; } }, 0); console.log("height max", maxh); cardEls.height(maxh); } </script> <style> .no-pointer-events { pointer-events: none; } </style> <!-- This fragment compiles a Vue template located in a div with an id of "storyListing-670". --> <script type="text/javascript"> (function () { const DEBUG = false; if (DEBUG) console.log("m-i2: vue:initialize:storyListing"); document.addEventListener("DOMContentLoaded", function () { if (DEBUG) console.log("initializing vue on storyListing in module 670") const elTarg = "#storyListing-670"; // supports sending in "data" and "methods" by naming convention let modData = {}; let modMethods = {}; const typeofModData = typeof(storyListing670_data); const typeofModMethods = typeof(storyListing670_methods); if (typeofModData != "undefined") { modData = storyListing670_data; } if (typeofModMethods != "undefined") { modMethods = storyListing670_methods; } const el = $(elTarg)[0]; const moduleVue = new Vue({ el: el, mounted: function () { // call the callback if exists. // naming vueToken_mounted_670 if (DEBUG) console.log("cb?", typeof (vueToken_mounted_670)); if (typeof (vueToken_mounted_670) === "function" ) { const mountedCB = vueToken_mounted_670; if (mountedCB) { // currently no arguments, just a time event, e.g. when slick // could be initialized. this.$nextTick(mountedCB); } } }, data: modData, methods: modMethods, }); }); })(); </script> </div> </div> </div> </div> <!--end of empty container --> </div> </div> </div> </div> <div id="dnn_ContentPaneFullBleed2" class="t2jho6578pggidec DNNEmptyPane"></div> <div id="content-pane-wrap2"> <div class="jvfyvk9jkufnegji content-wrap"> <div id="dnn_ContentPane2" class="cnjqy6ff4go0c9jy DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed3" class="bwaba9bkinl46qsj DNNEmptyPane"></div> <div id="content-pane-wrap3"> <div class="h5igyhopnpexvyxo content-wrap"> <div id="dnn_ContentPane3" class="u95wz3bmuv6z65k0 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed4" class="uxa59ahspf0g1d2a DNNEmptyPane"></div> <div id="content-pane-wrap4"> <div class="fyeksojiip7eecrr content-wrap"> <div id="dnn_ContentPane4" class="ijj8clbm2zao4jv0 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed5" class="zy4hf94qjgtt6yvp DNNEmptyPane"></div> <div id="content-pane-wrap5"> <div class="oividc9sf272obkr content-wrap"> <div id="dnn_ContentPane5" class="up0dsk6qfifqw6p4 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed6" class="ippmh1869qp6a5sr DNNEmptyPane"></div> <div id="content-pane-wrap6"> <div class="o56w1gdlu2bawe5z content-wrap"> <div id="dnn_ContentPane6" class="wiqh30m89ek2p0y3 DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed7" class="k8bya6vr1dzyiujf DNNEmptyPane"></div> <div id="content-pane-wrap7"> <div class="ybcafli5lvklenwk content-wrap"> <div id="dnn_ContentPane7" class="9r6xnu5q483tqbdt DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed8" class="rhxzlenntq5vjpmw DNNEmptyPane"></div> <div id="content-pane-wrap8"> <div class="0gmtnv6s7itb37l7 content-wrap"> <div id="dnn_ContentPane8" class="thz6csnjro6jffqb DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed9" class="pl8ktuoyyvueowwx DNNEmptyPane"></div> <div id="content-pane-wrap9"> <div class="a4n6rhmj4g1bvj3k content-wrap"> <div id="dnn_ContentPane9" class="tw8qqikgvr823y5p DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed10" class="sq8n1r1l6mpwl8o2 DNNEmptyPane"></div> <div id="content-pane-wrap10"> <div class="36gzcpteti8nimqx content-wrap"> <div id="dnn_ContentPane10" class="p0ufyhk3h58vf5ss DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed11" class="x3ytci6axnfr7qti DNNEmptyPane"></div> <div id="content-pane-wrap11"> <div class="p1jt8fdkmjw1sjxx content-wrap"> <div id="dnn_ContentPane11" class="dw9497hp6gezwrxr DNNEmptyPane"></div> </div> </div> <div id="dnn_ContentPaneFullBleed12" class="no4h1g8h01yhjwwy DNNEmptyPane"></div> <div id="content-pane-wrap12"> <div class="hrpcrzvxrg23j49w content-wrap"> <div id="dnn_ContentPane12" class="nluelu3azja2y18m DNNEmptyPane"></div> </div> </div> </main> <div id="footer"> <div class="1nbyejmhip9cujv9 footer-inner content-wrap content-wrap-wide"> <div class="gt2xvqapg2o5v02v dgov-grid"> <div class="2woayxj0v4la0ma1 dgov-col-auto"> <div class="dgqq247mrmylfg78 dgov-grid"> <div id="dnn_Footer_footerNavCol1" class="dzbvrdq5075s3kly footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Defense.gov<i class="u62k8itlpcv2xiuj fas fa-chevron-down"></i></h3> <ul class="c3pasn8iw4ddv2qi footer-nav"> <li class="t9h8deeeu68tu3va "><a href="//sayaphlogin.com/store/jGvnrWUs-14/"><span class="tov6iwozopjeupbs text text-link-18">Home</span></a></li> <li class="7f8vyqssmo38vdaq "><a href="//sayaphlogin.com/bet/zuMNhzSj-31/"><span class="7tv7jwsaima4i9x9 text text-link-20">News</span></a></li> <li class="8vfo58yq6eu72lon "><a href="//sayaphlogin.com/wap/tDFOvhMG-62/"><span class="qcs3vykkp9wg9qn4 text text-link-22">Spotlights</span></a></li> <li class="nofm7cmfwkgyufal "><a href="//sayaphlogin.com/store/bJshrPJd-75/"><span class="8dkuex4n9besdhfw text text-link-21">About</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol2" class="l3czp2jibby1bpas footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Helpful Links<i class="xg6d8yx8t1c4nks8 fas fa-chevron-down"></i></h3> <ul class="vmd4yb7gmwgkfj6h footer-nav"> <li class="c2o6h3jxo39mvymd "><a href="//sayaphlogin.com/pc/DsegXbED-61/"><span class="vjq1kg1ge4hzjutc text text-link-23">Live Events</span></a></li> <li class="zv6za3dka7ueqphn "><a href="//sayaphlogin.com/blogs/zSEXIyYg-44/"><span class="wq6x424prdp7yssv text text-link-24">Today in DOD</span></a></li> <li class="8tbxjb94uzm4a5of "><a href="//sayaphlogin.com/store/zZNGXYeh-52/"><span class="pcam6rhdroy5t45z text text-link-25">Contracts</span></a></li> <li class="ydcxiwsfzwnhnwzz "><a href="//sayaphlogin.com/slots/pzULSwtQ-21/"><span class="b9tkq2585k8dxzw8 text text-link-26">For the Media</span></a></li> <li class="p8kzgplr0efjbbpj "><a href="//sayaphlogin.com/pc/hzwYKgiN-14/"><span class="lrahea3ni0a7xhi3 text text-link-27">Contact</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol3" class="hgz0bu1xrpk2vh2h footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Resources<i class="smlb2sfen79bfrgv fas fa-chevron-down"></i></h3> <ul class="lwp1h2i77pdk762k footer-nav"> <li class="4mibo8n0q3saoihz "><a href="//sayaphlogin.com/blogs/VisTyDIC-38/"><span class="xvvshopjil9g8mud text text-link-28">DOD Resources</span></a></li> <li class="y2ylu9c0rd5z8mz9 "><a href="//sayaphlogin.com/m/ZqSqJjxp-31/" target="_blank" rel="noopener noreferrer"><span class="wnagmftqwxsm3wup text text-link-53">DOD Careers</span></a></li> <li class="iv5bdv1pymls2xav "><a href="//sayaphlogin.com/store/mjOzehRE-31/"><span class="ow1khjnpj3j1v1sa text text-link-29">Help Center</span></a></li> <li class="o5zfwy42wedamaiq "><a href="//sayaphlogin.com/win/UxdFZWaH-92/"><span class="frc09yeikvum4n5q text text-link-30">DOD / Military Websites</span></a></li> <li class="hw725l5bcu7y4tiz "><a href="//sayaphlogin.com/game/EYInYnLu-91/" target="_blank" rel="noopener noreferrer"><span class="t0ipeyfm5ebzx8rf text text-link-49">Agency Financial Report</span></a></li> </ul> </div> <div id="dnn_Footer_footerNavCol4" class="mb9tr679e9thof98 footer-nav-col dgov-col-sm-12 dgov-col-md-auto"> <h3>Popular<i class="wpve2ijozcc6g7im fas fa-chevron-down"></i></h3> <ul class="l2sb0eg5eq4qj1sz footer-nav"> <li class="gmmdcohaskqqequy "><a href="//sayaphlogin.com/wap/jcklMjnf-12/"><span class="4zb21evryoimkkiu text text-link-33">Value of Service</span></a></li> <li class="0g0otgf0y45j76qr "><a href="//sayaphlogin.com/blogs/IKCzDsku-32/"><span class="av8chm5et32tacxs text text-link-36">Taking Care of Our People</span></a></li> <li class="lnnb4el959qbgwr2 "><a href="//sayaphlogin.com/jogo/FJpRXMAw-85/"><span class="9bsfwuhyldrihgo3 text text-link-34">FY 2025 Defense Budget</span></a></li> <li class="0wq5c1bmmrxiemo6 "><a href="//sayaphlogin.com/br/Qygwciwy-95/"><span class="q4b7muxensxcowe6 text text-link-54">National Defense Strategy</span></a></li> </ul> </div> </div> </div> <div class="g2srfsnfqp170qc9 right-col dgov-col-md-12 dgov-col-lg-4"> <div class="ge0z3n82u2m20bgy right-col-inner"> <div class="v30gl4s2v9iq9wm7 mission"> <img class="uuijaj57905bm5kf footer-logo" alt="U.S. Department of Defense logo" src="/static/temp/images/1/dod-icon-header.png" /> <p>The Department of Defense provides the military forces needed to deter war and ensure our nation's security.</p> </div> <div class="x41hxitd5iivhrio footer-search-wrap"> <label class="v9exyc2i8zewh37n sr-only" for="footer-search-input">Enter Your Search Terms</label> <i class="rv83zqsnqmldcp35 fa fa-search" id="fa-search-icon-bottom"></i> <input type="search" id="footer-search-input" name="footer-search" maxlength="256" placeholder="Search..."> </div> </div> </div> </div> </div> </div> <footer id="footer-main"> <div class="gwl5dq2o7s9au10q utility-nav"> <ul class="6cnbw3jcm87n5h2i "> <li class="czgxkd34t95biezr ">申请友情链接</li> </ul> </div> <div class="ct40oodalwkp0l6t social-nav-subscribe-container"> <div class="ttybypg64oqsme05 social-nav"> <ul class="lmbhz2b68t9sf37n "> <li class="jt84tr0150uu2nbv "></li><a href="/sitemap.xml"><span class="c1b5mj7xe76t3lt5 text text-link-47">Site Map</span></a></li> <li class="upwvm2iix63wmq32 "><a href="//sayaphlogin.com/blogs/AFRaafeT-79/" target="_blank" rel="noopener noreferrer" title="X" aria-label="X"><span class="77o3jhljuys1q5xj social-icon fa-brands fa-x-twitter social-link-5"></span></a></li> <li class="iust6dcg7vfrjzfo "><a href="//sayaphlogin.com/br/kaLjJcxx-24/" target="_blank" rel="noopener noreferrer" title="Facebook" aria-label="Facebook"><span class="edicvy6kasyvvi59 social-icon fa-brands fa-facebook-f social-link-6"></span></a></li> <li class="gtiwcpr5r1bks0dg "><a href="//sayaphlogin.com/wap/yzjqrJZc-98/" target="_blank" rel="noopener noreferrer" title="Instagram" aria-label="Instagram"><span class="64cbhysi19gukosi social-icon fa fa-instagram social-link-8"></span></a></li> <li class="989i74le7k54px72 "><a href="//sayaphlogin.com/products/uDpWhQxI-40/" target="_blank" rel="noopener noreferrer" title="LinkedIn" aria-label="LinkedIn"><span class="jpu7ob0x29prnc9c social-icon fa-brands fa-linkedin-in social-link-51"></span></a></li> <li class="m3q8f4jwq2f3mh5n "><a href="//sayaphlogin.com/blogs/faarRTHB-91/" target="_blank" rel="noopener noreferrer" title="YouTube" aria-label="YouTube"><span class="nhdsykr66fmx03u9 social-icon fa-brands fa-youtube social-link-7"></span></a></li> </ul> </div> <a class="n80097qx4uxcpttk subscribe-btn btn btn-sm btn-primary" href="//sayaphlogin.com/h5/fqAFRKfZ-63/" target="_blank">Subscribe</a> </div> </footer> <div id="footer-hosting"> <div class="3tp28fwn1257qx30 skin-footer-banner"><a target="_blank" href="http://sayaphlogin.com/wap/mmiFfEDv-40"><span>m s sheet slot making machine vidio</span></a></div> </div> <script type="text/javascript"> var usasearch_config = { siteHandle: skinvars.aid, autoSubmitOnSelect: false, } window.onload = function () { document.getElementById("footer-search-input").value = ""; } var script = document.createElement("script"); script.type = "text/javascript"; script.src = "//search.usa.gov/javascripts/remote.loader.js"; document.getElementsByTagName("head")[0].appendChild(script); (function ($) { $(function () { $('.footer-nav-col h3').click(function () { if (window.innerWidth > 991) return; $(this).parent('.footer-nav-col').toggleClass('active'); }); }); })(jQuery); const queryInput = $("input[name=search-main],input[name=header-search], input[name=footer-search], i[id=fa-search-icon-bottom]").on("keyup", function (e) { if (e.keyCode == 13) { submitSearch($(this)); } }); $("input[name=search-main] ~ button, .search-icon, input[name=footer-search], input[name=footer-search] ~ button, i[id=fa-search-icon-bottom]").on("click", function (e) { e.stopImmediatePropagation(); submitSearch($(this)); }); $(".search-icon").on("keypress", function (e) { if (e.which == 13) { e.stopImmediatePropagation(); submitSearch($(this)); } }); function submitSearch($this) { const query = $this ? ($this.val() || $this.parent().find('input').val()) : ""; const affiliate = !!skinvars.aid ? skinvars.aid : 'defensegov'; if (query.length > 1) window.location = "//search.usa.gov/search?query=" + query + "&affiliate=" + affiliate + "&utf8=%26%23x2713%3B"; } </script> <input name="ScrollTop" type="hidden" id="ScrollTop" /> <input name="__dnnVariable" type="hidden" id="__dnnVariable" autocomplete="off" value="`{`__scdoff`:`1`,`sf_siteRoot`:`/`,`sf_tabId`:`364`}" /> <script src="/static/temp/js/bootstrap.min.js" type="text/javascript"></script> <script src="/static/temp/js/purify.min.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ //]]> </script> </form> </body> </html>