CINXE.COM

Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasing | US EPA

<!DOCTYPE html> <html lang="en" dir="ltr" prefix="og: https://ogp.me/ns#" class="no-js"> <head> <meta charset="utf-8" /> <meta name="description" content="This page lists the product categories that are covered under EPA&#039;s Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasers." /> <link rel="canonical" href="https://www.epa.gov/greenerproducts/recommendations-specifications-standards-and-ecolabels-federal-purchasing" /> <link rel="shortlink" href="https://www.epa.gov/node/106423" /> <meta property="DC.title" content="Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasing" /> <meta property="DC.description" content="This page lists the product categories that are covered under EPA&#039;s Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasers." /> <meta property="DC.Subject.epachannel" content="Learn the Issues" /> <meta property="DC.type" content="Other Policies and Guidance" /> <meta property="DC.date.created" content="2015-08-13" /> <meta property="DC.date.modified" content="2024-10-18" /> <meta property="DC.date.reviewed" content="2025-10-18" /> <meta property="DC.creator" content="US EPA,OCSPP" /> <meta property="DC.language" content="en" /> <meta property="WebArea" content="Sustainable Marketplace: Greener Products and Services" /> <meta property="ContentType" content="Basic page" /> <meta property="NavigationStyle" content="sidebar_navigation" /> <meta property="og:site_name" content="US EPA" /> <meta property="og:type" content="Basic page" /> <meta property="og:url" content="https://www.epa.gov/greenerproducts/recommendations-specifications-standards-and-ecolabels-federal-purchasing" /> <meta property="og:title" content="Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasing | US EPA" /> <meta property="og:description" content="This page lists the product categories that are covered under EPA&#039;s Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasers." /> <meta property="og:image" content="https://www.epa.gov/system/files/images/2022-03/epa-standard-twitter.jpg" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="630" /> <meta property="og:updated_time" content="2024-10-18" /> <meta property="og:image:alt" content="U.S. Environmental Protection Agency" /> <meta property="og:country_name" content="United States of America" /> <meta property="article:published_time" content="2015-08-13T17:33:16-04:00" /> <meta property="article:modified_time" content="2024-10-18" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:description" content="This page lists the product categories that are covered under EPA&#039;s Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasers." /> <meta name="twitter:title" content="Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasing | US EPA" /> <meta name="twitter:url" content="https://www.epa.gov/greenerproducts/recommendations-specifications-standards-and-ecolabels-federal-purchasing" /> <meta name="twitter:image:width" content="1200" /> <meta name="twitter:image:alt" content="U.S. Environmental Protection Agency" /> <meta name="twitter:image" content="https://www.epa.gov/system/files/images/2022-03/epa-standard-twitter.jpg" /> <meta name="twitter:image:height" content="600" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="x-ua-compatible" content="ie=edge" /> <title>Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasing | US EPA</title> <link rel="icon" type="image/x-icon" href="/themes/epa_theme/images/favicon.ico"> <meta name="msapplication-TileColor" content="#FFFFFF"> <meta name="msapplication-TileImage" content="/themes/epa_theme/images/favicon-144.png"> <meta name="application-name" content=""> <meta name="msapplication-config" content="/themes/epa_theme/images/ieconfig.xml"> <link rel="apple-touch-icon-precomposed" sizes="196x196" href="/themes/epa_theme/images/favicon-196.png"> <link rel="apple-touch-icon-precomposed" sizes="152x152" href="/themes/epa_theme/images/favicon-152.png"> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/themes/epa_theme/images/favicon-144.png"> <link rel="apple-touch-icon-precomposed" sizes="120x120" href="/themes/epa_theme/images/favicon-120.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/themes/epa_theme/images/favicon-114.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/themes/epa_theme/images/favicon-72.png"> <link rel="apple-touch-icon-precomposed" href="/themes/epa_theme/images/favicon-180.png"> <link rel="icon" href="/themes/epa_theme/images/favicon-32.png" sizes="32x32"> <link rel="preload" href="/themes/epa_theme/fonts/source-sans-pro/sourcesanspro-regular-webfont.woff2" as="font" crossorigin="anonymous"> <link rel="preload" href="/themes/epa_theme/fonts/source-sans-pro/sourcesanspro-bold-webfont.woff2" as="font" crossorigin="anonymous"> <link rel="preload" href="/themes/epa_theme/fonts/source-sans-pro/sourcesanspro-italic-webfont.woff2" as="font" crossorigin="anonymous"> <link rel="preload" href="/themes/epa_theme/fonts/merriweather/Latin-Merriweather-Bold.woff2" as="font" crossorigin="anonymous"> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/ajax-progress.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/align.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/autocomplete-loading.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/fieldgroup.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/container-inline.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/clearfix.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/details.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/hidden.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/item-list.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/js.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/nowrap.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/position-container.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/progress.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/reset-appearance.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/resize.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/sticky-header.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/system-status-counter.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/system-status-report-counters.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/system-status-report-general-info.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/tabledrag.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/tablesort.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/system/components/tree-child.module.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/contrib/stable/css/filter/filter.caption.css?snbziw" /> <link rel="stylesheet" media="all" href="/modules/contrib/entity_embed/css/entity_embed.filter.caption.css?snbziw" /> <link rel="stylesheet" media="all" href="/modules/contrib/paragraphs/css/paragraphs.unpublished.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/epa_theme/fonts/noto-sans-arabic.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/epa_theme/fonts/noto-sans-kr.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/epa_theme/fonts/noto-sans-bn.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/epa_theme/fonts/noto-sans-gu.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/epa_theme/fonts/noto-sans-sc.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/epa_theme/fonts/noto-sans-tc.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/epa_theme/css/styles.css?snbziw" /> <link rel="stylesheet" media="all" href="/themes/epa_theme/css-lib/colorbox.min.css?snbziw" /> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-L8ZB');</script> <!-- End Google Tag Manager --> </head> <body class="has-wide-template path-node not-front node-page node-page--node-type-page" id="top"> <div class="skiplinks" role="navigation" aria-labelledby="skip-to-main"> <a id="skip-to-main" href="#main" class="skiplinks__link visually-hidden focusable">Skip to main content</a> </div> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-L8ZB" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <section class="usa-banner" aria-label="Official website of the United States government"> <div class="usa-accordion"> <header class="usa-banner__header"> <div class="usa-banner__inner"> <div class="grid-col-auto"> <img class="usa-banner__header-flag" aria-hidden="true" src="/themes/epa_theme/images/us_flag_small.png" alt="U.S. flag" height="11px" width="16px" /> </div> <div class="grid-col-fill tablet:grid-col-auto" aria-hidden="true"> <p class="usa-banner__header-text">An official website of the United States government</p> <p class="usa-banner__header-action">Here’s how you know</p></div> <button type="button" class="usa-accordion__button usa-banner__button" aria-expanded="false" aria-controls="gov-banner"> <span class="usa-banner__button-text">Here’s how you know</span> </button> </div> </header> <div class="usa-banner__content usa-accordion__content" id="gov-banner"> <div class="grid-row grid-gap-lg"> <div class="usa-banner__guidance tablet:grid-col-6"> <img class="usa-banner__icon usa-media-block__img" src="/themes/epa_theme/images/icon-dot-gov.svg" alt="Dot gov"> <div class="usa-media-block__body"> <p> <strong>Official websites use .gov</strong> <br> A <strong>.gov</strong> website belongs to an official government organization in the United States. </p> </div> </div> <div class="usa-banner__guidance tablet:grid-col-6"> <img class="usa-banner__icon usa-media-block__img" src="/themes/epa_theme/images/icon-https.svg" alt="HTTPS"> <div class="usa-media-block__body"> <p> <strong>Secure .gov websites use HTTPS</strong> <br> A <strong>lock</strong> (<span class="icon-lock"><svg xmlns="http://www.w3.org/2000/svg" width="52" height="64" viewBox="0 0 52 64" class="usa-banner__lock-image" role="img" aria-labelledby="banner-lock-title banner-lock-description"><title id="banner-lock-title">Lock</title><desc id="banner-lock-description">A locked padlock</desc><path fill="#000000" fill-rule="evenodd" d="M26 0c10.493 0 19 8.507 19 19v9h3a4 4 0 0 1 4 4v28a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V32a4 4 0 0 1 4-4h3v-9C7 8.507 15.507 0 26 0zm0 8c-5.979 0-10.843 4.77-10.996 10.712L15 19v9h22v-9c0-6.075-4.925-11-11-11z"/></svg></span>) or <strong>https://</strong> means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites. </p> </div> </div> </div> </div> </div> </section> <div class="js-view-dom-id-epa-alerts--public"> <noscript> <div class="usa-site-alert usa-site-alert--info"> <div class="usa-alert"> <div class="usa-alert__body"> <div class="usa-alert__text"> <p>JavaScript appears to be disabled on this computer. Please <a href="/alerts">click here to see any active alerts</a>.</p> </div> </div> </div> </div> </noscript> </div> <header class="l-header js-header-search usa-header usa-header--extended"> <div class="usa-overlay"></div> <div class="l-constrain"> <div class="l-header__navbar"> <div class="l-header__branding"> <button type="button" class="l-header__search-button" aria-controls="header-search-drawer" aria-expanded="false" aria-label="Open search drawer" > <svg class="icon l-header__search-button-icon-open" aria-hidden="true"><use href="/themes/epa_theme/images/sprite.artifact.svg#magnifying-glass"></use></svg> <svg class="icon l-header__search-button-icon-close" aria-hidden="true"><use href="/themes/epa_theme/images/sprite.artifact.svg#xmark"></use></svg> </button> <a class="site-logo" href="/" aria-label="Home" title="Home" rel="home"> <span class="site-logo__image"> <svg class="site-logo__svg-main" aria-hidden="true" viewBox="0 0 454.1 154.7" xmlns="http://www.w3.org/2000/svg"><path d="m112.8 61.2c-4.8 18.6-22.9 33.3-42.9 33.3-20.1 0-38-14.7-42.9-33.4h.2s9.8 10.3-.2 0c3.1 3.1 6.2 4.4 10.7 4.4s7.7-1.3 10.7-4.4c3.1 3.1 6.3 4.5 10.9 4.4 4.5 0 7.6-1.3 10.7-4.4 3.1 3.1 6.2 4.4 10.7 4.4s7.7-1.3 10.7-4.4c3.1 3.1 6.3 4.5 10.9 4.4 4.3 0 7.4-1.2 10.5-4.3z"/><path d="m113.2 51.2c0-24-19.4-43.5-43.3-43.5-24 0-43.5 19.5-43.5 43.5h39.1c-4.8-1.8-8.1-6.3-8.1-11.6 0-7 5.7-12.5 12.5-12.5 7 0 12.7 5.5 12.7 12.5 0 5.2-3.1 9.6-7.6 11.6z"/><path d="m72.6 147c.7-36.9 29.7-68.8 66.9-70 0 37.2-30 68-66.9 70z"/><path d="m67.1 147c-.7-36.9-29.7-68.8-67.1-70 0 37.2 30.2 68 67.1 70z"/><path d="m240 10.8h-87.9v133.1h87.9v-20.4h-60.3v-36h60.3v-21h-60.3v-35h60.3z"/><path d="m272.8 66.5h27.1c9.1 0 15.2-8.6 15.1-17.7-.1-9-6.1-17.3-15.1-17.3h-25.3v112.4h-27.8v-133.1h62.3c20.2 0 35 17.8 35.2 38 .2 20.4-14.8 38.7-35.2 38.7h-36.3z"/><path d="m315.9 143.9h29.7l12.9-35h54.2l-8.1-21.9h-38.4l18.9-50.7 39.2 107.6h29.7l-53.1-133.1h-33.7z"/></svg> <svg class="site-logo__svg-text" aria-hidden="true" viewBox="0 0 595.4 154.7" xmlns="http://www.w3.org/2000/svg"><path d="m9 8.5v22.4c0 1.9.2 3.3.5 4.3s.7 1.7 1 2.2c1.2 1.4 2.5 2.4 3.9 2.9 1.5.5 2.8.7 4.1.7 2.4 0 4.2-.4 5.5-1.3 1.3-.8 2.2-1.8 2.8-2.9s.9-2.3 1-3.4.1-2 .1-2.6v-22.3h4.7v22.3 1.7c0 .7-.1 1.5-.4 2.4-.3 1.8-1.2 3.6-2.5 5.4-1.8 2.1-3.8 3.5-6 4.2-2.2.6-4 .9-5.3.9-1.8 0-3.8-.3-6.2-1.1s-4.5-2.3-6.2-4.7c-.5-.8-1-1.8-1.4-3.2-.4-1.3-.6-3.3-.6-5.9v-22z"/><path d="m43.2 22.2v-2.9l4.6.1-.1 4.1c.2-.3.4-.7.8-1.2.3-.5.8-.9 1.4-1.4s1.4-.9 2.3-1.3c.9-.3 2.1-.5 3.4-.4.6 0 1.4.1 2.4.3.9.2 1.9.6 2.9 1.2s1.8 1.5 2.4 2.6c.6 1.2.9 2.8.9 4.7l-.4 17-4.6-.1.4-16c0-.9 0-1.7-.2-2.4-.1-.7-.5-1.3-1.1-1.9-1.2-1.2-2.6-1.8-4.3-1.8s-3.1.5-4.4 1.7-2 3.1-2.1 5.7l-.3 14.5-4.5-.1z"/><path d="m72.9 8.6h5.5v5.1h-5.5zm.5 10.9h4.6v25.1h-4.6z"/><path d="m83.5 19.4h4.3v-5.3l4.5-1.5v6.8h5.4v3.4h-5.4v15.1c0 .3 0 .6.1 1 0 .4.1.7.4 1.1.2.4.5.6 1 .8.4.3 1 .4 1.8.4 1 0 1.7-.1 2.2-.2v3.7c-.9.2-2.1.3-3.8.3-2.1 0-3.6-.4-4.6-1.2s-1.5-2.2-1.5-4.2v-16.8h-4.3v-3.4z"/><path d="m106.6 32.9c-.1 2.6.5 4.8 1.7 6.5 1.1 1.7 2.9 2.6 5.3 2.6 1.5 0 2.8-.4 3.9-1.3 1-.8 1.6-2.2 1.8-4h4.6c0 .6-.2 1.4-.4 2.3-.3 1-.8 2-1.7 3-.2.3-.6.6-1 1-.5.4-1 .7-1.7 1.1s-1.5.6-2.4.8c-.9.3-2 .4-3.3.4-7.6-.2-11.3-4.5-11.3-12.9 0-2.5.3-4.8 1-6.8s2-3.7 3.8-5.1c1.2-.8 2.4-1.3 3.7-1.6 1.3-.2 2.2-.3 3-.3 2.7 0 4.8.6 6.3 1.6s2.5 2.3 3.1 3.9c.6 1.5 1 3.1 1.1 4.6.1 1.6.1 2.9 0 4h-17.5m12.9-3c0-.3 0-.7 0-1.1s0-.8-.1-1.2c-.1-.9-.4-1.7-.8-2.5s-1-1.5-1.8-2c-.9-.5-2-.8-3.4-.8-.8 0-1.5.1-2.3.3s-1.5.7-2.2 1.3-1.2 1.3-1.6 2.3-.7 2.2-.8 3.6h13z"/><path d="m148.6 8.6h4.6v32.1c0 1 .1 2.3.2 4h-4.6l-.1-4c-.2.3-.4.7-.7 1.2s-.8 1-1.4 1.5c-1 .7-2 1.2-3.1 1.4-.5.1-1 .2-1.5.3s-.9.1-1.4.1c-.4 0-.8 0-1.3-.1s-1.1-.2-1.7-.3c-1.1-.3-2.3-.9-3.4-1.8s-2.1-2.2-2.9-3.8c-.8-1.7-1.2-3.9-1.2-6.6.1-4.8 1.2-8.3 3.4-10.5 2.1-2.1 4.7-3.2 7.6-3.2 1.3 0 2.4.2 3.4.5.9.3 1.6.7 2.2 1.2.6.4 1 .9 1.3 1.4s.6.8.7 1.1zm.1 23.1c0-1.9-.2-3.3-.5-4.4-.4-1.1-.8-2-1.4-2.6-.5-.7-1.2-1.3-2-1.8-.9-.5-2-.7-3.3-.7-1.7 0-2.9.5-3.8 1.3s-1.6 1.9-2 3.1-.7 2.3-.7 3.4c-.1 1.1-.2 1.9-.1 2.4 0 1.1.1 2.2.3 3.4.2 1.1.5 2.2 1 3.1.5 1 1.2 1.7 2 2.3.9.6 2 .9 3.3.9 1.8 0 3.2-.5 4.2-1.4 1-.8 1.7-1.8 2.1-3s.7-2.4.8-3.4c.1-1.4.1-2.1.1-2.6z"/><path d="m179.6 34.1c0 .6.1 1.3.3 2.1.1.8.5 1.6 1 2.3.5.8 1.4 1.4 2.5 1.9s2.7.8 4.7.8c1.8 0 3.3-.3 4.4-.8s1.9-1.1 2.5-1.8 1-1.5 1.1-2.2.2-1.2.2-1.7c0-1-.2-1.9-.5-2.6-.4-.6-.9-1.2-1.6-1.6-1.4-.8-3.4-1.4-5.9-2-4.9-1.1-8.1-2.2-9.5-3.2s-2.3-2.2-2.9-3.5c-.6-1.2-.8-2.4-.8-3.6.1-3.7 1.5-6.4 4.2-8.1 2.6-1.7 5.7-2.5 9.1-2.5 1.3 0 2.9.2 4.8.5 1.9.4 3.6 1.4 5 3 .5.5.9 1.1 1.2 1.7.3.5.5 1.1.6 1.6.2 1.1.3 2.1.3 2.9h-5c-.2-2.2-1-3.7-2.4-4.5-1.5-.7-3.1-1.1-4.9-1.1-5.1.1-7.7 2-7.8 5.8 0 1.5.5 2.7 1.6 3.5 1 .8 2.6 1.4 4.7 1.9 4 1 6.7 1.8 8.1 2.2.8.2 1.4.5 1.8.7.5.2 1 .5 1.4.9.8.5 1.4 1.1 1.9 1.8s.8 1.4 1.1 2.1c.3 1.4.5 2.5.5 3.4 0 3.3-1.2 6-3.5 8-2.3 2.1-5.8 3.2-10.3 3.3-1.4 0-3.2-.3-5.4-.8-1-.3-2-.7-3-1.2-.9-.5-1.8-1.2-2.5-2.1-.9-1.4-1.5-2.7-1.7-4.1-.3-1.3-.4-2.4-.3-3.2h5z"/><path d="m205.7 19.4h4.3v-5.3l4.5-1.5v6.8h5.4v3.4h-5.4v15.1c0 .3 0 .6.1 1 0 .4.1.7.4 1.1.2.4.5.6 1 .8.4.3 1 .4 1.8.4 1 0 1.7-.1 2.2-.2v3.7c-.9.2-2.1.3-3.8.3-2.1 0-3.6-.4-4.6-1.2s-1.5-2.2-1.5-4.2v-16.8h-4.4z"/><path d="m241 44.6c-.3-1.2-.5-2.5-.4-3.7-.5 1-1.1 1.8-1.7 2.4-.7.6-1.4 1.1-2 1.4-1.4.5-2.7.8-3.7.8-2.8 0-4.9-.8-6.4-2.2s-2.2-3.1-2.2-5.2c0-1 .2-2.3.8-3.7s1.7-2.6 3.5-3.7c1.4-.7 2.9-1.2 4.5-1.5 1.6-.1 2.9-.2 3.9-.2s2.1 0 3.3.1c.1-2.9-.2-4.8-.9-5.6-.5-.6-1.1-1.1-1.9-1.3s-1.6-.4-2.3-.4c-1.1 0-2 .2-2.6.5-.7.3-1.2.7-1.5 1.2s-.5.9-.6 1.4-.2.9-.2 1.2h-4.6c.1-.7.2-1.4.4-2.3.2-.8.6-1.6 1.3-2.5.5-.6 1-1 1.7-1.3.6-.3 1.3-.6 2-.8 1.5-.4 2.8-.6 4.2-.6 1.8 0 3.6.3 5.2.9s2.8 1.6 3.4 2.9c.4.7.6 1.4.7 2s.1 1.2.1 1.8l-.2 12c0 1 .1 3.1.4 6.3h-4.2m-.5-12.1c-.7-.1-1.6-.1-2.6-.1-.5 0-1.2 0-2.1 0-1 .1-2 .3-3 .6s-1.9.8-2.6 1.5c-.8.7-1.2 1.7-1.2 3 0 .4.1.8.2 1.3s.4 1 .8 1.5.9.8 1.6 1.1 1.5.5 2.5.5c2.3 0 4.1-.9 5.2-2.7.5-.8.8-1.7 1-2.7.1-.9.2-2.2.2-4z"/><path d="m250.2 19.4h4.3v-5.3l4.5-1.5v6.8h5.4v3.4h-5.4v15.1c0 .3 0 .6.1 1 0 .4.1.7.4 1.1.2.4.5.6 1 .8.4.3 1 .4 1.8.4 1 0 1.7-.1 2.2-.2v3.7c-.9.2-2.1.3-3.8.3-2.1 0-3.6-.4-4.6-1.2s-1.5-2.2-1.5-4.2v-16.8h-4.3v-3.4z"/><path d="m273.3 32.9c-.1 2.6.5 4.8 1.7 6.5 1.1 1.7 2.9 2.6 5.3 2.6 1.5 0 2.8-.4 3.9-1.3 1-.8 1.6-2.2 1.8-4h4.6c0 .6-.2 1.4-.4 2.3-.3 1-.8 2-1.7 3-.2.3-.6.6-1 1-.5.4-1 .7-1.7 1.1s-1.5.6-2.4.8c-.9.3-2 .4-3.3.4-7.6-.2-11.3-4.5-11.3-12.9 0-2.5.3-4.8 1-6.8s2-3.7 3.8-5.1c1.2-.8 2.4-1.3 3.7-1.6 1.3-.2 2.2-.3 3-.3 2.7 0 4.8.6 6.3 1.6s2.5 2.3 3.1 3.9c.6 1.5 1 3.1 1.1 4.6.1 1.6.1 2.9 0 4h-17.5m12.9-3c0-.3 0-.7 0-1.1s0-.8-.1-1.2c-.1-.9-.4-1.7-.8-2.5s-1-1.5-1.8-2c-.9-.5-2-.8-3.4-.8-.8 0-1.5.1-2.3.3s-1.5.7-2.2 1.3-1.2 1.3-1.6 2.3-.7 2.2-.8 3.6h13z"/><path d="m301 37.2c0 .5.1 1 .2 1.4.1.5.4 1 .8 1.5s.9.8 1.6 1.1 1.6.5 2.7.5c1 0 1.8-.1 2.5-.3s1.3-.6 1.7-1.2c.5-.7.8-1.5.8-2.4 0-1.2-.4-2-1.3-2.5s-2.2-.9-4.1-1.2c-1.3-.3-2.4-.6-3.6-1-1.1-.3-2.1-.8-3-1.3s-1.5-1.2-2-2.1c-.5-.8-.8-1.9-.8-3.2 0-2.4.9-4.2 2.6-5.6 1.7-1.3 4-2 6.8-2.1 1.6 0 3.3.3 5 .8 1.7.6 2.9 1.6 3.7 3.1.4 1.4.6 2.6.6 3.7h-4.6c0-1.8-.6-3-1.7-3.5-1.1-.4-2.1-.6-3.1-.6-.2 0-.5 0-1 0s-1.1.2-1.7.4-1.1.5-1.5 1.1c-.5.5-.7 1.2-.7 2.1 0 1.1.5 1.9 1.3 2.3.7.4 1.5.7 2.1.9 3.3.7 5.6 1.3 6.9 1.8 1.3.4 2.2 1 2.8 1.7.7.7 1.1 1.4 1.4 2.2s.4 1.6.4 2.5c0 1.4-.3 2.7-.9 3.8s-1.4 2-2.4 2.6c-1.1.6-2.2 1-3.4 1.3s-2.5.4-3.8.4c-2.5 0-4.7-.6-6.6-1.8-1.8-1.2-2.8-3.3-2.9-6.3z"/><path d="m3.4 58.5h21.9v4.2h-17.1v11.3h16.3v4.2h-16.3v12.1h17.5v4.3h-22.3z"/><path d="m34.7 72.4-.1-2.9h4.6v4.1c.2-.3.4-.8.7-1.2.3-.5.8-1 1.3-1.5.6-.5 1.4-1 2.3-1.3s2-.5 3.4-.5c.6 0 1.4.1 2.4.2.9.2 1.9.5 2.9 1.1s1.8 1.4 2.5 2.5c.6 1.2 1 2.7 1 4.7v17.1h-4.6v-16c0-.9-.1-1.7-.2-2.4-.2-.7-.5-1.3-1.1-1.9-1.2-1.1-2.6-1.7-4.3-1.7s-3.1.6-4.3 1.8c-1.3 1.2-2 3.1-2 5.7v14.5h-4.5z"/><path d="m60.3 69.5h5.1l7.7 19.9 7.6-19.9h5l-10.6 25.1h-4.6z"/><path d="m91.4 58.6h5.5v5.1h-5.5zm.5 10.9h4.6v25.1h-4.6z"/><path d="m106 74.7c0-1.8-.1-3.5-.3-5.1h4.6l.1 4.9c.5-1.8 1.4-3 2.5-3.7s2.2-1.2 3.3-1.3c1.4-.2 2.4-.2 3.1-.1v4.6c-.2-.1-.5-.2-.9-.2-.3 0-.8 0-1.3 0-1.3 0-2.4.2-3.3.5-.9.4-1.5.9-2 1.6-.9 1.4-1.4 3.2-1.3 5.4v13.3h-4.6v-19.9z"/><path d="m123.3 82.4c0-1.6.2-3.2.6-4.8s1.1-3 2-4.4c1-1.3 2.2-2.4 3.8-3.2s3.6-1.2 5.9-1.2c2.4 0 4.5.4 6.1 1.3 1.5.9 2.7 2 3.6 3.3s1.5 2.8 1.8 4.3c.2.8.3 1.5.4 2.2v2.2c0 3.7-1 6.9-3 9.5s-5.1 4-9.3 4c-4-.1-7-1.4-9-3.9-1.9-2.5-2.9-5.6-2.9-9.3m4.8-.3c0 2.7.6 5 1.8 6.9 1.2 2 3 3 5.6 3.1.9 0 1.8-.2 2.7-.5.8-.3 1.6-.9 2.3-1.7s1.3-1.9 1.8-3.2c.4-1.3.6-2.9.6-4.7-.1-6.4-2.5-9.6-7.1-9.6-.7 0-1.5.1-2.4.3-.8.3-1.7.8-2.5 1.6-.8.7-1.4 1.7-1.9 3-.6 1.1-.9 2.8-.9 4.8z"/><path d="m155.9 72.4-.1-2.9h4.6v4.1c.2-.3.4-.8.7-1.2.3-.5.8-1 1.3-1.5.6-.5 1.4-1 2.3-1.3s2-.5 3.4-.5c.6 0 1.4.1 2.4.2.9.2 1.9.5 2.9 1.1s1.8 1.4 2.5 2.5c.6 1.2 1 2.7 1 4.7v17.1h-4.6v-16c0-.9-.1-1.7-.2-2.4-.2-.7-.5-1.3-1.1-1.9-1.2-1.1-2.6-1.7-4.3-1.7s-3.1.6-4.3 1.8c-1.3 1.2-2 3.1-2 5.7v14.5h-4.6z"/><path d="m185.7 72.8-.1-3.3h4.6v3.6c1.2-1.9 2.6-3.2 4.1-3.7 1.5-.4 2.7-.6 3.8-.6 1.4 0 2.6.2 3.6.5.9.3 1.7.7 2.3 1.1 1.1 1 1.9 2 2.3 3.1.2-.4.5-.8 1-1.3.4-.5.9-1 1.5-1.6.6-.5 1.5-.9 2.5-1.3 1-.3 2.2-.5 3.5-.5.9 0 1.9.1 3 .3 1 .2 2 .7 3 1.3s1.7 1.5 2.3 2.7.9 2.7.9 4.6v16.9h-4.6v-16.2c0-1.1-.1-2-.2-2.5-.1-.6-.3-1-.6-1.3-.4-.6-1-1.2-1.8-1.6s-1.8-.6-3.1-.6c-1.5 0-2.7.4-3.6 1-.4.3-.8.5-1.1.9-.3.3-.6.6-.8.8-.5.8-.8 1.8-1 2.8-.1 1.1-.2 2-.1 2.6v14.1h-4.6v-16.7c0-1.6-.5-2.9-1.4-4-.9-1-2.3-1.5-4.2-1.5-1.6 0-2.9.4-3.8 1.1s-1.5 1.2-1.8 1.7c-.5.7-.8 1.5-.9 2.5-.1.9-.2 1.8-.2 2.6v14.3h-4.5z"/><path d="m236.2 82.9c-.1 2.6.5 4.8 1.7 6.5 1.1 1.7 2.9 2.6 5.3 2.6 1.5 0 2.8-.4 3.9-1.3 1-.8 1.6-2.2 1.8-4h4.6c0 .6-.2 1.4-.4 2.3-.3 1-.8 2-1.7 3-.2.3-.6.6-1 1-.5.4-1 .7-1.7 1.1s-1.5.6-2.4.8c-.9.3-2 .4-3.3.4-7.6-.2-11.3-4.5-11.3-12.9 0-2.5.3-4.8 1-6.8s2-3.7 3.8-5.1c1.2-.8 2.4-1.3 3.7-1.6 1.3-.2 2.2-.3 3-.3 2.7 0 4.8.6 6.3 1.6s2.5 2.3 3.1 3.9c.6 1.5 1 3.1 1.1 4.6.1 1.6.1 2.9 0 4h-17.5m12.8-3c0-.3 0-.7 0-1.1s0-.8-.1-1.2c-.1-.9-.4-1.7-.8-2.5s-1-1.5-1.8-2c-.9-.5-2-.8-3.4-.8-.8 0-1.5.1-2.3.3s-1.5.7-2.2 1.3-1.2 1.3-1.6 2.3-.7 2.2-.8 3.6z"/><path d="m261.4 72.4-.1-2.9h4.6v4.1c.2-.3.4-.8.7-1.2.3-.5.8-1 1.3-1.5.6-.5 1.4-1 2.3-1.3s2-.5 3.4-.5c.6 0 1.4.1 2.4.2.9.2 1.9.5 2.9 1.1s1.8 1.4 2.5 2.5c.6 1.2 1 2.7 1 4.7v17.1h-4.6v-16c0-.9-.1-1.7-.2-2.4-.2-.7-.5-1.3-1.1-1.9-1.2-1.1-2.6-1.7-4.3-1.7s-3.1.6-4.3 1.8c-1.3 1.2-2 3.1-2 5.7v14.5h-4.6z"/><path d="m288 69.4h4.3v-5.2l4.5-1.5v6.8h5.4v3.4h-5.4v15.1c0 .3 0 .6.1 1 0 .4.1.7.4 1.1.2.4.5.6 1 .8.4.3 1 .4 1.8.4 1 0 1.7-.1 2.2-.2v3.6c-.9.2-2.1.3-3.8.3-2.1 0-3.6-.4-4.6-1.2s-1.5-2.2-1.5-4.2v-16.8h-4.3v-3.4z"/><path d="m323.3 94.6c-.3-1.2-.5-2.5-.4-3.7-.5 1-1.1 1.8-1.7 2.4-.7.6-1.4 1.1-2 1.4-1.4.5-2.7.8-3.7.8-2.8 0-4.9-.8-6.4-2.2s-2.2-3.1-2.2-5.2c0-1 .2-2.3.8-3.7s1.7-2.6 3.5-3.7c1.4-.7 2.9-1.2 4.5-1.5 1.6-.1 2.9-.2 3.9-.2s2.1 0 3.3.1c.1-2.9-.2-4.8-.9-5.6-.5-.6-1.1-1.1-1.9-1.3s-1.6-.4-2.3-.4c-1.1 0-2 .2-2.6.5-.7.3-1.2.7-1.5 1.2s-.5.9-.6 1.4-.2.9-.2 1.2h-4.6c.1-.7.2-1.4.4-2.3.2-.8.6-1.6 1.3-2.5.5-.6 1-1 1.7-1.3.6-.3 1.3-.6 2-.8 1.5-.4 2.8-.6 4.2-.6 1.8 0 3.6.3 5.2.9s2.8 1.6 3.4 2.9c.4.7.6 1.4.7 2s.1 1.2.1 1.8l-.2 12c0 1 .1 3.1.4 6.3zm-.5-12.2c-.7-.1-1.6-.1-2.6-.1-.5 0-1.2 0-2.1 0-1 .1-2 .3-3 .6s-1.9.8-2.6 1.5c-.8.7-1.2 1.7-1.2 3 0 .4.1.8.2 1.3s.4 1 .8 1.5.9.8 1.6 1.1 1.5.5 2.5.5c2.3 0 4.1-.9 5.2-2.7.5-.8.8-1.7 1-2.7.1-.9.2-2.2.2-4z"/><path d="m336.4 58.6h4.6v36.1h-4.6z"/><path d="m364.1 58.5h11.7c2.1 0 3.9.1 5.5.4.8.2 1.5.4 2.2.9.7.4 1.3.9 1.8 1.6 1.7 1.9 2.6 4.2 2.6 7 0 2.7-.9 5.1-2.8 7.1-.8.9-2 1.7-3.6 2.2-1.6.6-3.9.9-6.9.9h-5.7v16.1h-4.8zm4.8 15.9h5.8c.8 0 1.7-.1 2.6-.2s1.8-.3 2.6-.7 1.5-1 2-1.9c.5-.8.8-2 .8-3.4s-.2-2.5-.7-3.3-1.1-1.3-1.9-1.7c-1.6-.5-3.1-.8-4.5-.7h-6.8v11.9z"/><path d="m393.8 74.7c0-1.8-.1-3.5-.3-5.1h4.6l.1 4.9c.5-1.8 1.4-3 2.5-3.7s2.2-1.2 3.3-1.3c1.4-.2 2.4-.2 3.1-.1v4.6c-.2-.1-.5-.2-.9-.2-.3 0-.8 0-1.3 0-1.3 0-2.4.2-3.3.5-.9.4-1.5.9-2 1.6-.9 1.4-1.4 3.2-1.3 5.4v13.3h-4.6v-19.9z"/><path d="m411.2 82.4c0-1.6.2-3.2.6-4.8s1.1-3 2-4.4c1-1.3 2.2-2.4 3.8-3.2s3.6-1.2 5.9-1.2c2.4 0 4.5.4 6.1 1.3 1.5.9 2.7 2 3.6 3.3s1.5 2.8 1.8 4.3c.2.8.3 1.5.4 2.2v2.2c0 3.7-1 6.9-3 9.5s-5.1 4-9.3 4c-4-.1-7-1.4-9-3.9-1.9-2.5-2.9-5.6-2.9-9.3m4.8-.3c0 2.7.6 5 1.8 6.9 1.2 2 3 3 5.6 3.1.9 0 1.8-.2 2.7-.5.8-.3 1.6-.9 2.3-1.7s1.3-1.9 1.8-3.2c.4-1.3.6-2.9.6-4.7-.1-6.4-2.5-9.6-7.1-9.6-.7 0-1.5.1-2.4.3-.8.3-1.7.8-2.5 1.6-.8.7-1.4 1.7-1.9 3-.7 1.1-.9 2.8-.9 4.8z"/><path d="m439.8 69.4h4.3v-5.2l4.5-1.5v6.8h5.4v3.4h-5.4v15.1c0 .3 0 .6.1 1 0 .4.1.7.4 1.1.2.4.5.6 1 .8.4.3 1 .4 1.8.4 1 0 1.7-.1 2.2-.2v3.6c-.9.2-2.1.3-3.8.3-2.1 0-3.6-.4-4.6-1.2s-1.5-2.2-1.5-4.2v-16.8h-4.3v-3.4z"/><path d="m462.9 82.9c-.1 2.6.5 4.8 1.7 6.5 1.1 1.7 2.9 2.6 5.3 2.6 1.5 0 2.8-.4 3.9-1.3 1-.8 1.6-2.2 1.8-4h4.6c0 .6-.2 1.4-.4 2.3-.3 1-.8 2-1.7 3-.2.3-.6.6-1 1-.5.4-1 .7-1.7 1.1s-1.5.6-2.4.8c-.9.3-2 .4-3.3.4-7.6-.2-11.3-4.5-11.3-12.9 0-2.5.3-4.8 1-6.8s2-3.7 3.8-5.1c1.2-.8 2.4-1.3 3.7-1.6 1.3-.2 2.2-.3 3-.3 2.7 0 4.8.6 6.3 1.6s2.5 2.3 3.1 3.9c.6 1.5 1 3.1 1.1 4.6.1 1.6.1 2.9 0 4h-17.5m12.9-3c0-.3 0-.7 0-1.1s0-.8-.1-1.2c-.1-.9-.4-1.7-.8-2.5s-1-1.5-1.8-2c-.9-.5-2-.8-3.4-.8-.8 0-1.5.1-2.3.3s-1.5.7-2.2 1.3-1.2 1.3-1.6 2.3-.7 2.2-.8 3.6z"/><path d="m501.8 77.5c0-.3 0-.8-.1-1.4s-.3-1.1-.6-1.8c-.2-.6-.7-1.2-1.4-1.6s-1.6-.6-2.7-.6c-1.5 0-2.7.4-3.5 1.2-.9.8-1.5 1.7-1.9 2.8s-.6 2.2-.7 3.2c-.1 1.1-.2 1.8-.1 2.4 0 1.3.1 2.5.3 3.7s.5 2.3.9 3.3c.8 2 2.4 3 4.8 3.1 1.9 0 3.3-.7 4.1-1.9.8-1.1 1.2-2.3 1.2-3.6h4.6c-.2 2.5-1.1 4.6-2.7 6.3-1.7 1.8-4.1 2.7-7.1 2.7-.9 0-2.1-.2-3.6-.6-.7-.2-1.4-.6-2.2-1s-1.5-1-2.2-1.7c-.7-.9-1.4-2.1-2-3.6s-.9-3.5-.9-6.1.4-4.8 1.1-6.6c.7-1.7 1.6-3.1 2.7-4.2 1.1-1 2.3-1.8 3.6-2.2s2.5-.6 3.7-.6h1.6c.6.1 1.3.2 1.9.4.7.2 1.4.5 2.1 1 .7.4 1.3 1 1.8 1.7.9 1.1 1.4 2.1 1.7 3.1.2 1 .3 1.8.3 2.6z"/><path d="m509.3 69.4h4.3v-5.2l4.5-1.5v6.8h5.4v3.4h-5.4v15.1c0 .3 0 .6.1 1 0 .4.1.7.4 1.1.2.4.5.6 1 .8.4.3 1 .4 1.8.4 1 0 1.7-.1 2.2-.2v3.6c-.9.2-2.1.3-3.8.3-2.1 0-3.6-.4-4.6-1.2s-1.5-2.2-1.5-4.2v-16.8h-4.3v-3.4z"/><path d="m529.2 58.6h5.5v5.1h-5.5zm.5 10.9h4.6v25.1h-4.6z"/><path d="m541.8 82.4c0-1.6.2-3.2.6-4.8s1.1-3 2-4.4c1-1.3 2.2-2.4 3.8-3.2s3.6-1.2 5.9-1.2c2.4 0 4.5.4 6.1 1.3 1.5.9 2.7 2 3.6 3.3s1.5 2.8 1.8 4.3c.2.8.3 1.5.4 2.2v2.2c0 3.7-1 6.9-3 9.5s-5.1 4-9.3 4c-4-.1-7-1.4-9-3.9-1.9-2.5-2.9-5.6-2.9-9.3m4.7-.3c0 2.7.6 5 1.8 6.9 1.2 2 3 3 5.6 3.1.9 0 1.8-.2 2.7-.5.8-.3 1.6-.9 2.3-1.7s1.3-1.9 1.8-3.2c.4-1.3.6-2.9.6-4.7-.1-6.4-2.5-9.6-7.1-9.6-.7 0-1.5.1-2.4.3-.8.3-1.7.8-2.5 1.6-.8.7-1.4 1.7-1.9 3-.6 1.1-.9 2.8-.9 4.8z"/><path d="m574.3 72.4-.1-2.9h4.6v4.1c.2-.3.4-.8.7-1.2.3-.5.8-1 1.3-1.5.6-.5 1.4-1 2.3-1.3s2-.5 3.4-.5c.6 0 1.4.1 2.4.2.9.2 1.9.5 2.9 1.1s1.8 1.4 2.5 2.5c.6 1.2 1 2.7 1 4.7v17.1h-4.6v-16c0-.9-.1-1.7-.2-2.4-.2-.7-.5-1.3-1.1-1.9-1.2-1.1-2.6-1.7-4.3-1.7s-3.1.6-4.3 1.8c-1.3 1.2-2 3.1-2 5.7v14.5h-4.6z"/><path d="m14.8 108.5h5.2l14.1 36.1h-5.3l-3.8-9.4h-16.2l-3.8 9.4h-5zm-4.4 22.7h13.3l-6.5-17.8z"/><path d="m44.4 146.5c.1.7.2 1.4.4 1.9.2.6.5 1.1.9 1.6.8.9 2.3 1.4 4.4 1.5 1.6 0 2.8-.3 3.7-.9s1.5-1.4 1.9-2.4c.4-1.1.6-2.3.7-3.7s.1-2.9.1-4.6c-.5.9-1.1 1.7-1.8 2.3s-1.5 1-2.3 1.3c-1.7.4-3 .6-3.9.6-1.2 0-2.4-.2-3.8-.6s-2.6-1.2-3.7-2.5c-1-1.3-1.7-2.8-2.1-4.4s-.6-3.2-.6-4.8c0-4.3 1.1-7.4 3.2-9.5 2-2.1 4.6-3.1 7.6-3.1 1.3 0 2.3.1 3.2.4s1.6.6 2.1 1c.6.4 1.1.8 1.5 1.2.3.4.6.8.9 1.2v-3.4h4.4l-.1 4.5v15.7c0 2.9-.1 5.2-.2 6.7-.2 1.6-.5 2.8-1 3.7-1.1 1.9-2.6 3.2-4.6 3.7-1.9.6-3.8.8-5.6.8-2.4 0-4.3-.3-5.6-.8-1.4-.5-2.4-1.2-3-2s-1-1.7-1.2-2.7c-.2-.9-.3-1.8-.4-2.7zm5.3-5.8c1.4 0 2.5-.2 3.3-.7s1.5-1.1 2-1.8c.5-.6.9-1.4 1.2-2.5.3-1 .4-2.6.4-4.8 0-1.6-.2-2.9-.4-3.9-.3-1-.8-1.8-1.4-2.4-1.3-1.4-3-2.2-5.2-2.2-1.4 0-2.5.3-3.4 1s-1.6 1.5-2 2.4c-.4 1-.7 2-.9 3s-.2 2-.2 2.8c0 1 .1 1.9.3 2.9.2 1.1.5 2.1 1 3s1.2 1.6 2 2.2c.8.7 1.9 1 3.3 1z"/><path d="m73.3 132.9c-.1 2.6.5 4.8 1.7 6.5 1.1 1.7 2.9 2.6 5.3 2.6 1.5 0 2.8-.4 3.9-1.3 1-.8 1.6-2.2 1.8-4h4.6c0 .6-.2 1.4-.4 2.3-.3 1-.8 2-1.7 3-.2.3-.6.6-1 1-.5.4-1 .7-1.7 1.1s-1.5.6-2.4.8c-.9.3-2 .4-3.3.4-7.6-.2-11.3-4.5-11.3-12.9 0-2.5.3-4.8 1-6.8s2-3.7 3.8-5.1c1.2-.8 2.4-1.3 3.7-1.6 1.3-.2 2.2-.3 3-.3 2.7 0 4.8.6 6.3 1.6s2.5 2.3 3.1 3.9c.6 1.5 1 3.1 1.1 4.6.1 1.6.1 2.9 0 4h-17.5m12.9-3c0-.3 0-.7 0-1.1s0-.8-.1-1.2c-.1-.9-.4-1.7-.8-2.5s-1-1.5-1.8-2.1c-.9-.5-2-.8-3.4-.8-.8 0-1.5.1-2.3.3s-1.5.7-2.2 1.3-1.2 1.3-1.6 2.3-.7 2.2-.8 3.7z"/><path d="m98.6 122.4-.1-2.9h4.6v4.1c.2-.3.4-.8.7-1.2.3-.5.8-1 1.3-1.5.6-.5 1.4-1 2.3-1.3s2-.5 3.4-.5c.6 0 1.4.1 2.4.2.9.2 1.9.5 2.9 1.1s1.8 1.4 2.5 2.5c.6 1.2 1 2.7 1 4.7v17.1h-4.6v-16c0-.9-.1-1.7-.2-2.4-.2-.7-.5-1.3-1.1-1.9-1.2-1.1-2.6-1.7-4.3-1.7s-3.1.6-4.3 1.8c-1.3 1.2-2 3.1-2 5.7v14.5h-4.6z"/><path d="m142.7 127.5c0-.3 0-.8-.1-1.4s-.3-1.1-.6-1.8c-.2-.6-.7-1.2-1.4-1.6s-1.6-.6-2.7-.6c-1.5 0-2.7.4-3.5 1.2-.9.8-1.5 1.7-1.9 2.8s-.6 2.2-.7 3.2c-.1 1.1-.2 1.8-.1 2.4 0 1.3.1 2.5.3 3.7s.5 2.3.9 3.3c.8 2 2.4 3 4.8 3.1 1.9 0 3.3-.7 4.1-1.9.8-1.1 1.2-2.3 1.2-3.6h4.6c-.2 2.5-1.1 4.6-2.7 6.3-1.7 1.8-4.1 2.7-7.1 2.7-.9 0-2.1-.2-3.6-.6-.7-.2-1.4-.6-2.2-1s-1.5-1-2.2-1.7c-.7-.9-1.4-2.1-2-3.6s-.9-3.5-.9-6.1.4-4.8 1.1-6.6c.7-1.7 1.6-3.1 2.7-4.2 1.1-1 2.3-1.8 3.6-2.2s2.5-.6 3.7-.6h1.6c.6.1 1.3.2 1.9.4.7.2 1.4.5 2.1 1 .7.4 1.3 1 1.8 1.7.9 1.1 1.4 2.1 1.7 3.1.2 1 .3 1.8.3 2.6z"/><path d="m164.8 144.8-3.4 9.3h-4.7l3.8-9.6-10.3-25h5.2l7.6 19.8 7.7-19.8h5z"/></svg> </span> </a> <button type="button" class="usa-menu-btn usa-button--outline usa-button--inverse l-header__menu-button">Menu</button> </div> <div class="l-header__search" id="header-search-drawer"> <form class="usa-search usa-search--small usa-search--epa" method="get" action="https://search.epa.gov/epasearch"> <div role="search"> <label class="usa-search__label usa-sr-only" for="search-box">Search</label> <input class="usa-input" id="search-box" type="search" name="querytext" placeholder="Search EPA.gov"> <button class="button" type="submit" aria-label="Search"> <svg class="icon usa-search__submit-icon" aria-hidden="true"><use href="/themes/epa_theme/images/sprite.artifact.svg#magnifying-glass"></use></svg> <span class="usa-search__submit-text">Search</span> </button> <input type="hidden" name="areaname" value=""> <input type="hidden" name="areacontacts" value=""> <input type="hidden" name="areasearchurl" value=""> <input type="hidden" name="typeofsearch" value="epa"> <input type="hidden" name="result_template" value=""> </div> </form> </div> </div> </div> <div class="l-header__nav"> <nav class="usa-nav usa-nav--epa" role="navigation" aria-label="Primary navigation"> <div class="usa-nav__inner"> <button type="button" class="usa-nav__close" aria-label="Close"> <svg class="icon icon--nav-close" aria-hidden="true" role="img"><title>Primary navigation</title><use href="/themes/epa_theme/images/sprite.artifact.svg#xmark"></use></svg> </button> <div class="usa-nav__menu"> <ul class="menu menu--main menu--accordion usa-accordion"> <li class="menu__item has-subnav is-expanded"><button class="menu__link has-subnav is-expanded usa-nav__link usa-accordion__button" aria-expanded="false" type="button"> Environmental Topics <svg class="icon menu__link-icon" aria-hidden="true"><use href="/themes/epa_theme/images/sprite.artifact.svg#angle"></use></svg></button><ul class="menu menu__subnav usa-nav__submenu usa-megamenu is-wide"><li class="menu__item"><a href="/environmental-topics" class="menu__link" data-drupal-link-system-path="node/164839">Environmental Topics</a></li><li class="menu__item"><a href="/environmental-topics/air-topics" class="menu__link" data-drupal-link-system-path="node/165225">Air</a></li><li class="menu__item"><a href="/bedbugs" class="menu__link" data-drupal-link-system-path="node/17591">Bed Bugs</a></li><li class="menu__item"><a href="/environmental-topics/epa-efforts-reduce-exposure-carcinogens-and-prevent-cancer" class="menu__link" data-drupal-link-system-path="node/280190">Cancer</a></li><li class="menu__item"><a href="/environmental-topics/chemicals-pesticides-and-toxics-topics" class="menu__link" data-drupal-link-system-path="node/165371">Chemicals, Toxics, and Pesticide </a></li><li class="menu__item"><a href="/climate-change" class="menu__link" data-drupal-link-system-path="node/37925">Climate Change</a></li><li class="menu__item"><a href="/emergency-response" class="menu__link" data-drupal-link-system-path="node/18839">Emergency Response</a></li><li class="menu__item"><a href="/environmental-topics/environmental-information-by-location" class="menu__link" data-drupal-link-system-path="node/165443">Environmental Information by Location </a></li><li class="menu__item"><a href="/environmentaljustice" class="menu__link" data-drupal-link-system-path="node/66337">Environmental Justice</a></li><li class="menu__item"><a href="/environmental-topics/greener-living" class="menu__link" data-drupal-link-system-path="node/165399">Greener Living</a></li><li class="menu__item"><a href="/environmental-topics/health-topics" class="menu__link" data-drupal-link-system-path="node/165317">Health</a></li><li class="menu__item"><a href="/environmental-topics/land-waste-and-cleanup-topics" class="menu__link" data-drupal-link-system-path="node/165171">Land, Waste, and Cleanup</a></li><li class="menu__item"><a href="/lead" class="menu__link" data-drupal-link-system-path="node/3085">Lead</a></li><li class="menu__item"><a href="/mold" class="menu__link" data-drupal-link-system-path="node/37083">Mold</a></li><li class="menu__item"><a href="/radon" class="menu__link" data-drupal-link-system-path="node/38609">Radon</a></li><li class="menu__item"><a href="/research" class="menu__link" data-drupal-link-system-path="node/35507">Research</a></li><li class="menu__item"><a href="/environmental-topics/science-topics" class="menu__link" data-drupal-link-system-path="node/172685">Science Topics</a></li><li class="menu__item"><a href="/environmental-topics/water-topics" class="menu__link" data-drupal-link-system-path="node/164827">Water Topics</a></li><li class="menu__item"><a href="/topics-epa-web" class="menu__link" data-drupal-link-system-path="topics-epa-web">A-Z Topic Index</a></li></ul></li> <li class="menu__item has-subnav is-expanded"><button class="menu__link has-subnav is-expanded usa-nav__link usa-accordion__button" aria-expanded="false" type="button"> Laws &amp; Regulations <svg class="icon menu__link-icon" aria-hidden="true"><use href="/themes/epa_theme/images/sprite.artifact.svg#angle"></use></svg></button><ul class="menu menu__subnav usa-nav__submenu usa-megamenu "><li class="menu__item"><a href="/laws-regulations" title="View links to regulatory information by topic and sector, and to top pages about environmental laws, regulations, policies, compliance, and enforcement" class="menu__link" data-drupal-link-system-path="node/3157">Laws &amp; Regulations</a></li><li class="menu__item"><a href="/regulatory-information-sector" class="menu__link" data-drupal-link-system-path="node/3173">By Business Sector</a></li><li class="menu__item"><a href="/regulatory-information-topic" class="menu__link" data-drupal-link-system-path="node/66677">By Topic</a></li><li class="menu__item"><a href="/compliance" class="menu__link" data-drupal-link-system-path="node/19411">Compliance</a></li><li class="menu__item"><a href="/enforcement" class="menu__link" data-drupal-link-system-path="node/10885">Enforcement</a></li><li class="menu__item"><a href="/laws-regulations/laws-and-executive-orders" class="menu__link" data-drupal-link-system-path="node/66719">Laws and Executive Orders</a></li><li class="menu__item"><a href="/laws-regulations/regulations" class="menu__link" data-drupal-link-system-path="node/11249">Regulations</a></li></ul></li> <li class="menu__item has-subnav is-expanded"><button class="menu__link has-subnav is-expanded usa-nav__link usa-accordion__button" aria-expanded="false" type="button"> Report a Violation <svg class="icon menu__link-icon" aria-hidden="true"><use href="/themes/epa_theme/images/sprite.artifact.svg#angle"></use></svg></button><ul class="menu menu__subnav usa-nav__submenu usa-megamenu "><li class="menu__item"><a href="/report-violation" class="menu__link" data-drupal-link-system-path="node/271510">Report a Violation</a></li><li class="menu__item"><a href="https://echo.epa.gov/report-environmental-violations" class="menu__link">Environmental Violations</a></li><li class="menu__item"><a href="https://www.epaoig.gov/epa-oig-hotline-complaint-form" class="menu__link">Fraud, Waste or Abuse</a></li></ul></li> <li class="menu__item has-subnav is-expanded"><button class="menu__link has-subnav is-expanded usa-nav__link usa-accordion__button" aria-expanded="false" type="button"> About EPA <svg class="icon menu__link-icon" aria-hidden="true"><use href="/themes/epa_theme/images/sprite.artifact.svg#angle"></use></svg></button><ul class="menu menu__subnav usa-nav__submenu usa-megamenu "><li class="menu__item"><a href="/aboutepa" class="menu__link" data-drupal-link-system-path="node/851">About EPA</a></li><li class="menu__item"><a href="/aboutepa/our-mission-and-what-we-do" class="menu__link" data-drupal-link-system-path="node/2099">Our Mission and What We Do</a></li><li class="menu__item"><a href="/aboutepa/epa-administrator" class="menu__link" data-drupal-link-system-path="node/264813">EPA Administrator</a></li><li class="menu__item"><a href="/aboutepa#hq" class="menu__link" data-drupal-link-system-path="node/851">Headquarters Offices</a></li><li class="menu__item"><a href="/aboutepa/regional-and-geographic-offices" class="menu__link" data-drupal-link-system-path="node/254965">Regional Offices</a></li><li class="menu__item"><a href="/aboutepa/research-centers-programs-and-science-advisory-organizations" class="menu__link" data-drupal-link-system-path="node/254969">Labs and Research Centers</a></li><li class="menu__item"><a href="/planandbudget" class="menu__link" data-drupal-link-system-path="node/863">Planning, Budget, and Results</a></li><li class="menu__item"><a href="/aboutepa/epa-organization-chart" class="menu__link" data-drupal-link-system-path="node/2481">Organization Chart</a></li><li class="menu__item"><a href="/history" class="menu__link" data-drupal-link-system-path="node/162637">EPA History</a></li><li class="menu__item"><a href="https://cfpub.epa.gov/locator/index.cfm" class="menu__link">Staff Directory</a></li></ul></li> </ul> </div> </div> </nav> </div> </header> <main id="main" class="main" role="main" tabindex="-1"> <div class="l-page page-no-sidebar has-footer"> <div class="l-constrain"> <div class="l-page__header"> <div class="l-page__header-first"> <nav aria-labelledby="breadcrumb-label" class="breadcrumb" role="navigation"> <h2 id="breadcrumb-label" class="breadcrumb__title u-visually-hidden">Breadcrumb</h2> <ol class="breadcrumb__list"> <li class="breadcrumb__item"> <a class="breadcrumb__link" href="/">Home</a> </li> <li class="breadcrumb__item"> <a class="breadcrumb__link" href="/greenerproducts">Sustainable Marketplace: Greener Products and Services</a> </li> <li class="breadcrumb__item"> <a class="breadcrumb__link" href="/greenerproducts/buying-green-federal-purchasers">Federal Purchasers</a> </li> </ol> </nav> </div> </div> <article class="article" lang="en"> <h1 class="page-title"> Recommendations of Specifications, Standards, and Ecolabels for Federal Purchasing </h1> <div class="u-hide-for-print js-toggle-admin-content"> <div data-drupal-messages-fallback class="hidden"></div> </div> <div class="l-sidebar"> <div class="l-sidebar__main"> <p>The Recommendations of Specifications, Standards, and Ecolabels help federal purchasers identify and procure environmentally preferable products and services. Federal purchasers are directed in <a href="https://www.whitehouse.gov/briefing-room/presidential-actions/2021/12/08/executive-order-on-catalyzing-clean-energy-industries-and-jobs-through-federal-sustainability/">Executive Order 14057 on Catalyzing American Clean Energy Industries and Jobs through Federal Sustainability</a>, the <a href="https://www.sustainability.gov/federalsustainabilityplan/index.html">Federal Sustainability Plan</a> <span><span><span><span>and <a href="https://www.acquisition.gov/far/part-23#FAR_Subpart_23_1">subpart 23.1 of the Federal Acquisition Regulation</a>&nbsp;</span></span></span></span>to procure products and services meeting the Recommendations to meet net-zero emissions and other procurement goals. The Recommendations were last updated in October 2023.</p> <p>The Recommendations leverage private sector approaches to defining and measuring sustainability by including over 40 private sector standards/ecolabels in more than 30 purchase categories. The Recommendations give preference to multi-attribute/life-cycle based standards/ecolabels that address key impact areas (also known as hotspots) and where a competent third-party certification program can verify product conformance.</p> <ul class="highlight"> <li><span><span>Read the <a href="https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.govinfo.gov%2Fcontent%2Fpkg%2FFR-2024-09-13%2Fpdf%2F2024-20820.pdf&amp;data=05%7C02%7Clarkin.jenna%40epa.gov%7Cfb5655925e2c4a669a6708dcd3f6801e%7C88b378b367484867acf976aacbeca6a7%7C0%7C0%7C638618302862172335%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&amp;sdata=P42PClMMO%2B8lc9cWMrDv93ZYoYRHwb5o20ptrzCQoFI%3D&amp;reserved=0">federal register notice</a>&nbsp;of EPA's proposed update to the Recommendations and submit a comment to the <a href="https://www.federalregister.gov/d/2024-20820">docket</a>&nbsp;by Oct. 15, 2024.</span></span></li> <li><a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="7864b72b-859e-4a74-9630-2b3e3cf4438a" href="/newsreleases/biden-harris-administration-takes-action-cut-pfas-us-government-custodial-contracts">Learn about EPA and GSA Acting to Cut PFAS in Government Purchasing for Cleaning Products</a></li> <li>Learn about how <a href="/greenerproducts/framework-assessment-environmental-performance-standards-and-ecolabels-federal">EPA is expanding the Recommendations of Specifications, Standards and Ecolabel</a>.</li> <li>Webinar Recording: <a href="https://www.youtube.com/watch?v=macE-o4TCU0">Using Ecolabels to Enable Impactful Sustainable Procurement</a></li> <li>Learn about <a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="9ff1c705-9327-4a9c-ac46-08764a08d954" href="/greenerproducts/2024-revisions-federal-acquisition-regulation-strengthening-federal-sustainable">revisions to the Federal Acquisition Regulation (FAR)</a>&nbsp;which includes new requirements to procure products and services meeting the Recommendations.</li> </ul> <p>The Recommendations are organized in the table below to help users identify standards/ecolabels by product category and explore how key environmental hotspots like Per- and Polyfluoroalkyl Substances (PFAS) and plastics are addressed. Enter specific keywords in the Search box, choose a product category, or select a hotspot to get started. To start a new search, click "Reset" or refresh the page. Additional information for each standard/ecolabel is available by clicking the blue info icon. Other information to explore includes:</p> <div class="l-grid l-grid--2-col"> <div> <ul> <li>Links to standard documents</li> <li>Links to product registries</li> <li>Product and supplier availability</li> <li>Whether the standard is a voluntary consensus standard (VCS)</li> </ul> </div> <div> <ul> <li>Date added</li> <li>Applicable statutory mandated programs</li> <li>Additional specifications</li> <li>Basis for recommendation</li> </ul> </div> </div> <p><span class="warning">Reminder: before buying new, browse <a href="https://ppms.gov/about-ppms">GSAXcess</a> to find surplus and/or lightly used items.</span></p> <p><em>Inclusion in the Recommendations is not an endorsement by EPA of the standards/ecolabels or of any of the products conformant to these standards/ecolabels, but rather a statement that the standard/ecolabel meets EPA’s <a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="7dbf2749-561c-4d40-ad80-ddba87c9ccc3" href="/greenerproducts/framework-assessment-environmental-performance-standards-and-ecolabels-federal">Framework for the Assessment of Environmental Performance Standards and Ecolabels for Federal Purchasing</a> or is recommended for use by another Federal agency.</em></p> </div> <div class="l-sidebar__sidebar"> <div data-embed-button="paragraphs" data-entity-label="Paragraphs" data-paragraph-id="f1c27d6b-4808-45db-a88a-134258123db7" data-paragraph-revision-id="22131" data-langcode="en" data-view-mode="embed" data-entity-embed-display="entity_reference_revisions:entity_reference_revisions_entity_view" data-entity-type="embedded_paragraphs" data-entity-uuid="f1c27d6b-4808-45db-a88a-134258123db7" data-entity-embed-display-settings="[]" class="embedded-entity"> <div class="box box--multipurpose"> <h2 class="box__title"> Environmentally Preferable Purchasing Resources </h2> <div class="box__content"> <ul> <li><a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="bb331899-f31d-4d7b-8ee4-86acf5bd3f3c" href="/greenerproducts">EPP home page</a></li> <li><a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="eb5220f5-c36a-4e5d-b001-940e63edf3f6" href="/greenerproducts/buying-green-federal-purchasers">Buying Green for Federal Purchasers</a></li> <li><a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="7dbf2749-561c-4d40-ad80-ddba87c9ccc3" href="/greenerproducts/framework-assessment-environmental-performance-standards-and-ecolabels-federal">Framework for the Assessment of Environmental Performance Standards and Ecolabels for Federal Purchasing</a></li> <li><a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="cef5fa33-2ee6-46af-8c93-3dfd1e27c943" href="/greenerproducts/recommendations-update-history">Changes to the Recommendations, 2015-Present</a></li> <li><a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="9ff1c705-9327-4a9c-ac46-08764a08d954" href="/greenerproducts/2024-revisions-federal-acquisition-regulation-strengthening-federal-sustainable">Summary of FAR revisions that strengthen, clarify and streamline federal sustainable purchasing requirements</a></li> <li><a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="7ebc051c-f1cd-4f05-b604-e35511c2fabb" href="/greenerproducts/recommendations-frequent-questions">Frequent questions about the Recommendations</a></li> </ul> </div> </div> </div> </div> </div> <div> <div > <div class="box__content bg-base-lightest padding-top-1 padding-left-2 padding-right-2 padding-bottom-2 margin-bottom-2 border border-base-lighter"> <div class="grid-row grid-gap-lg"> <div class="grid-col-6"> <fieldset><legend>Filter by Product or Service Category(ies)</legend> <div class="border border-base-light" id="cat">&nbsp;</div> </fieldset> </div> <div class="grid-col-6"> <fieldset><legend>Filter by Product or Service Sub-category(ies)</legend> <div class="border border-base-light" id="subcat">&nbsp;</div> </fieldset> </div> </div> </div> <table class="stripe" id="datatable"> <thead> <tr> <th scope="col">Logo</th> <th scope="col">Standard/Ecolabel Name</th> <th scope="col">Product or Service Category(ies)</th> <th scope="col">Product or Service Sub-category(ies)</th> <th scope="col">Multi-Attribute or Single-Attribute</th> <th scope="col">Access Standard</th> <th scope="col">Product Registry</th> <th scope="col">Plastics Criteria</th> <th scope="col">PFAS Criteria</th> <th scope="col">Info</th> <th scope="col">Product Availability</th> <th scope="col">Supplier Competition</th> <th scope="col">Voluntary Consensus Standard (VCS)</th> <th scope="col">Competent Third Party Certification Program</th> <th scope="col">Applicable Statutory Mandated Program(s)</th> <th scope="col">Additional Specification(s)</th> <th scope="col">Notes</th> </tr> </thead> </table> <div aria-describedby="info-description" aria-labelledby="info-heading" id="infoModal"> <div class="infoModal-content"><span class="infoModal-close">×</span> <h2 class="font-sans-md margin-top-0"><span id="info-heading">placeholder</span></h2> <div id="info-description"> <table class="stripe"> <tbody> <tr> <th>Product or Service Category(ies)</th> <td> <div id="category">placeholder</div> </td> </tr> <tr> <th>Product or Service Sub-category(ies)</th> <td> <div id="subcategory">placeholder</div> </td> </tr> <tr> <th><span class="usa-tooltip" data-position="top" title="Multi-attribute means the standard or ecolabel addresses two or more attributes across many lifecycle stages.">Multi-Attribute <svg class="usa-icon"><use href="/themes/epa_theme/images/sprite.svg#info_outline" /></svg></span> or <span class="usa-tooltip" data-position="top" title="Single-attribute means the standard or ecolabel addresses a singular attribute or a singular lifecycle stage.">Single-Attribute <svg class="usa-icon"><use href="/themes/epa_theme/images/sprite.svg#info_outline" /></svg></span></th> <td> <div id="attribute">placeholder</div> </td> </tr> <tr> <th>Date Added</th> <td> <div id="dateadded">placeholder</div> </td> </tr> <tr> <th>Access Standard</th> <td> <div id="standard">placeholder</div> </td> </tr> <tr> <th>Product Registry</th> <td> <div id="registry">placeholder</div> </td> </tr> <tr> <th><span class="usa-tooltip" data-position="top" title="Product availability is considered “sufficient” when there are 3 or more certified products.">Product Availability <svg class="usa-icon"><use href="/themes/epa_theme/images/sprite.svg#info_outline" /></svg></span></th> <td> <div id="availability">placeholder</div> </td> </tr> <tr> <th><span class="usa-tooltip" data-position="top" title="Supplier availability is considered “sufficient” when there is more than 1 supplier offering certified products.">Supplier Competition <svg class="usa-icon"><use href="/themes/epa_theme/images/sprite.svg#info_outline" /></svg></span></th> <td> <div id="competition">placeholder</div> </td> </tr> <tr> <th><span class="usa-tooltip" data-position="top" title="A standard/ecolabel is determined to be a VCS if it meets all baseline criteria within section I of EPA's Framework. Section. Section 12(d) of The National Technology Transfer and Advancement Act (NTTAA, PL 103-114) directs federal agencies to use VCS in lieu of government-unique standards in their procurement and regulatory activities, except where inconsistent with law or otherwise impractical. Section 5(e) of the Office of Management and Budget Circular A-119 (OMB A-119) further outlines factors that individual agencies should evaluate when determining whether to use standards, on a case by case basis. This includes the extent to which the standards development process reflected the attributes of a VCS body.">Voluntary Consensus Standard (VCS) <svg class="usa-icon"><use href="/themes/epa_theme/images/sprite.svg#info_outline" /></svg></span></th> <td> <div id="consensus">placeholder</div> </td> </tr> <tr> <th> <span class="usa-tooltip" data-position="top" title="A standard/ecolabel is determined to have a competent certification body if it meets all baseline criteria within section III of EPA's Framework. Section III contains the requirements necessary to demonstrate that a conformity assessment body is competent to assess conformance with the standard and follows general good practice specific to conformity assessment for environmental performance standards. An alternative method to demonstrate that a conformity assessment body is competent to assess conformance to this standard is proof of accreditation by an accreditation body that is a signatory to the International Accreditation Forum Multilateral Recognition Arrangement (IAF MLA) for a scope including ISO/IEC 17065 and this applicable standard. Guidance on Federal Conformity Assessment (15 CFR Part 287) directs federal agencies to identify appropriate private sector conformity assessment practices and programs (including third-party certification) and consider the results of such practices and/or programs as appropriate in procurement activities. The Guidance stresses that responsibility for the determination of appropriateness rests with each agency.">Competent Third Party Certification Program<svg class="usa-icon"> <use href="/themes/epa_theme/images/sprite.svg#info_outline" /> </svg> </span> </th> <td><div id="certification">placeholder</div></td> </tr> <tr> <th>Applicable Statutory Mandated Program(s)</th> <td> <div id="mandated">placeholder</div> </td> </tr> <tr> <th>Additional Specification(s)</th> <td> <div id="specification">placeholder</div> </td> </tr> <tr> <th><span class="usa-tooltip" data-position="top" title="This column characterizes how criteria within these standards/ecolabels are currently addressing plastic waste reduction. At this time, EPA does not necessarily recommend the standard/ecolabel based off these criteria alone and has not made a determination as to whether the standard/ecolabel appropriately addresses the hotspot.">Plastics Criteria <svg class="usa-icon"><use href="/themes/epa_theme/images/sprite.svg#info_outline" /></svg></span></th> <td> <div id="plastics">placeholder</div> </td> </tr> <tr> <th><span class="usa-tooltip" data-position="top" title="This column characterizes how criteria within these standards/ecolabels are currently addressing PFAS. At this time, EPA does not necessarily recommend the standard/ecolabel based off these criteria alone and has not made a determination as to whether the standard/ecolabel appropriately addresses the hotspot. Standards that only address PFOS/PFOA are not included in this exercise.">PFAS Criteria <svg class="usa-icon"><use href="/themes/epa_theme/images/sprite.svg#info_outline" /></svg></span></th> <td> <div id="pfas">placeholder</div> </td> </tr> <tr> <th>Notes</th> <td> <div id="notes">placeholder</div> </td> </tr> <tr> <th>Basis for Recommendation</th> <td> <div id="basis">placeholder</div> </td> </tr> </tbody> </table> </div> <div class="text-right"><button aria-label="Close this window" class="usa-button usa-button--base infoModal-close-btn" type="button">Close</button></div> </div> </div> </div> </div> </article> </div> <div class="l-page__footer"> <div class="l-constrain"> <div class="l-page__footer-contact"><a href="/greenerproducts/forms/contact-us-about-greener-products-and-services">Contact Us</a> to ask a question, provide feedback, or report a problem.</div> <div class="l-page__footer-last-updated">Last updated on October 18, 2024</div> </div> </div> </div> </main> <footer class="footer" role="contentinfo"> <div class="l-constrain"> <div class="footer__pre-footer"> <ul class="list list--footer-language-bar"> <li><a href="/lep/assistance">Assistance</a></li> <li><a href="/lep/assistance#esp">Ayuda</a></li> <li><a href="/lep/assistance#ar">مساعدة</a></li> <li><a href="/lep/assistance#chi-s">帮助 (简体版)</a></li> <li><a href="/lep/assistance#chi-tr">幫助 (繁體版)</a></li> <li><a href="/lep/assistance#fr">Aide</a></li> <li><a href="/lep/assistance#hc">Asistans</a></li> <li><a href="/lep/assistance#kor">지원</a></li> <li><a href="/lep/assistance#port">Assistência</a></li> <li><a href="/lep/assistance#rus">Помощь</a></li> <li><a href="/lep/assistance#tag">Tulong</a></li> <li><a href="/lep/assistance#viet">Trợ Giúp</a></li> </ul> </div> <img class="footer__epa-seal" src="/themes/epa_theme/images/epa-seal.svg" alt="United States Environmental Protection Agency" height="100" width="100"> <div class="footer__content contextual-region"> <div class="footer__column"> <h2>Discover.</h2> <ul class="menu menu--footer"> <li class="menu__item"> <a href="/accessibility/epa-accessibility-statement" class="menu__link">Accessibility Statement</a> </li> <!--li class="menu__item"> <a href="#" class="menu__link">EPA Administrator</a> </li--> <li class="menu__item"> <a href="/planandbudget" class="menu__link">Budget &amp; Performance</a> </li> <li class="menu__item"> <a href="/contracts" class="menu__link">Contracting</a> </li> <li class="menu__item"> <a href="/utilities/wwwepagov-snapshots" class="menu__link">EPA www Web Snapshot</a> </li> <li class="menu__item"> <a href="/grants" class="menu__link">Grants</a> </li> <li class="menu__item"> <a href="/ocr/no-fear-act-data" class="menu__link">No FEAR Act Data</a> </li> <li class="menu__item"> <a href="/web-policies-and-procedures/plain-writing" class="menu__link">Plain Writing</a> </li> <li class="menu__item"> <a href="/privacy" class="menu__link">Privacy</a> </li> <li class="menu__item"> <a href="/privacy/privacy-and-security-notice" class="menu__link">Privacy and Security Notice</a> </li> </ul> </div> <div class="footer__column"> <h2>Connect.</h2> <ul class="menu menu--footer"> <li class="menu__item"> <a href="/data" class="menu__link">Data</a> </li> <li class="menu__item"> <a href="https://www.epaoig.gov/" class="menu__link">Inspector General</a> </li> <li class="menu__item"> <a href="/careers" class="menu__link">Jobs</a> </li> <li class="menu__item"> <a href="/newsroom" class="menu__link">Newsroom</a> </li> <li class="menu__item"> <a href="https://www.regulations.gov/" class="menu__link">Regulations.gov</a> </li> <li class="menu__item"> <a href="/newsroom/email-subscriptions-epa-news-releases" class="menu__link">Subscribe</a> </li> <li class="menu__item"> <a href="https://www.usa.gov/" class="menu__link">USA.gov</a> </li> <li class="menu__item"> <a href="https://www.whitehouse.gov/" class="menu__link">White House</a> </li> </ul> </div> <div class="footer__column"> <h2>Ask.</h2> <ul class="menu menu--footer"> <li class="menu__item"> <a href="/home/forms/contact-epa" class="menu__link">Contact EPA</a> </li> <li class="menu__item"> <a href="/web-policies-and-procedures/epa-disclaimers" class="menu__link">EPA Disclaimers</a> </li> <li class="menu__item"> <a href="/aboutepa/epa-hotlines" class="menu__link">Hotlines</a> </li> <li class="menu__item"> <a href="/foia" class="menu__link">FOIA Requests</a> </li> <li class="menu__item"> <a href="/home/frequent-questions-specific-epa-programstopics" class="menu__link">Frequent Questions</a> </li> </ul> <h2>Follow.</h2> <ul class="menu menu--social"> <li class="menu__item"> <a class="menu__link" aria-label="EPA’s Facebook" href="https://www.facebook.com/EPA"> <svg class="icon icon--social" aria-hidden="true"> <use xlink:href="/themes/epa_theme/images/sprite.artifact.svg#facebook-square" xmlns:xlink="http://www.w3.org/1999/xlink" /> </svg> </a> </li> <li class="menu__item"> <a class="menu__link" aria-label="EPA’s Twitter / X" href="https://x.com/epa"> <svg class="icon icon--social" aria-hidden="true"> <use xlink:href="/themes/epa_theme/images/sprite.artifact.svg#twitter-square" xmlns:xlink="http://www.w3.org/1999/xlink" /> </svg> </a> </li> <li class="menu__item"> <a class="menu__link" aria-label="EPA’s Youtube" href="https://www.youtube.com/user/USEPAgov"> <svg class="icon icon--social" aria-hidden="true"> <use xlink:href="/themes/epa_theme/images/sprite.artifact.svg#youtube-square" xmlns:xlink="http://www.w3.org/1999/xlink" /> </svg> </a> </li> <li class="menu__item"> <a class="menu__link" aria-label="EPA’s Flickr" href="https://www.flickr.com/photos/usepagov"> <svg class="icon icon--social" aria-hidden="true"> <use xlink:href="/themes/epa_theme/images/sprite.artifact.svg#flickr-square" xmlns:xlink="http://www.w3.org/1999/xlink" /> </svg> </a> </li> <li class="menu__item"> <a class="menu__link" aria-label="EPA’s Instagram" href="https://www.instagram.com/epagov"> <svg class="icon icon--social" aria-hidden="true"> <use xlink:href="/themes/epa_theme/images/sprite.artifact.svg#instagram-square" xmlns:xlink="http://www.w3.org/1999/xlink" /> </svg> </a> </li> </ul> </div> </div> </div> </footer> </div> <a href="#top" class="back-to-top" title="Back to top"> <svg class="back-to-top__icon" role="img" aria-label="Back to top"> <use href="/themes/epa_theme/images/sprite.artifact.svg#angle"></use> </svg> </a> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"","currentPath":"node\/106423","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"ajaxPageState":{"libraries":"eJxNyEEOQiEMBcAL4e-RSJEXaAL9DQUJt9e40d1koFPmiegJmZ5sU24NMI6zooNKuxO3v3DJUH7FDl3f3sdln0IfPxQ7GA8ug6065bGM2_Wba6mt1MQrcvDjE50SO96gtTQb","theme":"epa_theme","theme_token":null},"ajaxTrustedUrl":[],"viewsAjaxGet":{"public_alerts":"public_alerts"},"epaAlerts":{"context":"public"},"mediaelement":{"attachSitewide":0},"user":{"uid":0,"permissionsHash":"1bc7b971ae8e07374eacb42449a528f4db7bd5756e5e09990fbb0d99517cc1e9"}}</script> <script src="/core/assets/vendor/jquery/jquery.min.js?v=3.7.1"></script> <script src="/core/assets/vendor/once/once.min.js?v=1.0.1"></script> <script src="/core/misc/drupalSettingsLoader.js?v=10.2.3"></script> <script src="/core/misc/drupal.js?v=10.2.3"></script> <script src="/core/misc/drupal.init.js?v=10.2.3"></script> <script src="/core/assets/vendor/tabbable/index.umd.min.js?v=6.2.0"></script> <script src="/modules/custom/epa_wysiwyg/js/plugins/epaNew/epaNew.js?snbziw"></script> <script src="/core/misc/progress.js?v=10.2.3"></script> <script src="/core/assets/vendor/loadjs/loadjs.min.js?v=4.2.0"></script> <script src="/core/misc/debounce.js?v=10.2.3"></script> <script src="/core/misc/announce.js?v=10.2.3"></script> <script src="/core/misc/message.js?v=10.2.3"></script> <script src="/core/misc/ajax.js?v=10.2.3"></script> <script src="/themes/contrib/stable/js/ajax.js?v=10.2.3"></script> <script src="/themes/epa_theme/js/dist/common.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/scripts.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/header-search.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/epa-alerts.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/sitewide-alert.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/private-sitewide-alert.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/definition.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/external-links.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/protected-links.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/vid-copy.min.js?v=20240924"></script> <script src="/themes/epa_theme/js/dist/sidenav-menu.min.js?v=20240924"></script> <link rel="stylesheet" href="/sites/all/libraries/js/datatables-1.10.16/datatables.min.css" /> <link rel="stylesheet" href="/sites/all/libraries/js/datatables-1.10.16/Buttons-1.5.1/css/buttons.dataTables.min.css" /> <style> /*DataTable overrides*/ table.dataTable { width: 100% !important; max-width: 100% !important; } .dataTables_wrapper .dataTables_filter { float: left; text-align: left; } .dataTables_filter input { margin: 0 3px 10px 3px !important; } /*add if DT export buttons used*/ div.dataTables_length, div.dt-buttons { margin-left: 1rem; } table.dataTable tbody tr.even > td, table.dataTable tbody tr.odd > td { background-color: transparent; /*for DT striping*/ } table.dataTable thead tr th { border-bottom-width: 2px; } table.dataTable.no-footer { border-bottom: 0px !important; } table.dataTable tbody td img { width: 100%; height: auto; } #info-description tr th { vertical-align: top; } /*USWDS overrides*/ div[class^="grid-col-"] fieldset legend { font-weight: bold; font-size: 1rem; color: #162e51; } div[class^="grid-col-"] fieldset > div { padding: 0.25rem 1rem; height: 200px; overflow-y: auto; background-color: #fff; } div[class^="grid-col-"] fieldset label { display: block; margin-bottom: 5px; margin-left: 18px; font-size: 1rem; float: left; clear: both; } div[class^="grid-col-"] fieldset label input[type="checkbox"] { margin-left: -25px; } /*More info modal*/ #infoModal { display: none; position: fixed; z-index: 100; padding-top: 100px; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0.7); } /*More info modal content */ .infoModal-content { background-color: #fefefe; margin: auto; padding: 20px; border: 1px solid #888; width: 90%; border-radius: 0.5rem; } #info-description table { table-layout: fixed; width: 100%; } #info-description table tbody tr th { width: 33.3333333333%; } #info-description table tbody tr td { width: 66.6666666667%; } /*More info modal close button */ .infoModal-close { color: #71767a; float: right; font-size: 40px; line-height: 0.5; font-weight: normal; } .infoModal-close:hover, .infoModal-close:focus { color: #1b1b1b; text-decoration: none; cursor: pointer; } button.infoModal-btn { cursor: pointer; } .usa-tooltip__trigger > svg { display: inline !important; } .usa-tooltip__body--top, .usa-tooltip__body--bottom, .usa-tooltip__body--left, .usa-tooltip__body--right { text-align: left !important; } .highlight li { background-color: rgba(151,212,234,.29); padding: .5rem 1rem; } @media only screen and (max-width: 800px) { div[class^="grid-col-"] { width: 100%; } } </style> <!--DataTable JS--> <script src="/sites/all/libraries/js/datatables-1.10.16/datatables.min.js" ></script> <script src="/sites/all/libraries/js/datatables-1.10.16/Buttons-1.5.1/js/dataTables.buttons.min.js"></script> <script src="/sites/all/libraries/js/datatables-1.10.16/JSZip-2.5.0/jszip.min.js"></script> <script src="/sites/all/libraries/js/datatables-1.10.16/pdfmake-0.1.32/pdfmake.min.js"></script> <script src="/sites/all/libraries/js/datatables-1.10.16/pdfmake-0.1.32/vfs_fonts.js"></script> <script> fetch("/system/files/other-files/2023-06/epp.json") //fetch("/system/files/other-files/2024-09/epp-test.json") .then((response) => { if (response.status >= 200 && response.status <= 299) { return response.json(); } else { throw Error(response.statusText); } }) .then((data) => { //json response loadTable(data); }) .catch((error) => { //console.log(error); }); //DataTable function loadTable(data) { const table = jQuery("#datatable").DataTable({ data: data, dom: "<'columnToggleDiv'>fBlrtip", buttons: [ { text: "Reset", action: function () { clearFilters(); }, }, { extend: "csv", text: "Download CSV", filename: "U.S EPA Recommendations of Specs, Standards and Ecolabels", exportOptions: { columns: [ 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, //19, 20, ], }, }, ], aLengthMenu: [ [10, 25, 50, 100, -1], [10, 25, 50, 100, "All"], ], pageLength: 100, columns: [ { data: null, orderable: false, className: "text-center", render: function (data) { if (data["Ecolabel logo"] !== "") { return ( "<img src=" + data["Ecolabel logo"] + " alt='Ecolabel logo' />" ); } else { return ""; } }, }, { data: "Standard\/Ecolabel Name", }, { data: "Product or Service Category(ies)", orderable: false, render: function (data) { return data.join("; "); }, }, { data: "Product or Service Sub-category(ies)", orderable: false, render: function (data) { return data.join("; "); }, }, { data: "Multi-Attribute or Single-Attribute", }, { data: "Link to Standard", }, { data: "Product Registry", }, { data: "Plastics Criteria", render: function (data) { return data.replace(/\n/g, "<br/>"); } }, { data: "PFAS Criteria", render: function (data) { return data.replace(/\n/g, "<br/>"); } }, { data: null, //More information (col 9) className: "text-center", orderable: false, render: function () { //info icon button return '<button title="Open more information" class="usa-button usa-button--unstyled info-btn" aria-controls="infoModal"><img src="/system/files/images/2021-08/info-icon.png" /></button>'; }, }, { data: "Product Availability", }, { data: "Supplier Competition", }, { data: "Voluntary Consensus Standard (VCS)", }, { data: "Competent Third Party Certification Program", }, { data: "Applicable Statutory Mandated Program(s)", }, { data: "Additional Specification(s)", }, /* { data: "Energy Use Criteria: Efficiency/Emissions/Embodied Energy", }, { data: "Renewable Energy Source Criteria", }, { data: "Recycled Content/Materials Management/Circular Design Criteria", }, data: "Embodied Energy/Carbon Criteria", },*/ { data: "Notes", }, { data: "Basis for Recommendation", }, { data: "Date Added", }, ], columnDefs: [ { targets: [ 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18 //19, 20, ], visible: false, searchable: true, }, { width: "5%", targets: 0 } ], order: [[4, "asc"]], scrollX: true, scrollXInner: "100%", orderCellsTop: true, initComplete: function () { //create list of categories from thedata let dataCatsArr = []; const dataCats = data.map(function (el) { return el["Product or Service Category(ies)"]; }); dataCats.forEach((value) => { value.forEach((item) => { dataCatsArr.push(item); }); }); //filter unique values and sort for category options const dataCatsOpts = dataCatsArr .filter((v, i) => dataCatsArr.indexOf(v) === i) .sort(); //create list of subcategories from the data let dataSubCatsArr = []; const dataSubCats = data.map(function (el) { return el["Product or Service Sub-category(ies)"]; }); dataSubCats.forEach((value) => { value.forEach((item) => { dataSubCatsArr.push(item); }); }); //filter unique values and sort for subcategory options const dataSubCatsOpts = dataSubCatsArr .filter((v, i) => dataSubCatsArr.indexOf(v) === i) .sort(); //create the category checkbox filters createFilter(dataCatsOpts, "cat"); //list of all category checkboxes to iterate on change function to get subcatetories for each const catCheckboxes = document.querySelectorAll( 'div#cat input[type="checkbox"]' ); //categories checkboxes onchange function for (let i = 0; i < catCheckboxes.length; i++) { catCheckboxes[i].addEventListener("change", function () { //clear subcats document.getElementById("subcat").replaceChildren(); let subCatOptions = []; //reset table table.columns().search("").draw(); //build cat filter string with or (|) condition for multiple column filter, search arguments: (input, regex, smart, caseInsen) let categories = jQuery('input:checkbox[name="cat"]:checked') .map(function () { return jQuery.fn.dataTable.util.escapeRegex(this.value); //don't want exact word match here! }) .get() .join("|"); table.column(2).search(categories, true, false).page(0).draw(); //get list of categories checked let catsChecked = []; for (let i = 0; i < catCheckboxes.length; i++) { let checkbox = catCheckboxes[i]; if (checkbox.checked) { catsChecked.push(checkbox.value); } } //from the full cats data arr, check if cat/subcat exists in the data to omit options we don't have data for cats.forEach((item, idx) => { for (let key in item) { if (catsChecked.includes(key)) { item[key].forEach((val, index) => { if (dataSubCatsOpts.includes(val)) { subCatOptions.push(val); } }); } } }); //create the subcat filters based on cat selections createFilter(subCatOptions.sort(), "subcat"); }); //end checkbox change event } //end checkboxes iteration //Trigger modal for info icon click const modal = document.getElementById("infoModal"); const span = document.getElementsByClassName("infoModal-close")[0]; const closebtn = document.getElementsByClassName( "infoModal-close-btn" )[0]; jQuery("#datatable tbody").on( "click", "button.info-btn", function () { modal.style.display = "block"; let data = table.row(jQuery(this).parents("tr")).data(); const infoHeading = document.getElementById("info-heading"); infoHeading.innerHTML = "<img src=" + data["Ecolabel logo"] + " alt='Ecolabel logo' class='width-8 margin-right-1' />" + data["Standard/Ecolabel Name"]; const category = document.getElementById("category"); category.innerText = data["Product or Service Category(ies)"].join("; "); const subcategory = document.getElementById("subcategory"); subcategory.innerText = data["Product or Service Sub-category(ies)"].join("; "); const standard = document.getElementById("standard"); if ( data["Link to Standard"] !== "" && getHostname(data["Link to Standard"]) === "epa.gov" ) { standard.innerHTML = "<a target='_blank' href=" + data["Link to Standard"] + ">" + data["Link to Standard"] + "</a>"; } else if ( data["Link to Standard"] !== "" && getHostname(data["Link to Standard"]) !== "epa.gov" ) { standard.innerHTML = "<a target='_blank' href=" + data["Link to Standard"] + ">" + data["Link to Standard"] + "<svg class='icon icon--exit is-spaced-before' role='img'><title>Exit EPA's Website</title><use href='https://www.epa.gov/themes/epa_theme/images/sprite.svg#launch'></use></svg></a>"; } else { standard.innerHTML = ""; } const registry = document.getElementById("registry"); if ( data["Product Registry"] !== "" && getHostname(data["Product Registry"]) === "epa.gov" ) { registry.innerHTML = "<a target='_blank' href=" + data["Product Registry"] + ">" + data["Product Registry"] + "</a>"; } else if ( data["Product Registry"] !== "" && getHostname(data["Product Registry"]) !== "epa.gov" ) { registry.innerHTML = "<a target='_blank' href=" + data["Product Registry"] + ">" + data["Product Registry"] + "<svg class='icon icon--exit is-spaced-before' role='img'><title>Exit EPA's Website</title><use href='https://www.epa.gov/themes/epa_theme/images/sprite.svg#launch'></use></svg></a>"; } else { registry.innerHTML = ""; } const attribute = document.getElementById("attribute"); attribute.innerText = data["Multi-Attribute or Single-Attribute"]; const availability = document.getElementById("availability"); availability.innerText = data["Product Availability"]; const competition = document.getElementById("competition"); competition.innerText = data["Supplier Competition"]; const consensus = document.getElementById("consensus"); consensus.innerText = data["Voluntary Consensus Standard (VCS)"]; const certification = document.getElementById("certification"); certification.innerText = data["Competent Third Party Certification Program"]; const mandated = document.getElementById("mandated"); mandated.innerText = data[ "Applicable Statutory Mandated Program(s)" ].join("\r\n"); const specification = document.getElementById("specification"); specification.innerText = data["Additional Specification(s)"]; const plastics = document.getElementById("plastics"); const plasticsHtml = stringToHTML(data["Plastics Criteria"]); plastics.replaceChildren(plasticsHtml); const pfas = document.getElementById("pfas"); const pfasHtml = stringToHTML(data["PFAS Criteria"]); pfas.replaceChildren(pfasHtml); /*const energy = document.getElementById("energy"); energy.innerText = data[ "Energy Use Criteria: Efficiency/Emissions/Embodied Energy" ]; const renewable = document.getElementById("renewable"); renewable.innerText = data["Renewable Energy Source Criteria"]; const recycled = document.getElementById("recycled"); recycled.innerText = data[ "Recycled Content/Materials Management/Circular Design Criteria" ]; const embodied = document.getElementById("embodied"); embodied.innerText = data["Embodied Energy/Carbon Criteria"];*/ const notes = document.getElementById("notes"); //notes.innerText = data["Notes"]; const notesHtml = stringToHTML(data["Notes"]); notes.replaceChildren(notesHtml); const basis = document.getElementById("basis"); basis.innerText = data["Basis for Recommendation"]; const dateadded = document.getElementById("dateadded"); dateadded.innerText = data["Date Added"]; //hide rows with no data for Safer Choice const placeholders = document.querySelectorAll( "div#info-description table tbody td div" ); if (data["Standard/Ecolabel Name"] === "Safer Choice") { placeholders.forEach((el) => { if (el.innerHTML.trim().length == 0) { el.closest("tr").style.display = "none"; } }); } else { placeholders.forEach((el) => { el.closest("tr").style.display = "table-row"; }); } } ); //modal close span.onclick = function () { modal.style.display = "none"; }; closebtn.onclick = function () { modal.style.display = "none"; }; //on click anywhere outside of the modal, close it window.onclick = function (event) { if (event.target === modal) { modal.style.display = "none"; } }; jQuery("div.columnToggleDiv") .html( '<p class="clear-both padding-top-1">Click the Plastics Criteria box and/or the PFAS Criteria box below to add columns to the table to display how each standard/ecolabel addresses these topics. EPA does not recommend standards/ecolabels solely based on these criteria and has not made a determination as to whether the standards/ecolabels appropriately address plastics and/or PFAS.</p><fieldset class="margin-bottom-1"><legend class="usa-sr-only">Select or deselect additional table columns</legend><div class="usa-checkbox display-inline-block padding-right-2"><input class="usa-checkbox__input usa-checkbox__input--tile" id="plasticsToggle" type="checkbox" name="columns" data-column="7"/><label class="usa-checkbox__label" for="plasticsToggle">Plastics Criteria</label></div><div class="usa-checkbox display-inline-block padding-right-2"><input class="usa-checkbox__input usa-checkbox__input--tile" id="pfasToggle" type="checkbox" name="columns" data-column="8" /><label class="usa-checkbox__label" for="pfasToggle">PFAS Criteria</label></div></fieldset>' ) .insertAfter(".dataTables_length"); }, //end initComplete }); //end DataTable table.columns.adjust().draw(); //toggle table columns document.querySelectorAll("input.usa-checkbox__input").forEach((el) => { el.addEventListener("change", function (e) { e.preventDefault(); let colIdx = e.target.getAttribute("data-column"); let col = table.column(colIdx); // Toggle the visibility col.visible(!col.visible()); }); }); //remove empty space Drupal adds in HTML for filter elements document.getElementById("cat").firstChild.remove(); //document.getElementById("subcat").firstChild.remove(); //Function to create the filters function createFilter(options, name) { for (let i = 0; i < options.length; i++) { let opt = options[i]; let filter = document.getElementById(name); let label = document.createElement("label"); let checkbox = document.createElement("input"); checkbox.type = "checkbox"; checkbox.name = name; checkbox.value = opt; checkbox.id = opt.replace(/[^A-Z0-9]+/gi, ""); label.htmlFor = opt.replace(/[^A-Z0-9]+/gi, ""); label.textContent = " " + opt; label.prepend(checkbox); filter.appendChild(label); } let subCatCheckboxes = document.querySelectorAll( 'div#subcat input[type="checkbox"]' ); //subcategory checkboxes onchange function once rendered for (let i = 0; i < subCatCheckboxes.length; i++) { subCatCheckboxes[i].addEventListener("change", function () { //build subcat filter string with or (|) condition for multiple column filter, search arguments: (input, regex, smart, caseInsen) let subcategories = jQuery( 'input:checkbox[name="subcat"]:checked' ) .map(function () { return jQuery.fn.dataTable.util.escapeRegex(this.value); //don't want exact word match here! }) .get() .join("|"); //table.column(3).search( subcategories ? '^'+subcategories+'$' : '', true, false ).page(0).draw(); table.column(3).search(subcategories, true, false, false).page(0).draw(); //table.column(3).search(subcategories, true, false).page(0).draw(); }); //end subcat checkbox change event } //end subcat checkboxes iteration } //Function to clear table filters const clearButton = document.querySelectorAll(".dt-button.clear"); clearButton[0].addEventListener("click", function () { clearFilters(); }); function clearFilters() { const items = document.getElementsByName("cat"); for (let i = 0; i < items.length; i++) { if (items[i].type === "checkbox") items[i].checked = false; } //trigger change event on all var event = new Event("change"); document.querySelector('input[type="checkbox"]').dispatchEvent(event); //clear subcats document.getElementById("subcat").replaceChildren(); let subCatOptions = []; //reset table table.search("").columns().search("").draw(); } } //end loadTable function //function to check if EPA Exit icon should be applied const getHostname = (url) => { return new URL(url).hostname; }; //Sort function to handle strings with hyphens function customSort(data, order) { function isNumber(v) { return (+v).toString() === v; } var sort = { asc: function (a, b) { var i = 0, l = Math.min(a.value.length, b.value.length); while (i < l && a.value[i] === b.value[i]) { i++; } if (i === l) { return a.value.length - b.value.length; } if (isNumber(a.value[i]) && isNumber(b.value[i])) { return a.value[i] - b.value[i]; } return a.value[i].localeCompare(b.value[i]); }, desc: function (a, b) { return sort.asc(b, a); }, }, mapped = data.map(function (el, i) { var string = el.replace(/\d(?=[a-z])|[a-z](?=\.)/gi, "$&. ."), regex = /(\d+)|([^0-9.]+)/g, m, parts = []; while ((m = regex.exec(string)) !== null) { parts.push(m[0]); } return { index: i, value: parts, o: el, string: string }; }); mapped.sort(sort[order] || sort.asc); return mapped.map(function (el) { return data[el.index]; }); } //all categories data array to build filters (check against data to omit options we don't have data for) const cats = [ { Cafeteria: [ "Certified Commercially Compostable Food Service Ware", //"Food Service Ware: containers, cutlery, dishware", "Commercial Dishwasher Detergent", ], }, { Construction: [ "Adhesives", "Carpet", "Ceiling Tiles-Acoustical", "Fiberboard, Gypsum Panels, and Wallboard", "Flooring: tile, resilient, and other non-carpeted", "Insulation", "Interior Latex Paint", "Other Miscellaneous Building Finishes", ], }, { Custodial: [ "Cleaners: carpet, glass, multipurpose", "Floor Care", "Hand Soap", "Bathroom Tissue", "Paper Towels", "Bags & Liners for Compostable Organic Materials", "Trash Bags", ], }, { "Electronics and Associated Services": [ "Computers: desktops, notebooks (including 2-in-1 notebooks), displays, integrated desktop computers, workstation desktops, thin clients, and slates/tablets", "Cloud Services", "Electronics Recycling Services", "Energy Savings Performance Contracts", "Imaging Equipment: printers, copiers, multi-function devices, scanners, fax machines, digital duplicators, mailing machines", "Mobile Phones", "Network Equipment", "Print Management Services", "Photovoltaic Modules and Inverters", "Power Purchase Agreements", "Seat Management Services", "Servers", "Televisions", "Wireless Services", ], }, { "Grounds/Landscaping": ["Deicer"], }, { "Machine Shop Operations": ["Parts Wash Solution"], }, { "Office/Furniture": ["Copy Paper", "Furniture", "Furnishings Fabric"], }, ]; //prevent DT column sort on header tooltips click const headerTooltips = document.querySelectorAll("th span"); for (let i = 0; i < headerTooltips.length; i++) { headerTooltips[i].addEventListener("click", function (event) { if (event.target.nodeName === "SPAN") { event.stopPropagation(); } }); } //Function to convert JSON data HTML string to HTML DOM nodes var stringToHTML = function (str) { let parser = new DOMParser(); let doc = parser.parseFromString(str, "text/html"); const b = doc.body; const d = document.createElement("div"); while (b.childNodes.length > 0) { d.appendChild(b.childNodes[0]); } return d; }; </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10