
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2017-02-08
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Apache OpenMeetings Project - Rat (Release Audit Tool) results</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />
 
		<link href=".//css/bootstrap.min.css" rel="stylesheet" />
		<link href=".//css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href=".//css/docs.css" rel="stylesheet" />
		<link href=".//css/reflow-skin.css" rel="stylesheet" />


		<link href=".//css/lightbox.css" rel="stylesheet" />

		<link href=".//css/site.css" rel="stylesheet" />
		<link href=".//css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src=".//js/html5.js"></script>
		<![endif]-->


		
	</head>

	<body class="page-rat-report project-openmeetings-server" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="brand"><span class="color-highlight">Apache</span> OpenMeetings</div>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li ><a href="demo.html" title="Demo">Demo</a></li>
							<li ><a href="downloads.html" title="Download">Download</a></li>
							<li ><a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" title="Wiki" class="externalLink">Wiki</a></li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">General <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="index.html" title="Home">Home</a></li>
									<li ><a href="license.html" title="License">License</a></li>
									<li ><a href="http://www.apache.org/" title="ASF" class="externalLink">ASF</a></li>
									<li ><a href="CallForLogo.html" title="Call For Logo">Call For Logo</a></li>
									<li ><a href="NewsArchive.html" title="News archive">News archive</a></li>
									<li ><a href="security.html" title="Security">Security</a></li>
									<li ><a href="commercial-support.html" title="Commercial Support">Commercial Support</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Installation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="installation.html" title="Installation">Installation</a></li>
									<li ><a href="Upgrade.html" title="Upgrade">Upgrade</a></li>
									<li ><a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" title="Tutorials" class="externalLink">Tutorials</a></li>
									<li ><a href="CommandLineAdmin.html" title="Command Line Admin">Command Line Admin</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="get-involved.html" title="Get Involved">Get Involved</a></li>
									<li ><a href="team-list.html" title="Committers">Committers</a></li>
									<li ><a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
									<li ><a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" title="Wiki" class="externalLink">Wiki</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="source-repository.html" title="Source Code">Source Code</a></li>
									<li ><a href="issue-tracking.html" title="Bugs / Issues">Bugs / Issues</a></li>
									<li ><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
									<li ><a href="integration.html" title="Continuous Integration">Continuous Integration</a></li>
									<li ><a href="BuildInstructions_3.0.x.html" title="Build Instructions 3.0.x">Build Instructions 3.0.x</a></li>
									<li ><a href="BuildInstructions.html" title="Build Instructions">Build Instructions</a></li>
									<li ><a href="JUnitTesting.html" title="JUnit Testing">JUnit Testing</a></li>
									<li ><a href="ManualTesting.html" title="Manual Testing">Manual Testing</a></li>
									<li ><a href="ReleaseGuide.html" title="Release Guide">Release Guide</a></li>
									<li ><a href="WebsiteGuide.html" title="Website Guide">Website Guide</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li class="dropdown-submenu ">
										<a href="rat-report.html#integration" title="Integration">Integration</a>
										<ul class="dropdown-menu">
											<li ><a href="openmeetings-webservice/apidocs/index.html" title="SOAP/REST API" target="_blank">SOAP/REST API</a></li>
											<li ><a href="RestAPISample.html" title="REST API Sample">REST API Sample</a></li>
											<li ><a href="LdapAndADS.html" title="Ldap and ADS">Ldap and ADS</a></li>
											<li ><a href="oauth2.html" title="OAuth2">OAuth2</a></li>
											<li ><a href="voip-sip-integration.html" title="VoIP and SIP">VoIP and SIP</a></li>
											<li ><a href="errorvalues.html" title="Errors table">Errors table</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#plugins" title="Plugins">Plugins</a>
										<ul class="dropdown-menu">
											<li ><a href="MoodlePlugin.html" title="Moodle Plugin">Moodle Plugin</a></li>
											<li ><a href="SakaiPlugin.html" title="Sakai Plugin">Sakai Plugin</a></li>
											<li ><a href="JiraPlugin.html" title="Jira Plugin">Jira Plugin</a></li>
											<li ><a href="JoomlaPlugin.html" title="Joomla Plugin">Joomla Plugin</a></li>
											<li ><a href="DrupalPlugin.html" title="Drupal Plugin">Drupal Plugin</a></li>
											<li ><a href="BitrixPlugin.html" title="Bitrix Plugin">Bitrix Plugin</a></li>
											<li ><a href="ConfluencePlugin.html" title="Confluence Plugin">Confluence Plugin</a></li>
											<li ><a href="SugarCRMPlugin.html" title="SugarCRM Plugin">SugarCRM Plugin</a></li>
											<li ><a href="RedminePlugin.html" title="Redmine Plugin">Redmine Plugin</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#db" title="DB Sample Configurations">DB Sample Configurations</a>
										<ul class="dropdown-menu">
											<li ><a href="ApacheDerbyConfig.html" title="Apache Derby">Apache Derby</a></li>
											<li ><a href="IBMDB2Config.html" title="IBM DB2">IBM DB2</a></li>
											<li ><a href="OracleConfig.html" title="Oracle">Oracle</a></li>
											<li ><a href="MySQLConfig.html" title="MySQL">MySQL</a></li>
											<li ><a href="PostgresConfig.html" title="Postgres">Postgres</a></li>
											<li ><a href="MSSQLConfig.html" title="MSSQL">MSSQL</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#localization" title="Localization and languages">Localization and languages</a>
										<ul class="dropdown-menu">
											<li ><a href="Internationalisation.html" title="Internationalisation">Internationalisation</a></li>
											<li ><a href="LanguageEditor.html" title="LanguageEditor">LanguageEditor</a></li>
											<li ><a href="TimeZoneHandling.html" title="TimeZoneHandling">TimeZoneHandling</a></li>
											<li ><a href="EditTemplates.html" title="EditTemplates">EditTemplates</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#port" title="NAT Port Settings">NAT Port Settings</a>
										<ul class="dropdown-menu">
											<li ><a href="PortSettings.html" title="Port settings">Port settings</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#performance" title="Performance">Performance</a>
										<ul class="dropdown-menu">
											<li ><a href="JVMPerformanceTuning.html" title="JVM performance tuning">JVM performance tuning</a></li>
											<li ><a href="NetworkCalculator.html" title="Network bandwidth calculator">Network bandwidth calculator</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#interface" title="User Interface">User Interface</a>
										<ul class="dropdown-menu">
											<li ><a href="themes-and-branding.html" title="Themes">Themes</a></li>
											<li ><a href="Dashboard.html" title="Dashboard">Dashboard</a></li>
											<li ><a href="WebcamResolutions.html" title="Webcam resolutions">Webcam resolutions</a></li>
											<li ><a href="ConferenceRoomLayoutOptions.html" title="Room layout options">Room layout options</a></li>
											<li ><a href="HotKeys.html" title="Hot Keys">Hot Keys</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#customize" title="Customization">Customization</a>
										<ul class="dropdown-menu">
											<li ><a href="WebappNamePath.html" title="Webapp name/path">Webapp name/path</a></li>
											<li ><a href="Navigation.html" title="Navigation">Navigation</a></li>
											<li ><a href="CalendarAndTimezone.html" title="Calendar and timezone">Calendar and timezone</a></li>
											<li ><a href="CustomRoomTypeHowTo.html" title="Custom room type">Custom room type</a></li>
											<li ><a href="CustomCryptMechanism.html" title="Custom crypt mechanism">Custom crypt mechanism</a></li>
											<li ><a href="GeneralConfiguration.html" title="General Configuration">General Configuration</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#security" title="Security">Security</a>
										<ul class="dropdown-menu">
											<li ><a href="RestrictedAccess.html" title="Restricted Access">Restricted Access</a></li>
											<li ><a href="RTMPSAndHTTPS.html" title="RTMPS and HTTPS">RTMPS and HTTPS</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#convert" title="Converters">Converters</a>
										<ul class="dropdown-menu">
											<li ><a href="OpenOfficeConverter.html" title="OpenOffice Converter">OpenOffice Converter</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#cluster" title="Clustering">Clustering</a>
										<ul class="dropdown-menu">
											<li ><a href="Clustering.html" title="Clustering">Clustering</a></li>
										</ul>
									</li>
									<li class="dropdown-submenu ">
										<a href="rat-report.html#misc" title="Misc">Misc</a>
										<ul class="dropdown-menu">
											<li ><a href="GetVersionInfo.html" title="Get version info">Get version info</a></li>
										</ul>
									</li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="index.html" id="bannerLeft"><img src="images/logo.png" alt='"'Apache OpenMeetings'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://apache.org" id="bannerRight"><img src="http://apache.org/img/asf_logo.png" alt='"'Apache'"' /></a>
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li class="publishDate version-date">Last Published: 2017-02-08</li>
			</ul>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span8">
			<div class="body-content">
<div class="section"> 
 <div class="page-header">
  <h2 id="Rat_Release_Audit_Tool_results">Rat (Release Audit Tool) results</h2>
 </div> 
 <p>The following document contains the results of <a class="externalLink" href="http://creadur.apache.org/rat/apache-rat-plugin/">Rat (Release Audit Tool)</a>.</p> 
 <p></p> 
 <div class="source"> 
  <pre>
*****************************************************
Summary
-------
Generated at: 2017-02-08T21:34:25+07:00

Notes: 0
Binaries: 70
Archives: 0
Standards: 95

Apache Licensed: 92
Generated Documents: 0

JavaDocs are generated, thus a license header is optional.
Generated files do not require license headers.

3 Unknown Licenses

*****************************************************

Files with unapproved licenses:

  /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/css/jquery-ui.css
  /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/html5.js
  /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/jquery-ui.min.js

*****************************************************

*****************************************************
  Files with Apache License headers will be marked AL
  Binary files (which do not require any license headers) will be marked B
  Compressed archives will be marked A
  Notices, licenses etc. will be marked N
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/pom.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/stylesheets/errortable.xsl
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/cut_administration_configuration.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/monitor_add.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/chat.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/checkout_7.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/backup.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/checkout_3.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/desktopsharing.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/installation_instructions.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/calendar.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/cluster1.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/checkout_5.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logo.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/eclipse-import-maven-project.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/system_backup.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/Arguments.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/drupal_module_configuration.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/CalendarDialog_2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/ldap_screen.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/checkout_2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/cut_conference_room.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/checkout_1.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/checkout_6.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/checkout_8.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/cut_integration_api.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/SugarCRM_Installation.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/user_add.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/recordings_timeleine.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/audio_and_video.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/drupal_room_configuration.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/cluster2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/pollresult.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/cut_file_explorer.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/dashboard.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/privat_messages.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/pencil_add.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/cut_recordings_playback.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/file_smal.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/mouse_add.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/moodle_add_activity_plugin.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/apache_feather.gif
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/NewConfiguration.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/choose_divice.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/cut_private_messages.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/Features_Screen_Conference_Room_Thumb.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/moodle_configure_plugin.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/cut_integrated_calendar.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/micro_small.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/moodle_install_plugin.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/checkout_9.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/langeditor_screen_v2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/drupal_module_installation.png
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logo.svg
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/vote.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/DebugConfigurations.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/right_management.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/whiteboard.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/CalendarDialog_1.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/poll.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/checkout_4.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_small6.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_small5.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_small4.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om1.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/pb.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_big5.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_small7.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_big3.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_small8.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_small2.png
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_small3.png
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/pb.svg
  B     /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/images/logos/logo_om_big4.png
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/css/netcalc.css
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/css/bootstrap-responsive.min.css
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/css/bootstrap.min.css
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/css/site.css
 !????? /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/css/jquery-ui.css
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/netcalc.js
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/bootstrap.min.js
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/site.js
 !????? /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/html5.js
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/jquery.min.js
 !????? /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/jquery-ui.min.js
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/RestAPISample.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/LanguageEditor.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/PostgresConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/red5sip-integration_3.1.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/GetVersionInfo.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/JoomlaPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/voip-sip-integration.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/Navigation.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/BuildInstructions_3.0.x.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/security.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/SugarCRMPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/BitrixPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/demo.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/MSSQLConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/CommandLineAdmin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/BuildInstructions.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/OpenOfficeConverter.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/EditTemplates.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/ConfluencePlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/CustomCryptMechanism.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/Dashboard.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/ReleaseGuide.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/OracleConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/downloads.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/LdapAndADS.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/MoodlePlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/Clustering.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/WebcamResolutions.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/RecommendedHardwareList.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/commercial-support.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/installation.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/red5sip-integration_3.0.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/CalendarAndTimezone.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/WebsiteGuide.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/RTMPSAndHTTPS.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/ConferenceRoomLayoutOptions.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/Internationalisation.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/JUnitTesting.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/NewsArchive.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/PortSettings.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/RedminePlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/CallForLogo.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/red5sip-integration_2.1.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/CalDAVandGCal.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/ManualTesting.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/HotKeys.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/documentation.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/RestrictedAccess.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/DrupalPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/ApacheDerbyConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/IBMDB2Config.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/NetworkCalculator.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/oauth2.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/themes-and-branding.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/SakaiPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/Upgrade.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/JVMPerformanceTuning.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/index.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/MySQLConfig.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/WebappNamePath.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/CustomRoomTypeHowTo.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/get-involved.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/JiraPlugin.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/red5sip-integration_2.0.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/xdoc/TimeZoneHandling.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/site.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/jrebel/red5-debug.bat
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/jrebel/red5-debug.sh
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/scripts/network_test.sh
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/scripts/admin.sh
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/scripts/admin.bat
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/components/all.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/components/templates.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/server.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/quick.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/conf/jee-container.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/root/index.html
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/src.xml
  AL    /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/main/assembly/unpacked.xml
 
*****************************************************

 Printing headers for text files without a valid license header...
 
=====================================================
== File: /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/css/jquery-ui.css
=====================================================
/*! jQuery UI - v1.12.1 - 2016-11-29
* http://jqueryui.com
* Includes: core.css, slider.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&amp;folderName=base&amp;cornerRadiusShadow=8px&amp;offsetLeftShadow=0px&amp;offsetTopShadow=0px&amp;thicknessShadow=5px&amp;opacityShadow=30&amp;bgImgOpacityShadow=0&amp;bgTextureShadow=flat&amp;bgColorShadow=666666&amp;opacityOverlay=30&amp;bgImgOpacityOverlay=0&amp;bgTextureOverlay=flat&amp;bgColorOverlay=aaaaaa&amp;iconColorError=cc0000&amp;fcError=5f3f3f&amp;borderColorError=f1a899&amp;bgTextureError=flat&amp;bgColorError=fddfdf&amp;iconColorHighlight=777620&amp;fcHighlight=777620&amp;borderColorHighlight=dad55e&amp;bgTextureHighlight=flat&amp;bgColorHighlight=fffa90&amp;iconColorActive=ffffff&amp;fcActive=ffffff&amp;borderColorActive=003eff&amp;bgTextureActive=flat&amp;bgColorActive=007fff&amp;iconColorHover=555555&amp;fcHover=2b2b2b&amp;borderColorHover=cccccc&amp;bgTextureHover=flat&amp;bgColorHover=ededed&amp;iconColorDefault=777777&amp;fcDefault=454545&amp;borderColorDefault=c5c5c5&amp;bgTextureDefault=flat&amp;bgColorDefault=f6f6f6&amp;iconColorContent=444444&amp;fcContent=333333&amp;borderColorContent=dddddd&amp;bgTextureContent=flat&amp;bgColorContent=ffffff&amp;iconColorHeader=444444&amp;fcHeader=333333&amp;borderColorHeader=dddddd&amp;bgTextureHeader=flat&amp;bgColorHeader=e9e9e9&amp;cornerRadius=3px&amp;fwDefault=normal&amp;fsDefault=1em&amp;ffDefault=Arial%2CHelvetica%2Csans-serif
* Copyright jQuery Foundation and other contributors; Licensed MIT */

/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
	display: none;
}
.ui-helper-hidden-accessible {
	border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
}
.ui-helper-reset {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	line-height: 1.3;
	text-decoration: none;
	font-size: 100%;
	list-style: none;
}
.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
	content: &quot;&quot;;
	display: table;
	border-collapse: collapse;
}
.ui-helper-clearfix:after {
	clear: both;
}
.ui-helper-zfix {
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	position: absolute;
	opacity: 0;
	filter:Alpha(Opacity=0); /* support: IE8 */
}


=====================================================
== File: /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/html5.js
=====================================================
/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement(&quot;p&quot;),d=a.getElementsByTagName(&quot;head&quot;)[0]||a.documentElement;return c.innerHTML=&quot;x&lt;style&gt;&quot;+b+&quot;&lt;/style&gt;&quot;,d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return&quot;string&quot;==typeof a?a.split(&quot; &quot;):a}function e(a,b){var c=t.elements;&quot;string&quot;!=typeof c&amp;&amp;(c=c.join(&quot; &quot;)),&quot;string&quot;!=typeof a&amp;&amp;(a=a.join(&quot; &quot;)),t.elements=c+&quot; &quot;+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i&gt;g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function(&quot;h,f&quot;,&quot;return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&amp;&amp;(&quot;+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c(&quot;'+a+'&quot;)'})+&quot;);return n}&quot;)(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,&quot;article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}&quot;)),l||i(a,d),a}var k,l,m=&quot;3.7.3&quot;,n=a.html5||{},o=/^&lt;|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q=&quot;_html5shiv&quot;,r=0,s={};!function(){try{var a=b.createElement(&quot;a&quot;);a.innerHTML=&quot;&lt;xyz&gt;&lt;/xyz&gt;&quot;,k=&quot;hidden&quot;in a,l=1==a.childNodes.length||function(){b.createElement(&quot;a&quot;);var a=b.createDocumentFragment();return&quot;undefined&quot;==typeof a.cloneNode||&quot;undefined&quot;==typeof a.createDocumentFragment||&quot;undefined&quot;==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||&quot;abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video&quot;,version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:&quot;default&quot;,shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),&quot;object&quot;==typeof module&amp;&amp;module.exports&amp;&amp;(module.exports=t)}(&quot;undefined&quot;!=typeof window?window:this,document);

=====================================================
== File: /home/solomax/work/openmeetings/application/tags/3.2.0RC2/openmeetings-server/src/site/resources/js/jquery-ui.min.js
=====================================================
/*! jQuery UI - v1.12.1 - 2016-11-29
* http://jqueryui.com
* Includes: widget.js, keycode.js, widgets/mouse.js, widgets/slider.js
* Copyright jQuery Foundation and other contributors; Licensed MIT */

(function(t){&quot;function&quot;==typeof define&amp;&amp;define.amd?define([&quot;jquery&quot;],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version=&quot;1.12.1&quot;;var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,&quot;events&quot;),s&amp;&amp;s.remove&amp;&amp;t(n).triggerHandler(&quot;remove&quot;)}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(&quot;.&quot;)[0];e=e.split(&quot;.&quot;)[1];var h=l+&quot;-&quot;+e;return s||(s=i,i=t.Widget),t.isArray(s)&amp;&amp;(s=t.extend.apply(null,[{}].concat(s))),t.expr[&quot;:&quot;][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&amp;&amp;this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+&quot;.&quot;+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r&gt;a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&amp;&amp;void 0!==n&amp;&amp;(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a=&quot;string&quot;==typeof o,r=i.call(arguments,1),l=this;return a?this.length||&quot;instance&quot;!==o?this.each(function(){var i,s=t.data(this,n);return&quot;instance&quot;===o?(l=s,!1):s?t.isFunction(s[o])&amp;&amp;&quot;_&quot;!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&amp;&amp;void 0!==i?(l=i&amp;&amp;i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error(&quot;no such method '&quot;+o+&quot;' for &quot;+e+&quot; widget instance&quot;):t.error(&quot;cannot call methods on &quot;+e+&quot; prior to initialization; &quot;+&quot;attempted to call method '&quot;+o+&quot;'&quot;)}):l=void 0:(r.length&amp;&amp;(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&amp;&amp;e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:&quot;widget&quot;,widgetEventPrefix:&quot;&quot;,defaultElement:&quot;&lt;div&gt;&quot;,options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace=&quot;.&quot;+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&amp;&amp;(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&amp;&amp;this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&amp;&amp;this._setOptionDisabled(this.options.disabled),this._trigger(&quot;create&quot;,null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr(&quot;aria-disabled&quot;),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if(&quot;string&quot;==typeof e)if(a={},s=e.split(&quot;.&quot;),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1&gt;o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return&quot;classes&quot;===t&amp;&amp;this._setOptionClasses(e),this.options[t]=e,&quot;disabled&quot;===t&amp;&amp;this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&amp;&amp;n&amp;&amp;n.length&amp;&amp;(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+&quot;-disabled&quot;,null,!!t),t&amp;&amp;(this._removeClass(this.hoverable,null,&quot;ui-state-hover&quot;),this._removeClass(this.focusable,null,&quot;ui-state-focus&quot;))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length&gt;r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&amp;&amp;e.classes[i[r]]&amp;&amp;s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:&quot;_untrackClassesElement&quot;}),e.keys&amp;&amp;i(e.keys.match(/\S+/g)||[],!0),e.extra&amp;&amp;i(e.extra.match(/\S+/g)||[]),s.join(&quot; &quot;)},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&amp;&amp;(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s=&quot;boolean&quot;==typeof s?s:i;var n=&quot;string&quot;==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;&quot;boolean&quot;!=typeof e&amp;&amp;(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&amp;&amp;!t(this).hasClass(&quot;ui-state-disabled&quot;)?(&quot;string&quot;==typeof a?o[a]:a).apply(o,arguments):void 0}&quot;string&quot;!=typeof a&amp;&amp;(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||&quot;&quot;).split(&quot; &quot;).join(this.eventNamespace+&quot; &quot;)+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return(&quot;string&quot;==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,&quot;ui-state-hover&quot;)},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,&quot;ui-state-hover&quot;)}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,&quot;ui-state-focus&quot;)},focusout:function(e){this._removeClass(t(e.currentTarget),null,&quot;ui-state-focus&quot;)}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&amp;&amp;a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:&quot;fadeIn&quot;,hide:&quot;fadeOut&quot;},function(e,i){t.Widget.prototype[&quot;_&quot;+e]=function(s,n,o){&quot;string&quot;==typeof n&amp;&amp;(n={effect:n});var a,r=n?n===!0||&quot;number&quot;==typeof n?i:n.effect||i:e;n=n||{},&quot;number&quot;==typeof n&amp;&amp;(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&amp;&amp;s.delay(n.delay),a&amp;&amp;t.effects&amp;&amp;t.effects.effect[r]?s[e](n):r!==e&amp;&amp;s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&amp;&amp;o.call(s[0]),i()})}}),t.widget,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var s=!1;t(document).on(&quot;mouseup&quot;,function(){s=!1}),t.widget(&quot;ui.mouse&quot;,{version:&quot;1.12.1&quot;,options:{cancel:&quot;input, textarea, button, select, option&quot;,distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on(&quot;mousedown.&quot;+this.widgetName,function(t){return e._mouseDown(t)}).on(&quot;click.&quot;+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+&quot;.preventClickEvent&quot;)?(t.removeData(i.target,e.widgetName+&quot;.preventClickEvent&quot;),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off(&quot;.&quot;+this.widgetName),this._mouseMoveDelegate&amp;&amp;this.document.off(&quot;mousemove.&quot;+this.widgetName,this._mouseMoveDelegate).off(&quot;mouseup.&quot;+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!s){this._mouseMoved=!1,this._mouseStarted&amp;&amp;this._mouseUp(e),this._mouseDownEvent=e;var i=this,n=1===e.which,o=&quot;string&quot;==typeof this.options.cancel&amp;&amp;e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return n&amp;&amp;!o&amp;&amp;this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&amp;&amp;this._mouseDelayMet(e)&amp;&amp;(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+&quot;.preventClickEvent&quot;)&amp;&amp;t.removeData(e.target,this.widgetName+&quot;.preventClickEvent&quot;),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on(&quot;mousemove.&quot;+this.widgetName,this._mouseMoveDelegate).on(&quot;mouseup.&quot;+this.widgetName,this._mouseUpDelegate),e.preventDefault(),s=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&amp;&amp;(!document.documentMode||9&gt;document.documentMode)&amp;&amp;!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&amp;&amp;(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&amp;&amp;this._mouseDelayMet(e)&amp;&amp;(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off(&quot;mousemove.&quot;+this.widgetName,this._mouseMoveDelegate).off(&quot;mouseup.&quot;+this.widgetName,this._mouseUpDelegate),this._mouseStarted&amp;&amp;(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&amp;&amp;t.data(e.target,this.widgetName+&quot;.preventClickEvent&quot;,!0),this._mouseStop(e)),this._mouseDelayTimer&amp;&amp;(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,s=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))&gt;=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.widget(&quot;ui.slider&quot;,t.ui.mouse,{version:&quot;1.12.1&quot;,widgetEventPrefix:&quot;slide&quot;,options:{animate:!1,classes:{&quot;ui-slider&quot;:&quot;ui-corner-all&quot;,&quot;ui-slider-handle&quot;:&quot;ui-corner-all&quot;,&quot;ui-slider-range&quot;:&quot;ui-corner-all ui-widget-header&quot;},distance:0,max:100,min:0,orientation:&quot;horizontal&quot;,range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass(&quot;ui-slider ui-slider-&quot;+this.orientation,&quot;ui-widget ui-widget-content&quot;),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(&quot;.ui-slider-handle&quot;),o=&quot;&lt;span tabindex='0'&gt;&lt;/span&gt;&quot;,a=[];for(i=s.values&amp;&amp;s.values.length||1,n.length&gt;i&amp;&amp;(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i&gt;e;e++)a.push(o);this.handles=n.add(t(a.join(&quot;&quot;)).appendTo(this.element)),this._addClass(this.handles,&quot;ui-slider-handle&quot;,&quot;ui-state-default&quot;),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data(&quot;ui-slider-handle-index&quot;,e).attr(&quot;tabIndex&quot;,0)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&amp;&amp;(e.values?e.values.length&amp;&amp;2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&amp;&amp;(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&amp;&amp;this.range.length?(this._removeClass(this.range,&quot;ui-slider-range-min ui-slider-range-max&quot;),this.range.css({left:&quot;&quot;,bottom:&quot;&quot;})):(this.range=t(&quot;&lt;div&gt;&quot;).appendTo(this.element),this._addClass(this.range,&quot;ui-slider-range&quot;)),(&quot;min&quot;===e.range||&quot;max&quot;===e.range)&amp;&amp;this._addClass(this.range,&quot;ui-slider-range-&quot;+e.range)):(this.range&amp;&amp;this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&amp;&amp;this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,l,h,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n&gt;i||n===i&amp;&amp;(e===c._lastChangedValue||c.values(e)===u.min))&amp;&amp;(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,&quot;ui-state-active&quot;),o.trigger(&quot;focus&quot;),l=o.offset(),h=!t(e.target).parents().addBack().is(&quot;.ui-slider-handle&quot;),this._clickOffset=h?{left:0,top:0}:{left:e.pageX-l.left-o.width()/2,top:e.pageY-l.top-o.height()/2-(parseInt(o.css(&quot;borderTopWidth&quot;),10)||0)-(parseInt(o.css(&quot;borderBottomWidth&quot;),10)||0)+(parseInt(o.css(&quot;marginTop&quot;),10)||0)},this.handles.hasClass(&quot;ui-state-hover&quot;)||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,&quot;ui-state-active&quot;),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=&quot;vertical&quot;===this.options.orientation?&quot;vertical&quot;:&quot;horizontal&quot;},_normValueFromMouse:function(t){var e,i,s,n,o;return&quot;horizontal&quot;===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s&gt;1&amp;&amp;(s=1),0&gt;s&amp;&amp;(s=0),&quot;vertical&quot;===this.orientation&amp;&amp;(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&amp;&amp;(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&amp;&amp;this.options.values.length},_start:function(t,e){return this._trigger(&quot;start&quot;,t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&amp;&amp;(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&amp;&amp;this.options.range===!0&amp;&amp;(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&amp;&amp;(s=this._trigger(&quot;slide&quot;,t,this._uiHash(e,i,a)),s!==!1&amp;&amp;(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger(&quot;stop&quot;,t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger(&quot;change&quot;,t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length&gt;1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length&gt;o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch(&quot;range&quot;===e&amp;&amp;this.options.range===!0&amp;&amp;(&quot;min&quot;===i?(this.options.value=this._values(0),this.options.values=null):&quot;max&quot;===i&amp;&amp;(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&amp;&amp;(n=this.options.values.length),this._super(e,i),e){case&quot;orientation&quot;:this._detectOrientation(),this._removeClass(&quot;ui-slider-horizontal ui-slider-vertical&quot;)._addClass(&quot;ui-slider-&quot;+this.orientation),this._refreshValue(),this.options.range&amp;&amp;this._refreshRange(i),this.handles.css(&quot;horizontal&quot;===i?&quot;bottom&quot;:&quot;left&quot;,&quot;&quot;);break;case&quot;value&quot;:this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case&quot;values&quot;:for(this._animateOff=!0,this._refreshValue(),s=n-1;s&gt;=0;s--)this._change(null,s);this._animateOff=!1;break;case&quot;step&quot;:case&quot;min&quot;:case&quot;max&quot;:this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case&quot;range&quot;:this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,&quot;ui-state-disabled&quot;,!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length&gt;s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()&gt;=t)return this._valueMin();if(t&gt;=this._valueMax())return this._valueMax();var e=this.options.step&gt;0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)&gt;=e&amp;&amp;(s+=i&gt;0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t&gt;this.options.max&amp;&amp;(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&amp;&amp;(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=&quot;&quot;+t,i=e.indexOf(&quot;.&quot;);return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){&quot;vertical&quot;===t&amp;&amp;this.range.css({width:&quot;&quot;,left:&quot;&quot;}),&quot;horizontal&quot;===t&amp;&amp;this.range.css({height:&quot;&quot;,bottom:&quot;&quot;})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,l=this,h=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((l.values(s)-l._valueMin())/(l._valueMax()-l._valueMin())),c[&quot;horizontal&quot;===l.orientation?&quot;left&quot;:&quot;bottom&quot;]=i+&quot;%&quot;,t(this).stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;](c,r.animate),l.options.range===!0&amp;&amp;(&quot;horizontal&quot;===l.orientation?(0===s&amp;&amp;l.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({left:i+&quot;%&quot;},r.animate),1===s&amp;&amp;l.range[h?&quot;animate&quot;:&quot;css&quot;]({width:i-e+&quot;%&quot;},{queue:!1,duration:r.animate})):(0===s&amp;&amp;l.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({bottom:i+&quot;%&quot;},r.animate),1===s&amp;&amp;l.range[h?&quot;animate&quot;:&quot;css&quot;]({height:i-e+&quot;%&quot;},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c[&quot;horizontal&quot;===this.orientation?&quot;left&quot;:&quot;bottom&quot;]=i+&quot;%&quot;,this.handle.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;](c,r.animate),&quot;min&quot;===a&amp;&amp;&quot;horizontal&quot;===this.orientation&amp;&amp;this.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({width:i+&quot;%&quot;},r.animate),&quot;max&quot;===a&amp;&amp;&quot;horizontal&quot;===this.orientation&amp;&amp;this.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({width:100-i+&quot;%&quot;},r.animate),&quot;min&quot;===a&amp;&amp;&quot;vertical&quot;===this.orientation&amp;&amp;this.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({height:i+&quot;%&quot;},r.animate),&quot;max&quot;===a&amp;&amp;&quot;vertical&quot;===this.orientation&amp;&amp;this.range.stop(1,1)[h?&quot;animate&quot;:&quot;css&quot;]({height:100-i+&quot;%&quot;},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data(&quot;ui-slider-handle-index&quot;);switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&amp;&amp;(this._keySliding=!0,this._addClass(t(e.target),null,&quot;ui-state-active&quot;),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data(&quot;ui-slider-handle-index&quot;);this._keySliding&amp;&amp;(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,&quot;ui-state-active&quot;))}}})});
</pre> 
 </div> 
</div>
			</div>
		</div>
		<div class="span4">
			<div id="toc-sidebar">
				<div class="well">
					<ul class="nav nav-list">
						<li class="nav-header">Table of Contents</li>
		<li><a href="#Rat_Release_Audit_Tool_results" title="Rat (Release Audit Tool) results">Rat (Release Audit Tool) results</a>
					</ul>
				</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">General</li>
						<li >
							<a href="index.html" title="Home">Home</a>
						</li>
						<li >
							<a href="license.html" title="License">License</a>
						</li>
						<li >
							<a href="http://www.apache.org/" title="ASF" class="externalLink">ASF</a>
						</li>
						<li >
							<a href="CallForLogo.html" title="Call For Logo">Call For Logo</a>
						</li>
						<li >
							<a href="NewsArchive.html" title="News archive">News archive</a>
						</li>
						<li >
							<a href="security.html" title="Security">Security</a>
						</li>
						<li >
							<a href="commercial-support.html" title="Commercial Support">Commercial Support</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Installation</li>
						<li >
							<a href="installation.html" title="Installation">Installation</a>
						</li>
						<li >
							<a href="Upgrade.html" title="Upgrade">Upgrade</a>
						</li>
						<li >
							<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" title="Tutorials" class="externalLink">Tutorials</a>
						</li>
						<li >
							<a href="CommandLineAdmin.html" title="Command Line Admin">Command Line Admin</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Community</li>
						<li >
							<a href="get-involved.html" title="Get Involved">Get Involved</a>
						</li>
						<li >
							<a href="team-list.html" title="Committers">Committers</a>
						</li>
						<li >
							<a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
						</li>
						<li >
							<a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" title="Wiki" class="externalLink">Wiki</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Development</li>
						<li >
							<a href="source-repository.html" title="Source Code">Source Code</a>
						</li>
						<li >
							<a href="issue-tracking.html" title="Bugs / Issues">Bugs / Issues</a>
						</li>
						<li >
							<a href="dependencies.html" title="Dependencies">Dependencies</a>
						</li>
						<li >
							<a href="integration.html" title="Continuous Integration">Continuous Integration</a>
						</li>
						<li >
							<a href="BuildInstructions_3.0.x.html" title="Build Instructions 3.0.x">Build Instructions 3.0.x</a>
						</li>
						<li >
							<a href="BuildInstructions.html" title="Build Instructions">Build Instructions</a>
						</li>
						<li >
							<a href="JUnitTesting.html" title="JUnit Testing">JUnit Testing</a>
						</li>
						<li >
							<a href="ManualTesting.html" title="Manual Testing">Manual Testing</a>
						</li>
						<li >
							<a href="ReleaseGuide.html" title="Release Guide">Release Guide</a>
						</li>
						<li >
							<a href="WebsiteGuide.html" title="Website Guide">Website Guide</a>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2012-2017 <a href="http://apache.org">Apache Software Foundation</a>. All Rights Reserved.</p>
			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src=".//js/jquery.min.js"></script>

	<script src=".//js/bootstrap.min.js"></script>
	<script src=".//js/lightbox.min.js"></script>
	<script src=".//js/reflow-scroll.js"></script>
	
<script src=".//js/jquery-ui.min.js" type="text/javascript"></script>
<script src=".//js/netcalc.js" type="text/javascript"></script>
	<script src=".//js/reflow-skin.js"></script>

	</body>
</html>
