<!DOCTYPE html>
<html lang="en">
<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!-->
<head>
<meta charset="utf-8">
<title>The Apache OFBiz&reg; Project - Release Notes 16.11.04</title>
<meta name="Description" content="OFBiz is an open source enterprise automation software project licensed under the Apache License. It means you are not alone and can work with many others." />
<meta name="Robots" content="index,follow" />
<!-- Mobile Specific Metas
    ================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- CSS
    ================================================== -->
<!-- local fonts  -->
<link type="text/css" id="fonts" rel="stylesheet" href="/css/fonts.css">
<!-- Bootstrap  -->
<link type="text/css" rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
<!-- plugin css  -->
<link rel="stylesheet" type="text/css" href="/js/plugins/pretty-photo/css/prettyPhoto.css" />
<link rel="stylesheet" type="text/css" href="/js/plugins/rs-plugin/css/settings.css" media="screen" />
<link type="text/css" rel="stylesheet" href="/js/plugins/hoverdir/css/style.css">
<!-- icon fonts -->
<link type="text/css" rel="stylesheet" href="/font-icons/custom-icons/css/custom-icons.css">
<link type="text/css" rel="stylesheet" href="/font-icons/custom-icons/css/custom-icons-ie7.css">
<!-- Custom css -->
<link type="text/css" rel="stylesheet" href="/css/layout.css">
<link type="text/css" id="colors" rel="stylesheet" href="/css/colors.css">
<!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<!--[if gte IE 9]><style type="text/css">.iconBig, .active, .hover a , .Shover a { filter: none !important; } </style> <![endif]-->
<script src="js/modernizr-2.6.1.min.js"></script>
<!-- Favicons
    ================================================== -->
<link rel="shortcut icon" href="/images/favicon.ico">
<link rel="apple-touch-icon" href="/images/apple-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="/images/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="/images/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/apple-icon-144x144.png">
</head>
<body>
<!-- header -->
<header id="mainHeader" class="clearfix">
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container"> <a href="index.html" class="brand"><img src="images/ofbiz_logo.png" alt="Apache OFBiz Logo"/></a>
        <nav id="mainMenu" class="clearfix">
          <ul>
            <li><a href="index.html" class="firstLevel">Home</a></li>
            <li><a href="#" class="firstLevel">Getting Started</a>
              <ul>
                <li><a href="developers.html" class="">Developers</a></li>
                <li><a href="business-users.html" class="last">Business Users</a></li>
              </ul>
            </li>
            <li><a href="#" class="firstLevel">News</a>
              <ul>
                <li><a href="//twitter.com/apacheofbiz" target="external">Twitter</a></li>
                <li><a href="//blogs.apache.org/ofbiz/" target="external" class="last">Blog</a></li>
              </ul>
            </li>
            <li><a href="#" class="firstLevel">Documentation</a>
              <ul>
                <li><a href="//cwiki.apache.org/confluence/display/OFBIZ/Documentation" target="external" class="">User Documentation</a></li>
                <li><a href="//cwiki.apache.org/confluence/display/OFBIZ/Technical+Documentation" target="external" class="">Technical Documentation</a></li>
                <li><a href="//cwiki.apache.org/confluence/display/OFBIZ/Home" target="external" class="">Wiki</a></li>
                <li><a href="#" class="firstLevel">API Reference</a>
                  <ul>
                    <li title="Trunk API">
                      <a href="https://nightlies.apache.org/ofbiz/trunk/javadoc/" target="external">Trunk API</a></li>
                    </li>
                    <li title="Stable release  API">
                      <a href="https://nightlies.apache.org/ofbiz/stable/javadoc/" target="external">Stable Release API</a></li>
                    </li>
                    <li title="Next release API">
                      <a href="https://nightlies.apache.org/ofbiz/next/javadoc/" target="external">Next Release API</a></li>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li><a href="#" class="firstLevel">Community</a>
              <ul>
                <li><a href="getting-involved.html">Getting Involved</a></li>                
                <li><a href="mailing-lists.html">Mailing Lists</a></li>
                <li><a href="source-repositories.html">Source Repository</a></li>
                <li><a href="download.html">Downloads</a></li>
                <li><a href="https://s.apache.org/dsj2p" target="external" >Issue Tracker</a></li>
                <li><a href="faqs.html" class="last">FAQ</a></li>
              </ul>
            </li>
            <li><a href="ofbiz-demos.html" class="firstLevel">Demos</a></li>
		  <li>
		    <a href="//twitter.com/ApacheOfbiz" class="icon-twitter-bird socialIcon tips"
		      target="external" title="follow us on Twitter"><span>twitter</span></a>
		  </li>
		  <li><a href="//www.linkedin.com/company/apache-ofbiz/" target="external"  class="icon-linkedin socialIcon tips"  title="follow us on Linkedin"><span>linkedin</span></a></li>
		  <li><a href="//www.facebook.com/Apache-OFBiz-1478219232210477/?ref=page_internal" target="external" class="icon-facebook socialIcon tips"  title="follow us on Facebook"><span>facebook</span></a></li>
		  <li><a href="//www.youtube.com/user/ofbiz" class="icon-play socialIcon tips" target="external" title="follow us on Youtube"><span>Youtube</span></a></li>
		  <!--<li><a href="#" class="icon-rss socialIcon tips"  title="Our rss feed"><span>rss feed</span></a></li>         
		  <li><a href="#" class="icon-gplus socialIcon tips"  title="follow us on Google +"><span>google +</span></a></li>
		  <li><a href="#" class="icon-instagram socialIcon tips"  title="follow us on Instagram"><span>instagram</span></a></li>
		  <li><a href="#" class="icon-linkedin socialIcon tips"  title="follow us on Linkedin"><span>linkedin</span></a></li>
		  <li><a href="#" class="icon-pinterest-circled socialIcon tips"  title="follow us on Pinterest"><span>Pinterest</span></a></li>-->
          </ul>
        </nav>
      </div>
    </div>
  </div>
</header>
<!-- header -->
<!-- globalWrapper -->
<div id="globalWrapper">
 <!-- page content -->
 <section id="content" class="fullWidth">
    <header class="headerPage">
      <div class="container clearfix">
        <div class="row">
          <h1 class="span8">Release Notes 16.11.04</h1>
      <div class="span4" id="navTrail"> <a href="index.html" class="homeLink">home</a><span>/</span><a href="download.html">Download</a><span>/</span><span class="current">Release Notes 16.11.04</span> </div>
        </div>
      </div>
    </header>
  <section id="content" class="features" >
  <div class="slice clearfix">
      <div class="container">
<div class="row">
  <div>
  <p>Apache OFBiz&reg; 16.11.04, released in 2018-01-02, is the fourth release of the 16.11 series, that has been stabilized since November 2016.</p>
<h2>Bugs</h2>
<ul>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-5938'>OFBIZ-5938</a>] -         GlAccountOrganizations manually added using accounting forms do not appear on trial report because fromDate gets set to NULL</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-6054'>OFBIZ-6054</a>] -         ofbizsetup cannot create first customer. problem with state/province dropdown</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-6774'>OFBIZ-6774</a>] -         ACCTG TRANS ENTRIES PDF link on invoiceOverview does not work</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-7253'>OFBIZ-7253</a>] -         UI issue on web pos for different themes</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-7438'>OFBIZ-7438</a>] -         Inventory Report PDF lists all available statusId&#39;s irrespective of selection criteria</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-8153'>OFBIZ-8153</a>] -         LabelManager doesn&#39;t search labels in .groovy files</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9143'>OFBIZ-9143</a>] -         The copyAgreement service fails</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9240'>OFBIZ-9240</a>] -         Ecommerce login/logout don&#39;t work properly for trunk and stable and even old</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9259'>OFBIZ-9259</a>] -         Uploading images at catalog/control/addImageForProduct does not work</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9316'>OFBIZ-9316</a>] -         Error displayed while adding WorkEffort Contact Mechs.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9317'>OFBIZ-9317</a>] -         WorkEffort shows error on adding party with specific role to Timesheet.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9344'>OFBIZ-9344</a>] -         Incorrect MimeTypeId value shown if the form is submitted</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9365'>OFBIZ-9365</a>] -         Screen rendering error on Content Advanced Search page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9377'>OFBIZ-9377</a>] -         fix tag &quot;disable-if-empty&quot; in menus if field has no value</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9404'>OFBIZ-9404</a>] -         Insufficient checking of checkOutPaymentId in CheckOutEvents.getSelectedPaymentMethods</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9424'>OFBIZ-9424</a>] -         Typo in value of SfaAddSalesForecastDetail uiLabel in MarketingUiLabels.xml</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9426'>OFBIZ-9426</a>] -         The following required parameter is missing: [IN] [removeWebSitePathAlias.fromDate].</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9428'>OFBIZ-9428</a>] -         getResultsSizeAfterPartialList() return wrong count with distinct() for View Entity</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9432'>OFBIZ-9432</a>] -         Error running the simple-method: Error running groovy script</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9438'>OFBIZ-9438</a>] -         add gift certificate in purchase order cause exception</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9445'>OFBIZ-9445</a>] -         ContentWorker#findAlternateLocaleContent(Delegator, GenericValue, Locale) does not use fallback locale</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9446'>OFBIZ-9446</a>] -         https://localhost:8443/ecomseo/checkLogin exception</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9449'>OFBIZ-9449</a>] -         Missing secure port in URLs when sending mails</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9455'>OFBIZ-9455</a>] -         Required check missing for supplier product id and last price on Add Product Supplier page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9456'>OFBIZ-9456</a>] -         Required check missing for Routing Task Name on Add Routing Task page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9459'>OFBIZ-9459</a>] -         Wrong screen redirection after adding note on Lead profile screen</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9462'>OFBIZ-9462</a>] -         On create order, the page shows orderview screen, but Url does not change. It shows processorder.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9468'>OFBIZ-9468</a>] -         UI issue in ATP/QOH table on Create Purchase Order screen</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9470'>OFBIZ-9470</a>] -         Missing productId in input field after Atp/Qoh button is clicked on create PO screen</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9473'>OFBIZ-9473</a>] -         Status of communication event role is marked &quot;Read&quot; on View Communication Event page.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9477'>OFBIZ-9477</a>] -         UI issue in Lead Lookup on find opportunity</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9499'>OFBIZ-9499</a>] -         FacilityId should be mandatory for &quot;Create Inventory Item&quot; form in EditInventoryItem screen.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9503'>OFBIZ-9503</a>] -         Fixed Asset Id field is below update button on EditInventoryItem page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9525'>OFBIZ-9525</a>] -         MRP incorrectly computes quantity already received in open purchase order shipments</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9526'>OFBIZ-9526</a>] -         MRP generates duplicate requirements when items are initially under minimum quantity and have with pending approved purchase orders.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9530'>OFBIZ-9530</a>] -         Missing action in empty if-statement in accounting.PaymentGatewayServices</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9532'>OFBIZ-9532</a>] -         Edit Party Group page does not shows current set values</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9535'>OFBIZ-9535</a>] -         Error in payment address for purchase invoice via service createinvoicefororder</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9542'>OFBIZ-9542</a>] -         Can&#39;t Create a new PartyAcctgPreference in 16.11.03</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9553'>OFBIZ-9553</a>] -         Creating Lead Source from profile page it redirects to empty profile page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9578'>OFBIZ-9578</a>] -         Collection added to itself</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9606'>OFBIZ-9606</a>] -         LabelManager doesn&#39;t search labels in all elements in xml</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9621'>OFBIZ-9621</a>] -         MimeType displayed in HTML encoded pattern</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9623'>OFBIZ-9623</a>] -         Improvements in LabelReferences class</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9624'>OFBIZ-9624</a>] -         NullPointerException when calling EntityQuery#getFieldList</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9644'>OFBIZ-9644</a>] -         Fix references where Mime type is displayed in HTML encoded pattern</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9648'>OFBIZ-9648</a>] -         Deleting workeffort from Find WorkEffort page gives unusual response</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9655'>OFBIZ-9655</a>] -         Lead Profile missing if clicked on other menu</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9676'>OFBIZ-9676</a>] -         Error of GROUP BY in MSSQL</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9697'>OFBIZ-9697</a>] -         Create Related Account from Contact Profile redirect to empty profile screen.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9698'>OFBIZ-9698</a>] -         Party Id field missing while creating contact list party in the marketing component</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9725'>OFBIZ-9725</a>] -         Transaction Timeout in JavaEventHandler</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9745'>OFBIZ-9745</a>] -         Labels messed up because of missing UiLabels</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9753'>OFBIZ-9753</a>] -         &#39;Find Opportunities&#39; field name is reflecting in place of &#39;Opportunity Id&#39; on FindSalesOpportunity screen.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9838'>OFBIZ-9838</a>] -         Purchase Order is not getting canceled automatically if all items are canceled</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9896'>OFBIZ-9896</a>] -         Incorrect success message after creating prospect</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9899'>OFBIZ-9899</a>] -         UI Issue with Account Limit at Find Billing Account(s)</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9914'>OFBIZ-9914</a>] -         Issue in redirection while creating a new party group</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9915'>OFBIZ-9915</a>] -         Error printing Return PDF</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9922'>OFBIZ-9922</a>] -         Content related changes needs OFBiz server restart</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9964'>OFBIZ-9964</a>] -         UtilMisc.ensureLocale does not always return a valid Locale</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9967'>OFBIZ-9967</a>] -         In &#39;updateOrderContactMech&#39; service, A check should be added to call &#39;removeOrderContactMech&#39;.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9968'>OFBIZ-9968</a>] -         Duplicated dollar symbols should be removed from uiLabels.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9970'>OFBIZ-9970</a>] -         NullPointer Access in CategoryContentWrapper.getProductCategoryContentAsText when locale parameter is missing</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9971'>OFBIZ-9971</a>] -         Inventory transfer creates unnecessary record with 0</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9975'>OFBIZ-9975</a>] -         ShippingEvents.getShipGroupEstimate() method gives untraceable null pointer exception for BigDecimal comparison</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9977'>OFBIZ-9977</a>] -         While creating return fin account used currency must be same</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10007'>OFBIZ-10007</a>] -         Party Classification Groups are not listing on FindParty screen.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10010'>OFBIZ-10010</a>] -         No option to create the account contacts in SFA component</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10027'>OFBIZ-10027</a>] -         Improvements in gift certificate process</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10037'>OFBIZ-10037</a>] -         Creating an example from the Ajax screen does not work</li>
</ul>
                                        
<h2>Improvements</h2>
<ul>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9675'>OFBIZ-9675</a>] -         Use ofbizCurrency macro and remove hardcoded ##0.00 string</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9862'>OFBIZ-9862</a>] -         Improve Rainbow theme showing themes</li>
</ul>
                                                                                                
<h2>Sub-tasks</h2>
<ul>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9529'>OFBIZ-9529</a>] -         [FB] Package org.apache.ofbiz.accounting.payment (Additional Bugs)</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9567'>OFBIZ-9567</a>] -         [FB] Package org.apache.ofbiz.base.metrics</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10085'>OFBIZ-10085</a>] -         Prevent the possible return of the Robot attack</li>
</ul>
  </div>
</div>
</div>
</div>
</section>
</section><!-- footer -->
<footer class="footer1">
  <div class="container" id="footer">
    <div class="row">
      <div class="span6 timelineWidget">
        <h2>Latest tweets</h2>
        <!--
        <div class="divider"><span></span></div>
        <ul class="socialNetwork nav">
          <li>
            <a href="//twitter.com/ApacheOfbiz" class="icon-twitter-bird socialIcon tips"
              target="external" title="follow us on Twitter"><span>twitter</span></a>
          </li>
          <li><a href="//www.youtube.com/user/ofbiz" class="icon-play socialIcon tips"  title="follow us on Youtube"><span>Youtube</span></a></li>
          <li><a href="//www.facebook.com/Apache-OFBiz-1478219232210477/?ref=page_internal" class="icon-facebook socialIcon tips"  title="follow us on Facebook"><span>facebook</span></a></li>
          <li><a href="#" class="icon-rss socialIcon tips"  title="Our rss feed"><span>rss feed</span></a></li>
          <li><a href="#" class="icon-gplus socialIcon tips"  title="follow us on Google +"><span>google +</span></a></li>
          <li><a href="#" class="icon-instagram socialIcon tips"  title="follow us on Instagram"><span>instagram</span></a></li>
          <li><a href="#" class="icon-linkedin socialIcon tips"  title="follow us on Linkedin"><span>linkedin</span></a></li>
          <li><a href="#" class="icon-pinterest-circled socialIcon tips"  title="follow us on Pinterest"><span>Pinterest</span></a></li>
        </ul>
        -->
        <div id="twitterFrame"> <a class="twitter-timeline" href="//twitter.com/ApacheOfbiz?height=250" data-widget-id="588661945194192896"  data-tweet-limit="2" data-theme="dark" data-chrome="nofooter noheader transparent" >Tweets by @ApacheOfbiz</a>
          <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
        </div>
      </div>
      <div class="span3 contactWidget">
        <h2>Contact Community</h2>
        <div class="divider"><span></span></div>
        <ul>
          <li><a href="mailing-lists.html">Mailing Lists</a></li>
          <li><a href="source-repositories.html">Source Repository (Git)</a></li>
          <li><a href="https://s.apache.org/dsj2p" target="external">Issue Tracker (Jira)</a></li>
          <li><a href="//www.youtube.com/user/ofbiz" target="external">OFBiz Youtube Channel</a></li>
          <li><a href="//vimeo.com/channels/apacheofbiz" target="external">OFBiz Vimeo Channel</a></li>
          <li>
            <a href="//s.apache.org/ofbiz-slack-channel" target="external">OFBiz Chat</a><br/>
            <span class="footer-note">
              Note: To chat with users and developers of Apache OFBiz.
              <br>Please create a Slack account using <a href="//s.apache.org/slack-invite" target="external">this invite link</a> and
              <a href="//s.apache.org/ofbiz-slack-channel" target="external">join the <b>#ofbiz channel</b>.</a>
              Please do <b>not</b> ask OFBiz questions in the #general channel.
            </span>
          </li>
        </ul>
      </div>
      <div class="span3 sociallWidget">
        <h2>ASF Information</h2>
        <div class="divider"><span></span></div>
        <ul>
          <li><a href="https://www.apache.org/foundation/" target="external">Apache Software Foundation</a></li>
          <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="external">Privacy Policy</a></li>
          <li><a href="https://www.apache.org/events/current-event" target="external">Events</a></li>
          <li><a href="https://www.apache.org/foundation/sponsorship.html" target="external">Sponsorship</a>
          		and <a href="https://www.apache.org/foundation/contributing.html" target="external">Donations</a>
          </li>
          <li><a href="https://www.apache.org/foundation/thanks.html" target="external">Thanks</a></li>
          <li><a href="https://ofbiz.apache.org/security.html">Security</a></li>
          <li><a href="https://www.apache.org/licenses/" target="external">License</a></li>
        </ul>
      </div>
    </div>
  </div>
</footer>
<footer class="footer2" id="footerRights">
  <div class="container">
    <div class="row">
      <div class="span12">
        <p>
          Copyright © 2023 The Apache Software Foundation.
          <a href="https://www.apache.org/licenses/" target="external">Licensed under the  Apache License, Version 2.0</a>.<br/>
          Apache OFBiz, OFBiz, the project logo and the Apache feather logo are trademarks of <a href="https://www.apache.org/" target="external">The Apache Software Foundation.</a>
        </p>
      </div>
    </div>
  </div>
</footer>
<!-- footer -->
</div>
<!-- globalWrapper -->
<script type="text/javascript" src="js/plugins/respond/respond.min.js"></script>
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="js/jquery-migrate-1.0.0.min.js"></script>
<script type="text/javascript" src="js/plugins/jquery-browser-plugin/jquery.browser.min.js"></script>
<!-- third party plugins  -->
<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap-carousel.js"></script>
<script type="text/javascript" src="js/plugins/easing/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/plugins/pretty-photo/js/jquery.prettyPhoto.js"></script>
<script type="text/javascript" src="js/plugins/hoverdir/jquery.hoverdir.js"></script>
<!-- jQuery KenBurn Slider  -->
<script type="text/javascript" src="js/plugins/rs-plugin/js/jquery.themepunch.plugins.min.js"></script>
<script type="text/javascript" src="js/plugins/rs-plugin/js/jquery.themepunch.revolution.min.js"></script>
<!-- Custom  -->
<script type="text/javascript" src="js/custom.js"></script>
<!-- Matomo -->
<script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
  /* We explicitly disable cookie tracking to avoid privacy issues */
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '21']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->
</body>
</html>
