CINXE.COM
ISO/IEC 23271:2012 - Information technology — Common Language Infrastructure (CLI)
<!DOCTYPE html> <html lang="en"> <head><link rel="canonical" href="https://www.iso.org/standard/58046.html" /><link rel="alternate" hreflang="en" href="https://www.iso.org/standard/58046.html" /> <link rel="alternate" hreflang="fr" href="https://www.iso.org/fr/standard/58046.html" /> <script> dataLayer = [{ 'pageType': 'its:standard', 'pageLanguage': 'en', 'pageMode': 'live', 'pageServer': 'prod' }]; </script> <style> /* Early rules to mitigate CLS */ .nav-utility { padding: 5px; z-index: 1024; position: relative; } .text-sm { font-size: .875em; } .nav-utility li.nav-item a.nav-link { padding: 0; text-decoration: none; } .dropdown-toggle::after { font-size: .75em; vertical-align: baseline; } .logo.isologo.logo-sm { height: 50px; width: 50px; } .nav-iso .navbar-toggler { margin-left: 0.5rem; order: 4; } .navbar-toggler-icon-animated { width: 20px; height: 15px; position: relative; margin: 0; transform: rotate(0); display: inline-block; } .nav-iso .navbar-form { order: 2; flex: 1; } .navbar-form { margin-left: 0.5rem; } .height-300 { height: 300px; } section.section-md { padding-top: 3.75rem; padding-bottom: 3.75rem; } .nav-relatives .nav-children, .nav-relatives .section-head { font-size: calc(1.255rem + .06vw); } .previous a::before, .section-back a::before { vertical-align: bottom; padding-right: .3em; transition: all 0; } @media screen and (max-width:500px) { .section-back { flex-wrap: nowrap; overflow-x: hidden; } .section-back > a:not(:first-of-type):not(:last-of-type) { display: none; } .heading-condensed > h1 { font-size: 31.6588px; line-height: 39.5735px; } .heading-condensed > h2 { font-size: 26.1713px; line-height: 32.7141px; } } @media (max-width: 1199.98px) { section.section-navigation { padding-top: 1.875rem; } } </style> <!-- OneTrust Cookies Consent Notice start for iso.org --> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-document-language="true" type="text/javascript" charset="UTF-8" data-domain-script="0217ba9a-8935-44d6-872d-1f223304e117" ></script> <script type="text/javascript"> function OptanonWrapper() { } </script> <!-- OneTrust Cookies Consent Notice end for iso.org --> <meta name="google-site-verification" content="mQuqWPbWruZdQgZR8QwbxOWnjjxkcFiyJLHWY-cOOHk" /> <!-- Matomo Tag Manager --> <script type="text/plain" class="optanon-category-C0001"> var _mtm = window._mtm = window._mtm || []; _mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'}); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src='https://cdn.matomo.cloud/iso.matomo.cloud/container_dINwYKex.js'; s.parentNode.insertBefore(g,s); </script> <!-- End Matomo Tag Manager --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title> ISO/IEC 23271:2012 - Information technology — Common Language Infrastructure (CLI)</title> <link rel="preload" as="font" type="font/woff2" href="/modules/isoorg-template/fonts/inter/Inter.var.woff2?v=3.19" crossorigin/> <link rel="stylesheet" href="/modules/isoorg-template/css/wood.bootstrap.min.css?202411250651" media="screen,print,handheld" type="text/css"/> <link rel="preload" href="/modules/isoorg-template/css/wood.iso.min.css?202411250651" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="/modules/isoorg-template/css/wood.iso.min.css?202411250651"></noscript> <!-- start favicons --> <link rel="apple-touch-icon-precomposed" href="/modules/isoorg-template/img/iso/favicon/red/apple-touch-icon-152x152-precomposed.png"> <link rel="shortcut icon" href="/modules/isoorg-template/img/iso/favicon/red/favicon.ico"> <meta name="msapplication-TileColor" content="#eee"> <meta name="msapplication-TileImage" content="/modules/isoorg-template/img/iso/favicon/red/mstile-144x144.png"> <!-- end favicons --> <meta name="theme-color" content="#333"> <script type="module"> let basketWidgetLoaderScript = document.createElement('script'); basketWidgetLoaderScript.src = '/webstore/basket-widget/assets/js/basket-widget-loader.js'; document.head.appendChild(basketWidgetLoaderScript); basketWidgetLoaderScript.onload = () => { const cartElem = document.getElementById('shoppingCart'); if (cartElem) { cartElem.onclick = function(event) { return loadWebComponentsLoaderAndWidget(this, event); }; } } </script> <script type="application/json" id="jahia-data-ctx">{"contextPath":"","lang":"en","uilang":"en","siteUuid":"439146f8-677e-4dde-b6c6-b692b7534f52","wcag":false,"ckeCfg":""}</script> <script type="application/json" id="jahia-data-ck">{"path":"/modules/ckeditor/javascript/","lng":"en_US"}</script> <script src="/javascript/initJahiaContext.js"></script> <link id="staticAssetCSS0" rel="stylesheet" href="/modules/jahia-algolia/css/simpleSearch.css?1719494378710" media="screen" type="text/css"/> <script id="staticAssetJavascript0" src="/modules/isoorg-template/javascript/wood.full.min.js?1729842151563" defer></script> <script id="staticAssetJavascript1" src="/modules/isoorg-template/javascript/custom.js?1729842151563" defer></script> <script id="staticAssetJavascript2" src="/modules/jquery/javascript/jquery-1.12.4.min.js?1622554272438" ></script> <script id="staticAssetJavascript3" src="/modules/assets/javascript/jquery.jahia.min.js?1588604535758" ></script> <script id="staticAssetJavascript4" src="/modules/jahia-algolia/javascript/searchCommon.js?1719494378710" defer></script> <script id="staticAssetJavascript5" src="/modules/jahia-algolia/javascript/simpleSearch.js?1719494378710" defer></script> <script id="staticAssetJavascript6" src="/modules/jahia-algolia/javascript/autocomplete.js?1719494378710" defer></script> <style> nav[role="navigation"]:has(.ticker--live) { background-color: var(--bs-brand)!important; } nav[role="navigation"]:has(.ticker--live) > .container { gap: 1rem; } nav[role="navigation"]:has(.ticker--live) #utilities > li:not(#lang-switcher) { display: none!important; } .card-footer:has(.ticker--live) { background-color: var(--bs-dark)!important; color: white; } .card-footer:has(.ticker--live) a { color: white; } .ticker:has(.ticker--live) { white-space: normal; } .ticker--live .ticker__icon { animation: live 1s infinite; } @keyframes live { 0% { color: transparent; } 50% { color: white; } 100% { color: transparent; } } .its-standard [data-status] {display: none; }</style> <!-- Hotjar Tracking Code for www.iso.org --> <script>(function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:2510805,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r);})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');</script> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.22.1/dist/algoliasearch-lite.umd.js" integrity="sha256-pxkGFjfnFWYGOtV9uhCWK/spKiGS0Z7gVDKYm39LyfM=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4.66.0/dist/instantsearch.production.min.js" integrity="sha256-lKV2os1BMDtHxNVG6JQWSPYDUouULGz/nEI1z2VMKEM=" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.css@8.1.0/themes/reset-min.css" integrity="sha256-2AeJLzExpZvqLUxMfcs+4DWcMwNfpnjUeAAvEtPr0wU=" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/@algolia/autocomplete-js"></script> <script src="https://cdn.jsdelivr.net/npm/@algolia/autocomplete-plugin-recent-searches"></script> <script src="https://cdn.jsdelivr.net/npm/@algolia/autocomplete-plugin-query-suggestions"></script> <script> const { autocomplete } = window['@algolia/autocomplete-js']; const { createLocalStorageRecentSearchesPlugin } = window['@algolia/autocomplete-plugin-recent-searches']; const { createQuerySuggestionsPlugin } = window['@algolia/autocomplete-plugin-query-suggestions']; </script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@algolia/autocomplete-theme-classic" /> <script type="text/javascript"> const algolia = { settings: { appID: 'JCL49WV5AR', apiKey: 'MzcxYjJlODU3ZmEwYmRhZTc0NTZlODNlZmUwYzVjNDRiZDEzMzRjMjYwNTAwODU3YmIzNjEwZmNjNDFlOTBjYXJlc3RyaWN0SW5kaWNlcz1QUk9EX2lzb29yZ19lbiUyQ1BST0RfaXNvb3JnX2VuX2F1dG9jb21wbGV0ZQ==', index : { name: 'PROD_isoorg_en' }, autocompleteDebounceTime : 500 }, instantSearch: undefined, autocomplete: [], pageDisplaysInstantSearch: false } //autocomplete initialize jQuery(document).ready(function() { algolia.autocomplete .filter((settings) => settings.containerID !== undefined && settings.containerID.length > 0) .forEach((settings) => settings.setQuery = startAutocomplete(settings).setQueryCB) }) </script> <script type="text/javascript"> { const currentAutocomplete = { containerID: '#autocomplete_6ef5776a-742e-4a17-85c1-b61490f0b78b', placeholder: 'Search', initialStateQuery: undefined, displaysInstantSearch: false, searchPageUrl: '/search.html', search: undefined, setQuery: undefined, autocompleteDisabled: true, autocompleteKeystrokes: 3 } algolia.autocomplete.push(currentAutocomplete) if (false) { if (algolia.pageDisplaysInstantSearch) { console.error("Impossible to display more than one InstantSearch on the same page") } else { algolia.pageDisplaysInstantSearch = true } } } </script> <meta name="category" content="p" /> <meta name="pubdate" content="20210429" /> <!-- Twitter Card data --> <meta name="twitter:site" content="@isostandards" /> <!-- Open Graph data --> <meta property="og:site_name" content="ISO" /> <meta property="og:url" content="https://www.iso.org/standard/58046.html" /> <meta property="og:type" content="website" /> <!-- Thumbnail image (for twitter and Open Graph) --> <meta name="thumbnail" content="https://www.iso.org/modules/isoorg-template/img/iso/iso-logo-og.png" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:image" content="https://www.iso.org/modules/isoorg-template/img/iso/iso-logo-og.png" /> <meta property="og:image" content="https://www.iso.org/modules/isoorg-template/img/iso/iso-logo-og.png" /> <meta property="og:image:alt" content="ISO logo" /> <!-- Title (for twitter and Open Graph) --> <meta name="twitter:title" content="ISO/IEC 23271:2012" /> <meta property="og:title" content="ISO/IEC 23271:2012" /> <!-- Description (for google, twitter and Open Graph) --> <meta name="twitter:description" content="Information technology — Common Language Infrastructure (CLI)" /> <meta property="og:description" content="Information technology — Common Language Infrastructure (CLI)" /> <meta name="description" content="Information technology — Common Language Infrastructure (CLI)" /> <!-- Facebook admins --> <meta property="fb:admins" content="100001440003305" /> <script src="/modules/iso-jahia-service-module/javascript/catalog.js" defer ></script> <script src="https://www.google.com/recaptcha/api.js?render=6Lfvyx8qAAAAAHOXkwbvVobjfLbVzBEnEVRuLtNA" defer></script> <script type="text/javascript" src="/modules/CsrfServlet"></script> </head> <!-- Topbar utility --> <body class="theme-red lang-en its-standard is-prod is-live" id="page-e2bad883-e664-4bb1-a9f7-f6c53d9e0f99"> <a id="page-top" class="skip-navigation btn btn-info visually-hidden visually-hidden-focusable" href="#content">Skip to main content</a> <nav role="navigation" aria-label="Utility Navigation" class="nav-utility navbar-expand-lg text-sm navbar-dark bg-darkergray text-light"> <div class="container d-flex justify-content-between"> <div class="ticker text-truncate float-start"></div> <ul class="nav d-flex justify-content-end justify-content-sm-around justify-content-md-end" id="utilities"> <li class="nav-item d-none d-sm-block"> <a href="https://login.iso.org" class="nav-link d-flex align-items-center" title="ISO's applications portal"><i class="bi-grid-3x3-gap-fill"></i> Applications</a> </li> <li class="nav-item d-none d-sm-block"> <a href="https://www.iso.org/obp/ui/en/" class="nav-link d-flex align-items-center" title="Online Browsing Platform"><i class="bi-journal-text"></i> OBP</a> </li> <li class="nav-item dropdown" id="lang-switcher"> <a id="lang-dropdown" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" aria-expanded="false">English</a> <ul class="dropdown-menu dropdown-menu-end" role="menu" aria-labelledby="lang-dropdown"> <li class="lang-es "><a class="dropdown-item " href="/es/contents/data/standard/05/80/58046.html">español</a></li><li class="lang-fr "><a class="dropdown-item " href="/fr/standard/58046.html">français</a></li><li class="lang-ru "><a class="dropdown-item " href="/ru/standard/58046.html">русский</a></li></ul> </li></ul> </div> </nav> <!-- Header ISO.ORG --> <header class="header-bootstrap sticky-top"> <!-- Main navigation --> <nav class="navbar nav-iso navbar-expand-lg navbar-light shadow-md bg-white text-dark"> <div class="container"> <a class="logo logo-square isologo logo-sm" href="/home.html" title="International Organization for Standardization" alt="ISO logo"></a> <div class="isologo-print"><img loading="lazy" fetchpriority="low" src="/modules/isoorg-template/img/iso/iso-logo-print.gif" alt="ISO logo for print" width="50" height="50"/></div> <button class="btn btn-light navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#mainNav" aria-controls="mainNav" aria-expanded="false" aria-label="Toggle navigation"> <div class="navbar-toggler-icon-animated"><span></span><span></span><span></span><span></span></div><span class="visually-hidden-xs"> Menu</span> </button> <!-- TOP LEVEL1 NAVIGATION --> <nav role="navigation" aria-label="Main Navigation" class="nav-megamenu collapse navbar-collapse flex-lg-grow-0 flex-xxl-grow-1" id="mainNav"><ul role='menubar' class='navbar-nav me-auto mb-lg-0 ps-2 pe-2 nav-level1' ><li role='menuitem' class='nav-item dropdown position-static noChildren firstInLevel' ><a class='nav-link dropdown-toggle megamenu-toggle ' title="Covering almost every product, process or service imaginable, ISO makes standards used everywhere." href='/standards.html'>Standards</a></li><!-- close of list item level 1 --><li role='menuitem' class='nav-item dropdown position-static hasChildren' ><a class='nav-link dropdown-toggle megamenu-toggle ' data-bs-toggle="dropdown" aria-expanded="true" href=''>Sectors</a><div role='menubar' class='dropdown-menu megamenu w-100 mt-0 border-0 rounded-0 megamenu-shadow-md nav-level2' aria-labelledby="navbarDropdown" data-bs-popper="none"><div class="container"><div class="row mb-xs-4 my-md-4 megamenu-animate slideUp"><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren firstInLevel' ><a class='nav-link section-head ps-0 ' title="(including medicine and laboratory equipment)" href='/sectors/health'>Health</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 ' title="(including communication technology, graphics and photography)" href='/sectors/it-technologies'>IT & related technologies</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 ' title="(including vehicles, parts and infrastructure, freight, packaging and distribution)" href='/sectors/transport'>Transport</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 ' href='/sectors/environment'>Environmental sustainability</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 ' title="(Business management, financial and professional services)" href='/sectors/management-services'>Management & services</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 ' href='/sectors/security-safety-risk'>Security, safety & risk</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 ' title="(including power generation and transport, fuels)" href='/sectors/energy'>Energy</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 disabled' href=''>Food and agriculture</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 disabled' href=''>Building and construction</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 disabled' href=''>Engineering</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren' ><a class='nav-link section-head ps-0 disabled' href=''>Materials</a></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 noChildren lastInLevel' ><a class='nav-link section-head ps-0 disabled' href=''>Diversity and inclusion</a></div><!-- close of list item level 2 --></div></div></div><!-- close of container level 2 --></li><!-- close of list item level 1 --><li role='menuitem' class='nav-item dropdown position-static noChildren' ><a class='nav-link dropdown-toggle megamenu-toggle ' title="ISO brings together global experts to develop International Standards that help solve problems and drive innovation." href='/about'>About ISO</a></li><!-- close of list item level 1 --><li role='menuitem' class='nav-item dropdown position-static hasChildren' ><a class='nav-link dropdown-toggle megamenu-toggle ' data-bs-toggle="dropdown" aria-expanded="true" href=''>Insights & news</a><div role='menubar' class='dropdown-menu megamenu w-100 mt-0 border-0 rounded-0 megamenu-shadow-md nav-level2' aria-labelledby="navbarDropdown" data-bs-popper="none"><div class="container"><div class="row mb-xs-4 my-md-4 megamenu-animate slideUp"><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 hasChildren firstInLevel' ><a class='nav-link section-head ps-0 disabled' href=''>Insights</a><div role='menubar' class='list-group list-group-flush mt-0 nav-level3' ><div role='menuitem' class='nav-item position-static ms-0 noChildren firstInLevel' ><a class='nav-link ps-0 ' href='/insights'>All insights</a></div><!-- close of list item level 3 (and more) --><div role='menuitem' class='nav-item position-static ms-0 noChildren' ><a class='nav-link ps-0 ' href='/insights/filtered-list-healthcare'>Healthcare</a></div><!-- close of list item level 3 (and more) --><div role='menuitem' class='nav-item position-static ms-0 noChildren' ><a class='nav-link ps-0 ' href='/insights/filtered-list-artificial-intelligence'>Artificial intelligence</a></div><!-- close of list item level 3 (and more) --><div role='menuitem' class='nav-item position-static ms-0 noChildren lastInLevel' ><a class='nav-link ps-0 ' href='/insights/filtered-list-climate-change'>Climate change</a></div><!-- close of list item level 3 (and more) --></div><!-- close of container level 3 (and more) --></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 hasChildren' ><a class='nav-link section-head ps-0 disabled' href=''> </a><div role='menubar' class='list-group list-group-flush mt-0 nav-level3' ><div role='menuitem' class='nav-item position-static ms-0 noChildren firstInLevel' ><a class='nav-link ps-0 ' href='/insights/filtered-list-information-security'>Cybersecurity</a></div><!-- close of list item level 3 (and more) --><div role='menuitem' class='nav-item position-static ms-0 noChildren' ><a class='nav-link ps-0 ' href='/insights/filtered-list-quality-management'>Quality management</a></div><!-- close of list item level 3 (and more) --><div role='menuitem' class='nav-item position-static ms-0 noChildren lastInLevel' ><a class='nav-link ps-0 ' href='/home/insights-news/navigation-menu-hidden/renewable-energy.html'>Renewable energy</a></div><!-- close of list item level 3 (and more) --></div><!-- close of container level 3 (and more) --></div><!-- close of list item level 2 --><div role='menuitem' class='col-xs-6 col-lg-3 mt-0 hasChildren lastInLevel' ><a class='nav-link section-head ps-0 disabled' href=''>News</a><div role='menubar' class='list-group list-group-flush mt-0 nav-level3' ><div role='menuitem' class='nav-item position-static ms-0 noChildren firstInLevel' ><a class='nav-link ps-0 ' href='/home/insights-news/news/expert-talk.html'>Expert talk</a></div><!-- close of list item level 3 (and more) --><div role='menuitem' class='nav-item position-static ms-0 noChildren' ><a class='nav-link ps-0 ' href='/insights/standards-world'>Standards world</a></div><!-- close of list item level 3 (and more) --><div role='menuitem' class='nav-item position-static ms-0 noChildren' ><a class='nav-link ps-0 ' href='/home/insights-news/news/dossier-medias.html'>Media kit</a></div><!-- close of list item level 3 (and more) --></div><!-- close of container level 3 (and more) --></div><!-- close of list item level 2 --></div></div></div><!-- close of container level 2 --></li><!-- close of list item level 1 --><li role='menuitem' class='nav-item dropdown position-static noChildren' ><a class='nav-link dropdown-toggle megamenu-toggle ' title="Find out how the ISO process bring together global experts to create standards that are chosen the world over." href='/developing-standards.html'>Taking part</a></li><!-- close of list item level 1 --><li role='menuitem' class='nav-item dropdown position-static noChildren inPath lastInLevel' ><a class='nav-link dropdown-toggle megamenu-toggle ' title="Are you looking to buy International Standards, guidelines, collections and checklists? They're all right here, in the ISO Store." href='/store.html'>Store</a></li><!-- close of list item level 1 --></ul><!-- close of container level 1 --></nav> <form class="navbar-form flex-lg-grow-1" role="search" id="siteSearch"> <div id="autocomplete_6ef5776a-742e-4a17-85c1-b61490f0b78b"></div> </form><a role="button" id="shoppingCart" class="btn btn-light shopping-cart-link bg-white border-0 text-muted d-none d-lg-block" href="/webstore/checkout?memberId=ISO&guilang=en" title="Shopping cart" aria-label="Shopping cart" style-="display:none;"> <i class="bi-cart"></i><span id="cartText" class="visually-hidden-xs ms-1" style="display: none;"> Cart</span> </a> </div> </nav> </header> <!-- MAIN CONTENT --> <main role="main" id="content" class="acer" aria-label="Content" tabindex="-1"> <div itemscope itemtype="https://schema.org/Product" class="its-standard-container" id="its-standard-58046"> <section class="section-navigation bg-lightgray"> <div class="container"> <div class="row"> <div class="col-md-7"> <div class="row"> <div class="col-8 col-xs-4 order-2 order-xs-1 d-none d-xs-block"> <figure class="standard"> <div class="standard-cover shadow-sm standard-cover-old" id="standard-poster"> <div class="cell-top-left "> <div class="standard-logo grayscale"> <img src="/modules/iso-jahia-service-module/img/iso-iec-logo.png"/></div> <div class="d-flex flex-column justify-content-between text-end"> <div class="standard-reference"> Reference number<br/> ISO/IEC 23271:2012</div> <div class="standard-copyright">© ISO 2024</div> </div> </div> <div class="cell-top-right "> <div class="standard-type"> International Standard</div> <div class="standard-number ">ISO/IEC 23271:2012</div> </div> <div class="cell-bottom-left "> <div class="standard-title">Information technology — Common Language Infrastructure (CLI)</div> </div> <div class="cell-bottom-right "> <div class="standard-edition"> Edition 3<br/>2012-02</div> </div> <div class="standard-label d-none"> </div> </div> <img src="/modules/iso-jahia-service-module/img/iso-standard-cover-thumbnail.png" class="d-none" itemprop="image" id="standard-image"/> <figcaption class="text-center"> <a class="btn btn-sm btn-light" href="https://www.iso.org/obp/ui/en/#!iso:std:58046:en">Read sample</a> </figcaption> </figure> </div> <div class="col-12 col-xs-8 order-1 order-xs-2"> <div class="visually-hidden" itemprop="category"></div> <div class="visually-hidden" itemprop="name">ISO/IEC 23271:2012</div> <div class="visually-hidden" itemprop="productID">58046</div> <div class="visually-hidden" itemprop="brand" itemscope itemtype="https://schema.org/Brand"> <div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"> <meta itemprop="url" content="/modules/isoorg-template/img/iso/iso-logo-print.gif"/> <meta itemprop="width" content="350"> <meta itemprop="height" content="350"> </div> <meta itemprop="name" content="ISO - International Organization for Standardization"> </div> <nav role="navigation" aria-label="Children Navigation" class="heading-condensed nav-relatives"> <div class="section-head "></div> <h1 class="stdTitle"> <span class="d-flex justify-content-between align-items-start"> <span class="d-block mb-3 ">ISO/IEC 23271:2012</span> </span> <span class="lead d-block mb-3">Information technology — Common Language Infrastructure (CLI)</span></h1> </nav> <div class="mt-4 callout callout-success callout-top"> <div class="mb-1"><a href="#lifecycle" class="text-success" title="Life cycle"><strong>Published</strong></a> (Edition 3, 2012)</div> <div class="mb-3" data-info="stage-description">This publication was last reviewed and confirmed in 2021. Therefore this version remains current.</div> </div> </div> </div> </div> <div class="col-md-4 col-md-offset-1"> <div class="card store-box buy-box buybox" id="cs58046"> <div class="card-header text-center"><h4>ISO/IEC 23271:2012</h4></div> <div class="card-body"> <span class="visually-hidden" id="indexReference_cs58046" data-index="58046 - ISO/IEC 23271:2012 - Information technology — Common Language Infrastructure (CLI)"></span> <span class="visually-hidden" id="itemReference_cs58046">ISO/IEC 23271:2012</span> <div class="visually-hidden" id="csNumber_cs58046">58046</div> <form class="box-option" id="form_cs58046"> <div class="mb-3"> <div class="section-head mb-1 text-sm"> Language</div> <div class="form-group"> <select class="form-select form-select-sm bkilang" id="bkilang_cs58046"> <option value="en" selected>English</option> </select> </div> </div> <div class="section-head mb-1 text-sm"> Format</div> <div class="formats formats_cs58046" id="bkifmt_cs58046_en" style="display: none;"><div class="form-check text-sm" id="bkifmt_cs58046_en_1"> <input class="form-check-input" data-type="std" data-price="0" checked="checked" type="radio" name="format_en" id="format_cs58046_en_1" value="01ub000000285X1AAI~a05b0000005WV4TAAW~a0fb0000000eFgOAAU~a0cb0000001QGR6AAO"/> <label class="form-check-label" for="format_cs58046_en_1">PDF on CD</label> </div></div></form> <div class="align-items-baseline box-price" itemprop="offers" itemscope itemtype="https://schema.org/Offer"> <div class="d-flex justify-content-center align-items-baseline gap-2"> <link itemprop="url" href="https://www.iso.org:-1/standard/58046.html" /> <meta itemprop="availability" content="https://schema.org/InStock" /> <span class="currency"><abbr title="Swiss francs" itemprop="priceCurrency">CHF</abbr></span> <span class="price d-flex align-items-baseline gap-2"> <span class="amount" id="productPrice_cs58046" itemprop="price">0</span> </span> </div> </div> <div class="d-grid orderBasket box-action pb-0"> <button id="add_cs58046" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#iso-optout" onclick="javascript:addToBasket('cs58046', '1', 'en', 'cs')"> Add to cart</button> </div> </div> <div class="smaller text-center my-3">Shipping costs not included</div> </div> </div> </div> </div> </section> <svg class="wave" preserveAspectRatio="none" viewBox="0 0 1440 96" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="m0 96 80-5.3C160 85 320 75 480 64s320-21 480-21.3c160 .3 320 10.3 400 16l80 5.3V0H0v96Z"></path></svg> <section id="product-details"> <div class="container"> <div class="row"> <div class="col-md-7"> <div class="alert alert-info"> The electronic version of this International Standard can be <a href="http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html" target="_blank">downloaded</a> from the ISO/IEC Information Technology Task Force (ITTF) web site</div> <div class="d-flex justify-content-between align-items-center"><h2>Abstract</h2></div> <div itemprop="description"> <p><p>ISO/IEC 23271:2012 defines the Common Language Infrastructure (CLI) in which applications written in multiple high-level languages can be executed in different system environments without the need to rewrite those applications to take into consideration the unique characteristics of those environments. It consists of six partitions.</p> <ul> <li>Partition I describes the overall architecture of the CLI, and provides the normative description of the Common Type System (CTS), the Virtual Execution System (VES), and the Common Language Specification (CLS). It also provides an informative description of the metadata.</li> <li>Partition II provides the normative description of the metadata: its physical layout (as a file format), its logical contents (as a set of tables and their relationships), and its semantics (as seen from a hypothetical assembler, ILAsm).</li> <li>Partition III describes the Common Intermediate Language (CIL) instruction set.</li> <li>Partition IV provides an overview of the CLI Libraries, and a specification of their factoring into Profiles and Libraries. A companion file, CLILibrary.xml, considered to be part of this partition, but distributed in XML format, provides details of each class, value type, and interface in the CLI Libraries.</li> <li>Partition V describes a standard way to interchange debugging information between CLI producers and consumers.</li> <li>Partition VI contains some sample programs written in CIL Assembly Language (ILAsm), information about a particular implementation of an assembler, a machine-readable description of the CIL instruction set which can be used to derive parts of the grammar used by this assembler as well as other tools that manipulate CIL, a set of guidelines used in the design of the libraries of Partition IV, and portability considerations.</li> </ul></p> </div> </div> <div class="col-md-4 col-md-offset-1"> <div class="d-flex justify-content-between align-items-center"> <h3>General information</h3> </div> <ul class="refine"> <li> <div class="" id="publicationStatus"> <div class="entry-label">Status</div> : <span>Published</span> </div> <div class="" id="publicationDate"> <div class="entry-label">Publication date</div> : <span itemprop="releaseDate">2012-02</span> </div> <div class="" id="stageId"> <div class="entry-label">Stage</div> : International Standard confirmed [<a class="page-scroll" href="#lifecycle">90.93</a>] </div> </li> <li> <div class=""> <div class="entry-label">Edition</div> : 3</div> <div class=""> <div class="entry-label">Number of pages</div> : 546</div> </li> <li> <div> <div class="entry-label">Technical Committee :</div> <span class="entry-name entry-block"> <a title="Programming languages, their environments and system software interfaces" href="/committee/45202.html">ISO/IEC JTC 1/SC 22</a></span> </div> <div> <div class="entry-label"><abbr class="popover-primary" tabindex="0" role="button" data-bs-toggle="popover" data-bs-custom-class="popover-light text-sm shadow-sm pt-2" data-bs-trigger="focus" data-bs-placement="bottom" data-bs-content="International Classification for Standards">ICS</abbr> :</div> <span class="entry-name entry-block"> <a title="Languages used in information technology" href="/ics/35.060.html"> 35.060</a> </span> </div> </li> <li class="text-xs"> <i class="bi-rss-fill me-1 align-baseline text-sm" style="color: #F99000;"></i><a href="/contents/data/standard/05/80/58046.detail.rss">RSS</a> updates</li> </ul> </div> </div> </div> </section> </div> <section id="lifecycle" class="z-2"> <div class="container"> <div class="row"> <div class="col-md-12"> <h3>Life cycle</h3> <div class="lifecycle"> <ul class="steps"> <li class="time-step"> <h4 class="ms-sm-3 text-muted">Previously</h4> <div class="step step-dark"> <div class="step-item"> <div class="section-head">Withdrawn</div> <h5><a href="/standard/42927.html">ISO/IEC 23271:2006</a></h5> </div> </div> </li> <li class="time-step"> <h4 class="ms-sm-3 text-muted">Now</h4> <div class="step step-success active"> <div class="section-head">Published</div> <h5>ISO/IEC 23271:2012</h5> <br/>A standard is reviewed every 5 years<br/><a data-bs-toggle="collapse" role="button" aria-expanded="false" href="#stages" class="dropdown-toggle current-stage text-sm collapsed">Stage: <strong>90.93</strong> (Confirmed)</a> </div> <ul class="stages collapse" id="stages"> <li class="dropdown alert-info"> <a href="javascript:void(0)" role="button" aria-haspopup="true" aria-expanded="false"> <span class="stage-code">00</span> <div class="stage-title">Preliminary</div> </a> </li> <li class="dropdown alert-info"> <a href="javascript:void(0)" role="button" aria-haspopup="true" aria-expanded="false"> <span class="stage-code">10</span> <div class="stage-title">Proposal</div> </a> </li> <li class="dropdown alert-info"> <a href="javascript:void(0)" role="button" aria-haspopup="true" aria-expanded="false"> <span class="stage-code">20</span> <div class="stage-title">Preparatory</div> </a> </li> <li class="dropdown alert-info"> <a href="javascript:void(0)" class="dropdown-toggle" data-bs-display="static" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <span class="stage-code">30</span> <div class="stage-title">Committee</div> </a> <ul class="dropdown-menu"> <li > <a href="/stage-codes.html#30_99"> <span class="stage-code">30.99</span> <span class="stage-date">2011-01-05</span> <div class="stage-title"> CD approved for registration as DIS</div> </a> </li></ul> </li> <li class="dropdown alert-info"> <a href="javascript:void(0)" class="dropdown-toggle" data-bs-display="static" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <span class="stage-code">40</span> <div class="stage-title">Enquiry</div> </a> <ul class="dropdown-menu"> <li > <a href="/stage-codes.html#40_00"> <span class="stage-code">40.00</span> <span class="stage-date">2011-01-26</span> <div class="stage-title"> DIS registered</div> </a> </li><li > <a href="/stage-codes.html#40_20"> <span class="stage-code">40.20</span> <span class="stage-date">2011-02-02</span> <div class="stage-title"> DIS ballot initiated: 12 weeks</div> </a> </li><li > <a href="/stage-codes.html#40_60"> <span class="stage-code">40.60</span> <span class="stage-date">2011-07-04</span> <div class="stage-title"> Close of voting</div> </a> </li><li > <a href="/stage-codes.html#40_99"> <span class="stage-code">40.99</span> <span class="stage-date">2011-10-11</span> <div class="stage-title"> Full report circulated: DIS approved for registration as FDIS</div> </a> </li></ul> </li> <li class="dropdown alert-info"> <a href="javascript:void(0)" class="dropdown-toggle" data-bs-display="static" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <span class="stage-code">50</span> <div class="stage-title">Approval</div> </a> <ul class="dropdown-menu"> <li > <a href="/stage-codes.html#50_00"> <span class="stage-code">50.00</span> <span class="stage-date">2011-11-10</span> <div class="stage-title"> Final text received or FDIS registered for formal approval</div> </a> </li><li > <a href="/stage-codes.html#50_20"> <span class="stage-code">50.20</span> <span class="stage-date">2011-11-28</span> <div class="stage-title"> Proof sent to secretariat or FDIS ballot initiated: 8 weeks</div> </a> </li><li > <a href="/stage-codes.html#50_60"> <span class="stage-code">50.60</span> <span class="stage-date">2012-01-30</span> <div class="stage-title"> Close of voting. Proof returned by secretariat</div> </a> </li></ul> </li> <li class="dropdown alert-success"> <a href="javascript:void(0)" class="dropdown-toggle" data-bs-display="static" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <span class="stage-code">60</span> <div class="stage-title">Publication</div> </a> <ul class="dropdown-menu"> <li > <a href="/stage-codes.html#60_00"> <span class="stage-code">60.00</span> <span class="stage-date">2012-01-30</span> <div class="stage-title"> International Standard under publication</div> </a> </li><li > <a href="/stage-codes.html#60_60"> <span class="stage-code">60.60</span> <span class="stage-date">2012-02-13</span> <div class="stage-title"> International Standard published</div> </a> </li></ul> </li> <li class="dropdown bg-success active"> <a href="javascript:void(0)" class="dropdown-toggle" data-bs-display="static" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <span class="stage-code">90</span> <div class="stage-title">Review</div> </a> <ul class="dropdown-menu"> <li class='list-separation'> <a href="/stage-codes.html#90_20"> <span class="stage-code">90.20</span> <span class="stage-date">2017-01-15</span> <div class="stage-title"> International Standard under systematic review</div> </a> </li><li > <a href="/stage-codes.html#90_60"> <span class="stage-code">90.60</span> <span class="stage-date">2017-06-07</span> <div class="stage-title"> Close of review</div> </a> </li><li class="active"> <a href="/stage-codes.html#90_93"> <span class="stage-code">90.93</span> <span class="stage-date">2021-04-29</span> <div class="stage-title"> International Standard confirmed</div> </a> </li><li class='list-separation'> <a href="/stage-codes.html#90_20"> <span class="stage-code">90.20</span> <span class="stage-date"></span> <div class="stage-title"> International Standard under systematic review</div> </a> </li><li > <a href="/stage-codes.html#90_60"> <span class="stage-code">90.60</span> <span class="stage-date"></span> <div class="stage-title"> Close of review</div> </a> </li><li > <a href="/stage-codes.html#90_99"> <span class="stage-code">90.99</span> <span class="stage-date"></span> <div class="stage-title"> Withdrawal of International Standard proposed by TC or SC</div> </a> </li></ul> </li> <li class="dropdown alert-muted"> <a href="javascript:void(0)" class="dropdown-toggle" data-bs-display="static" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <span class="stage-code">95</span> <div class="stage-title">Withdrawal</div> </a> <ul class="dropdown-menu"> <li > <a href="/stage-codes.html#95_99"> <span class="stage-code">95.99</span> <span class="stage-date"></span> <div class="stage-title"> Withdrawal of International Standard</div> </a> </li></ul> </li> </ul> </li> </ul> </div> </div> </div> </div> </section> <section class="bg-lightgray" id="contact"> <div class="container"> <div class="row"> <div class="col-md-4"> <h4>Got a question?</h4> <p>Check out our <a href="/contact-iso.html" title="help-support">Help and Support</a></p></div> <div class="col-md-4"> </div> <div class="col-md-4"> </div> </div> </div> </section><div class="nav-breadcrumb print-footer bg-black"> <div class="container"> <div class="row"> <div class="col-sm-10 small"> <!-- BREADCRUMB --> <ol class="breadcrumb"> <li class="breadcrumb-item"><a href="/home.html" title="Home page"><i class="bi-house" aria-hidden="true"></i></a></li> <li class="breadcrumb-item"> <a href="/store.html">Store</a> </li> <li class="breadcrumb-item"> <a href="/standards-catalogue/browse-by-ics.html" >Standards catalogue</a> </li> <li class="breadcrumb-item"> <a href="/standards-catalogue/browse-by-ics.html">ICS</a> </li> <li class="breadcrumb-item"><a href="/en/ics/35.html">35</a></li> <li class="breadcrumb-item"><a href="/en/ics/35.060.html">35.060</a></li><li class="breadcrumb-item">ISO/IEC 23271:2012</li></ol></div> <div class="col-sm-2 hidden-print text-end small mt-3 mt-sm-0"> <a role="button" class="dropdown-toggle text-white collapsed" data-bs-toggle="collapse" href="#collapseSitemap" target="_self" aria-expanded="false" aria-controls="collapseSitemap">Sitemap</a> </div> </div> <div class="collapse border-top" id="collapseSitemap"> <div class="row"> <!-- SITEMAP --> <nav role="navigation" aria-label="Sitemap" class="sitemap-footer clearfix small" id="nav-sitemap"><ul role='menubar' class='list-inline-5 clearfix nav-level1' ><li role='menuitem' class=' hasChildren firstInLevel' ><a class='nav-link ' title="Covering almost every product, process or service imaginable, ISO makes standards used everywhere." href='/standards.html'>Standards</a><ul role='menubar' class='list-unstyled nav-level2' ><li role='menuitem' class=' noChildren firstInLevel' ><a class='nav-link ' title="Whether you run a business, work for a company or government, or you are a consumer looking for goods and services that meet customer expectations: Find out what standards can do for you." href='/benefits-of-standards.html'>Benefits</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="Here you can discover some of the best-known and most widely-used standards, as well as those that address recently emerged challenges affecting us all. " href='/popular-standards.html'>Popular standards</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="A set of processes that show your product, service or system meets the requirements of a standard." href='/conformity-assessment.html'>Conformity assessment</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren lastInLevel' ><a class='nav-link ' title="Organizations and companies looking to contribute to the SDGs will find that International Standards provide effective tools to help them rise to the challenge." href='/sdg'>SDGs</a></li><!-- close of list item level 2 --></ul><!-- close of container level 2 --></li><!-- close of list item level 1 --><li role='menuitem' class=' hasChildren' ><a class='nav-link disabled' data-bs-toggle="dropdown" aria-expanded="true" href=''>Sectors</a><ul role='menubar' class='list-unstyled nav-level2' ><li role='menuitem' class=' noChildren firstInLevel' ><a class='nav-link ' title="(including medicine and laboratory equipment)" href='/sectors/health'>Health</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="(including communication technology, graphics and photography)" href='/sectors/it-technologies'>IT & related technologies</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="(including vehicles, parts and infrastructure, freight, packaging and distribution)" href='/sectors/transport'>Transport</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/sectors/environment'>Environmental sustainability</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="(Business management, financial and professional services)" href='/sectors/management-services'>Management & services</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/sectors/security-safety-risk'>Security, safety & risk</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="(including power generation and transport, fuels)" href='/sectors/energy'>Energy</a></li><!-- close of list item level 2 --></ul><!-- close of container level 2 --></li><!-- close of list item level 1 --><li role='menuitem' class=' hasChildren' ><a class='nav-link ' title="ISO brings together global experts to develop International Standards that help solve problems and drive innovation." href='/about'>About ISO</a><ul role='menubar' class='list-unstyled nav-level2' ><li role='menuitem' class=' noChildren firstInLevel' ><a class='nav-link ' title="Find out how we develop and publish international standards by bringing together more than 160 members and more than 45,000 experts" href='/what-we-do.html'>What we do</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/structure.html'>Structure</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="The members of the International Organization for Standardization are 172 national standards bodies, each representing ISO in their country." href='/about/members'>Members</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="Find out what's coming up and what you might have missed." href='/events.html'>Events</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren lastInLevel' ><a class='nav-link ' title="Making lives easier, safer and better. Our Strategy outlines our vision and our mission for the next 10 years and a set of goals and priorities to help us get there." href='/strategy2030.html'>Strategy</a></li><!-- close of list item level 2 --></ul><!-- close of container level 2 --></li><!-- close of list item level 1 --><li role='menuitem' class=' hasChildren' ><a class='nav-link disabled' data-bs-toggle="dropdown" aria-expanded="true" href=''>Insights & news</a><ul role='menubar' class='list-unstyled nav-level2' ><li role='menuitem' class=' hasChildren firstInLevel' ><a class='nav-link disabled' href=''>Insights</a><ul role='menubar' class='list-unstyled nav-level3' ><li role='menuitem' class=' noChildren firstInLevel' ><a class='nav-link ' href='/insights'>All insights</a></li><!-- close of list item level 3 (and more) --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/insights/filtered-list-healthcare'>Healthcare</a></li><!-- close of list item level 3 (and more) --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/insights/filtered-list-artificial-intelligence'>Artificial intelligence</a></li><!-- close of list item level 3 (and more) --><li role='menuitem' class=' noChildren lastInLevel' ><a class='nav-link ' href='/insights/filtered-list-climate-change'>Climate change</a></li><!-- close of list item level 3 (and more) --></ul><!-- close of container level 3 (and more) --></li><!-- close of list item level 2 --><li role='menuitem' class=' hasChildren lastInLevel' ><a class='nav-link disabled' href=''>News</a><ul role='menubar' class='list-unstyled nav-level3' ><li role='menuitem' class=' noChildren firstInLevel' ><a class='nav-link ' href='/home/insights-news/news/expert-talk.html'>Expert talk</a></li><!-- close of list item level 3 (and more) --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/insights/standards-world'>Standards world</a></li><!-- close of list item level 3 (and more) --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/home/insights-news/news/dossier-medias.html'>Media kit</a></li><!-- close of list item level 3 (and more) --></ul><!-- close of container level 3 (and more) --></li><!-- close of list item level 2 --></ul><!-- close of container level 2 --></li><!-- close of list item level 1 --><li role='menuitem' class=' hasChildren' ><a class='nav-link ' title="Find out how the ISO process bring together global experts to create standards that are chosen the world over." href='/developing-standards.html'>Taking part</a><ul role='menubar' class='list-unstyled nav-level2' ><li role='menuitem' class=' noChildren firstInLevel' ><a class='nav-link ' title="ISO has put together groups of experts that represent every sector imaginable from soaps to spacecraft, MP3 to coffee. In fact there are more than 250 technical committees. You can find out what they do here." href='/who-develops-standards.html'>Who develops standards</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="The different types of ISO publications." href='/deliverables-all.html'>Deliverables</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/get-involved.html'>Get involved</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="The ISO Climate Action Kit is a collection of case studies from around the world on how standards can be effectively used as a tool for sustainability." href='/ClimateAction.html'>Collaborating to accelerate effective climate action</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren lastInLevel' ><a class='nav-link ' title="Resources to support the work of individuals involved in standards development. " href='/resources.html'>Resources</a></li><!-- close of list item level 2 --></ul><!-- close of container level 2 --></li><!-- close of list item level 1 --><li role='menuitem' class=' hasChildren inPath lastInLevel' ><a class='nav-link ' title="Are you looking to buy International Standards, guidelines, collections and checklists? They're all right here, in the ISO Store." href='/store.html'>Store</a><ul role='menubar' class='list-unstyled nav-level2' ><li role='menuitem' class=' noChildren inPath active firstInLevel' ><a class='nav-link ' href='/standards-catalogue/browse-by-ics.html'>Standards catalogue</a></li><!-- close of list item level 2 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' title="ISO publications give insights and guidance into specific applications and show how standards add value." href='/publication-list.html'>Publications and products</a></li><!-- close of list item level 2 --></ul><!-- close of container level 2 --></li><!-- close of list item level 1 --></ul><!-- close of container level 1 --></nav></div> </div> </div> </div> </main> <footer role="contentinfo" aria-label="Footer" class="footer-iso footer-dark bg-dark"> <div class="container"> <div class="footer-links center-block"> <!-- FOOTER LINKS --> <nav role="navigation" aria-label="Inline Navigation" class="" id=""><ul role='menubar' class='list-inline clearfix nav-level1' ><li role='menuitem' class=' noChildren firstInLevel' ><a class='nav-link ' href='/iso-name-and-logo.html'>ISO name and logo</a></li><!-- close of list item level 1 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/privacy.html'>Privacy Notice</a></li><!-- close of list item level 1 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/copyright.html'>Copyright</a></li><!-- close of list item level 1 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/cookies.html'>Cookie policy</a></li><!-- close of list item level 1 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/media-kit.html'>Media kit</a></li><!-- close of list item level 1 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/working-with-iso.html'>Jobs</a></li><!-- close of list item level 1 --><li role='menuitem' class=' noChildren' ><a class='nav-link ' href='/contact-iso.html'>Help and support</a></li><!-- close of list item level 1 --></ul><!-- close of container level 1 --></nav><div class="row " > <div class="col-md-6 offset-md-3 col-xl-4 offset-xl-4"><h2 class="h4 pt-3 pb-2" id="isoinsights">Sign up for email updates</h2><form method="POST" action="https://iso272.activehosted.com/proc.php" id="_form_23_" class="_form _form_23 _inline-form _dark" novalidate> <input type="hidden" name="u" value="23" /> <input type="hidden" name="f" value="23" /> <input type="hidden" name="s" /> <input type="hidden" name="c" value="0" /> <input type="hidden" name="m" value="0" /> <input type="hidden" name="act" value="sub" /> <input type="hidden" name="v" value="2" /> <input type="hidden" name="or" value="9417b9cd52ff6c742e176a370ed5442a" /> <style> ._error { width: 100%; padding: 0.5em 1.25em; text-align: left; } .grecaptcha-badge { visibility: hidden; } </style> <div class="_form-content"> <div class="input-group input-group-round mb-3"> <input type="text" id="email" class="form-control" name="email" placeholder="Email" aria-label="Email" aria-describedby="_form_23_submit" required/> <input type="hidden" id="recaptchaResponse" name="recaptcha_response"> <button id="_form_23_submit" class="_submit btn btn-primary" type="submit" class="g-recaptcha" data-sitekey="6Lfvyx8qAAAAAHOXkwbvVobjfLbVzBEnEVRuLtNA" data-callback='onSubmit' data-action='submit'> Subscribe</button> </div> </div> <div class="_form-thank-you mb-3" style="display:none;"> <p><strong>Almost done! </strong><br /> You are only one step away from joining the ISO subscriber list. Please confirm your subscription by clicking on the email we've just sent to you. You will not be registered until you confirm your subscription. If you can't find the email, kindly check your spam folder and/or the promotions tab (if you use Gmail).</p></div> </form> <script type="text/javascript"> if (document.getElementsByClassName("is-prod is-live")[0]) { console.debug = function () {} }; // redefine console.debug on PROD+LIVE window._check_reCaptcha_23 = function() { grecaptcha.ready(function() { grecaptcha.execute('6Lfvyx8qAAAAAHOXkwbvVobjfLbVzBEnEVRuLtNA', {action: 'submit'}).then(function (token) { document.getElementById('recaptchaResponse').value = token; // console.debug('token = ' + token); let urlRestApi = "https://recaptchaenterprise.googleapis.com/v1/projects/iso-website-1722850679238/assessments?key=AIzaSyBzn_mnNayynzq0NemiOop0b9eLKaoiViE"; let jsonRequest = { event: { token: token, expectedAction: "submit", siteKey: "6Lfvyx8qAAAAAHOXkwbvVobjfLbVzBEnEVRuLtNA" } } // Verify the token and get the score fetch(urlRestApi, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(jsonRequest) }).then(response => response.json()).then(data => { console.debug("data = " + JSON.stringify(data)); if (data.tokenProperties.valid && data.riskAnalysis.score >= 0.5) { // If the score is good, submit the form // console.debug("reCaptcha validation: " + data.tokenProperties.valid); console.debug("reCaptcha score: " + data.riskAnalysis.score); var _form_serialize_23 = function(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"tel":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(" ")+encodeURIComponent(form.elements[i].value));break;case"text":case"number":case"date":case"time":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")}; let serialized_23 = _form_serialize_23(document.getElementById('_form_23_')).replace(/%0A/g, '\\n'); _load_script('https://iso272.activehosted.com/proc.php?' + serialized_23 + '&jsonp=true'); console.debug("serialized_ID = " + 23); } else { // Handle the case where the score is too low console.debug('reCAPTCHA verification failed. Please try again.'); console.debug('reCaptcha invalid reason: ' + data.tokenProperties.invalidReason); } }).catch(error => { console.debug('An error occurred. Please try again.'); console.error('Error: ', error); }); }); }); } window._show_thank_you = function(id, message, trackcmp_url, email) { var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you'); form.querySelector('._form-content').style.display = 'none'; // thank_you.innerHTML = message; thank_you.style.display = 'block'; const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; var visitorObject = window[vgoAlias]; if (email && typeof visitorObject !== 'undefined') { visitorObject('setEmail', email); visitorObject('update'); } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { // Site tracking URL to use after inline form submission. _load_script(trackcmp_url); } if (typeof window._form_callback !== 'undefined') window._form_callback(id); }; window._show_error = function(id, message, html) { var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button'), old_error = form.querySelector('._form_error'); if (old_error) old_error.parentNode.removeChild(old_error); err.innerHTML = message; err.className = '_error-inner _form_error _no_arrow'; var wrapper = document.createElement('div'); wrapper.className = '_form-inner'; wrapper.appendChild(err); button.parentNode.insertBefore(wrapper, button); document.querySelector('[id^="_form"][id$="_submit"]').disabled = false; if (html) { var div = document.createElement('div'); div.className = '_error-html'; div.innerHTML = html; err.appendChild(div); } }; window._load_script = function(url, callback) { var head = document.querySelector('head'), script = document.createElement('script'), r = false; script.type = 'text/javascript'; script.charset = 'utf-8'; script.src = url; if (callback) { script.onload = script.onreadystatechange = function() { if (!r && (!this.readyState || this.readyState == 'complete')) { r = true; callback(); } }; } head.appendChild(script); }; (function() { if (window.location.search.search("excludeform") !== -1) return false; var getCookie = function(name) { var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)')); return match ? match[2] : null; } var setCookie = function(name, value) { var now = new Date(); var time = now.getTime(); var expireTime = time + 1000 * 60 * 60 * 24 * 365; now.setTime(expireTime); document.cookie = name + '=' + value + '; expires=' + now + ';path=/; Secure; SameSite=Lax;';// cannot be HttpOnly } var addEvent = function(element, event, func) { if (element.addEventListener) { element.addEventListener(event, func); } else { var oldFunc = element['on' + event]; element['on' + event] = function() { oldFunc.apply(this, arguments); func.apply(this, arguments); }; } } var _removed = false; var form_to_submit = document.getElementById('_form_23_'); var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false; var getUrlParam = function(name) { var params = new URLSearchParams(window.location.search); return params.get(name) || false; }; for (var i = 0; i < allInputs.length; i++) { var regexStr = "field\\[(\\d+)\\]"; var results = new RegExp(regexStr).exec(allInputs[i].name); if (results != undefined) { allInputs[i].dataset.name = window.cfields[results[1]]; } else { allInputs[i].dataset.name = allInputs[i].name; } var fieldVal = getUrlParam(allInputs[i].dataset.name); if (fieldVal) { if (allInputs[i].dataset.autofill === "false") { continue; } if (allInputs[i].type == "radio" || allInputs[i].type == "checkbox") { if (allInputs[i].value == fieldVal) { allInputs[i].checked = true; } } else { allInputs[i].value = fieldVal; } } } var remove_tooltips = function() { for (var i = 0; i < tooltips.length; i++) { tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); } tooltips = []; }; var remove_tooltip = function(elem) { for (var i = 0; i < tooltips.length; i++) { if (tooltips[i].elem === elem) { tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); tooltips.splice(i, 1); return; } } }; var create_tooltip = function(elem, text) { var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {}; if (elem.type != 'radio' && elem.type != 'checkbox') { tooltip.className = '_error text-sm text-muted text-start'; arrow.className = '_error-arrow'; inner.className = '_error-inner'; inner.innerHTML = text; tooltip.appendChild(arrow); tooltip.appendChild(inner); elem.parentNode.appendChild(tooltip); } else { tooltip.className = '_error-inner _no_arrow'; tooltip.innerHTML = text; elem.parentNode.insertBefore(tooltip, elem); new_tooltip.no_arrow = true; } new_tooltip.tip = tooltip; new_tooltip.elem = elem; tooltips.push(new_tooltip); return new_tooltip; }; var resize_tooltip = function(tooltip) { var rect = tooltip.elem.getBoundingClientRect(); var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)); if (scrollPosition < 40) { tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below'; } else { tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above'; } }; var resize_tooltips = function() { if (_removed) return; for (var i = 0; i < tooltips.length; i++) { if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]); } }; var validate_field = function(elem, remove) { var tooltip = null, value = elem.value, no_error = true; remove ? remove_tooltip(elem) : false; if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, ''); if (elem.getAttribute('required') !== null) { if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) { var elems = form_to_submit.elements[elem.name]; if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) { no_error = elem.checked; } else { no_error = false; for (var i = 0; i < elems.length; i++) { if (elems[i].checked) no_error = true; } } if (!no_error) { tooltip = create_tooltip(elem, "Please select an option."); } } else if (elem.type =='checkbox') { var elems = form_to_submit.elements[elem.name], found = false, err = []; no_error = true; for (var i = 0; i < elems.length; i++) { if (elems[i].getAttribute('required') === null) continue; if (!found && elems[i] !== elem) return true; found = true; elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, ''); if (!elems[i].checked) { no_error = false; elems[i].className = elems[i].className + ' _has_error'; err.push("Checking %s is required".replace("%s", elems[i].value)); } } if (!no_error) { tooltip = create_tooltip(elem, err.join('<br/>')); } } else if (elem.tagName == 'SELECT') { var selected = true; if (elem.multiple) { selected = false; for (var i = 0; i < elem.options.length; i++) { if (elem.options[i].selected) { selected = true; break; } } } else { for (var i = 0; i < elem.options.length; i++) { if (elem.options[i].selected && (!elem.options[i].value || (elem.options[i].value.match(/\n/g)))) { selected = false; } } } if (!selected) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Please select an option."); } } else if (value === undefined || value === null || value === '') { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "This field is required"); } } if (no_error && (elem.id == 'field[]' || elem.id == 'ca[11][v]')) { if (elem.className.includes('phone-input-error')) { elem.className = elem.className + ' _has_error'; no_error = false; } } if (no_error && elem.name == 'email') { if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, 'Please enter a valid email address'); } } if (no_error && /date_field/.test(elem.className)) { if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Enter a valid date."); } } tooltip ? resize_tooltip(tooltip) : false; return no_error; }; var needs_validate = function(el) { if(el.getAttribute('required') !== null){ return true } if(el.name === 'email' && el.value !== ""){ return true } if((el.id == 'field[]' || el.id == 'ca[11][v]') && el.className.includes('phone-input-error')){ return true } return false }; var validate_form = function(e) { var err = form_to_submit.querySelector('._form_error'), no_error = true; if (!submitted) { submitted = true; for (var i = 0, len = allInputs.length; i < len; i++) { var input = allInputs[i]; if (needs_validate(input)) { if (input.type == 'tel') { addEvent(input, 'blur', function() { this.value = this.value.trim(); validate_field(this, true); }); } if (input.type == 'text' || input.type == 'number' || input.type == 'time') { addEvent(input, 'blur', function() { this.value = this.value.trim(); validate_field(this, true); }); addEvent(input, 'input', function() { validate_field(this, true); }); } else if (input.type == 'radio' || input.type == 'checkbox') { (function(el) { var radios = form_to_submit.elements[el.name]; for (var i = 0; i < radios.length; i++) { addEvent(radios[i], 'click', function() { validate_field(el, true); }); } })(input); } else if (input.tagName == 'SELECT') { addEvent(input, 'change', function() { validate_field(this, true); }); } else if (input.type == 'textarea'){ addEvent(input, 'input', function() { validate_field(this, true); }); } } } } remove_tooltips(); for (var i = 0, len = allInputs.length; i < len; i++) { var elem = allInputs[i]; if (needs_validate(elem)) { if (elem.tagName.toLowerCase() !== "select") { elem.value = elem.value.trim(); } validate_field(elem) ? true : no_error = false; } } if (!no_error && e) { e.preventDefault(); } resize_tooltips(); return no_error; }; addEvent(window, 'resize', resize_tooltips); addEvent(window, 'scroll', resize_tooltips); var hidePhoneInputError = function(inputId) { var errorMessage = document.getElementById("error-msg-" + inputId); var input = document.getElementById(inputId); errorMessage.classList.remove("phone-error"); errorMessage.classList.add("phone-error-hidden"); input.classList.remove("phone-input-error"); }; var initializePhoneInput = function(input, defaultCountry) { return window.intlTelInput(input, { utilsScript: "https://unpkg.com/intl-tel-input@17.0.18/build/js/utils.js", autoHideDialCode: false, separateDialCode: true, initialCountry: defaultCountry, preferredCountries: [] }); } var setPhoneInputEventListeners = function(inputId, input, iti) { input.addEventListener('blur', function() { var errorMessage = document.getElementById("error-msg-" + inputId); if (input.value.trim()) { if (iti.isValidNumber()) { iti.setNumber(iti.getNumber()); if (errorMessage.classList.contains("phone-error")){ hidePhoneInputError(inputId); } } else { showPhoneInputError(inputId) } } else { if (errorMessage.classList.contains("phone-error")){ hidePhoneInputError(inputId); } } }); input.addEventListener("countrychange", function() { iti.setNumber(''); }); input.addEventListener("keydown", function(e) { var charCode = (e.which) ? e.which : e.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode !== 8) { e.preventDefault(); } }); }; var showPhoneInputError = function(inputId) { var errorMessage = document.getElementById("error-msg-" + inputId); var input = document.getElementById(inputId); errorMessage.classList.add("phone-error"); errorMessage.classList.remove("phone-error-hidden"); input.classList.add("phone-input-error"); }; var form_submit = function(e) { e.preventDefault(); if (validate_form()) { // use this trick to get the submit button & disable it using plain javascript document.querySelector('#_form_23_submit').disabled = true; var _form_serialize_23 = function(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"tel":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(" ")+encodeURIComponent(form.elements[i].value));break;case"text":case"number":case"date":case"time":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")}; let serialized_23 = _form_serialize_23(document.getElementById('_form_23_')).replace(/%0A/g, '\\n'); var err = form_to_submit.querySelector('._form_error'); err ? err.parentNode.removeChild(err) : false; // We don't check the Google reCaptcha if projectId is null // Site properties: ProjectId is defined => we check the captcha before sending the form _check_reCaptcha_23(); } return false; }; addEvent(form_to_submit, 'submit', form_submit); })(); </script><!-- p class="text-xs">To learn how your data will be used, please see our <a href="/privacy.html" title="privacy-and-copyright">privacy notice</a>. This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy">Privacy Policy</a> and <a href="https://policies.google.com/terms">Terms of Service</a> apply.</p --> <details class="text-xs"><summary style="color:inherit">How your data will be used</summary> <p class="pt-2">Please see <a href="/privacy.html" title="privacy-and-copyright">ISO privacy notice</a>. This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy">Privacy Policy</a> and <a href="https://policies.google.com/terms">Terms of Service</a> apply.</p> </details></div></div></div> <div class="footer-social clearfix"> <ul itemscope itemtype="https://schema.org/Organization"> <link itemprop="url" href="https://www.iso.org/"> <li><a itemprop="sameAs" target="_blank" rel="noopener" href="https://www.linkedin.com/company/isostandards" title="Linkedin"><i class="bi-linkedin"></i></a></li> <li><a itemprop="sameAs" target="_blank" rel="noopener" href="https://twitter.com/isostandards" title="Twitter"><i class="bi-twitter"></i></a></li> <li><a itemprop="sameAs" target="_blank" rel="noopener" href="https://www.facebook.com/isostandards" title="Facebook"><i class="bi-facebook"></i></a></li> <li><a itemprop="sameAs" target="_blank" rel="noopener" href="https://www.instagram.com/isostandards" title="Instagram"><i class="bi-instagram"></i></a></li> <li><a itemprop="sameAs" target="_blank" rel="noopener" href="https://www.youtube.com/ISO" title="YouTube"><i class="bi-youtube"></i></a></li> <li><a itemprop="sameAs" target="_blank" rel="noopener" href="https://www.flickr.com/photos/isostandards" title="Flickr"><i class="bi-flickr"></i></a></li> </ul> </div> <p class="display-5 opacity-100">Making lives <strong><em>easier</em></strong>, <strong><em>safer</em></strong> and <strong><em>better</em></strong>.</p> <div class="row"> <div class="col-md-8 col-md-offset-2 pull-left"> <p class="text-xs">We are committed to ensuring that our website is accessible to everyone. If you have any questions or suggestions regarding the accessibility of this site, please <a href="mailto:webmaster@iso.org?subject=Accessibility" style="white-space: nowrap">contact us</a>.</p> <p class="text-sm"><a href="#copyright" target="_self" data-bs-toggle="collapse" aria-expanded="false" aria-controls="copyright">© All Rights Reserved</a> <span id="copyright" class="collapse">All ISO publications and materials are protected by copyright and are subject to the user’s acceptance of ISO’s conditions of copyright. Any use, including reproduction requires our written permission. All copyright requests should be addressed to <a href="mailto:copyright@iso.org">copyright@iso.org</a>.</span></p> </div> </div> </div> <div class="topbar"> <div class="topbar-content"> <a class="logo isologo logo-xs theme-red poweredby page-scroll logo-scrollTop" href="#page-top" title="Scroll to top"></a> <div class="poweredby-txt">Powered by</div> </div> </div> </footer> <!-- START OF MODAL (Buy ISO.ORG with OPTOUT) --> <div class="modal fade" tabindex="-1" role="dialog" id="iso-optout" aria-hidden="true" aria-labelledby="modalLabel"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="modalLabel"> Add to cart</h4> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="modal-body clearfix"> <div id="modalOptOut"></div> <div id="modalNoOptOut"></div> <span id="proceedToCheckout" class="visually-hidden" data-label="Checkout"></span> <span id="continueShopping" class="visually-hidden" data-label="Continue shopping"></span> </div> </div> </div> </div> </div> <!-- END OF MODAL --> </body> </html>