design doc updater
design doc updater


Former-commit-id: 52c0dccb230edddd3a6d311dcb1d58dece972ccd

[submodule "couchdb/couchdb-lucene"] [submodule "couchdb/couchdb-lucene"]
path = couchdb/couchdb-lucene path = couchdb/couchdb-lucene
url = https://github.com/rnewson/couchdb-lucene.git url = https://github.com/rnewson/couchdb-lucene.git
[submodule "couchdb/settee"] [submodule "couchdb/settee"]
path = couchdb/settee path = couchdb/settee
url = https://github.com/inadarei/settee.git url = https://github.com/inadarei/settee.git
[submodule "lib/php-diff"] [submodule "lib/php-diff"]
path = lib/php-diff path = lib/php-diff
url = https://github.com/chrisboulton/php-diff.git url = https://github.com/chrisboulton/php-diff.git
[submodule "lib/Requests"] [submodule "lib/Requests"]
path = lib/Requests path = lib/Requests
url = https://github.com/rmccue/Requests.git url = https://github.com/rmccue/Requests.git
[submodule "javascripts/flotr2"] [submodule "js/flotr2"]
path = javascripts/flotr2 path = js/flotr2
url = https://github.com/HumbleSoftware/Flotr2.git url = https://github.com/HumbleSoftware/Flotr2.git
[submodule "lib/phpquery"] [submodule "lib/phpquery"]
path = lib/phpquery path = lib/phpquery
url = https://github.com/TobiaszCudnik/phpquery.git url = https://github.com/TobiaszCudnik/phpquery.git
[submodule "javascripts/sigma"] [submodule "js/sigma"]
path = javascripts/sigma path = js/sigma
url = https://github.com/jacomyal/sigma.js.git url = https://github.com/jacomyal/sigma.js.git
  [submodule "js/bubbletree"]
  path = js/bubbletree
  url = https://github.com/okfn/bubbletree.git
  [submodule "lib/querypath"]
  path = lib/querypath
  url = https://github.com/technosophos/querypath.git
  [submodule "lib/amon-php"]
  path = lib/amon-php
  url = https://github.com/martinrusev/amon-php.git
  [submodule "documents/lib/parsedatetime"]
  path = documents/lib/parsedatetime
  url = git://github.com/bear/parsedatetime.git
   
file:a/about.php -> file:b/about.php
<?php <?php
include_once('include/common.inc.php'); include_once('include/common.inc.php');
include_header(); include_header('About');
?> ?>
<div class="foundation-header"> <div class="foundation-header">
<h1><a href="about.php">About/FAQ</a></h1> <h1><a href="about.php">About/FAQ</a></h1>
<h4 class="subheader">Lorem ipsum.</h4> <h4 class="subheader">Lorem ipsum.</h4>
</div> </div>
<h2> What is this? </h2> <h2> What is this? </h2>
Disclosr is a project to monitor Australian Federal Government agencies Disclo.gs is a project to monitor Australian Federal Government agencies
compliance with their <a href="http://www.oaic.gov.au/publications/other_operational/foi_policy_frequently_asked_questions.html#_Toc291837571">"proactive disclosure requirements"</a>. compliance with their <a href="http://www.oaic.gov.au/publications/other_operational/foi_policy_frequently_asked_questions.html#_Toc291837571">"proactive disclosure requirements" to make a transparency league table as suggested by gov2 taskforce http://gov2.net.au/blog/2009/09/19/a-league-ladder-of-psi-openness/</a>.
OGRE (Open Government Realization Evaluation) is a ranking of compliance with these requirements. <h2> Attributions </h2>
Prometheus is the agent which polls agency websites to assess compliance. National Archives of Australia, Australian Governments’ Interactive Functions Thesaurus, 2nd edition, September 2005, published at http://www.naa.gov.au/recordkeeping/thesaurus/index.htm <br/>
  data.gov.au http://data.gov.au/dataset/directory-gov-au-full-data-export/ <br/>
  directory.gov.au <br/>
  australia.gov.au http://australia.gov.au/about/copyright <br/>
<h2> Open everything </h2> <h2> Open everything </h2>
All documents released CC-BY 3 AU All documents released CC-BY 3 AU
Open source git @ Open source git @
   
<h2>Organisational Data Sources</h2> <h2>Organisational Data Sources</h2>
   
http://www.comlaw.gov.au/Browse/Results/ByTitle/AdministrativeArrangementsOrders/Current/Ad/0 defines departments http://www.comlaw.gov.au/Browse/Results/ByTitle/AdministrativeArrangementsOrders/Current/Ad/0 defines departments
Agencies can be found in the Schedule to an Appropriation Bill (budget), Schedule to FMA Regulations and/or Public Service Act.<br> Agencies can be found in the Schedule to an Appropriation Bill (budget), Schedule to FMA Regulations and/or Public Service Act.<br>
   
http://www.finance.gov.au/publications/flipchart/docs/FMACACFlipchart.pdf summarises these. view-source:https://www.tenders.gov.au/?event=public.advancedsearch.home is great for the suspended/active status<br> http://www.finance.gov.au/publications/flipchart/docs/FMACACFlipchart.pdf summarises these. view-source:https://www.tenders.gov.au/?event=public.advancedsearch.home is great for the suspended/active status<br>
   
Fraud in gov depts by Fairfax Media http://www.smh.com.au/national/public-service-keeps-fraud-cases-private-20110923-1kpdr.html Fraud in gov depts by Fairfax Media http://www.smh.com.au/national/public-service-keeps-fraud-cases-private-20110923-1kpdr.html
   
When defining the hierachy, this system is designed towards monitoring accountablity. Thus large agencies that have registered their own ABN When defining the hierachy, this system is designed towards monitoring accountablity. Thus large agencies that have registered their own ABN
and have their own accountablity mechanisms/website receive a seperate record as a child of their department. and have their own accountablity mechanisms/website receive a seperate record as a child of their department.
Some small agencies will choose to simply rely on their parent department's accountablity measures.<br> Some small agencies will choose to simply rely on their parent department's accountablity measures.<br>
   
This flows through to organisation name and other/past names. A department that completely accounts for an agency will list that agency as an other child name. This flows through to organisation name and other/past names. A department that completely accounts for an agency will list that agency as an other child name.
As agencies themselves shift between departments, there may be scope for providing time ranges but typically the newest hierarchy will be the one recorded. As agencies themselves shift between departments, there may be scope for providing time ranges but typically the newest hierarchy will be the one recorded.
A department/agency name will be the newest active name assigned to that ABN.<br> A department/agency name will be the newest active name assigned to that ABN.<br>
   
ABN information is derived from the ABR. This is the definitive umpire about which former name should be linked to which current name. ABN information is derived from the ABR. This is the definitive umpire about which former name should be linked to which current name.
For example "Department of Transport and Regional Services" became "Department of Infrastructure, Transport, Regional Development and Local Government" (same ABN) For example "Department of Transport and Regional Services" became "Department of Infrastructure, Transport, Regional Development and Local Government" (same ABN)
however it later split into "Department of Infrastructure and Transport" (same ABN) however it later split into "Department of Infrastructure and Transport" (same ABN)
and "Department of Regional Australia, Regional Development and Local Government" (new ABN).<br> and "Department of Regional Australia, Regional Development and Local Government" (new ABN).<br>
   
Statistical information from http://www.apsc.gov.au/stateoftheservice/1011/statsbulletin/section1.html#t2total https://www.apsedii.gov.au/apsedii/CustomQueryx33.shtml Statistical information from http://www.apsc.gov.au/stateoftheservice/1011/statsbulletin/section1.html#t2total https://www.apsedii.gov.au/apsedii/CustomQueryx33.shtml
and individual annual reports.<br> and individual annual reports.<br>
   
<h2>Webpage Assessment</h2> <h2>Webpage Assessment</h2>
Much due care has been put into correctly recording disclosure URLs. Typically the "About", "Corporate", "Publications" and "Sitemap" sections are checked at the very least. Much due care has been put into correctly recording disclosure URLs. Typically the "About", "Corporate", "Publications" and "Sitemap" sections are checked at the very least.
Occasionally it is nessicary to use a site or Google search. In several rare cases, there is a secret "Disclosure" navigation menu you can find if you find one of the mandatory publishing obligations in that category (seriously).<br> Occasionally it is nessicary to use a site or Google search. In several rare cases, there is a secret "Disclosure" navigation menu you can find if you find one of the mandatory publishing obligations in that category (seriously).<br>
Some rules about leniency:<br> Some rules about leniency:<br>
<ul> <ul>
<li>An empty FOI disclosure log counts, a page outlining what the FOI Act is does not.</li> <li>An empty FOI disclosure log counts, a page outlining what the FOI Act is does not.</li>
<li>A disclosure log in PDF or Word format counts :(</li> <li>A disclosure log in PDF or Word format counts :(</li>
<li>An empty File/Record list counts (although that's very minimalistic that you have no files, electronic or paper)</li> <li>An empty File/Record list counts (although that's very minimalistic that you have no files, electronic or paper)</li>
<li>Only a current information publication scheme page counts, not a s.9 FOI Act page or an organisation chart.</li> <li>Only a current information publication scheme page counts, not a s.9 FOI Act page or an organisation chart.</li>
<li>If there isn't a page easily listing all current and past Annual Reports, the most current one (html, pdf) counts.</li> <li>If there isn't a page easily listing all current and past Annual Reports, the most current one (html, pdf) counts.</li>
<li>Consultancy contracts might not need it's own webpage (if in Annual Report), grants/appointments might not apply to all organisations but Legal Services Expenditure (and all other obligations) does need a webpage. </li> <li>Consultancy contracts might not need it's own webpage (if in Annual Report), grants/appointments might not apply to all organisations but Legal Services Expenditure (and all other obligations) does need a webpage. </li>
   
<h2>Open Government Scoring</h2> <h2>Open Government Scoring</h2>
+1 point for every true Has... attribute<br> +1 point for every true Has... attribute<br>
-1 point for every false Has... (ie. Has Not) attribute</br> -1 point for every false Has... (ie. Has Not) attribute</br>
   
Don't like this? Make your own score, suggest a better scoring mechanism.</br> Don't like this? Make your own score, suggest a better scoring mechanism.</br>
   
<?php <?php
include_footer(); include_footer();
?> ?>
file:b/admin/agls.php (new)
  <?php
 
  include_once('include/common.inc.php');
  include_header('Webserver and Accessiblity');
 
  echo "<table>
  <tr><th>name</th><th>function</th></tr>";
  $db = $server->get_db('disclosr-agencies');
  try {
  $agencies = $db->get_view("app", "byCanonicalName", null, true)->rows;
 
 
  if ($agencies) {
  foreach ($agencies as $row) {
 
  echo "<tr><td>" . $row->value->name . "</td>";
  if (isset($row->value->metaTags)) {
  if (is_array($row->value->metaTags)) {
  $tags =$row->value->metaTags;
  } else {
  $tags = object_to_array($row->value->metaTags);
  }
  if (isset($tags['AGLS.Function'])) {
  echo "<td>" . $tags['AGLS.Function'] . "</td>";
  }
  }
  echo "</tr>";
  }
  }
  } catch (SetteeRestClientException $e) {
  setteErrorHandler($e);
  }
  include_footer();
  ?>
 
  <?php
 
  include_once('../include/common.inc.php');
  include_header('Fix Conflicts');
  require_once '../lib/php-diff/lib/Diff.php';
  require_once '../lib/php-diff/lib/Diff/Renderer/Html/SideBySide.php';
 
  $db = $server->get_db('disclosr-agencies');
 
  try {
  $rows = $db->get_view("app", "getConflicts", null, true)->rows;
  //print_r($rows);
  foreach ($rows as $row) {
  echo "<h2>".$row->id."</h2>";
  $request = Requests::get($serverAddr."disclosr-agencies/".$row->id);
  $origSort = object_to_array(json_decode($request->body));
  ksort($origSort);
  $origDoc = explode(",",json_encode($origSort));
  foreach($row->value as $conflictRev) {
  $conflictURL = $serverAddr."disclosr-agencies/".$row->id."?rev=".$conflictRev;
  $request = Requests::get($conflictURL);
  $conflictSort = object_to_array(json_decode($request->body));
  ksort($conflictSort);
  $conflictDoc = explode(",",json_encode($conflictSort));
  echo "curl -X DELETE ".$conflictURL."<br>".PHP_EOL;
  // Options for generating the diff
  $options = array(
  //'ignoreWhitespace' => true,
  //'ignoreCase' => true,
  );
 
  // Initialize the diff class
  $diff = new Diff($conflictDoc, $origDoc, $options);
 
  // Generate a side by side diff
  $renderer = new Diff_Renderer_Html_SideBySide;
  echo $diff->Render($renderer);
  }
  die();
 
  }
  } catch (SetteeRestClientException $e) {
  setteErrorHandler($e);
  }
 
  include_footer();
  ?>
 
  <?php
 
  $nodes = Array(Array("id" => "gov", "label" => "Federal Government"));
  $edges = Array();
 
  function addEdge($source, $target) {
  global $edges;
  $edges[] = Array("id" => md5($source . $target), "source" => $source, "target" => $target);
  }
 
  function addNode($id, $label, $pid) {
  global $nodes;
  $nodes[] = Array("id" => $id, "label" => $label , "pid" => $pid);
  }
 
  function addChildren($parentID, $parentXML) {
  foreach ($parentXML as $childXML) {
 
  if ($childXML->getName() == "organization" || $childXML->getName() == "organizationalUnit" || $childXML->getName() == "person") {
  $attr = $childXML->attributes();
  $id = $attr['UUID'];
  if ($childXML->getName() == "organization" || $childXML->getName() == "organizationalUnit") {
 
  $label = $childXML->name;
  } else if ($childXML->getName() == "person") {
  $label = $childXML->fullName;
  }
  addNode($id, $label, $parentID);
  addEdge($id, $parentID);
  addChildren($id, $childXML);
  }
  }
  }
 
  if (file_exists('directoryexport.xml')) {
  $xml = simplexml_load_file('directoryexport.xml');
 
  addChildren("gov", $xml);
  } else {
  exit('Failed to open directoryexport.xml');
  }
  header('Content-Type: application/gexf+xml');
  echo '<?xml version="1.0" encoding="UTF-8"?>
  <gexf xmlns="http://www.gexf.net/1.2draft" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gexf.net/1.2draft http://www.gexf.net/1.2draft/gexf.xsd" version="1.2">
  <graph mode="static" defaultedgetype="directed">
  <nodes>';
  foreach ($nodes as $node) {
  echo ' <node id="' . $node['id'] . '" label="' . htmlentities($node['label'],ENT_XML1) . '" ' . (isset($node['pid']) ? 'pid="' . $node['pid'] . '"' : "") . ' />';
  }
  echo '</nodes>
  <edges>';
  foreach ($edges as $edge) {
  echo ' <edge id="' . $edge['id'] . '" source="' . $edge['source'] . '" target="' . $edge['target'] . '" />';
  }
  echo '</edges>
  </graph>
  </gexf>';
  ?>
 
<?php <?php
   
include_once("../include/common.inc.php"); include_once("../include/common.inc.php");
   
$format = "csv"; $format = "csv";
//$format = "json"; //$format = "json";
if (isset($_REQUEST['format'])) $format = $_REQUEST['format']; if (isset($_REQUEST['format'])) $format = $_REQUEST['format'];
   
setlocale(LC_CTYPE, 'C'); setlocale(LC_CTYPE, 'C');
if ($format == "csv") { if ($format == "csv") {
$headers = Array("name"); $headers = Array("name");
} else { } else {
$headers = Array(); $headers = Array();
} }
   
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
try { try {
$rows = $db->get_view("app", "all", null, true)->rows; $rows = $db->get_view("app", "all", null, true)->rows;
   
$dataValues = Array(); $dataValues = Array();
foreach ($rows as $row) { foreach ($rows as $row) {
if (isset($row->value->statistics->employees)) { if (isset($row->value->statistics->employees)) {
   
$headers = array_unique(array_merge($headers, array_keys(object_to_array($row->value->statistics->employees)))); $headers = array_unique(array_merge($headers, array_keys(object_to_array($row->value->statistics->employees))));
   
} }
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
   
$fp = fopen('php://output', 'w'); $fp = fopen('php://output', 'w');
if ($fp && $db) { if ($fp && $db) {
if ($format == "csv") { if ($format == "csv") {
header('Content-Type: text/csv; charset=utf-8'); header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="export.employeestats.' . date("c") . '.csv"'); header('Content-Disposition: attachment; filename="export.employeestats.' . date("c") . '.csv"');
} }
header('Pragma: no-cache'); header('Pragma: no-cache');
header('Expires: 0'); header('Expires: 0');
if ($format == "csv") { if ($format == "csv") {
fputcsv($fp, $headers); fputcsv($fp, $headers);
} else if ($format == "json") { } else if ($format == "json") {
echo '{ echo '{
"labels" : ["' . implode('","', $headers) . '"],'.PHP_EOL; "labels" : ["' . implode('","', $headers) . '"],'.PHP_EOL;
} }
try { try {
$agencies = $db->get_view("app", "all", null, true)->rows; $agencies = $db->get_view("app", "all", null, true)->rows;
//print_r($agencies); //print_r($agencies);
$first = true; $first = true;
if ($format == "json") { if ($format == "json") {
echo '"data" : ['.PHP_EOL; echo '"data" : ['.PHP_EOL;
} }
foreach ($agencies as $agency) { foreach ($agencies as $agency) {
   
if (isset($agency->value->statistics->employees)) { if (isset($agency->value->statistics->employees)) {
$row = Array(); $row = Array();
$agencyEmployeesArray = object_to_array($agency->value->statistics->employees); $agencyEmployeesArray = object_to_array($agency->value->statistics->employees);
foreach ($headers as $i => $fieldName) { foreach ($headers as $i => $fieldName) {
if (isset($agencyEmployeesArray[$fieldName])) { if (isset($agencyEmployeesArray[$fieldName])) {
$row[] = '['.$i.','.$agencyEmployeesArray[$fieldName]["value"].']'; $row[] = '['.$i.','.$agencyEmployeesArray[$fieldName]["value"].']';
} else { } else {
$row[] = '['.$i.',0]'; $row[] = '['.$i.',0]';
} }
} }
if ($format == "csv") { if ($format == "csv") {
fputcsv($fp, array_values($row)); fputcsv($fp, array_values($row));
} else if ($format == "json") { } else if ($format == "json") {
if (!$first) echo ","; if (!$first) echo ",";
echo '{"data" : [' . implode(",", array_values($row)) . '], "label": "'.$agency->value->name.'", "lines" : { "show" : true }, "points" : { "show" : true }}'.PHP_EOL; echo '{"data" : [' . implode(",", array_values($row)) . '], "label": "'.$agency->value->name.'", "lines" : { "show" : true }, "points" : { "show" : true }}'.PHP_EOL;
$first = false; $first = false;
} }
} }
} }
if ($format == "json") { if ($format == "json") {
echo '] echo ']
}'.PHP_EOL; }'.PHP_EOL;
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
   
die; die;
} }
?> ?>
   
  <?php
 
  include_once("../include/common.inc.php");
  require($basePath . 'lib/phpquery/phpQuery/phpQuery.php');
 
  setlocale(LC_CTYPE, 'C');
 
 
  $db = $server->get_db('disclosr-agencies');
 
  try {
  $agencies = $db->get_view("app", "byCanonicalName", null, true)->rows;
  //print_r($rows);
  foreach ($agencies as $agency) {
  //echo $agency->value->name . " ".$agency->value->website."<br />\n";
  // print_r($agency);
  //hasRestricitiveLicence" hasRestrictiveLicense -> has Restrictive Licence
  // "hasYoutube" -> Tube
  // "comment" -> "comments"
  if (!isset($agency->value->metaTags) && isset($agency->value->website)) {
  echo $agency->value->name . " ".$agency->value->website."<br />\n";
  $agency->value->metaTags = Array();
  $request = Requests::get($agency->value->website);
  $html = phpQuery::newDocumentHTML($request->body);
  phpQuery::selectDocument($html);
  foreach (pq('meta')->elements as $meta) {
  $tagName = $meta->getAttribute('name');;
  $content = $meta->getAttribute('content');
  if ($tagName != "") {
  echo "$tagName == $content <br>\n";
  $agency->value->metaTags[$tagName] = $content;
  }
  }
  //print_r($agency->value->metaTags);
  $db->save($agency->value);
  echo "<hr>";
  flush();
  }
  }
  } catch (SetteeRestClientException $e) {
  setteErrorHandler($e);
  }
  ?>
 
<?php <?php
   
require_once '../include/common.inc.php'; require_once '../include/common.inc.php';
   
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
$rows = $db->get_view("app", "byName")->rows; $rows = $db->get_view("app", "byName")->rows;
$nametoid = Array(); $nametoid = Array();
$sums = Array(); $sums = Array();
foreach ($rows as $row) { foreach ($rows as $row) {
$nametoid[trim($row->key)] = $row->value; $nametoid[trim($row->key)] = $row->value;
} }
$employeeCSVs = Array("2002-2003" => "0203apsemployees.csv", $employeeCSVs = Array("2002-2003" => "0203apsemployees.csv",
"2003-2004" => "0304apsemployees.csv", "2003-2004" => "0304apsemployees.csv",
"2004-2005" => "0405apsemployees.csv", "2004-2005" => "0405apsemployees.csv",
"2005-2006" => "0506apsemployees.csv", "2005-2006" => "0506apsemployees.csv",
"2006-2007" => "0607apsemployees.csv", "2006-2007" => "0607apsemployees.csv",
"2007-2008" => "0708apsemployees.csv", "2007-2008" => "0708apsemployees.csv",
"2008-2009" => "0809apsemployees.csv", "2008-2009" => "0809apsemployees.csv",
"2009-2010" => "0910apsemployees.csv", "2009-2010" => "0910apsemployees.csv",
"2010-2011" => "1011apsemployees.csv" "2010-2011" => "1011apsemployees.csv"
); );
foreach ($employeeCSVs as $timePeriod => $employeeCSV) { foreach ($employeeCSVs as $timePeriod => $employeeCSV) {
echo $employeeCSV . "<br>" . PHP_EOL; echo $employeeCSV . "<br>" . PHP_EOL;
$row = 1; $row = 1;
if (($handle = fopen($employeeCSV, "r")) !== FALSE) { if (($handle = fopen($employeeCSV, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
//print_r($data); //print_r($data);
$name = trim($data[0]); $name = trim($data[0]);
if (isset($nametoid[$name])) { if (isset($nametoid[$name])) {
$id = $nametoid[$name]; $id = $nametoid[$name];
//echo $id . "<br>" . PHP_EOL; //echo $id . "<br>" . PHP_EOL;
@$sums[$id][$timePeriod] += $data[1]; @$sums[$id][$timePeriod] += $data[1];
} else { } else {
echo "<br>ERROR NAME MISSING FROM ID LIST<br><bR>" . PHP_EOL; echo "<br>ERROR NAME MISSING FROM ID LIST<br><bR>" . PHP_EOL;
   
die(); die();
   
} }
} }
fclose($handle); fclose($handle);
} }
} }
foreach ($sums as $id => $sum) { foreach ($sums as $id => $sum) {
echo $id. "<br>" . PHP_EOL; echo $id . "<br>" . PHP_EOL;
$doc = $db->get($id); $doc = $db->get($id);
// print_r($doc); echo $doc->name . "<br>" . PHP_EOL;
if (isset($doc->statistics)) $doc->statistics = Array(); // print_r($doc);
  $changed = false;
  if (!isset($doc->statistics)) {
  $changed = true;
  $doc->statistics = Array();
  }
foreach ($sum as $timePeriod => $value) { foreach ($sum as $timePeriod => $value) {
$doc->statistics["employees"][$timePeriod] = Array("value"=>$value, "source"=>"http://apsc.gov.au/stateoftheservice/"); if (!isset($doc->statistics->employees->$timePeriod->value)
  || $doc->statistics->employees->$timePeriod->value != $value) {
  $changed = true;
  $doc->statistics["employees"][$timePeriod] = Array("value" => $value, "source" => "http://apsc.gov.au/stateoftheservice/");
  }
} }
$db->save($doc); if ($changed) {
  $db->save($doc);
  } else {
  echo "not changed" . "<br>" . PHP_EOL;
  }
} }
// employees: timeperiod, source = apsc state of service, value // employees: timeperiod, source = apsc state of service, value
?> ?>
   
<?php <?php
   
require_once '../include/common.inc.php'; require_once '../include/common.inc.php';
require($basePath.'lib/phpquery/phpQuery/phpQuery.php'); require($basePath . 'lib/phpquery/phpQuery/phpQuery.php');
   
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
$rows = $db->get_view("app", "byName")->rows; $rows = $db->get_view("app", "byName")->rows;
$nametoid = Array(); $nametoid = Array();
$accounts = Array(); $accounts = Array();
foreach ($rows as $row) { foreach ($rows as $row) {
$nametoid[trim($row->key)] = $row->value; $nametoid[trim($row->key)] = $row->value;
} }
   
function extractHTMLAccounts($url, $accountType) { function extractHTMLAccounts($url, $accountType) {
global $accounts, $nametoid; global $accounts, $nametoid;
$request = Requests::get($url); $request = Requests::get($url);
$doc = phpQuery::newDocumentHTML($request->body); $doc = phpQuery::newDocumentHTML($request->body);
phpQuery::selectDocument($doc); phpQuery::selectDocument($doc);
foreach (pq('tr')->elements as $tr) { foreach (pq('tr')->elements as $tr) {
//echo $tr->nodeValue.PHP_EOL; //echo $tr->nodeValue.PHP_EOL;
$agency = ""; $agency = "";
$url = ""; $url = "";
foreach ($tr->childNodes as $td) { foreach ($tr->childNodes as $td) {
$class = $td->getAttribute("class"); $class = $td->getAttribute("class");
//echo "cccc $class ".$td->nodeValue.PHP_EOL; //echo "cccc $class ".$td->nodeValue.PHP_EOL;
if ($class == "s11" || $class == "s10" || $class == "s7") { if ($class == "s11" || $class == "s10" || $class == "s7") {
$agency = $td->nodeValue; $agency = $td->nodeValue;
} else if ($class == "s6" || $class == "s9"){ } else if ($class == "s6" || $class == "s9") {
$url = $td->nodeValue; $url = $td->nodeValue;
foreach($td->childNodes as $a) { foreach ($td->childNodes as $a) {
$href = $a->getAttribute("href"); $href = $a->getAttribute("href");
if ($href != "") { if ($href != "") {
$url = $href; $url = $href;
}  
}  
}  
}  
if ($agency != "" && $url != "") {  
if (!in_array(trim($agency), array_keys($nametoid))) {  
echo trim($agency)." missing" . PHP_EOL;  
} else {  
// echo $agency." = ".$url.PHP_EOL;  
$accounts[$nametoid[trim($agency)]][$accountType][] = $url;  
} }
  }
} }
  }
  if ($agency != "" && $url != "") {
  if (!in_array(trim($agency), array_keys($nametoid))) {
  echo trim($agency) . " missing" . PHP_EOL;
  } else {
  // echo $agency." = ".$url.PHP_EOL;
  $accounts[$nametoid[trim($agency)]][$accountType][] = $url;
  }
  }
} }
   
} }
   
function extractCSVAccounts($url, $accountType, $nameField, $accountField, $filter) { function extractCSVAccounts($url, $accountType, $nameField, $accountField, $filter) {
global $accounts, $nametoid; global $accounts, $nametoid;
$request = Requests::get($url); $request = Requests::get($url);
$Data = str_getcsv($request->body, "\n"); //parse the rows $Data = str_getcsv($request->body, "\n"); //parse the rows
$headers = Array(); $headers = Array();
foreach ($Data as $num => $line) { foreach ($Data as $num => $line) {
$Row = str_getcsv($line, ",",'"'); $Row = str_getcsv($line, ",", '"');
if ($num == 0) { if ($num == 0) {
} else if ($num == 1) { } else if ($num == 1) {
$headers = $Row; $headers = $Row;
//print_r($headers); //print_r($headers);
} else { } else {
if (isset($Row[array_search($nameField, $headers)])) { if (isset($Row[array_search($nameField, $headers)])) {
$agencyName = $Row[array_search($nameField, $headers)]; $agencyName = $Row[array_search($nameField, $headers)];
if (!$filter || $Row[array_search("State", $headers)] == "NAT") { if (!$filter || $Row[array_search("State", $headers)] == "NAT") {
if (!in_array(trim($agencyName), array_keys($nametoid))) { if (!in_array(trim($agencyName), array_keys($nametoid))) {
echo trim($agencyName)." missing" . PHP_EOL; echo trim($agencyName) . " missing" . PHP_EOL;
} else { } else {
// echo $Row[array_search($nameField, $headers)] . PHP_EOL; // echo $Row[array_search($nameField, $headers)] . PHP_EOL;
$accounts[$nametoid[trim($agencyName)]][$accountType][] = $Row[array_search($accountField, $headers)]; $accounts[$nametoid[trim($agencyName)]][$accountType][] = $Row[array_search($accountField, $headers)];
} }
} }
} else { } else {
//echo "error finding agency" . $line . PHP_EOL; //echo "error finding agency" . $line . PHP_EOL;
} }
} }
} }
} }
   
// http://agimo.govspace.gov.au/page/gov2register/ // http://agimo.govspace.gov.au/page/gov2register/
// twitter // twitter
extractCSVAccounts("https://docs.google.com/spreadsheet/pub?key=0Ap1exl80wB8OdHNKVmQ5RVlvQWpibDAxNHkzcU1nV2c&single=true&gid=0&output=csv", "Twitter", "Agency/Body/Event", "", true); extractCSVAccounts("https://docs.google.com/spreadsheet/pub?key=0Ap1exl80wB8OdHNKVmQ5RVlvQWpibDAxNHkzcU1nV2c&single=true&gid=0&output=csv", "Twitter", "Agency/Body/Event", "", true);
// RSS // RSS
extractHTMLAccounts("https://docs.google.com/spreadsheet/pub?hl=en_GB&hl=en_GB&key=0Ah41IAK0HzSTdGJxandJREhLSGlWWUZfZ2xKOTNHZ0E&output=html", "RSS"); extractHTMLAccounts("https://docs.google.com/spreadsheet/pub?hl=en_GB&hl=en_GB&key=0Ah41IAK0HzSTdGJxandJREhLSGlWWUZfZ2xKOTNHZ0E&output=html", "RSS");
// facebook // facebook
extractHTMLAccounts("https://docs.google.com/spreadsheet/pub?hl=en_GB&hl=en_GB&key=0Ah41IAK0HzSTdGtjcW9vOXdyZ3pOV21vQU51VmhzQnc&single=true&gid=0&output=html", "Facebook"); extractHTMLAccounts("https://docs.google.com/spreadsheet/pub?hl=en_GB&hl=en_GB&key=0Ah41IAK0HzSTdGtjcW9vOXdyZ3pOV21vQU51VmhzQnc&single=true&gid=0&output=html", "Facebook");
  foreach ($accounts as $id => $accountTypes) {
  echo $id . "<br>" . PHP_EOL;
  $doc = object_to_array($db->get($id));
  // print_r($doc);
   
  foreach ($accountTypes as $accountType => $accounts) {
  if (!isset($doc["has" . $accountType]) || !is_array($doc["has" . $accountType])) {
  $doc["has" . $accountType] = Array();
  }
  $doc["has" . $accountType] = array_unique(array_merge($doc["has" . $accountType], $accounts));
  }
  $db->save($doc);
  }
?> ?>
   
  <?php
 
  require_once '../include/common.inc.php';
 
  $db = $server->get_db('disclosr-agencies');
  $rows = $db->get_view("app", "byName")->rows;
  $nametoid = Array();
  $accounts = Array();
  foreach ($rows as $row) {
  $nametoid[trim($row->key)] = $row->value;
  }
 
  function extractCSVAccounts($url, $nameField, $accountField, $filter) {
  global $accounts, $nametoid;
  $request = Requests::get($url);
  echo $url;
  $Data = str_getcsv($request->body, "\n"); //parse the rows
  $headers = Array();
  foreach ($Data as $num => $line) {
  $Row = str_getcsv($line, ",");
  if ($num == 0) {
  $headers = $Row;
  print_r($headers);
  } else {
  if (isset($Row[array_search($nameField, $headers)])) {
  $agencyName = $Row[array_search($nameField, $headers)];
  if (!in_array(trim($agencyName), array_keys($nametoid))) {
  echo "$agencyName missing" . PHP_EOL;
  } else {
  echo $Row[array_search($nameField, $headers)] . PHP_EOL;
  $accounts[$nametoid[trim($agencyName)]]["rtkURLs"][$agencyName] = 'http://www.righttoknow.org.au/body/'.$Row[array_search($accountField, $headers)];
  }
  } else {
  echo "error finding any agency" . $line . PHP_EOL;
  }
  }
  }
  }
 
  extractCSVAccounts("http://www.righttoknow.org.au/body/all-authorities.csv","Agency","URL name");
  print_r($accounts);
  /* foreach ($accounts as $id => $accountTypes) {
  echo $id . "<br>" . PHP_EOL;
  $doc = object_to_array($db->get($id));
  // print_r($doc);
 
  foreach ($accountTypes as $accountType => $accounts) {
  if (!isset($doc["has" . $accountType]) || !is_array($doc["has" . $accountType])) {
  $doc["has" . $accountType] = Array();
  }
  $doc["has" . $accountType] = array_unique(array_merge($doc["has" . $accountType], $accounts));
  }
  $db->save($doc);
  }*/
  ?>
 
file:b/admin/metadata.py (new)
  #http://packages.python.org/CouchDB/client.html
  import couchdb
  from BeautifulSoup import BeautifulSoup
 
  couch = couchdb.Server('http://127.0.0.1:5984/')
 
  # select database
  docsdb = couch['disclosr-documents']
 
  for row in docsdb.view('app/getMetadataExtractRequired'):
  print row.id
  html = docsdb.get_attachment(row.id,row.value.iterkeys().next()).read()
  metadata = []
  # http://www.crummy.com/software/BeautifulSoup/documentation.html
  soup = BeautifulSoup(html)
  metatags = soup.meta
  for metatag in metatags:
  print metatag['name']
  doc = docsdb.get(row.id)
  //doc['metadata'] = metadata
  //docsdb.save(doc)
 
 
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <title>Demo of the tree layout in D3.js</title>
  <!-- source: http://blog.pixelingene.com/demos/d3_tree/
  http://javadude.wordpress.com/2012/06/20/d3-js-from-tree-to-cluster-and-radial-projection/
  http://bl.ocks.org/1249394-->
  <style>
  g.node {
  font-family: Verdana, Helvetica;
  font-size: 12px;
  font-weight: bold;
  }
  circle.node-dot {
  fill: lightsalmon;
  stroke: red;
  stroke-width: 1px;
  }
 
  path.link {
  fill: none;
  stroke: gray;
  }
 
  </style>
  </head>
  <body>
 
  <div id="tree-container"></div>
  <div id="viz"></div>
 
  <script type="text/javascript" src="../js/jquery-1.6.2.min.js"></script>
  <script type="text/javascript" src="../js/d3.min.js"></script>
  <script type="text/javascript" src="../js/d3.layout.min.js"></script>
 
  <script>
  /**
  * Created by JetBrains RubyMine.
  * User: pavanpodila
  * Date: 7/17/11
  * Time: 4:30 PM
  * To change this template use File | Settings | File Templates.
  */
 
  var treeData =
  <?php
  // $json = file_get_children('naa-agift.json');
  // $raw = json_decode($json);
  // echo $json;
  // print_r($raw);
  $raw = json_decode('[
  "Home",
  "index.htm",
  [
  "BUSINESS SUPPORT AND REGULATION",
  "000411.htm",
  [
  "Association registration",
  "000396.htm"
  ],
  [
  "Business process auditing",
  "000413.htm"
  ],
  [
  "Business registration and licensing",
  "000414.htm"
  ],
  [
  "Business sponsorship",
  "001371.htm"
  ],
  [
  "Consumer protection",
  "000439.htm"
  ],
  [
  "Fair trading compliance",
  "000482.htm",
  [
  "Prices surveillance",
  "000533.htm"
  ],
  [
  "Product safety",
  "000534.htm"
  ],
  [
  "Trade practices compliance",
  "000583.htm"
  ]
  ],
  [
  "Financial institutions regulation",
  "000485.htm"
  ],
  [
  "Government procurement regulation",
  "000491.htm"
  ],
  [
  "Industry assistance schemes",
  "000499.htm"
  ],
  [
  "Industry development",
  "000500.htm"
  ],
  [
  "Insurance regulation",
  "000501.htm",
  [
  "General insurance",
  "000489.htm"
  ],
  [
  "Life insurance",
  "000505.htm"
  ]
  ],
  [
  "Professional accreditation",
  "000535.htm"
  ],
  [
  "Small business services",
  "000565.htm",
  [
  "Small business advocacy",
  "000563.htm"
  ],
  [
  "Small business development",
  "000564.htm"
  ]
  ],
  [
  "Stock market regulation",
  "000572.htm"
  ]
  ],
  [
  "CIVIC INFRASTRUCTURE",
  "000424.htm",
  [
  "Civic management",
  "000425.htm",
  [
  "Architectural services",
  "000387.htm"
  ],
  [
  "Building approval services",
  "000406.htm"
  ],
  [
  "Building regulations and standards",
  "000408.htm"
  ],
  [
  "Engineering services",
  "000477.htm"
  ],
  [
  "Town planning",
  "000582.htm"
  ]
  ],
  [
  "Energy supply",
  "000476.htm"
  ],
  [
  "Integrated services planning",
  "000503.htm"
  ],
  [
  "Public housing",
  "000536.htm",
  [
  "Public housing construction",
  "000537.htm"
  ],
  [
  "Public housing design",
  "000538.htm"
  ],
  [
  "Public housing maintenance",
  "000540.htm"
  ]
  ],
  [
  "Public land management",
  "000541.htm",
  [
  "Burial ground management",
  "000410.htm"
  ],
  [
  "Cultural centre management",
  "000444.htm"
  ],
  [
  "Garden management",
  "000488.htm"
  ],
  [
  "Memorial maintenance",
  "000509.htm"
  ],
  [
  "Recreational park management",
  "000549.htm"
  ],
  [
  "Sporting facilities management",
  "000571.htm"
  ]
  ],
  [
  "Regional development",
  "000552.htm"
  ],
  [
  "Transport network maintenance",
  "000586.htm"
  ],
  [
  "Waste management",
  "001349.htm"
  ]
  ],
  [
  "COMMUNICATIONS",
  "000433.htm",
  [
  "Advertising standards",
  "000381.htm"
  ],
  [
  "Broadcasting",
  "000403.htm",
  [
  "Broadcasting standards",
  "000404.htm"
  ],
  [
  "Radio broadcasting",
  "000546.htm"
  ],
  [
  "Television broadcasting",
  "000580.htm"
  ]
  ],
  [
  "Call centre administration",
  "000417.htm"
  ],
  [
  "Electronic commerce",
  "000468.htm",
  [
  "Authentication",
  "000399.htm"
  ],
  [
  "Online transaction standards",
  "000526.htm"
  ]
  ],
  [
  "Government media",
  "000490.htm"
  ],
  [
  "Information management standards",
  "000283.htm",
  [
  "Data management",
  "000448.htm"
  ],
  [
  "Information dissemination",
  "000502.htm"
  ],
  [
  "Information technology standards",
  "000282.htm"
  ]
  ],
  [
  "Media ownership regulation",
  "000508.htm"
  ],
  [
  "Postal services",
  "000530.htm",
  [
  "Courier services",
  "000441.htm"
  ],
  [
  "Electronic postal services",
  "000469.htm"
  ],
  [
  "Retail postal services",
  "000554.htm"
  ]
  ],
  [
  "Publishing",
  "000543.htm",
  [
  "Electronic publishing",
  "000470.htm"
  ],
  [
  "Publishing standards",
  "000544.htm"
  ],
  [
  "Website development",
  "000591.htm"
  ]
  ],
  [
  "Radio communication",
  "000547.htm",
  [
  "Apparatus licensing",
  "000385.htm"
  ],
  [
  "Spectrum management",
  "000570.htm"
  ]
  ],
  [
  "Satellite communication",
  "000560.htm"
  ],
  [
  "Telecommunications",
  "000578.htm",
  [
  "Carriage service providers",
  "000420.htm"
  ],
  [
  "Carrier licensing",
  "000421.htm"
  ],
  [
  "Equipment licensing",
  "000480.htm"
  ],
  [
  "Mobile telephone services",
  "000516.htm"
  ],
  [
  "Telephone services",
  "000579.htm"
  ]
  ]
  ],
  [
  "COMMUNITY SERVICES",
  "000435.htm",
  [
  "Accommodation services",
  "000377.htm",
  [
  "Defence housing",
  "000458.htm"
  ],
  [
  "Emergency accommodation",
  "000471.htm"
  ],
  [
  "Public housing entitlements",
  "000539.htm"
  ],
  [
  "Refuge support",
  "000551.htm"
  ]
  ],
  [
  "Community support",
  "000436.htm",
  [
  "Adoption services",
  "000378.htm"
  ],
  [
  "Aged care services",
  "000382.htm"
  ],
  [
  "Child and youth support",
  "000422.htm"
  ],
  [
  "Child-care services",
  "000423.htm"
  ],
  [
  "Defence community programs",
  "000452.htm"
  ],
  [
  "Family reunion programs",
  "000483.htm"
  ],
  [
  "Veterans\" entitlements",
  "000587.htm"
  ]
  ],
  [
  "Counselling services",
  "000440.htm"
  ],
  [
  "Emergency services",
  "000474.htm",
  [
  "Ambulance services",
  "000384.htm"
  ],
  [
  "Emergency funding",
  "000472.htm"
  ],
  [
  "Firefighting services",
  "000487.htm"
  ]
  ],
  [
  "Financial assistance",
  "000484.htm",
  [
  "Benefits",
  "000402.htm"
  ],
  [
  "Income support schemes",
  "000494.htm"
  ]
  ],
  [
  "Natural disasters",
  "000521.htm",
  [
  "Disaster recovery",
  "000462.htm"
  ],
  [
  "Disaster relief",
  "000463.htm"
  ]
  ],
  [
  "Rural community development",
  "000557.htm"
  ],
  [
  "Social justice and equity",
  "000566.htm"
  ],
  [
  "Transport access schemes",
  "000901.htm"
  ]
  ],
  [
  "CULTURAL AFFAIRS",
  "000442.htm",
  [
  "Arts development",
  "000391.htm",
  [
  "Arts funding",
  "000393.htm"
  ],
  [
  "Arts incentive schemes",
  "000394.htm"
  ],
  [
  "Arts promotion",
  "000395.htm"
  ]
  ],
  [
  "Collection access",
  "000427.htm",
  [
  "Descriptive standards",
  "000461.htm"
  ],
  [
  "Finding aids development",
  "000486.htm"
  ],
  [
  "Reference services",
  "000550.htm"
  ]
  ],
  [
  "Collection management",
  "000430.htm",
  [
  "Artefact export regulation",
  "000390.htm"
  ],
  [
  "Collection accessioning",
  "000428.htm"
  ],
  [
  "Collection acquisition",
  "000429.htm"
  ],
  [
  "Collection storage",
  "000432.htm"
  ],
  [
  "Preservation services",
  "000532.htm"
  ]
  ],
  [
  "Collection promotion",
  "000431.htm",
  [
  "Exhibition programs",
  "000481.htm"
  ],
  [
  "Publicity programs",
  "000542.htm"
  ]
  ],
  [
  "Cultural awards and scholarships",
  "000443.htm"
  ],
  [
  "Cultural festivals",
  "000445.htm"
  ],
  [
  "Cultural gifts programs",
  "000446.htm"
  ],
  [
  "Multicultural heritage promotion",
  "000518.htm",
  [
  "Multicultural festivals",
  "000517.htm"
  ],
  [
  "Multicultural services",
  "000519.htm"
  ]
  ]
  ],
  [
  "DEFENCE",
  "000449.htm",
  [
  "Australian Defence Forces",
  "000397.htm",
  [
  "Air Force",
  "002266.htm"
  ],
  [
  "Army",
  "000388.htm"
  ],
  [
  "Badges and insignia",
  "000401.htm"
  ],
  [
  "Cadets",
  "000416.htm"
  ],
  [
  "Defence force commands",
  "000456.htm"
  ],
  [
  "Military bands",
  "000510.htm"
  ],
  [
  "Navy",
  "000524.htm"
  ],
  [
  "Reserves",
  "000553.htm"
  ],
  [
  "Roulettes",
  "000556.htm"
  ]
  ],
  [
  "Defence estate management",
  "000454.htm"
  ],
  [
  "Defence force careers",
  "000455.htm",
  [
  "Defence career development",
  "000450.htm"
  ],
  [
  "Military employment services",
  "000512.htm"
  ]
  ],
  [
  "Defence strategic development",
  "000574.htm",
  [
  "Defence efficiency review",
  "000453.htm"
  ],
  [
  "Defence reform program",
  "000460.htm"
  ]
  ],
  [
  "Defence strategic policy",
  "000576.htm",
  [
  "Strategic decisions",
  "000573.htm"
  ],
  [
  "Strategic planning",
  "000575.htm"
  ]
  ],
  [
  "Defence strategic support",
  "000577.htm",
  [
  "Capital equipment programs",
  "000419.htm"
  ],
  [
  "Defence industry",
  "000459.htm"
  ],
  [
  "Defence science and technology",
  "000905.htm"
  ],
  [
  "Logistics",
  "000506.htm"
  ]
  ],
  [
  "Emergency management",
  "000473.htm",
  [
  "Civil community assistance",
  "000426.htm"
  ],
  [
  "Disaster support",
  "000464.htm"
  ]
  ],
  [
  "Military law",
  "001814.htm"
  ],
  [
  "Military operations",
  "000515.htm",
  [
  "Australian theatre of war",
  "000398.htm"
  ],
  [
  "Military exercises",
  "000514.htm"
  ],
  [
  "Special operations",
  "000569.htm"
  ],
  [
  "Warfare",
  "000589.htm"
  ]
  ]
  ],
  [
  "EDUCATION AND TRAINING",
  "000467.htm",
  [
  "Arts education",
  "000392.htm"
  ],
  [
  "Community education",
  "000434.htm",
  [
  "Adult education programs",
  "000379.htm"
  ],
  [
  "Adult migrant education",
  "000380.htm"
  ],
  [
  "Road safety awareness",
  "000555.htm"
  ]
  ],
  [
  "Curriculum development",
  "000447.htm"
  ],
  [
  "Early childhood education",
  "000466.htm"
  ],
  [
  "Military education and training",
  "000511.htm",
  [
  "Army reserve training",
  "000389.htm"
  ],
  [
  "Defence college training",
  "000451.htm"
  ]
  ],
  [
  "Overseas skills recognition",
  "000527.htm"
  ],
  [
  "School education",
  "000561.htm",
  [
  "Discipline programs",
  "000465.htm"
  ],
  [
  "School transport regulation",
  "000562.htm"
  ],
  [
  "Special needs programs",
  "000568.htm"
  ]
  ],
  [
  "Tertiary education",
  "000581.htm"
  ],
  [
  "Vocational education",
  "000588.htm",
  [
  "Apprenticeship programs",
  "000386.htm"
  ],
  [
  "Hospital teaching programs",
  "000493.htm"
  ],
  [
  "Trainee programs",
  "000584.htm"
  ],
  [
  "Workplace training",
  "000595.htm"
  ]
  ]
  ],
  [
  "EMPLOYMENT",
  "000016.htm",
  [
  "Human resources development",
  "000348.htm",
  [
  "Occupational health and safety",
  "000355.htm"
  ],
  [
  "Recruitment programs",
  "000356.htm"
  ],
  [
  "Termination processes",
  "002103.htm"
  ],
  [
  "Workers compensation schemes",
  "000363.htm"
  ],
  [
  "Workplace discrimination monitoring",
  "000364.htm"
  ],
  [
  "Workplace equity and justice programs",
  "000365.htm"
  ]
  ],
  [
  "Industrial awards and conditions",
  "000349.htm",
  [
  "Award conditions",
  "000366.htm"
  ],
  [
  "Remuneration review",
  "000368.htm"
  ]
  ],
  [
  "Labour market programs",
  "000347.htm",
  [
  "Employment services marketing",
  "000351.htm"
  ],
  [
  "Job placement programs",
  "000352.htm"
  ],
  [
  "Job vacancy data management",
  "000353.htm"
  ]
  ],
  [
  "Workplace agreement processes",
  "000350.htm",
  [
  "Agreement bargaining processes",
  "002141.htm"
  ],
  [
  "Agreement dispute mediation",
  "000370.htm"
  ],
  [
  "Certified employment conditions",
  "000371.htm"
  ],
  [
  "Employment advocacy services",
  "000374.htm"
  ]
  ]
  ],
  [
  "ENVIRONMENT",
  "000478.htm",
  [
  "Built environment",
  "000409.htm",
  [
  "Building acoustics",
  "000405.htm"
  ],
  [
  "Building preservation",
  "000407.htm"
  ]
  ],
  [
  "Climate information services",
  "000203.htm"
  ],
  [
  "Conservation programs",
  "000438.htm",
  [
  "Endangered species protection",
  "000475.htm"
  ],
  [
  "Landcare programs",
  "000504.htm"
  ],
  [
  "Soil preservation programs",
  "000567.htm"
  ]
  ],
  [
  "Environmental impact assessment",
  "000479.htm"
  ],
  [
  "Historic relic protection",
  "000492.htm"
  ],
  [
  "Marine life protection programs",
  "000507.htm"
  ],
  [
  "Natural heritage protection",
  "000522.htm",
  [
  "National park management",
  "000520.htm"
  ],
  [
  "Nature reserve management",
  "000523.htm"
  ],
  [
  "Wilderness area management",
  "000593.htm"
  ],
  [
  "Wildlife sanctuary management",
  "000594.htm"
  ]
  ],
  [
  "Oceans governance",
  "000525.htm"
  ],
  [
  "Pollutant prevention programs",
  "000529.htm"
  ],
  [
  "World heritage listings",
  "000596.htm"
  ]
  ],
  [
  "FINANCE MANAGEMENT",
  "000001.htm",
  [
  "Commonwealth State funding",
  "000017.htm"
  ],
  [
  "Currency",
  "000018.htm",
  [
  "Counterfeiting control",
  "000027.htm"
  ]
  ],
  [
  "Financial investment",
  "000021.htm",
  [
  "Investment scheme regulation",
  "000031.htm"
  ]
  ],
  [
  "Financial system management",
  "002302.htm",
  [
  "Financial system monitoring",
  "002306.htm"
  ],
  [
  "Payments management",
  "002297.htm"
  ]
  ],
  [
  "Fiscal policy",
  "000022.htm",
  [
  "Public borrowing",
  "000032.htm"
  ],
  [
  "Public debt",
  "000033.htm"
  ],
  [
  "Public expenditure",
  "000034.htm"
  ]
  ],
  [
  "Foreign investment control",
  "000030.htm"
  ],
  [
  "International monetary regulation",
  "000023.htm"
  ],
  [
  "Monetary policy",
  "000020.htm",
  [
  "Exchange rates",
  "000028.htm"
  ],
  [
  "Inflation",
  "000029.htm"
  ],
  [
  "Interest rates",
  "002295.htm"
  ]
  ],
  [
  "Resource management",
  "000024.htm",
  [
  "Contract management",
  "000037.htm"
  ],
  [
  "Financial administration",
  "000035.htm"
  ],
  [
  "Financial budgeting",
  "000036.htm"
  ]
  ],
  [
  "Retirement income",
  "000025.htm",
  [
  "Asset assessment",
  "000038.htm"
  ],
  [
  "Retirement saving",
  "000039.htm"
  ],
  [
  "Superannuation regulation",
  "000040.htm"
  ]
  ],
  [
  "Statistical analysis",
  "000019.htm"
  ],
  [
  "Taxation",
  "000026.htm",
  [
  "Income assessment",
  "000041.htm"
  ],
  [
  "Revenue raising",
  "000042.htm"
  ],
  [
  "Taxation compliance",
  "000043.htm"
  ]
  ]
  ],
  [
  "GOVERNANCE",
  "000002.htm",
  [
  "Civic celebrations",
  "000046.htm"
  ],
  [
  "Constitutional matters",
  "000048.htm",
  [
  "Constitutional conventions",
  "000061.htm"
  ],
  [
  "Constitutional referenda",
  "000062.htm"
  ]
  ],
  [
  "Electoral matters",
  "000049.htm",
  [
  "Declaration of interests",
  "000063.htm"
  ],
  [
  "Election campaigning",
  "000064.htm"
  ],
  [
  "Electoral boundary assessment",
  "000065.htm"
  ]
  ],
  [
  "Honours and awards programs",
  "000050.htm"
  ],
  [
  "Intergovernmental relations",
  "000052.htm",
  [
  "Cross-border cooperation",
  "000067.htm"
  ],
  [
  "Intergovernment policy dissemination",
  "000069.htm"
  ]
  ],
  [
  "Legislative drafting",
  "000053.htm",
  [
  "Draft Bill amendment process",
  "000070.htm"
  ],
  [
  "Legislation review",
  "000071.htm"
  ],
  [
  "Preparation of legislative regulations",
  "000072.htm"
  ]
  ],
  [
  "Official protocol",
  "000054.htm",
  [
  "Ceremonial events and representation",
  "000073.htm"
  ],
  [
  "Head of Government protocol",
  "000074.htm"
  ],
  [
  "Official establishment management",
  "000075.htm"
  ],
  [
  "Official hospitality",
  "000076.htm"
  ],
  [
  "Official visits",
  "000077.htm"
  ]
  ],
  [
  "Parliamentary chamber support",
  "000045.htm",
  [
  "Hansard services",
  "000058.htm"
  ],
  [
  "Parliamentary papers",
  "000059.htm"
  ],
  [
  "Tabling of official documents",
  "000060.htm"
  ]
  ],
  [
  "Parliamentary committee and member support",
  "000047.htm"
  ],
  [
  "Population census",
  "000044.htm",
  [
  "Demographic surveys",
  "000055.htm"
  ],
  [
  "Household census",
  "000056.htm"
  ],
  [
  "Population distribution analysis",
  "000057.htm"
  ]
  ],
  [
  "Public administration",
  "002290.htm",
  [
  "Government auditing",
  "002291.htm"
  ],
  [
  "Public service",
  "002292.htm"
  ],
  [
  "Territories administration",
  "002293.htm"
  ]
  ],
  [
  "Statistics",
  "002289.htm"
  ]
  ],
  [
  "HEALTH CARE",
  "000003.htm",
  [
  "Community health services",
  "000078.htm",
  [
  "Clinical health services",
  "000087.htm"
  ],
  [
  "Health promotion",
  "000089.htm"
  ],
  [
  "Primary health care",
  "000090.htm"
  ]
  ],
  [
  "Health insurance schemes",
  "000079.htm"
  ],
  [
  "Health protocol administration",
  "000080.htm",
  [
  "Drugs and poisons regulation",
  "000091.htm"
  ],
  [
  "Food hygiene regulation",
  "000092.htm"
  ],
  [
  "Practitioner discipline",
  "000093.htm"
  ],
  [
  "Practitioner registration",
  "000095.htm"
  ]
  ],
  [
  "Hospital services",
  "000081.htm",
  [
  "Hospital administration",
  "000096.htm"
  ],
  [
  "Patient care",
  "000097.htm"
  ],
  [
  "Pharmaceutical and drug support",
  "000098.htm"
  ]
  ],
  [
  "Medical research",
  "000083.htm",
  [
  "Ethical compliance",
  "000099.htm"
  ],
  [
  "Medical aids regulation",
  "000100.htm"
  ],
  [
  "Medical research funding",
  "000101.htm"
  ],
  [
  "National referral laboratory services",
  "000102.htm"
  ],
  [
  "Population-based research",
  "000103.htm"
  ]
  ],
  [
  "Public health services",
  "000084.htm",
  [
  "Epidemiology",
  "000104.htm"
  ],
  [
  "Health disaster preparedness",
  "000106.htm"
  ],
  [
  "Health hazard prevention",
  "000105.htm"
  ],
  [
  "Medical quarantine services",
  "000108.htm"
  ],
  [
  "Notifiable disease management",
  "000109.htm"
  ]
  ],
  [
  "Special needs services",
  "000085.htm",
  [
  "Dental health services",
  "000111.htm"
  ],
  [
  "Independent living services",
  "000112.htm"
  ],
  [
  "Mental health services",
  "000113.htm"
  ],
  [
  "Residential services",
  "000114.htm"
  ]
  ],
  [
  "Veterans\" health services",
  "000086.htm"
  ]
  ],
  [
  "IMMIGRATION",
  "000004.htm",
  [
  "Citizenship",
  "000115.htm",
  [
  "Naturalisation assessment",
  "000121.htm"
  ],
  [
  "Presentation arrangements",
  "000122.htm"
  ]
  ],
  [
  "Deportation",
  "000116.htm"
  ],
  [
  "Detention programs",
  "000117.htm"
  ],
  [
  "Migrant services",
  "000118.htm",
  [
  "Interpreter services",
  "000123.htm"
  ],
  [
  "Migrant accommodation services",
  "000125.htm"
  ],
  [
  "Migrant settlement programs",
  "000126.htm"
  ]
  ],
  [
  "Refugee services",
  "000119.htm"
  ],
  [
  "Travel authorisation",
  "000120.htm",
  [
  "Permanent entry arrangements",
  "000127.htm"
  ],
  [
  "Temporary entry arrangements",
  "000128.htm"
  ]
  ]
  ],
  [
  "INDIGENOUS AFFAIRS",
  "002285.htm",
  [
  "Indigenous cultural heritage",
  "000495.htm",
  [
  "Cultural artefact repatriation",
  "001772.htm"
  ]
  ],
  [
  "Indigenous enterprise development",
  "000496.htm"
  ],
  [
  "Indigenous health services",
  "000082.htm"
  ],
  [
  "Indigenous heritage conservation",
  "000497.htm"
  ],
  [
  "Indigenous reconciliation",
  "000051.htm"
  ],
  [
  "Indigenous welfare programs",
  "000498.htm"
  ]
  ],
  [
  "INTERNATIONAL RELATIONS",
  "000005.htm",
  [
  "Consular services",
  "000129.htm"
  ],
  [
  "Defence liaison",
  "000132.htm",
  [
  "Defence attach�s",
  "000140.htm"
  ],
  [
  "Defence cooperation programs",
  "000141.htm"
  ],
  [
  "Defence personnel exchanges",
  "000142.htm"
  ],
  [
  "Military advisors",
  "000143.htm"
  ]
  ],
  [
  "Diplomatic missions",
  "000130.htm"
  ],
  [
  "International affairs",
  "000131.htm",
  [
  "Disarmament and arms control",
  "000137.htm"
  ],
  [
  "Nuclear safeguards",
  "000139.htm"
  ]
  ],
  [
  "International treaties",
  "000133.htm",
  [
  "Treaty administration",
  "001384.htm"
  ]
  ],
  [
  "Overseas aid programs",
  "000134.htm",
  [
  "Development assistance programs",
  "000146.htm"
  ],
  [
  "Overseas student scholarship programs",
  "000147.htm"
  ]
  ],
  [
  "Overseas promotion",
  "000135.htm"
  ],
  [
  "Passport services",
  "000136.htm"
  ]
  ],
  [
  "JUSTICE ADMINISTRATION",
  "000006.htm",
  [
  "Administrative law",
  "000149.htm",
  [
  "Administrative decision appeal",
  "000163.htm"
  ],
  [
  "Administrative decision review",
  "000164.htm"
  ],
  [
  "Censorship standards",
  "000165.htm"
  ],
  [
  "Copyright regulation",
  "000166.htm"
  ],
  [
  "Recordkeeping standards",
  "000167.htm"
  ]
  ],
  [
  "Associations and corporate law",
  "000150.htm",
  [
  "Bankruptcy proceedings",
  "000168.htm"
  ],
  [
  "Merger regulation",
  "000169.htm"
  ]
  ],
  [
  "Civil law",
  "000151.htm",
  [
  "Civil registration",
  "000170.htm"
  ],
  [
  "Conveyancing",
  "000171.htm"
  ],
  [
  "Dispute mediation programs",
  "000174.htm"
  ],
  [
  "Family law proceedings",
  "000172.htm"
  ],
  [
  "Probate applications",
  "000173.htm"
  ]
  ],
  [
  "Commissions of inquiry",
  "000152.htm"
  ],
  [
  "Coronial law",
  "000153.htm"
  ],
  [
  "Court reporting",
  "000154.htm"
  ],
  [
  "Criminal law",
  "000155.htm"
  ],
  [
  "Human rights obligations",
  "000156.htm"
  ],
  [
  "Juvenile justice",
  "000157.htm"
  ],
  [
  "Legal aid services",
  "000158.htm"
  ],
  [
  "Local laws and ordinances",
  "000159.htm"
  ],
  [
  "Native title claims",
  "000160.htm",
  [
  "Native title mediation programs",
  "000180.htm"
  ],
  [
  "Native title settlement negotiations",
  "000181.htm"
  ]
  ],
  [
  "Privacy guideline monitoring",
  "000161.htm"
  ],
  [
  "Prosecution services",
  "000162.htm"
  ]
  ],
  [
  "MARITIME SERVICES",
  "000007.htm",
  [
  "Cargo control",
  "000198.htm"
  ],
  [
  "Harbour management",
  "000183.htm"
  ],
  [
  "Marina management",
  "000184.htm"
  ],
  [
  "Navigation",
  "000185.htm",
  [
  "Charting sea lanes",
  "000191.htm"
  ],
  [
  "Light station maintenance",
  "000192.htm"
  ],
  [
  "Navigation systems development",
  "000193.htm"
  ]
  ],
  [
  "Pilotage management",
  "000182.htm"
  ],
  [
  "Port regulation",
  "001471.htm"
  ],
  [
  "Sea passengers",
  "001487.htm"
  ],
  [
  "Search and rescue",
  "000187.htm",
  [
  "Rescue coordination",
  "000194.htm"
  ],
  [
  "Search technology development",
  "000195.htm"
  ]
  ],
  [
  "Ship personnel",
  "000188.htm",
  [
  "Personnel safety standards",
  "000196.htm"
  ],
  [
  "Pilot licensing",
  "000197.htm"
  ]
  ],
  [
  "Ship safety",
  "000189.htm",
  [
  "Seaworthiness",
  "000201.htm"
  ],
  [
  "Ship commissioning",
  "000199.htm"
  ],
  [
  "Ship inspection",
  "000200.htm"
  ]
  ]
  ],
  [
  "NATURAL RESOURCES",
  "000009.htm",
  [
  "Crown land administration",
  "000218.htm"
  ],
  [
  "Energy resources",
  "001451.htm",
  [
  "Fossil fuel management",
  "000226.htm"
  ],
  [
  "Renewable energy development",
  "000227.htm"
  ]
  ],
  [
  "Land use planning",
  "000220.htm",
  [
  "Land use zoning",
  "001429.htm"
  ]
  ],
  [
  "Land valuation",
  "000222.htm"
  ],
  [
  "Mineral resources",
  "000223.htm",
  [
  "Land rehabilitation programs",
  "000231.htm"
  ],
  [
  "Mining regulations",
  "000232.htm"
  ]
  ],
  [
  "Pollution emission control",
  "000224.htm"
  ],
  [
  "Water resources",
  "000225.htm",
  [
  "Water conservation plans",
  "000233.htm"
  ],
  [
  "Water quality monitoring",
  "000234.htm"
  ],
  [
  "Water usage management",
  "000235.htm"
  ],
  [
  "Waterway management",
  "000236.htm"
  ]
  ]
  ],
  [
  "PRIMARY INDUSTRIES",
  "000008.htm",
  [
  "Chemical and pesticide regulation",
  "000202.htm"
  ],
  [
  "Marine and rural regulation",
  "000204.htm",
  [
  "Agricultural industry",
  "000208.htm"
  ],
  [
  "Fisheries industry",
  "000209.htm"
  ],
  [
  "Food quality assurance",
  "000213.htm"
  ],
  [
  "Forestry industry",
  "000210.htm"
  ]
  ],
  [
  "Marine and rural support",
  "000205.htm",
  [
  "Aquaculture industry",
  "000212.htm"
  ],
  [
  "Horticultural industry",
  "000214.htm"
  ],
  [
  "Pastoral industry",
  "000215.htm"
  ],
  [
  "Silvicultural industry",
  "000216.htm"
  ],
  [
  "Viticultural industry",
  "000217.htm"
  ]
  ],
  [
  "Quarantine",
  "000211.htm"
  ],
  [
  "Rural field day promotion",
  "000206.htm"
  ],
  [
  "Rural partnership programs",
  "000207.htm"
  ]
  ],
  [
  "SCIENCE",
  "000010.htm",
  [
  "Agricultural sciences",
  "000237.htm"
  ],
  [
  "Animal and veterinary sciences",
  "000238.htm"
  ],
  [
  "Applied sciences",
  "000239.htm",
  [
  "Engineering and technology sciences",
  "000246.htm"
  ],
  [
  "Weights and measures standards",
  "000247.htm"
  ]
  ],
  [
  "Biological sciences",
  "000240.htm",
  [
  "Biochemistry",
  "000248.htm"
  ],
  [
  "Biodiversity preservation",
  "000249.htm"
  ],
  [
  "Biotechnology development",
  "000250.htm"
  ],
  [
  "Botany",
  "000251.htm"
  ],
  [
  "Entomology",
  "000252.htm"
  ],
  [
  "Genetic engineering",
  "000253.htm"
  ],
  [
  "Physiology",
  "000254.htm"
  ]
  ],
  [
  "Earth sciences",
  "000241.htm",
  [
  "Atmospheric sciences",
  "000255.htm"
  ],
  [
  "Hydrology",
  "000256.htm"
  ],
  [
  "Mineral exploration",
  "000257.htm"
  ],
  [
  "Oceanography",
  "000258.htm"
  ],
  [
  "Seismology",
  "000259.htm"
  ]
  ],
  [
  "Mathematical sciences",
  "000242.htm"
  ],
  [
  "Medical and health sciences",
  "001229.htm"
  ],
  [
  "Physical sciences",
  "000244.htm",
  [
  "Astronomical sciences",
  "000260.htm"
  ],
  [
  "Atomic and molecular sciences",
  "000261.htm"
  ],
  [
  "Nuclear sciences",
  "000262.htm"
  ]
  ],
  [
  "Spatial information research",
  "000245.htm"
  ]
  ],
  [
  "SECURITY",
  "000011.htm",
  [
  "Corrective services",
  "000263.htm",
  [
  "Community based corrections",
  "000270.htm"
  ],
  [
  "Detention centre management",
  "000271.htm"
  ]
  ],
  [
  "External security",
  "000264.htm",
  [
  "Peacekeeping forces",
  "000273.htm"
  ]
  ],
  [
  "Information security",
  "000265.htm"
  ],
  [
  "Intelligence",
  "000266.htm",
  [
  "Forensic analysis",
  "000275.htm"
  ],
  [
  "Intelligence liaison",
  "001159.htm"
  ],
  [
  "Intelligence support",
  "000277.htm"
  ]
  ],
  [
  "Law enforcement",
  "000267.htm",
  [
  "Community policing",
  "000278.htm"
  ],
  [
  "Criminology",
  "000279.htm"
  ],
  [
  "Police administration",
  "000280.htm"
  ],
  [
  "Protective services",
  "000281.htm"
  ]
  ],
  [
  "National security",
  "001548.htm",
  [
  "Coastal surveillance",
  "000269.htm"
  ]
  ]
  ],
  [
  "SPORT AND RECREATION",
  "000012.htm",
  [
  "Caravan and camping services",
  "000284.htm"
  ],
  [
  "Community recreational programs",
  "000285.htm",
  [
  "Gambling support services",
  "000290.htm"
  ],
  [
  "Public fitness promotion",
  "000291.htm"
  ],
  [
  "Social club support",
  "000292.htm"
  ],
  [
  "Volunteer support programs",
  "000293.htm"
  ]
  ],
  [
  "Gaming industry regulation",
  "000286.htm"
  ],
  [
  "Park and reserve services",
  "000289.htm"
  ],
  [
  "Sport and fitness development",
  "000287.htm",
  [
  "Athlete scholarship programs",
  "000295.htm"
  ],
  [
  "Fundraising and donation schemes",
  "000296.htm"
  ],
  [
  "Games administration",
  "000297.htm"
  ],
  [
  "Games promotion",
  "000298.htm"
  ],
  [
  "Sporting grants administration",
  "000299.htm"
  ]
  ],
  [
  "Sports drugs monitoring",
  "000288.htm",
  [
  "Doping detection research",
  "000300.htm"
  ]
  ]
  ],
  [
  "TOURISM",
  "000013.htm",
  [
  "Tourism industry development",
  "000301.htm"
  ],
  [
  "Tourist event promotion",
  "000302.htm",
  [
  "Advertising campaigns",
  "000305.htm"
  ]
  ],
  [
  "Travel missions",
  "000303.htm"
  ]
  ],
  [
  "TRADE",
  "000014.htm",
  [
  "Export regulation",
  "000311.htm",
  [
  "Export promotion",
  "000320.htm"
  ],
  [
  "Prohibited export control",
  "000321.htm"
  ]
  ],
  [
  "Import regulation",
  "000312.htm",
  [
  "Prohibited import control",
  "000323.htm"
  ],
  [
  "Tariff regulation",
  "000322.htm"
  ]
  ],
  [
  "Intellectual property management",
  "000910.htm",
  [
  "Copyright registration",
  "000308.htm"
  ],
  [
  "Design registration",
  "000310.htm"
  ],
  [
  "Patent registration",
  "000315.htm"
  ],
  [
  "Trademark registration",
  "000318.htm"
  ]
  ],
  [
  "International trade agreements",
  "000313.htm"
  ],
  [
  "Interstate trade agreements",
  "000314.htm"
  ],
  [
  "Trade development programs",
  "000316.htm"
  ],
  [
  "Trade expositions",
  "000317.htm"
  ]
  ],
  [
  "TRANSPORT",
  "000015.htm",
  [
  "Air transport",
  "000324.htm",
  [
  "Air transport safety",
  "000332.htm"
  ],
  [
  "Aircraft standards",
  "000330.htm"
  ],
  [
  "Airport services",
  "000331.htm"
  ]
  ],
  [
  "Freight movement regulation",
  "000325.htm"
  ],
  [
  "Passenger services",
  "000326.htm"
  ],
  [
  "Rail transport",
  "000327.htm",
  [
  "Rail harmonisation standards",
  "000333.htm"
  ],
  [
  "Rail land acquisition regulation",
  "000336.htm"
  ],
  [
  "Rail transport safety",
  "000337.htm"
  ],
  [
  "Railway maintenance",
  "000338.htm"
  ],
  [
  "Rolling stock regulation",
  "000339.htm"
  ]
  ],
  [
  "Road transport",
  "000328.htm",
  [
  "Driving licences administration",
  "000340.htm"
  ],
  [
  "Road surface maintenance",
  "000341.htm"
  ],
  [
  "Road traffic regulation",
  "000342.htm"
  ],
  [
  "Road transport safety",
  "000343.htm"
  ],
  [
  "Vehicle registration",
  "000344.htm"
  ],
  [
  "Vehicle standards",
  "000345.htm"
  ]
  ],
  [
  "Transport infrastructure development",
  "000329.htm"
  ]
  ]
  ]');
  class ArrayUtil
  {
  public static function FilterRecursive(Array $source, $fn)
  {
  $result = array();
  foreach ($source as $key => $value)
  {
  if (is_array($value))
  {
  $result[$key] = self::FilterRecursive($value, $fn);
  continue;
  }
  if ($fn($key, $value))
  {
  $result[$key] = $value; // KEEP
  continue;
  }
  }
  return $result;
  }
  public static function DoRecursive(Array $source)
  {
  $result = array();
  foreach ($source as $key => $value)
  {
  if (is_array($value))
  {
  $result["children"][] = self::DoRecursive($value);
 
  } else {
  $result["name"] = $value; // KEEP
 
  }
  }
  return $result;
  }
  }
 
  // EXAMPLE ANONYMOUS CALLBACK FUNCTION
  $fn = function ($key, $value)
  {
  if (strpos($value, '.htm') !== FALSE)
  {
  return FALSE; // DROP
  }
  return TRUE; // KEEP
  };
 
 
  $postFilter = ArrayUtil::FilterRecursive($raw, $fn);
  $postWrangle = ArrayUtil::DoRecursive($postFilter);
 
  echo json_encode($postWrangle);
  ?>
  ;
  // Create a svg canvas
  var vis = d3.select("#viz").append("svg:svg")
  .attr("width", 1400)
  .attr("height", 1400)
  .append("svg:g")
  .attr("transform", "translate(450, 450)");
 
  // Create a cluster "canvas"
  var cluster = d3.layout.cluster()
  .size([500,500]);
 
  var diagonal = d3.svg.diagonal.radial()
  .projection(function(d) { return [d.y, d.x / 180 * Math.PI]; });
 
  var nodes = cluster.nodes(treeData);
  var links = cluster.links(nodes);
 
  var link = vis.selectAll("pathlink")
  .data(links)
  .enter().append("svg:path")
  .attr("class", "link")
  .attr("d", diagonal)
 
  var node = vis.selectAll("g.node")
  .data(nodes)
  .enter().append("svg:g")
  .attr("transform", function(d) { return "rotate(" + (d.x - 90) + ")translate(" + d.y + ")"; })
 
  // Add the dot at every node
  node.append("svg:circle")
  .attr("r", 3.5);
 
  node.append("svg:text")
  .attr("dx", function(d) { return d.x < 180 ? 8 : -8; })
  .attr("dy", ".31em")
  .attr("text-anchor", function(d) { return d.x < 180 ? "start" : "end"; })
  .attr("transform", function(d) { return d.x < 180 ? null : "rotate(180)"; })
  .text(function(d) { return d.name; });
 
  // alt
 
  function visit(parent, visitFn, childrenFn)
  {
  if (!parent) return;
 
  visitFn(parent);
 
  var children = childrenFn(parent);
  if (children) {
  var count = children.length;
  for (var i = 0; i < count; i++) {
  visit(children[i], visitFn, childrenFn);
  }
  }
  }
 
  function buildTree(containerName, customOptions)
  {
  // build the options object
  var options = $.extend({
  nodeRadius: 5, fontSize: 12
  }, customOptions);
 
 
  // Calculate total nodes, max label length
  var totalNodes = 0;
  var maxLabelLength = 0;
  visit(treeData, function(d)
  {
  totalNodes++;
  maxLabelLength = Math.max(d.name.length, maxLabelLength);
  }, function(d)
  {
  return d.children && d.children.length > 0 ? d.children : null;
  });
 
  // size of the diagram
  var size = { width:$(containerName).outerWidth(), height: totalNodes * 15};
 
  var tree = d3.layout.tree()
  .sort(null)
  .size([size.height, size.width - maxLabelLength*options.fontSize])
  .children(function(d)
  {
  return (!d.children || d.children.length === 0) ? null : d.children;
  });
 
  var nodes = tree.nodes(treeData);
  var links = tree.links(nodes);
 
 
  /*
  <svg>
  <g class="container" />
  </svg>
  */
  var layoutRoot = d3.select(containerName)
  .append("svg:svg").attr("width", size.width).attr("height", size.height)
  .append("svg:g")
  .attr("class", "container")
  .attr("transform", "translate(" + maxLabelLength + ",0)");
 
 
  // Edges between nodes as a <path class="link" />
  var link = d3.svg.diagonal()
  .projection(function(d)
  {
  return [d.y, d.x];
  });
 
 
  layoutRoot.selectAll("path.link")
  .data(links)
  .enter()
  .append("svg:path")
  .attr("class", "link")
  .attr("d", link);
 
 
  /*
  Nodes as
  <g class="node">
  <circle class="node-dot" />
  <text />
  </g>
  */
  var nodeGroup = layoutRoot.selectAll("g.node")
  .data(nodes)
  .enter()
  .append("svg:g")
  .attr("class", "node")
  .attr("transform", function(d)
  {
  return "translate(" + d.y + "," + d.x + ")";
  });
 
  nodeGroup.append("svg:circle")
  .attr("class", "node-dot")
  .attr("r", options.nodeRadius);
 
  nodeGroup.append("svg:text")
  .attr("text-anchor", function(d)
  {
  return d.children ? "end" : "start";
  })
  .attr("dx", function(d)
  {
  var gap = 2 * options.nodeRadius;
  return d.children ? -gap : gap;
  })
  .attr("dy", 3)
  .text(function(d)
  {
  return d.name;
  });
 
  }
  $(function(){
  buildTree("#tree-container");
  });
  </script>
 
 
  </body>
  </html>
 Binary files /dev/null and b/admin/naa-agift.7z differ
  [
  "Home",
  "index.htm",
  [
  "BUSINESS SUPPORT AND REGULATION",
  "000411.htm",
  [
  "Association registration",
  "000396.htm"
  ],
  [
  "Business process auditing",
  "000413.htm"
  ],
  [
  "Business registration and licensing",
  "000414.htm"
  ],
  [
  "Business sponsorship",
  "001371.htm"
  ],
  [
  "Consumer protection",
  "000439.htm"
  ],
  [
  "Fair trading compliance",
  "000482.htm",
  [
  "Prices surveillance",
  "000533.htm"
  ],
  [
  "Product safety",
  "000534.htm"
  ],
  [
  "Trade practices compliance",
  "000583.htm"
  ]
  ],
  [
  "Financial institutions regulation",
  "000485.htm"
  ],
  [
  "Government procurement regulation",
  "000491.htm"
  ],
  [
  "Industry assistance schemes",
  "000499.htm"
  ],
  [
  "Industry development",
  "000500.htm"
  ],
  [
  "Insurance regulation",
  "000501.htm",
  [
  "General insurance",
  "000489.htm"
  ],
  [
  "Life insurance",
  "000505.htm"
  ]
  ],
  [
  "Professional accreditation",
  "000535.htm"
  ],
  [
  "Small business services",
  "000565.htm",
  [
  "Small business advocacy",
  "000563.htm"
  ],
  [
  "Small business development",
  "000564.htm"
  ]
  ],
  [
  "Stock market regulation",
  "000572.htm"
  ]
  ],
  [
  "CIVIC INFRASTRUCTURE",
  "000424.htm",
  [
  "Civic management",
  "000425.htm",
  [
  "Architectural services",
  "000387.htm"
  ],
  [
  "Building approval services",
  "000406.htm"
  ],
  [
  "Building regulations and standards",
  "000408.htm"
  ],
  [
  "Engineering services",
  "000477.htm"
  ],
  [
  "Town planning",
  "000582.htm"
  ]
  ],
  [
  "Energy supply",
  "000476.htm"
  ],
  [
  "Integrated services planning",
  "000503.htm"
  ],
  [
  "Public housing",
  "000536.htm",
  [
  "Public housing construction",
  "000537.htm"
  ],
  [
  "Public housing design",
  "000538.htm"
  ],
  [
  "Public housing maintenance",
  "000540.htm"
  ]
  ],
  [
  "Public land management",
  "000541.htm",
  [
  "Burial ground management",
  "000410.htm"
  ],
  [
  "Cultural centre management",
  "000444.htm"
  ],
  [
  "Garden management",
  "000488.htm"
  ],
  [
  "Memorial maintenance",
  "000509.htm"
  ],
  [
  "Recreational park management",
  "000549.htm"
  ],
  [
  "Sporting facilities management",
  "000571.htm"
  ]
  ],
  [
  "Regional development",
  "000552.htm"
  ],
  [
  "Transport network maintenance",
  "000586.htm"
  ],
  [
  "Waste management",
  "001349.htm"
  ]
  ],
  [
  "COMMUNICATIONS",
  "000433.htm",
  [
  "Advertising standards",
  "000381.htm"
  ],
  [
  "Broadcasting",
  "000403.htm",
  [
  "Broadcasting standards",
  "000404.htm"
  ],
  [
  "Radio broadcasting",
  "000546.htm"
  ],
  [
  "Television broadcasting",
  "000580.htm"
  ]
  ],
  [
  "Call centre administration",
  "000417.htm"
  ],
  [
  "Electronic commerce",
  "000468.htm",
  [
  "Authentication",
  "000399.htm"
  ],
  [
  "Online transaction standards",
  "000526.htm"
  ]
  ],
  [
  "Government media",
  "000490.htm"
  ],
  [
  "Information management standards",
  "000283.htm",
  [
  "Data management",
  "000448.htm"
  ],
  [
  "Information dissemination",
  "000502.htm"
  ],
  [
  "Information technology standards",
  "000282.htm"
  ]
  ],
  [
  "Media ownership regulation",
  "000508.htm"
  ],
  [
  "Postal services",
  "000530.htm",
  [
  "Courier services",
  "000441.htm"
  ],
  [
  "Electronic postal services",
  "000469.htm"
  ],
  [
  "Retail postal services",
  "000554.htm"
  ]
  ],
  [
  "Publishing",
  "000543.htm",
  [
  "Electronic publishing",
  "000470.htm"
  ],
  [
  "Publishing standards",
  "000544.htm"
  ],
  [
  "Website development",
  "000591.htm"
  ]
  ],
  [
  "Radio communication",
  "000547.htm",
  [
  "Apparatus licensing",
  "000385.htm"
  ],
  [
  "Spectrum management",
  "000570.htm"
  ]
  ],
  [
  "Satellite communication",
  "000560.htm"
  ],
  [
  "Telecommunications",
  "000578.htm",
  [
  "Carriage service providers",
  "000420.htm"
  ],
  [
  "Carrier licensing",
  "000421.htm"
  ],
  [
  "Equipment licensing",
  "000480.htm"
  ],
  [
  "Mobile telephone services",
  "000516.htm"
  ],
  [
  "Telephone services",
  "000579.htm"
  ]
  ]
  ],
  [
  "COMMUNITY SERVICES",
  "000435.htm",
  [
  "Accommodation services",
  "000377.htm",
  [
  "Defence housing",
  "000458.htm"
  ],
  [
  "Emergency accommodation",
  "000471.htm"
  ],
  [
  "Public housing entitlements",
  "000539.htm"
  ],
  [
  "Refuge support",
  "000551.htm"
  ]
  ],
  [
  "Community support",
  "000436.htm",
  [
  "Adoption services",
  "000378.htm"
  ],
  [
  "Aged care services",
  "000382.htm"
  ],
  [
  "Child and youth support",
  "000422.htm"
  ],
  [
  "Child-care services",
  "000423.htm"
  ],
  [
  "Defence community programs",
  "000452.htm"
  ],
  [
  "Family reunion programs",
  "000483.htm"
  ],
  [
  "Veterans\" entitlements",
  "000587.htm"
  ]
  ],
  [
  "Counselling services",
  "000440.htm"
  ],
  [
  "Emergency services",
  "000474.htm",
  [
  "Ambulance services",
  "000384.htm"
  ],
  [
  "Emergency funding",
  "000472.htm"
  ],
  [
  "Firefighting services",
  "000487.htm"
  ]
  ],
  [
  "Financial assistance",
  "000484.htm",
  [
  "Benefits",
  "000402.htm"
  ],
  [
  "Income support schemes",
  "000494.htm"
  ]
  ],
  [
  "Natural disasters",
  "000521.htm",
  [
  "Disaster recovery",
  "000462.htm"
  ],
  [
  "Disaster relief",
  "000463.htm"
  ]
  ],
  [
  "Rural community development",
  "000557.htm"
  ],
  [
  "Social justice and equity",
  "000566.htm"
  ],
  [
  "Transport access schemes",
  "000901.htm"
  ]
  ],
  [
  "CULTURAL AFFAIRS",
  "000442.htm",
  [
  "Arts development",
  "000391.htm",
  [
  "Arts funding",
  "000393.htm"
  ],
  [
  "Arts incentive schemes",
  "000394.htm"
  ],
  [
  "Arts promotion",
  "000395.htm"
  ]
  ],
  [
  "Collection access",
  "000427.htm",
  [
  "Descriptive standards",
  "000461.htm"
  ],
  [
  "Finding aids development",
  "000486.htm"
  ],
  [
  "Reference services",
  "000550.htm"
  ]
  ],
  [
  "Collection management",
  "000430.htm",
  [
  "Artefact export regulation",
  "000390.htm"
  ],
  [
  "Collection accessioning",
  "000428.htm"
  ],
  [
  "Collection acquisition",
  "000429.htm"
  ],
  [
  "Collection storage",
  "000432.htm"
  ],
  [
  "Preservation services",
  "000532.htm"
  ]
  ],
  [
  "Collection promotion",
  "000431.htm",
  [
  "Exhibition programs",
  "000481.htm"
  ],
  [
  "Publicity programs",
  "000542.htm"
  ]
  ],
  [
  "Cultural awards and scholarships",
  "000443.htm"
  ],
  [
  "Cultural festivals",
  "000445.htm"
  ],
  [
  "Cultural gifts programs",
  "000446.htm"
  ],
  [
  "Multicultural heritage promotion",
  "000518.htm",
  [
  "Multicultural festivals",
  "000517.htm"
  ],
  [
  "Multicultural services",
  "000519.htm"
  ]
  ]
  ],
  [
  "DEFENCE",
  "000449.htm",
  [
  "Australian Defence Forces",
  "000397.htm",
  [
  "Air Force",
  "002266.htm"
  ],
  [
  "Army",
  "000388.htm"
  ],
  [
  "Badges and insignia",
  "000401.htm"
  ],
  [
  "Cadets",
  "000416.htm"
  ],
  [
  "Defence force commands",
  "000456.htm"
  ],
  [
  "Military bands",
  "000510.htm"
  ],
  [
  "Navy",
  "000524.htm"
  ],
  [
  "Reserves",
  "000553.htm"
  ],
  [
  "Roulettes",
  "000556.htm"
  ]
  ],
  [
  "Defence estate management",
  "000454.htm"
  ],
  [
  "Defence force careers",
  "000455.htm",
  [
  "Defence career development",
  "000450.htm"
  ],
  [
  "Military employment services",
  "000512.htm"
  ]
  ],
  [
  "Defence strategic development",
  "000574.htm",
  [
  "Defence efficiency review",
  "000453.htm"
  ],
  [
  "Defence reform program",
  "000460.htm"
  ]
  ],
  [
  "Defence strategic policy",
  "000576.htm",
  [
  "Strategic decisions",
  "000573.htm"
  ],
  [
  "Strategic planning",
  "000575.htm"
  ]
  ],
  [
  "Defence strategic support",
  "000577.htm",
  [
  "Capital equipment programs",
  "000419.htm"
  ],
  [
  "Defence industry",
  "000459.htm"
  ],
  [
  "Defence science and technology",
  "000905.htm"
  ],
  [
  "Logistics",
  "000506.htm"
  ]
  ],
  [
  "Emergency management",
  "000473.htm",
  [
  "Civil community assistance",
  "000426.htm"
  ],
  [
  "Disaster support",
  "000464.htm"
  ]
  ],
  [
  "Military law",
  "001814.htm"
  ],
  [
  "Military operations",
  "000515.htm",
  [
  "Australian theatre of war",
  "000398.htm"
  ],
  [
  "Military exercises",
  "000514.htm"
  ],
  [
  "Special operations",
  "000569.htm"
  ],
  [
  "Warfare",
  "000589.htm"
  ]
  ]
  ],
  [
  "EDUCATION AND TRAINING",
  "000467.htm",
  [
  "Arts education",
  "000392.htm"
  ],
  [
  "Community education",
  "000434.htm",
  [
  "Adult education programs",
  "000379.htm"
  ],
  [
  "Adult migrant education",
  "000380.htm"
  ],
  [
  "Road safety awareness",
  "000555.htm"
  ]
  ],
  [
  "Curriculum development",
  "000447.htm"
  ],
  [
  "Early childhood education",
  "000466.htm"
  ],
  [
  "Military education and training",
  "000511.htm",
  [
  "Army reserve training",
  "000389.htm"
  ],
  [
  "Defence college training",
  "000451.htm"
  ]
  ],
  [
  "Overseas skills recognition",
  "000527.htm"
  ],
  [
  "School education",
  "000561.htm",
  [
  "Discipline programs",
  "000465.htm"
  ],
  [
  "School transport regulation",
  "000562.htm"
  ],
  [
  "Special needs programs",
  "000568.htm"
  ]
  ],
  [
  "Tertiary education",
  "000581.htm"
  ],
  [
  "Vocational education",
  "000588.htm",
  [
  "Apprenticeship programs",
  "000386.htm"
  ],
  [
  "Hospital teaching programs",
  "000493.htm"
  ],
  [
  "Trainee programs",
  "000584.htm"
  ],
  [
  "Workplace training",
  "000595.htm"
  ]
  ]
  ],
  [
  "EMPLOYMENT",
  "000016.htm",
  [
  "Human resources development",
  "000348.htm",
  [
  "Occupational health and safety",
  "000355.htm"
  ],
  [
  "Recruitment programs",
  "000356.htm"
  ],
  [
  "Termination processes",
  "002103.htm"
  ],
  [
  "Workers compensation schemes",
  "000363.htm"
  ],
  [
  "Workplace discrimination monitoring",
  "000364.htm"
  ],
  [
  "Workplace equity and justice programs",
  "000365.htm"
  ]
  ],
  [
  "Industrial awards and conditions",
  "000349.htm",
  [
  "Award conditions",
  "000366.htm"
  ],
  [
  "Remuneration review",
  "000368.htm"
  ]
  ],
  [
  "Labour market programs",
  "000347.htm",
  [
  "Employment services marketing",
  "000351.htm"
  ],
  [
  "Job placement programs",
  "000352.htm"
  ],
  [
  "Job vacancy data management",
  "000353.htm"
  ]
  ],
  [
  "Workplace agreement processes",
  "000350.htm",
  [
  "Agreement bargaining processes",
  "002141.htm"
  ],
  [
  "Agreement dispute mediation",
  "000370.htm"
  ],
  [
  "Certified employment conditions",
  "000371.htm"
  ],
  [
  "Employment advocacy services",
  "000374.htm"
  ]
  ]
  ],
  [
  "ENVIRONMENT",
  "000478.htm",
  [
  "Built environment",
  "000409.htm",
  [
  "Building acoustics",
  "000405.htm"
  ],
  [
  "Building preservation",
  "000407.htm"
  ]
  ],
  [
  "Climate information services",
  "000203.htm"
  ],
  [
  "Conservation programs",
  "000438.htm",
  [
  "Endangered species protection",
  "000475.htm"
  ],
  [
  "Landcare programs",
  "000504.htm"
  ],
  [
  "Soil preservation programs",
  "000567.htm"
  ]
  ],
  [
  "Environmental impact assessment",
  "000479.htm"
  ],
  [
  "Historic relic protection",
  "000492.htm"
  ],
  [
  "Marine life protection programs",
  "000507.htm"
  ],
  [
  "Natural heritage protection",
  "000522.htm",
  [
  "National park management",
  "000520.htm"
  ],
  [
  "Nature reserve management",
  "000523.htm"
  ],
  [
  "Wilderness area management",
  "000593.htm"
  ],
  [
  "Wildlife sanctuary management",
  "000594.htm"
  ]
  ],
  [
  "Oceans governance",
  "000525.htm"
  ],
  [
  "Pollutant prevention programs",
  "000529.htm"
  ],
  [
  "World heritage listings",
  "000596.htm"
  ]
  ],
  [
  "FINANCE MANAGEMENT",
  "000001.htm",
  [
  "Commonwealth State funding",
  "000017.htm"
  ],
  [
  "Currency",
  "000018.htm",
  [
  "Counterfeiting control",
  "000027.htm"
  ]
  ],
  [
  "Financial investment",
  "000021.htm",
  [
  "Investment scheme regulation",
  "000031.htm"
  ]
  ],
  [
  "Financial system management",
  "002302.htm",
  [
  "Financial system monitoring",
  "002306.htm"
  ],
  [
  "Payments management",
  "002297.htm"
  ]
  ],
  [
  "Fiscal policy",
  "000022.htm",
  [
  "Public borrowing",
  "000032.htm"
  ],
  [
  "Public debt",
  "000033.htm"
  ],
  [
  "Public expenditure",
  "000034.htm"
  ]
  ],
  [
  "Foreign investment control",
  "000030.htm"
  ],
  [
  "International monetary regulation",
  "000023.htm"
  ],
  [
  "Monetary policy",
  "000020.htm",
  [
  "Exchange rates",
  "000028.htm"
  ],
  [
  "Inflation",
  "000029.htm"
  ],
  [
  "Interest rates",
  "002295.htm"
  ]
  ],
  [
  "Resource management",
  "000024.htm",
  [
  "Contract management",
  "000037.htm"
  ],
  [
  "Financial administration",
  "000035.htm"
  ],
  [
  "Financial budgeting",
  "000036.htm"
  ]
  ],
  [
  "Retirement income",
  "000025.htm",
  [
  "Asset assessment",
  "000038.htm"
  ],
  [
  "Retirement saving",
  "000039.htm"
  ],
  [
  "Superannuation regulation",
  "000040.htm"
  ]
  ],
  [
  "Statistical analysis",
  "000019.htm"
  ],
  [
  "Taxation",
  "000026.htm",
  [
  "Income assessment",
  "000041.htm"
  ],
  [
  "Revenue raising",
  "000042.htm"
  ],
  [
  "Taxation compliance",
  "000043.htm"
  ]
  ]
  ],
  [
  "GOVERNANCE",
  "000002.htm",
  [
  "Civic celebrations",
  "000046.htm"
  ],
  [
  "Constitutional matters",
  "000048.htm",
  [
  "Constitutional conventions",
  "000061.htm"
  ],
  [
  "Constitutional referenda",
  "000062.htm"
  ]
  ],
  [
  "Electoral matters",
  "000049.htm",
  [
  "Declaration of interests",
  "000063.htm"
  ],
  [
  "Election campaigning",
  "000064.htm"
  ],
  [
  "Electoral boundary assessment",
  "000065.htm"
  ]
  ],
  [
  "Honours and awards programs",
  "000050.htm"
  ],
  [
  "Intergovernmental relations",
  "000052.htm",
  [
  "Cross-border cooperation",
  "000067.htm"
  ],
  [
  "Intergovernment policy dissemination",
  "000069.htm"
  ]
  ],
  [
  "Legislative drafting",
  "000053.htm",
  [
  "Draft Bill amendment process",
  "000070.htm"
  ],
  [
  "Legislation review",
  "000071.htm"
  ],
  [
  "Preparation of legislative regulations",
  "000072.htm"
  ]
  ],
  [
  "Official protocol",
  "000054.htm",
  [
  "Ceremonial events and representation",
  "000073.htm"
  ],
  [
  "Head of Government protocol",
  "000074.htm"
  ],
  [
  "Official establishment management",
  "000075.htm"
  ],
  [
  "Official hospitality",
  "000076.htm"
  ],
  [
  "Official visits",
  "000077.htm"
  ]
  ],
  [
  "Parliamentary chamber support",
  "000045.htm",
  [
  "Hansard services",
  "000058.htm"
  ],
  [
  "Parliamentary papers",
  "000059.htm"
  ],
  [
  "Tabling of official documents",
  "000060.htm"
  ]
  ],
  [
  "Parliamentary committee and member support",
  "000047.htm"
  ],
  [
  "Population census",
  "000044.htm",
  [
  "Demographic surveys",
  "000055.htm"
  ],
  [
  "Household census",
  "000056.htm"
  ],
  [
  "Population distribution analysis",
  "000057.htm"
  ]
  ],
  [
  "Public administration",
  "002290.htm",
  [
  "Government auditing",
  "002291.htm"
  ],
  [
  "Public service",
  "002292.htm"
  ],
  [
  "Territories administration",
  "002293.htm"
  ]
  ],
  [
  "Statistics",
  "002289.htm"
  ]
  ],
  [
  "HEALTH CARE",
  "000003.htm",
  [
  "Community health services",
  "000078.htm",
  [
  "Clinical health services",
  "000087.htm"
  ],
  [
  "Health promotion",
  "000089.htm"
  ],
  [
  "Primary health care",
  "000090.htm"
  ]
  ],
  [
  "Health insurance schemes",
  "000079.htm"
  ],
  [
  "Health protocol administration",
  "000080.htm",
  [
  "Drugs and poisons regulation",
  "000091.htm"
  ],
  [
  "Food hygiene regulation",
  "000092.htm"
  ],
  [
  "Practitioner discipline",
  "000093.htm"
  ],
  [
  "Practitioner registration",
  "000095.htm"
  ]
  ],
  [
  "Hospital services",
  "000081.htm",
  [
  "Hospital administration",
  "000096.htm"
  ],
  [
  "Patient care",
  "000097.htm"
  ],
  [
  "Pharmaceutical and drug support",
  "000098.htm"
  ]
  ],
  [
  "Medical research",
  "000083.htm",
  [
  "Ethical compliance",
  "000099.htm"
  ],
  [
  "Medical aids regulation",
  "000100.htm"
  ],
  [
  "Medical research funding",
  "000101.htm"
  ],
  [
  "National referral laboratory services",
  "000102.htm"
  ],
  [
  "Population-based research",
  "000103.htm"
  ]
  ],
  [
  "Public health services",
  "000084.htm",
  [
  "Epidemiology",
  "000104.htm"
  ],
  [
  "Health disaster preparedness",
  "000106.htm"
  ],
  [
  "Health hazard prevention",
  "000105.htm"
  ],
  [
  "Medical quarantine services",
  "000108.htm"
  ],
  [
  "Notifiable disease management",
  "000109.htm"
  ]
  ],
  [
  "Special needs services",
  "000085.htm",
  [
  "Dental health services",
  "000111.htm"
  ],
  [
  "Independent living services",
  "000112.htm"
  ],
  [
  "Mental health services",
  "000113.htm"
  ],
  [
  "Residential services",
  "000114.htm"
  ]
  ],
  [
  "Veterans\" health services",
  "000086.htm"
  ]
  ],
  [
  "IMMIGRATION",
  "000004.htm",
  [
  "Citizenship",
  "000115.htm",
  [
  "Naturalisation assessment",
  "000121.htm"
  ],
  [
  "Presentation arrangements",
  "000122.htm"
  ]
  ],
  [
  "Deportation",
  "000116.htm"
  ],
  [
  "Detention programs",
  "000117.htm"
  ],
  [
  "Migrant services",
  "000118.htm",
  [
  "Interpreter services",
  "000123.htm"
  ],
  [
  "Migrant accommodation services",
  "000125.htm"
  ],
  [
  "Migrant settlement programs",
  "000126.htm"
  ]
  ],
  [
  "Refugee services",
  "000119.htm"
  ],
  [
  "Travel authorisation",
  "000120.htm",
  [
  "Permanent entry arrangements",
  "000127.htm"
  ],
  [
  "Temporary entry arrangements",
  "000128.htm"
  ]
  ]
  ],
  [
  "INDIGENOUS AFFAIRS",
  "002285.htm",
  [
  "Indigenous cultural heritage",
  "000495.htm",
  [
  "Cultural artefact repatriation",
  "001772.htm"
  ]
  ],
  [
  "Indigenous enterprise development",
  "000496.htm"
  ],
  [
  "Indigenous health services",
  "000082.htm"
  ],
  [
  "Indigenous heritage conservation",
  "000497.htm"
  ],
  [
  "Indigenous reconciliation",
  "000051.htm"
  ],
  [
  "Indigenous welfare programs",
  "000498.htm"
  ]
  ],
  [
  "INTERNATIONAL RELATIONS",
  "000005.htm",
  [
  "Consular services",
  "000129.htm"
  ],
  [
  "Defence liaison",
  "000132.htm",
  [
 
  "000140.htm"
  ],
  [
  "Defence cooperation programs",
  "000141.htm"
  ],
  [
  "Defence personnel exchanges",
  "000142.htm"
  ],
  [
  "Military advisors",
  "000143.htm"
  ]
  ],
  [
  "Diplomatic missions",
  "000130.htm"
  ],
  [
  "International affairs",
  "000131.htm",
  [
  "Disarmament and arms control",
  "000137.htm"
  ],
  [
  "Nuclear safeguards",
  "000139.htm"
  ]
  ],
  [
  "International treaties",
  "000133.htm",
  [
  "Treaty administration",
  "001384.htm"
  ]
  ],
  [
  "Overseas aid programs",
  "000134.htm",
  [
  "Development assistance programs",
  "000146.htm"
  ],
  [
  "Overseas student scholarship programs",
  "000147.htm"
  ]
  ],
  [
  "Overseas promotion",
  "000135.htm"
  ],
  [
  "Passport services",
  "000136.htm"
  ]
  ],
  [
  "JUSTICE ADMINISTRATION",
  "000006.htm",
  [
  "Administrative law",
  "000149.htm",
  [
  "Administrative decision appeal",
  "000163.htm"
  ],
  [
  "Administrative decision review",
  "000164.htm"
  ],
  [
  "Censorship standards",
  "000165.htm"
  ],
  [
  "Copyright regulation",
  "000166.htm"
  ],
  [
  "Recordkeeping standards",
  "000167.htm"
  ]
  ],
  [
  "Associations and corporate law",
  "000150.htm",
  [
  "Bankruptcy proceedings",
  "000168.htm"
  ],
  [
  "Merger regulation",
  "000169.htm"
  ]
  ],
  [
  "Civil law",
  "000151.htm",
  [
  "Civil registration",
  "000170.htm"
  ],
  [
  "Conveyancing",
  "000171.htm"
  ],
  [
  "Dispute mediation programs",
  "000174.htm"
  ],
  [
  "Family law proceedings",
  "000172.htm"
  ],
  [
  "Probate applications",
  "000173.htm"
  ]
  ],
  [
  "Commissions of inquiry",
  "000152.htm"
  ],
  [
  "Coronial law",
  "000153.htm"
  ],
  [
  "Court reporting",
  "000154.htm"
  ],
  [
  "Criminal law",
  "000155.htm"
  ],
  [
  "Human rights obligations",
  "000156.htm"
  ],
  [
  "Juvenile justice",
  "000157.htm"
  ],
  [
  "Legal aid services",
  "000158.htm"
  ],
  [
  "Local laws and ordinances",
  "000159.htm"
  ],
  [
  "Native title claims",
  "000160.htm",
  [
  "Native title mediation programs",
  "000180.htm"
  ],
  [
  "Native title settlement negotiations",
  "000181.htm"
  ]
  ],
  [
  "Privacy guideline monitoring",
  "000161.htm"
  ],
  [
  "Prosecution services",
  "000162.htm"
  ]
  ],
  [
  "MARITIME SERVICES",
  "000007.htm",
  [
  "Cargo control",
  "000198.htm"
  ],
  [
  "Harbour management",
  "000183.htm"
  ],
  [
  "Marina management",
  "000184.htm"
  ],
  [
  "Navigation",
  "000185.htm",
  [
  "Charting sea lanes",
  "000191.htm"
  ],
  [
  "Light station maintenance",
  "000192.htm"
  ],
  [
  "Navigation systems development",
  "000193.htm"
  ]
  ],
  [
  "Pilotage management",
  "000182.htm"
  ],
  [
  "Port regulation",
  "001471.htm"
  ],
  [
  "Sea passengers",
  "001487.htm"
  ],
  [
  "Search and rescue",
  "000187.htm",
  [
  "Rescue coordination",
  "000194.htm"
  ],
  [
  "Search technology development",
  "000195.htm"
  ]
  ],
  [
  "Ship personnel",
  "000188.htm",
  [
  "Personnel safety standards",
  "000196.htm"
  ],
  [
  "Pilot licensing",
  "000197.htm"
  ]
  ],
  [
  "Ship safety",
  "000189.htm",
  [
  "Seaworthiness",
  "000201.htm"
  ],
  [
  "Ship commissioning",
  "000199.htm"
  ],
  [
  "Ship inspection",
  "000200.htm"
  ]
  ]
  ],
  [
  "NATURAL RESOURCES",
  "000009.htm",
  [
  "Crown land administration",
  "000218.htm"
  ],
  [
  "Energy resources",
  "001451.htm",
  [
  "Fossil fuel management",
  "000226.htm"
  ],
  [
  "Renewable energy development",
  "000227.htm"
  ]
  ],
  [
  "Land use planning",
  "000220.htm",
  [
  "Land use zoning",
  "001429.htm"
  ]
  ],
  [
  "Land valuation",
  "000222.htm"
  ],
  [
  "Mineral resources",
  "000223.htm",
  [
  "Land rehabilitation programs",
  "000231.htm"
  ],
  [
  "Mining regulations",
  "000232.htm"
  ]
  ],
  [
  "Pollution emission control",
  "000224.htm"
  ],
  [
  "Water resources",
  "000225.htm",
  [
  "Water conservation plans",
  "000233.htm"
  ],
  [
  "Water quality monitoring",
  "000234.htm"
  ],
  [
  "Water usage management",
  "000235.htm"
  ],
  [
  "Waterway management",
  "000236.htm"
  ]
  ]
  ],
  [
  "PRIMARY INDUSTRIES",
  "000008.htm",
  [
  "Chemical and pesticide regulation",
  "000202.htm"
  ],
  [
  "Marine and rural regulation",
  "000204.htm",
  [
  "Agricultural industry",
  "000208.htm"
  ],
  [
  "Fisheries industry",
  "000209.htm"
  ],
  [
  "Food quality assurance",
  "000213.htm"
  ],
  [
  "Forestry industry",
  "000210.htm"
  ]
  ],
  [
  "Marine and rural support",
  "000205.htm",
  [
  "Aquaculture industry",
  "000212.htm"
  ],
  [
  "Horticultural industry",
  "000214.htm"
  ],
  [
  "Pastoral industry",
  "000215.htm"
  ],
  [
  "Silvicultural industry",
  "000216.htm"
  ],
  [
  "Viticultural industry",
  "000217.htm"
  ]
  ],
  [
  "Quarantine",
  "000211.htm"
  ],
  [
  "Rural field day promotion",
  "000206.htm"
  ],
  [
  "Rural partnership programs",
  "000207.htm"
  ]
  ],
  [
  "SCIENCE",
  "000010.htm",
  [
  "Agricultural sciences",
  "000237.htm"
  ],
  [
  "Animal and veterinary sciences",
  "000238.htm"
  ],
  [
  "Applied sciences",
  "000239.htm",
  [
  "Engineering and technology sciences",
  "000246.htm"
  ],
  [
  "Weights and measures standards",
  "000247.htm"
  ]
  ],
  [
  "Biological sciences",
  "000240.htm",
  [
  "Biochemistry",
  "000248.htm"
  ],
  [
  "Biodiversity preservation",
  "000249.htm"
  ],
  [
  "Biotechnology development",
  "000250.htm"
  ],
  [
  "Botany",
  "000251.htm"
  ],
  [
  "Entomology",
  "000252.htm"
  ],
  [
  "Genetic engineering",
  "000253.htm"
  ],
  [
  "Physiology",
  "000254.htm"
  ]
  ],
  [
  "Earth sciences",
  "000241.htm",
  [
  "Atmospheric sciences",
  "000255.htm"
  ],
  [
  "Hydrology",
  "000256.htm"
  ],
  [
  "Mineral exploration",
  "000257.htm"
  ],
  [
  "Oceanography",
  "000258.htm"
  ],
  [
  "Seismology",
  "000259.htm"
  ]
  ],
  [
  "Mathematical sciences",
  "000242.htm"
  ],
  [
  "Medical and health sciences",
  "001229.htm"
  ],
  [
  "Physical sciences",
  "000244.htm",
  [
  "Astronomical sciences",
  "000260.htm"
  ],
  [
  "Atomic and molecular sciences",
  "000261.htm"
  ],
  [
  "Nuclear sciences",
  "000262.htm"
  ]
  ],
  [
  "Spatial information research",
  "000245.htm"
  ]
  ],
  [
  "SECURITY",
  "000011.htm",
  [
  "Corrective services",
  "000263.htm",
  [
  "Community based corrections",
  "000270.htm"
  ],
  [
  "Detention centre management",
  "000271.htm"
  ]
  ],
  [
  "External security",
  "000264.htm",
  [
  "Peacekeeping forces",
  "000273.htm"
  ]
  ],
  [
  "Information security",
  "000265.htm"
  ],
  [
  "Intelligence",
  "000266.htm",
  [
  "Forensic analysis",
  "000275.htm"
  ],
  [
  "Intelligence liaison",
  "001159.htm"
  ],
  [
  "Intelligence support",
  "000277.htm"
  ]
  ],
  [
  "Law enforcement",
  "000267.htm",
  [
  "Community policing",
  "000278.htm"
  ],
  [
  "Criminology",
  "000279.htm"
  ],
  [
  "Police administration",
  "000280.htm"
  ],
  [
  "Protective services",
  "000281.htm"
  ]
  ],
  [
  "National security",
  "001548.htm",
  [
  "Coastal surveillance",
  "000269.htm"
  ]
  ]
  ],
  [
  "SPORT AND RECREATION",
  "000012.htm",
  [
  "Caravan and camping services",
  "000284.htm"
  ],
  [
  "Community recreational programs",
  "000285.htm",
  [
  "Gambling support services",
  "000290.htm"
  ],
  [
  "Public fitness promotion",
  "000291.htm"
  ],
  [
  "Social club support",
  "000292.htm"
  ],
  [
  "Volunteer support programs",
  "000293.htm"
  ]
  ],
  [
  "Gaming industry regulation",
  "000286.htm"
  ],
  [
  "Park and reserve services",
  "000289.htm"
  ],
  [
  "Sport and fitness development",
  "000287.htm",
  [
  "Athlete scholarship programs",
  "000295.htm"
  ],
  [
  "Fundraising and donation schemes",
  "000296.htm"
  ],
  [
  "Games administration",
  "000297.htm"
  ],
  [
  "Games promotion",
  "000298.htm"
  ],
  [
  "Sporting grants administration",
  "000299.htm"
  ]
  ],
  [
  "Sports drugs monitoring",
  "000288.htm",
  [
  "Doping detection research",
  "000300.htm"
  ]
  ]
  ],
  [
  "TOURISM",
  "000013.htm",
  [
  "Tourism industry development",
  "000301.htm"
  ],
  [
  "Tourist event promotion",
  "000302.htm",
  [
  "Advertising campaigns",
  "000305.htm"
  ]
  ],
  [
  "Travel missions",
  "000303.htm"
  ]
  ],
  [
  "TRADE",
  "000014.htm",
  [
  "Export regulation",
  "000311.htm",
  [
  "Export promotion",
  "000320.htm"
  ],
  [
  "Prohibited export control",
  "000321.htm"
  ]
  ],
  [
  "Import regulation",
  "000312.htm",
  [
  "Prohibited import control",
  "000323.htm"
  ],
  [
  "Tariff regulation",
  "000322.htm"
  ]
  ],
  [
  "Intellectual property management",
  "000910.htm",
  [
  "Copyright registration",
  "000308.htm"
  ],
  [
  "Design registration",
  "000310.htm"
  ],
  [
  "Patent registration",
  "000315.htm"
  ],
  [
  "Trademark registration",
  "000318.htm"
  ]
  ],
  [
  "International trade agreements",
  "000313.htm"
  ],
  [
  "Interstate trade agreements",
  "000314.htm"
  ],
  [
  "Trade development programs",
  "000316.htm"
  ],
  [
  "Trade expositions",
  "000317.htm"
  ]
  ],
  [
  "TRANSPORT",
  "000015.htm",
  [
  "Air transport",
  "000324.htm",
  [
  "Air transport safety",
  "000332.htm"
  ],
  [
  "Aircraft standards",
  "000330.htm"
  ],
  [
  "Airport services",
  "000331.htm"
  ]
  ],
  [
  "Freight movement regulation",
  "000325.htm"
  ],
  [
  "Passenger services",
  "000326.htm"
  ],
  [
  "Rail transport",
  "000327.htm",
  [
  "Rail harmonisation standards",
  "000333.htm"
  ],
  [
  "Rail land acquisition regulation",
  "000336.htm"
  ],
  [
  "Rail transport safety",
  "000337.htm"
  ],
  [
  "Railway maintenance",
  "000338.htm"
  ],
  [
  "Rolling stock regulation",
  "000339.htm"
  ]
  ],
  [
  "Road transport",
  "000328.htm",
  [
  "Driving licences administration",
  "000340.htm"
  ],
  [
  "Road surface maintenance",
  "000341.htm"
  ],
  [
  "Road traffic regulation",
  "000342.htm"
  ],
  [
  "Road transport safety",
  "000343.htm"
  ],
  [
  "Vehicle registration",
  "000344.htm"
  ],
  [
  "Vehicle standards",
  "000345.htm"
  ]
  ],
  [
  "Transport infrastructure development",
  "000329.htm"
  ]
  ]
  ]
<?php <?php
   
require_once '../include/common.inc.php'; require_once '../include/common.inc.php';
  //function createFOIDocumentsDesignDoc() {
   
  $foidb = $server->get_db('disclosr-foidocuments');
  $obj = new stdClass();
  $obj->_id = "_design/" . urlencode("app");
  $obj->language = "javascript";
  $obj->views->all->map = "function(doc) { emit(doc._id, doc); };";
  $obj->views->byDate->map = "function(doc) { emit(doc.date, doc); };";
   
  // allow safe updates (even if slightly slower due to extra: rev-detection check).
  $foidb->save($obj, true);
   
   
  function createDocumentsDesignDoc() {
  /*
  global $db;
  $obj = new stdClass();
  $obj->_id = "_design/" . urlencode("app");
  $obj->language = "javascript";
  $obj->views->all->map = "function(doc) { emit(doc._id, doc); };";
  $obj->views->byABN->map = "function(doc) { emit(doc.abn, doc); };";
  "views": {
  "web_server": {
  "map": "function(doc) {\n emit(doc.web_server, 1);\n}",
  "reduce": "function (key, values, rereduce) {\n return sum(values);\n}"
  },
  "byAgency": {
  "map": "function(doc) {\n emit(doc.agencyID, 1);\n}",
  "reduce": "function (key, values, rereduce) {\n return sum(values);\n}"
  },
  "byURL": {
  "map": "function(doc) {\n emit(doc.url, doc);\n}"
  },
  "agency": {
  "map": "function(doc) {\n emit(doc.agencyID, doc);\n}"
  },
  "byWebServer": {
  "map": "function(doc) {\n emit(doc.web_server, doc);\n}"
  },
  "getValidationRequired": {
  "map": "function(doc) {\nif (doc.mime_type == \"text/html\" \n&& typeof(doc.validation) == \"undefined\") {\n emit(doc._id, doc._attachments);\n}\n}"
  }
  } */
  }
   
  //function createAgencyDesignDoc() {
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
createAgencyDesignDoc(); $obj = new stdClass();
  $obj->_id = "_design/" . urlencode("app");
  $obj->language = "javascript";
  $obj->views->all->map = "function(doc) { emit(doc._id, doc); };";
  $obj->views->byABN->map = "function(doc) { emit(doc.abn, doc); };";
  $obj->views->byCanonicalName->map = "function(doc) {
  if (doc.parentOrg || doc.orgType == 'FMA-DepartmentOfState') {
  emit(doc.name, doc);
  }
  };";
  $obj->views->byDeptStateName->map = "function(doc) {
  if (doc.orgType == 'FMA-DepartmentOfState') {
  emit(doc.name, doc._id);
  }
  };";
  $obj->views->parentOrgs->map = "function(doc) {
  if (doc.parentOrg) {
  emit(doc._id, doc.parentOrg);
  }
  };";
  $obj->views->byName->map = 'function(doc) {
  if (typeof(doc["status"]) == "undefined" || doc["status"] != "suspended") {
  emit(doc.name, doc._id);
  if (typeof(doc.shortName) != "undefined" && doc.shortName != doc.name) {
  emit(doc.shortName, doc._id);
  }
  for (name in doc.otherNames) {
  if (doc.otherNames[name] != "" && doc.otherNames[name] != doc.name) {
  emit(doc.otherNames[name], doc._id);
  }
  }
  for (name in doc.foiBodies) {
  if (doc.foiBodies[name] != "" && doc.foiBodies[name] != doc.name) {
  emit(doc.foiBodies[name], doc._id);
  }
  }
  }
  };';
   
  $obj->views->foiEmails->map = "function(doc) {
  emit(doc._id, doc.foiEmail);
  };";
   
  $obj->views->byLastModified->map = "function(doc) { emit(doc.metadata.lastModified, doc); }";
  $obj->views->getActive->map = 'function(doc) { if (doc.status == "active") { emit(doc._id, doc); } };';
  $obj->views->getSuspended->map = 'function(doc) { if (doc.status == "suspended") { emit(doc._id, doc); } };';
  $obj->views->getScrapeRequired->map = "function(doc) {
   
  var lastScrape = Date.parse(doc.metadata.lastScraped);
   
  var today = new Date();
   
  if (!lastScrape || lastScrape.getTime() + 1000 != today.getTime()) {
  emit(doc._id, doc);
  }
   
  };";
  $obj->views->showNamesABNs->map = "function(doc) { emit(doc._id, {name: doc.name, abn: doc.abn}); };";
  $obj->views->getConflicts->map = "function(doc) {
  if (doc._conflicts) {
  emit(null, [doc._rev].concat(doc._conflicts));
  }
  }";
  // http://stackoverflow.com/questions/646628/javascript-startswith
  $obj->views->score->map = 'if(!String.prototype.startsWith){
  String.prototype.startsWith = function (str) {
  return !this.indexOf(str);
  }
  }
   
  function(doc) {
  count = 0;
  if (doc["status"] != "suspended") {
  for(var propName in doc) {
  if(typeof(doc[propName]) != "undefined" && doc[propName] != "") {
  count++;
  }
  }
  portfolio = doc.parentOrg;
  if (doc.orgType == "FMA-DepartmentOfState") {
  portfolio = doc._id;
  }
  if (doc.orgType == "Court-Commonwealth" || doc.orgType == "FMA-DepartmentOfParliament") {
  portfolio = doc.orgType;
  }
  emit(count+doc._id, {id:doc._id, name: doc.name, score:count, orgType: doc.orgType, portfolio:portfolio});
  }
  }';
  $obj->views->scoreHas->map = 'if(!String.prototype.startsWith){
  String.prototype.startsWith = function (str) {
  return !this.indexOf(str);
  }
  }
  if(!String.prototype.endsWith){
  String.prototype.endsWith = function(suffix) {
      return this.indexOf(suffix, this.length - suffix.length) !== -1;
  };
  }
  function(doc) {
  if (typeof(doc["status"]) == "undefined" || doc["status"] != "suspended") {
  for(var propName in doc) {
  if(typeof(doc[propName]) != "undefined" && (propName.startsWith("has") || propName.endsWith("URL"))) {
  emit(propName, 1);
  }
  }
  emit("total", 1);
  }
  }';
  $obj->views->scoreHas->reduce = 'function (key, values, rereduce) {
  return sum(values);
  }';
  $obj->views->fieldNames->map = '
  function(doc) {
  for(var propName in doc) {
  emit(propName, doc._id);
  }
   
  }';
  $obj->views->fieldNames->reduce = 'function (key, values, rereduce) {
  return values.length;
  }';
  // allow safe updates (even if slightly slower due to extra: rev-detection check).
  $db->save($obj, true);
   
   
?> ?>
   
  #http://packages.python.org/CouchDB/client.html
  import couchdb
  import json
  import pprint
  import re
  from tidylib import tidy_document
 
  couch = couchdb.Server('http://127.0.0.1:5984/')
 
  # select database
  docsdb = couch['disclosr-documents']
 
  def f(x):
  invalid = re.compile(r"ensure|testing|flicker|updating|longdesc|Accessibility Checks|not recognized")
  valid = re.compile(r"line")
  return (not invalid.search(x)) and valid.search(x) and x != ''
 
  for row in docsdb.view('app/getValidationRequired'):
  print row.id
  html = docsdb.get_attachment(row.id,row.value.iterkeys().next()).read()
  #print html
  document, errors = tidy_document(html,options={'accessibility-check':1,'show-warnings':0,'markup':0},keep_doc=True)
  #http://www.aprompt.ca/Tidy/accessibilitychecks.html
  #print document
  errors = '\n'.join(filter(f,errors.split('\n')))
  #print errors
  doc = docsdb.get(row.id)
  doc['validation'] = errors
  docsdb.save(doc)
 
<?php <?php
   
include_once("../include/common.inc.php"); include_once("../include/common.inc.php");
   
function shortName($name) {  
$name = trim($name);  
if (strstr($name,"Minister ") || strstr($name,"Treasurer") || strstr($name,"Parliamentary Secretary")) {  
$badWords = Array ("Assisting the Prime Minister on","Assisting on"," the "," of "," for "," on "," and "," to ",","," ","'","`");  
return str_replace($badWords,"",$name);  
}  
   
else {  
$out = Array();  
preg_match_all('/[A-Z]/', $name, $out);  
return implode("", $out[0]);  
}  
}  
   
setlocale(LC_CTYPE, 'C'); setlocale(LC_CTYPE, 'C');
   
$headers = Array("#id", "name", "request_email", "short_name", "notes", "publication_scheme", "home_page", "tag_string"); $headers = Array("#id", "name", "request_email", "short_name", "notes", "publication_scheme", "home_page", "tag_string");
   
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
   
$tag = Array(); $tag = Array();
try { try {
$rows = $db->get_view("app", "byDeptStateName", null, true)->rows; $rows = $db->get_view("app", "byDeptStateName", null, true)->rows;
//print_r($rows); //print_r($rows);
foreach ($rows as $row) { foreach ($rows as $row) {
$tag[$row->id] = phrase_to_tag(dept_to_portfolio($row->key)); $tag[$row->id] = phrase_to_tag(dept_to_portfolio($row->key));
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
die(); die();
} }
   
$foiEmail = Array(); $foiEmail = Array();
try { try {
$rows = $db->get_view("app", "foiEmails", null, true)->rows; $rows = $db->get_view("app", "foiEmails", null, true)->rows;
//print_r($rows); //print_r($rows);
foreach ($rows as $row) { foreach ($rows as $row) {
$foiEmail[$row->key] = $row->value; $foiEmail[$row->key] = $row->value;
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
die(); die();
} }
   
$fp = fopen('php://output', 'w'); $fp = fopen('php://output', 'w');
if ($fp && $db) { if ($fp && $db) {
header('Content-Type: text/csv; charset=utf-8'); header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename="export.' . date("c") . '.csv"'); header('Content-Disposition: attachment; filename="export.' . date("c") . '.csv"');
header('Pragma: no-cache'); header('Pragma: no-cache');
header('Expires: 0'); header('Expires: 0');
fputcsv($fp, $headers); fputcsv($fp, $headers);
try { try {
$agencies = $db->get_view("app", "byCanonicalName", null, true)->rows; $agencies = $db->get_view("app", "byCanonicalName", null, true)->rows;
//print_r($rows); //print_r($rows);
foreach ($agencies as $agency) { foreach ($agencies as $agency) {
// print_r($agency); // print_r($agency);
   
if (isset($agency->value->foiEmail) && $agency->value->foiEmail != "null" && !isset($agency->value->status)) { if (isset($agency->value->foiEmail) && $agency->value->foiEmail != "null" && !isset($agency->value->status)) {
$row = Array(); $row = Array();
$row["#id"] = $agency->id; $row["#id"] = $agency->id;
$row["name"] = trim($agency->value->name); $row["name"] = trim($agency->value->name);
if (isset($agency->value->foiEmail)) { $row["request_email"] = (isset($agency->value->foiEmail) ? $agency->value->foiEmail : "");
$row["request_email"] = $agency->value->foiEmail; $row["short_name"] = (isset($agency->value->shortName) ? $agency->value->shortName : "");
} else { $row["notes"] = (isset($agency->value->description) ? $agency->value->description : "");
if ($agency->value->orgType == "FMA-DepartmentOfState") {  
$row["request_email"] = "foi@" . GetDomain($agency->value->website); $otherBodies = Array();
} else { if (isset($agency->value->foiBodies)) {
$row["request_email"] = $foiEmail[$agency->value->parentOrg]; $otherBodies = array_merge($otherBodies, $agency->value->foiBodies);
  }
  if (isset($agency->value->positions)) {
  $positions = Array();
  foreach ($agency->value->positions as $position) {
  $positions[] = "Office of the ".$position;
} }
  $otherBodies = array_merge($otherBodies, $positions);
} }
if (isset($agency->value->shortName)) { sort($otherBodies);
$row["short_name"] = $agency->value->shortName; if (count($otherBodies) > 0) {
} else { $row["notes"] .= "<br/> This department also responds to requests for information held by " . implode(", ", $otherBodies);
$row["short_name"] = shortName($agency->value->name);  
} }
$row["notes"] = "";  
$row["publication_scheme"] = (isset($agency->value->infoPublicationSchemeURL) ? $agency->value->infoPublicationSchemeURL : ""); $row["publication_scheme"] = (isset($agency->value->infoPublicationSchemeURL) ? $agency->value->infoPublicationSchemeURL : "");
$row["home_page"] = (isset($agency->value->website) ? $agency->value->website : ""); $row["home_page"] = (isset($agency->value->website) ? $agency->value->website : "");
if ($agency->value->orgType == "FMA-DepartmentOfState") { if ($agency->value->orgType == "FMA-DepartmentOfState") {
$row["tag_string"] = $tag[$agency->value->_id] . " " . $agency->value->orgType; $row["tag_string"] = $tag[$agency->value->_id];
} else { } else {
$row["tag_string"] = $tag[$agency->value->parentOrg] . " " . $agency->value->orgType; $row["tag_string"] = $tag[$agency->value->parentOrg];
} }
  $row["tag_string"] .= " " . $agency->value->orgType;
  $row["tag_string"] .= " federal";
fputcsv($fp, array_values($row)); fputcsv($fp, array_values($row));
   
if (isset($agency->value->foiBodies)) {  
foreach ($agency->value->foiBodies as $foiBody) {  
$row['name'] = iconv("UTF-8", "ASCII//TRANSLIT",$foiBody);  
$row["short_name"] = shortName($foiBody);  
fputcsv($fp, array_values($row));  
}  
}  
} }
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
   
die; die;
} }
?> ?>
   
file:b/bubbletree.php (new)
 
  <!DOCTYPE html>
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta charset="UTF-8"/>
  <title>Minimal BubbleTree Demo</title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
  <script type="text/javascript" src="js/bubbletree/lib/jquery.history.js"></script>
  <script type="text/javascript" src="js/bubbletree/lib/raphael.js"></script>
  <script type="text/javascript" src="js/bubbletree/lib/vis4.js"></script>
  <script type="text/javascript" src="js/bubbletree/lib/Tween.js"></script>
  <script type="text/javascript" src="js/bubbletree/build/bubbletree.js"></script>
  <link rel="stylesheet" type="text/css" href="js/bubbletree/build/bubbletree.css" />
  <script type="text/javascript" src="js/bubbletree/styles/cofog.js"></script>
 
 
  <script type="text/javascript">
 
  $(function() {
  <?php
  include_once('include/common.inc.php');
 
  include("lib/Color.php");
  $color = new Lux_Color();
 
  $portfolios = Array();
  $total = 0;
  $db = $server->get_db('disclosr-agencies');
  try {
  $rows = $db->get_view("app", "byDeptStateName", null, true)->rows;
  foreach ($rows as $row) {
  $portfolios[trim(str_replace(Array("Department of", "Department", "the", "'", "`"), "", $row->key))] = $row->value;
  }
  } catch (SetteeRestClientException $e) {
  setteErrorHandler($e);
  }
 
  $agencies = Array();
  try {
  $rows = $db->get_view("app", "byCanonicalName", null, true)->rows;
  //print_r($rows);
  foreach ($rows as $row) {
  $employees = 0;
  $portfolioid = 0;
  if (isset($row->value->employees)) {
  $employees = $row->value->employees;
  }
  if (isset($row->value->statistics->employees)) {
  $agencyEmployeesArray = object_to_array($row->value->statistics->employees);
  if (isset($agencyEmployeesArray["2010-2011"]["value"])) {
  $employees = $agencyEmployeesArray["2010-2011"]["value"];
  } else {
  // bailout for agencies that are closed for business
  continue;
  }
  }
  if (!($employees > 0)) {
  $employees = 0;
  }
  if (isset($row->value->parentOrg)) {
  $portfolioid = $row->value->parentOrg;
  }
  if (isset($row->value->orgType) && $row->value->orgType == "FMA-DepartmentOfState") {
  $portfolioid = $row->id;
  }
  $agencies[$portfolioid][$row->value->name] = $employees;
  }
  } catch (SetteeRestClientException $e) {
  setteErrorHandler($e);
  }
  //print_r($portfolios);
  //print_r($agencies);
 
  // http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
  $golden_ratio_conjugate = 0.618033988749895;
  $h = 0.00+rand(0,10)/10; # use random start value
  foreach ($portfolios as $portfolioName => $portfolioID) {
  $h += $golden_ratio_conjugate;
 
  $h = fmod($h,1);
  $portfolioColor = $color->hsv2hex(Array($h, .3, .99));
  $subnodes = Array();
  $portfolioEmployees = 0;
  foreach ($agencies[$portfolioID] as $agencyName => $agencyEmployees) {
  $agencyColor = $color->hsv2hex(Array($h / 10, rand(1, 10) / 10, abs(($h * (1 / 10)) - .5) + .5));
  $subnodes[] = Array(
  "label" => str_replace(Array("'", "`"), "", $agencyName),
  "amount" => $agencyEmployees,
  //"color" => "#" . $agencyColor
  );
  $portfolioEmployees += $agencyEmployees;
  }
  $nodes[] = Array(
  "label" => $portfolioName,
  "amount" => $portfolioEmployees,
  //"color" => "#" . $portfolioColor,
  "children" => $subnodes
  );
  $total += $portfolioEmployees;
  }
  $data = Array(
  "label" => "Australian Federal Government",
  "amount" => $total,
  //"color" => "#000000",
  "children" => $nodes
  );
  echo "var data =eval('('+'" . json_encode($data) . "'+')');";
  ?>
 
  new BubbleTree({
  data: data,
  container: '.bubbletree'
  });
 
 
  });
 
  </script>
  </head>
  <body>
  <div class="bubbletree-wrapper">
  <div class="bubbletree"></div>
  </div>
  </body>
  </html>
 
file:a/charts.php -> file:b/charts.php
<?php <?php
include_once('include/common.inc.php'); include_once('include/common.inc.php');
include_header(); include_header('Charts');
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
?> ?>
<div class="foundation-header"> <div class="foundation-header">
<h1><a href="about.php">Charts</a></h1> <h1><a href="about.php">Charts</a></h1>
<h4 class="subheader">Lorem ipsum.</h4> <h4 class="subheader">Lorem ipsum.</h4>
</div> </div>
<div id="scores" style="width:900px;height:500px;"></div> <div id="scores" style="width:900px;height:500px;"></div>
<div id="employees" style="width:1000px;height:900px;"></div> <div id="employees" style="width:1000px;height:900px;"></div>
<script id="source"> <script id="source">
window.onload = function() { window.onload = function() {
$(document).ready(function() { $(document).ready(function() {
var d1 = []; var d1 = [];
var scorelabels = []; var scorelabels = [];
<?php <?php
try { try {
$rows = $db->get_view("app", "scoreHas?group=true", null, true)->rows; $rows = $db->get_view("app", "scoreHas?group=true", null, true)->rows;
   
   
$dataValues = Array(); $dataValues = Array();
foreach ($rows as $row) { foreach ($rows as $row) {
$dataValues[$row->value] = $row->key; $dataValues[$row->value] = $row->key;
} }
$i = 0; $i = 0;
ksort($dataValues); ksort($dataValues);
foreach ($dataValues as $value => $key) { foreach ($dataValues as $value => $key) {
   
echo " d1.push([$i, $value]);" . PHP_EOL; echo " d1.push([$i, $value]);" . PHP_EOL;
echo " scorelabels.push('$key');" . PHP_EOL; echo " scorelabels.push('$key');" . PHP_EOL;
$i++; $i++;
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
?> ?>
function scoretrackformatter(obj) { function scoretrackformatter(obj) {
if (scorelabels[Math.floor(obj.x)]) { if (scorelabels[Math.floor(obj.x)]) {
return (scorelabels[Math.floor(obj.x)])+"="+obj.y; return (scorelabels[Math.floor(obj.x)])+"="+obj.y;
} else { } else {
return ""; return "";
} }
} }
function scoretickformatter(val, axis) { function scoretickformatter(val, axis) {
if (scorelabels[Math.floor(val)]) { if (scorelabels[Math.floor(val)]) {
return '<p style="margin-top:8em;-webkit-transform:rotate(-90deg);">'+(scorelabels[Math.floor(val)])+"</b>"; return '<p style="margin-top:8em;-webkit-transform:rotate(-90deg);">'+(scorelabels[Math.floor(val)])+"</b>";
} else { } else {
return ""; return "";
} }
} }
Flotr.draw(document.getElementById("scores"), [ {data: d1}], { Flotr.draw(document.getElementById("scores"), [ {data: d1}], {
HtmlText: true, HtmlText: true,
bars : { bars : {
show : true show : true
}, },
mouse : { mouse : {
track : true, track : true,
relative : true, relative : true,
trackFormatter: scoretrackformatter trackFormatter: scoretrackformatter
},yaxis: { },yaxis: {
autoscaling: true autoscaling: true
}, },
xaxis: { xaxis: {
autoscaling: true, autoscaling: true,
minorTickFreq: 0.6, minorTickFreq: 0.6,
noTicks : scorelabels.length, noTicks : scorelabels.length,
tickFormatter: scoretickformatter tickFormatter: scoretickformatter
} }
}); });
var emplabels = []; var emplabels = [];
function emptrackformatter(obj) { function emptrackformatter(obj) {
return (obj.series.label)+" = "+obj.y+" in "+emplabels[Math.floor(obj.x)]; return (obj.series.label)+" = "+obj.y+" in "+emplabels[Math.floor(obj.x)];
} }
function emptickformatter(val, axis) { function emptickformatter(val, axis) {
if (emplabels[Math.floor(val)]) { if (emplabels[Math.floor(val)]) {
return '<p style="margin-top:8em;-webkit-transform:rotate(-90deg);">'+(emplabels[Math.floor(val)])+"</b>"; return '<p style="margin-top:8em;-webkit-transform:rotate(-90deg);">'+(emplabels[Math.floor(val)])+"</b>";
} else { } else {
return ""; return "";
} }
} }
function onDataReceived(series) { function onDataReceived(series) {
emplabels = series.labels; emplabels = series.labels;
Flotr.draw(document.getElementById("employees"), series.data, { Flotr.draw(document.getElementById("employees"), series.data, {
mouse : { mouse : {
track : true, track : true,
relative : true, relative : true,
trackFormatter: emptrackformatter trackFormatter: emptrackformatter
},yaxis: { },yaxis: {
max: 10000, max: 10000,
scaling: 'logarithmic' scaling: 'logarithmic'
}, },
xaxis: { xaxis: {
minorTickFreq: 1, minorTickFreq: 1,
noTicks: emplabels.length, noTicks: emplabels.length,
showMinorLabels: true, showMinorLabels: true,
tickFormatter: emptickformatter tickFormatter: emptickformatter
}, },
legend: { legend: {
show: false show: false
} }
}); });
} }
$.ajax({ $.ajax({
url: "admin/exportEmployees.csv.php?format=json", url: "admin/exportEmployees.csv.php?format=json",
method: 'GET', method: 'GET',
dataType: 'json', dataType: 'json',
success: onDataReceived success: onDataReceived
}); });
   
}); });
}; };
</script> </script>
   
<?php <?php
include_footer(); include_footer();
?> ?>
directory:a/couchdb/settee -> directory:b/couchdb/settee
   
  <!doctype html>
  <html lang="en">
  <head>
  <meta charset="utf-8">
  <title>Page Not Found :(</title>
  <style>
  ::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; }
  ::selection { background: #fe57a1; color: #fff; text-shadow: none; }
  html { padding: 30px 10px; font-size: 20px; line-height: 1.4; color: #737373; background: #f0f0f0; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
  html, input { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
  body { max-width: 500px; _width: 500px; padding: 30px 20px 50px; border: 1px solid #b3b3b3; border-radius: 4px; margin: 0 auto; box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff; background: #fcfcfc; }
  h1 { margin: 0 10px; font-size: 50px; text-align: center; }
  h1 span { color: #bbb; }
  h3 { margin: 1.5em 0 0.5em; }
  p { margin: 1em 0; }
  ul { padding: 0 0 0 40px; margin: 1em 0; }
  .container { max-width: 380px; _width: 380px; margin: 0 auto; }
  /* google search */
  #goog-fixurl ul { list-style: none; padding: 0; margin: 0; }
  #goog-fixurl form { margin: 0; }
  #goog-wm-qt, #goog-wm-sb { border: 1px solid #bbb; font-size: 16px; line-height: normal; vertical-align: top; color: #444; border-radius: 2px; }
  #goog-wm-qt { width: 220px; height: 20px; padding: 5px; margin: 5px 10px 0 0; box-shadow: inset 0 1px 1px #ccc; }
  #goog-wm-sb { display: inline-block; height: 32px; padding: 0 10px; margin: 5px 0 0; white-space: nowrap; cursor: pointer; background-color: #f5f5f5; background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1); background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1); background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1); background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1); -webkit-appearance: none; -moz-appearance: none; appearance: none; *overflow: visible; *display: inline; *zoom: 1; }
  #goog-wm-sb:hover, #goog-wm-sb:focus { border-color: #aaa; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); background-color: #f8f8f8; }
  #goog-wm-qt:focus, #goog-wm-sb:focus { border-color: #105cb6; outline: 0; color: #222; }
  input::-moz-focus-inner { padding: 0; border: 0; }
  </style>
  </head>
  <body>
  <div class="container">
  <h1>Not found <span>:(</span></h1>
  <p>Sorry, but the page you were trying to view does not exist.</p>
  <p>It looks like this was the result of either:</p>
  <ul>
  <li>a mistyped address</li>
  <li>an out-of-date link</li>
  </ul>
  <script>
  var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
  </script>
  <script src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
  </div>
 
 
 Binary files /dev/null and b/documents/apple-touch-icon-114x114-precomposed.png differ
 Binary files /dev/null and b/documents/apple-touch-icon-57x57-precomposed.png differ
 Binary files /dev/null and b/documents/apple-touch-icon-72x72-precomposed.png differ
 Binary files /dev/null and b/documents/apple-touch-icon-precomposed.png differ
 Binary files /dev/null and b/documents/apple-touch-icon.png differ
  <?xml version="1.0"?>
  <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
  <cross-domain-policy>
 
 
  <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
 
  <!-- Most restrictive policy: -->
  <site-control permitted-cross-domain-policies="none"/>
 
 
 
  <!-- Least restrictive policy: -->
  <!--
  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*" to-ports="*" secure="false"/>
  <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
  -->
  <!--
  If you host a crossdomain.xml file with allow-access-from domain="*"
  and don’t understand all of the points described here, you probably
  have a nasty security vulnerability. ~ simon willison
  -->
 
  </cross-domain-policy>
 
  /*!
  * Bootstrap Responsive v2.2.1
  *
  * Copyright 2012 Twitter, Inc
  * Licensed under the Apache License v2.0
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
  */
 
  .clearfix {
  *zoom: 1;
  }
 
  .clearfix:before,
  .clearfix:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .clearfix:after {
  clear: both;
  }
 
  .hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
  }
 
  .input-block-level {
  display: block;
  width: 100%;
  min-height: 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  }
 
  .hidden {
  display: none;
  visibility: hidden;
  }
 
  .visible-phone {
  display: none !important;
  }
 
  .visible-tablet {
  display: none !important;
  }
 
  .hidden-desktop {
  display: none !important;
  }
 
  .visible-desktop {
  display: inherit !important;
  }
 
  @media (min-width: 768px) and (max-width: 979px) {
  .hidden-desktop {
  display: inherit !important;
  }
  .visible-desktop {
  display: none !important ;
  }
  .visible-tablet {
  display: inherit !important;
  }
  .hidden-tablet {
  display: none !important;
  }
  }
 
  @media (max-width: 767px) {
  .hidden-desktop {
  display: inherit !important;
  }
  .visible-desktop {
  display: none !important;
  }
  .visible-phone {
  display: inherit !important;
  }
  .hidden-phone {
  display: none !important;
  }
  }
 
  @media (min-width: 1200px) {
  .row {
  margin-left: -30px;
  *zoom: 1;
  }
  .row:before,
  .row:after {
  display: table;
  line-height: 0;
  content: "";
  }
  .row:after {
  clear: both;
  }
  [class*="span"] {
  float: left;
  min-height: 1px;
  margin-left: 30px;
  }
  .container,
  .navbar-static-top .container,
  .navbar-fixed-top .container,
  .navbar-fixed-bottom .container {
  width: 1170px;
  }
  .span12 {
  width: 1170px;
  }
  .span11 {
  width: 1070px;
  }
  .span10 {
  width: 970px;
  }
  .span9 {
  width: 870px;
  }
  .span8 {
  width: 770px;
  }
  .span7 {
  width: 670px;
  }
  .span6 {
  width: 570px;
  }
  .span5 {
  width: 470px;
  }
  .span4 {
  width: 370px;
  }
  .span3 {
  width: 270px;
  }
  .span2 {
  width: 170px;
  }
  .span1 {
  width: 70px;
  }
  .offset12 {
  margin-left: 1230px;
  }
  .offset11 {
  margin-left: 1130px;
  }
  .offset10 {
  margin-left: 1030px;
  }
  .offset9 {
  margin-left: 930px;
  }
  .offset8 {
  margin-left: 830px;
  }
  .offset7 {
  margin-left: 730px;
  }
  .offset6 {
  margin-left: 630px;
  }
  .offset5 {
  margin-left: 530px;
  }
  .offset4 {
  margin-left: 430px;
  }
  .offset3 {
  margin-left: 330px;
  }
  .offset2 {
  margin-left: 230px;
  }
  .offset1 {
  margin-left: 130px;
  }
  .row-fluid {
  width: 100%;
  *zoom: 1;
  }
  .row-fluid:before,
  .row-fluid:after {
  display: table;
  line-height: 0;
  content: "";
  }
  .row-fluid:after {
  clear: both;
  }
  .row-fluid [class*="span"] {
  display: block;
  float: left;
  width: 100%;
  min-height: 30px;
  margin-left: 2.564102564102564%;
  *margin-left: 2.5109110747408616%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  }
  .row-fluid [class*="span"]:first-child {
  margin-left: 0;
  }
  .row-fluid .controls-row [class*="span"] + [class*="span"] {
  margin-left: 2.564102564102564%;
  }
  .row-fluid .span12 {
  width: 100%;
  *width: 99.94680851063829%;
  }
  .row-fluid .span11 {
  width: 91.45299145299145%;
  *width: 91.39979996362975%;
  }
  .row-fluid .span10 {
  width: 82.90598290598291%;
  *width: 82.8527914166212%;
  }
  .row-fluid .span9 {
  width: 74.35897435897436%;
  *width: 74.30578286961266%;
  }
  .row-fluid .span8 {
  width: 65.81196581196582%;
  *width: 65.75877432260411%;
  }
  .row-fluid .span7 {
  width: 57.26495726495726%;
  *width: 57.21176577559556%;
  }
  .row-fluid .span6 {
  width: 48.717948717948715%;
  *width: 48.664757228587014%;
  }
  .row-fluid .span5 {
  width: 40.17094017094017%;
  *width: 40.11774868157847%;
  }
  .row-fluid .span4 {
  width: 31.623931623931625%;
  *width: 31.570740134569924%;
  }
  .row-fluid .span3 {
  width: 23.076923076923077%;
  *width: 23.023731587561375%;
  }
  .row-fluid .span2 {
  width: 14.52991452991453%;
  *width: 14.476723040552828%;
  }
  .row-fluid .span1 {
  width: 5.982905982905983%;
  *width: 5.929714493544281%;
  }
  .row-fluid .offset12 {
  margin-left: 105.12820512820512%;
  *margin-left: 105.02182214948171%;
  }
  .row-fluid .offset12:first-child {
  margin-left: 102.56410256410257%;
  *margin-left: 102.45771958537915%;
  }
  .row-fluid .offset11 {
  margin-left: 96.58119658119658%;
  *margin-left: 96.47481360247316%;
  }
  .row-fluid .offset11:first-child {
  margin-left: 94.01709401709402%;
  *margin-left: 93.91071103837061%;
  }
  .row-fluid .offset10 {
  margin-left: 88.03418803418803%;
  *margin-left: 87.92780505546462%;
  }
  .row-fluid .offset10:first-child {
  margin-left: 85.47008547008548%;
  *margin-left: 85.36370249136206%;
  }
  .row-fluid .offset9 {
  margin-left: 79.48717948717949%;
  *margin-left: 79.38079650845607%;
  }
  .row-fluid .offset9:first-child {
  margin-left: 76.92307692307693%;
  *margin-left: 76.81669394435352%;
  }
  .row-fluid .offset8 {
  margin-left: 70.94017094017094%;
  *margin-left: 70.83378796144753%;
  }
  .row-fluid .offset8:first-child {
  margin-left: 68.37606837606839%;
  *margin-left: 68.26968539734497%;
  }
  .row-fluid .offset7 {
  margin-left: 62.393162393162385%;
  *margin-left: 62.28677941443899%;
  }
  .row-fluid .offset7:first-child {
  margin-left: 59.82905982905982%;
  *margin-left: 59.72267685033642%;
  }
  .row-fluid .offset6 {
  margin-left: 53.84615384615384%;
  *margin-left: 53.739770867430444%;
  }
  .row-fluid .offset6:first-child {
  margin-left: 51.28205128205128%;
  *margin-left: 51.175668303327875%;
  }
  .row-fluid .offset5 {
  margin-left: 45.299145299145295%;
  *margin-left: 45.1927623204219%;
  }
  .row-fluid .offset5:first-child {
  margin-left: 42.73504273504273%;
  *margin-left: 42.62865975631933%;
  }
  .row-fluid .offset4 {
  margin-left: 36.75213675213675%;
  *margin-left: 36.645753773413354%;
  }
  .row-fluid .offset4:first-child {
  margin-left: 34.18803418803419%;
  *margin-left: 34.081651209310785%;
  }
  .row-fluid .offset3 {
  margin-left: 28.205128205128204%;
  *margin-left: 28.0987452264048%;
  }
  .row-fluid .offset3:first-child {
  margin-left: 25.641025641025642%;
  *margin-left: 25.53464266230224%;
  }
  .row-fluid .offset2 {
  margin-left: 19.65811965811966%;
  *margin-left: 19.551736679396257%;
  }
  .row-fluid .offset2:first-child {
  margin-left: 17.094017094017094%;
  *margin-left: 16.98763411529369%;
  }
  .row-fluid .offset1 {
  margin-left: 11.11111111111111%;
  *margin-left: 11.004728132387708%;
  }
  .row-fluid .offset1:first-child {
  margin-left: 8.547008547008547%;
  *margin-left: 8.440625568285142%;
  }
  input,
  textarea,
  .uneditable-input {
  margin-left: 0;
  }
  .controls-row [class*="span"] + [class*="span"] {
  margin-left: 30px;
  }
  input.span12,
  textarea.span12,
  .uneditable-input.span12 {
  width: 1156px;
  }
  input.span11,
  textarea.span11,
  .uneditable-input.span11 {
  width: 1056px;
  }
  input.span10,
  textarea.span10,
  .uneditable-input.span10 {
  width: 956px;
  }
  input.span9,
  textarea.span9,
  .uneditable-input.span9 {
  width: 856px;
  }
  input.span8,
  textarea.span8,
  .uneditable-input.span8 {
  width: 756px;
  }
  input.span7,
  textarea.span7,
  .uneditable-input.span7 {
  width: 656px;
  }
  input.span6,
  textarea.span6,
  .uneditable-input.span6 {
  width: 556px;
  }
  input.span5,
  textarea.span5,
  .uneditable-input.span5 {
  width: 456px;
  }
  input.span4,
  textarea.span4,
  .uneditable-input.span4 {
  width: 356px;
  }
  input.span3,
  textarea.span3,
  .uneditable-input.span3 {
  width: 256px;
  }
  input.span2,
  textarea.span2,
  .uneditable-input.span2 {
  width: 156px;
  }
  input.span1,
  textarea.span1,
  .uneditable-input.span1 {
  width: 56px;
  }
  .thumbnails {
  margin-left: -30px;
  }
  .thumbnails > li {
  margin-left: 30px;
  }
  .row-fluid .thumbnails {
  margin-left: 0;
  }
  }
 
  @media (min-width: 768px) and (max-width: 979px) {
  .row {
  margin-left: -20px;
  *zoom: 1;
  }
  .row:before,
  .row:after {
  display: table;
  line-height: 0;
  content: "";
  }
  .row:after {
  clear: both;
  }
  [class*="span"] {
  float: left;
  min-height: 1px;
  margin-left: 20px;
  }
  .container,
  .navbar-static-top .container,
  .navbar-fixed-top .container,
  .navbar-fixed-bottom .container {
  width: 724px;
  }
  .span12 {
  width: 724px;
  }
  .span11 {
  width: 662px;
  }
  .span10 {
  width: 600px;
  }
  .span9 {
  width: 538px;
  }
  .span8 {
  width: 476px;
  }
  .span7 {
  width: 414px;
  }
  .span6 {
  width: 352px;
  }
  .span5 {
  width: 290px;
  }
  .span4 {
  width: 228px;
  }
  .span3 {
  width: 166px;
  }
  .span2 {
  width: 104px;
  }
  .span1 {
  width: 42px;
  }
  .offset12 {
  margin-left: 764px;
  }
  .offset11 {
  margin-left: 702px;
  }
  .offset10 {
  margin-left: 640px;
  }
  .offset9 {
  margin-left: 578px;
  }
  .offset8 {
  margin-left: 516px;
  }
  .offset7 {
  margin-left: 454px;
  }
  .offset6 {
  margin-left: 392px;
  }
  .offset5 {
  margin-left: 330px;
  }
  .offset4 {
  margin-left: 268px;
  }
  .offset3 {
  margin-left: 206px;
  }
  .offset2 {
  margin-left: 144px;
  }
  .offset1 {
  margin-left: 82px;
  }
  .row-fluid {
  width: 100%;
  *zoom: 1;
  }
  .row-fluid:before,
  .row-fluid:after {
  display: table;
  line-height: 0;
  content: "";
  }
  .row-fluid:after {
  clear: both;
  }
  .row-fluid [class*="span"] {
  display: block;
  float: left;
  width: 100%;
  min-height: 30px;
  margin-left: 2.7624309392265194%;
  *margin-left: 2.709239449864817%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  }
  .row-fluid [class*="span"]:first-child {
  margin-left: 0;
  }
  .row-fluid .controls-row [class*="span"] + [class*="span"] {
  margin-left: 2.7624309392265194%;
  }
  .row-fluid .span12 {
  width: 100%;
  *width: 99.94680851063829%;
  }
  .row-fluid .span11 {
  width: 91.43646408839778%;
  *width: 91.38327259903608%;
  }
  .row-fluid .span10 {
  width: 82.87292817679558%;
  *width: 82.81973668743387%;
  }
  .row-fluid .span9 {
  width: 74.30939226519337%;
  *width: 74.25620077583166%;
  }
  .row-fluid .span8 {
  width: 65.74585635359117%;
  *width: 65.69266486422946%;
  }
  .row-fluid .span7 {
  width: 57.18232044198895%;
  *width: 57.12912895262725%;
  }
  .row-fluid .span6 {
  width: 48.61878453038674%;
  *width: 48.56559304102504%;
  }
  .row-fluid .span5 {
  width: 40.05524861878453%;
  *width: 40.00205712942283%;
  }
  .row-fluid .span4 {
  width: 31.491712707182323%;
  *width: 31.43852121782062%;
  }
  .row-fluid .span3 {
  width: 22.92817679558011%;
  *width: 22.87498530621841%;
  }
  .row-fluid .span2 {
  width: 14.3646408839779%;
  *width: 14.311449394616199%;
  }
  .row-fluid .span1 {
  width: 5.801104972375691%;
  *width: 5.747913483013988%;
  }
  .row-fluid .offset12 {
  margin-left: 105.52486187845304%;
  *margin-left: 105.41847889972962%;
  }
  .row-fluid .offset12:first-child {
  margin-left: 102.76243093922652%;
  *margin-left: 102.6560479605031%;
  }
  .row-fluid .offset11 {
  margin-left: 96.96132596685082%;
  *margin-left: 96.8549429881274%;
  }
  .row-fluid .offset11:first-child {
  margin-left: 94.1988950276243%;
  *margin-left: 94.09251204890089%;
  }
  .row-fluid .offset10 {
  margin-left: 88.39779005524862%;
  *margin-left: 88.2914070765252%;
  }
  .row-fluid .offset10:first-child {
  margin-left: 85.6353591160221%;
  *margin-left: 85.52897613729868%;
  }
  .row-fluid .offset9 {
  margin-left: 79.8342541436464%;
  *margin-left: 79.72787116492299%;
  }
  .row-fluid .offset9:first-child {
  margin-left: 77.07182320441989%;
  *margin-left: 76.96544022569647%;
  }
  .row-fluid .offset8 {
  margin-left: 71.2707182320442%;
  *margin-left: 71.16433525332079%;
  }
  .row-fluid .offset8:first-child {
  margin-left: 68.50828729281768%;
  *margin-left: 68.40190431409427%;
  }
  .row-fluid .offset7 {
  margin-left: 62.70718232044199%;
  *margin-left: 62.600799341718584%;
  }
  .row-fluid .offset7:first-child {
  margin-left: 59.94475138121547%;
  *margin-left: 59.838368402492065%;
  }
  .row-fluid .offset6 {
  margin-left: 54.14364640883978%;
  *margin-left: 54.037263430116376%;
  }
  .row-fluid .offset6:first-child {
  margin-left: 51.38121546961326%;
  *margin-left: 51.27483249088986%;
  }
  .row-fluid .offset5 {
  margin-left: 45.58011049723757%;
  *margin-left: 45.47372751851417%;
  }
  .row-fluid .offset5:first-child {
  margin-left: 42.81767955801105%;
  *margin-left: 42.71129657928765%;
  }
  .row-fluid .offset4 {
  margin-left: 37.01657458563536%;
  *margin-left: 36.91019160691196%;
  }
  .row-fluid .offset4:first-child {
  margin-left: 34.25414364640884%;
  *margin-left: 34.14776066768544%;
  }
  .row-fluid .offset3 {
  margin-left: 28.45303867403315%;
  *margin-left: 28.346655695309746%;
  }
  .row-fluid .offset3:first-child {
  margin-left: 25.69060773480663%;
  *margin-left: 25.584224756083227%;
  }
  .row-fluid .offset2 {
  margin-left: 19.88950276243094%;
  *margin-left: 19.783119783707537%;
  }
  .row-fluid .offset2:first-child {
  margin-left: 17.12707182320442%;
  *margin-left: 17.02068884448102%;
  }
  .row-fluid .offset1 {
  margin-left: 11.32596685082873%;
  *margin-left: 11.219583872105325%;
  }
  .row-fluid .offset1:first-child {
  margin-left: 8.56353591160221%;
  *margin-left: 8.457152932878806%;
  }
  input,
  textarea,
  .uneditable-input {
  margin-left: 0;
  }
  .controls-row [class*="span"] + [class*="span"] {
  margin-left: 20px;
  }
  input.span12,
  textarea.span12,
  .uneditable-input.span12 {
  width: 710px;
  }
  input.span11,
  textarea.span11,
  .uneditable-input.span11 {
  width: 648px;
  }
  input.span10,
  textarea.span10,
  .uneditable-input.span10 {
  width: 586px;
  }
  input.span9,
  textarea.span9,
  .uneditable-input.span9 {
  width: 524px;
  }
  input.span8,
  textarea.span8,
  .uneditable-input.span8 {
  width: 462px;
  }
  input.span7,
  textarea.span7,
  .uneditable-input.span7 {
  width: 400px;
  }
  input.span6,
  textarea.span6,
  .uneditable-input.span6 {
  width: 338px;
  }
  input.span5,
  textarea.span5,
  .uneditable-input.span5 {
  width: 276px;
  }
  input.span4,
  textarea.span4,
  .uneditable-input.span4 {
  width: 214px;
  }
  input.span3,
  textarea.span3,
  .uneditable-input.span3 {
  width: 152px;
  }
  input.span2,
  textarea.span2,
  .uneditable-input.span2 {
  width: 90px;
  }
  input.span1,
  textarea.span1,
  .uneditable-input.span1 {
  width: 28px;
  }
  }
 
  @media (max-width: 767px) {
  body {
  padding-right: 20px;
  padding-left: 20px;
  }
  .navbar-fixed-top,
  .navbar-fixed-bottom,
  .navbar-static-top {
  margin-right: -20px;
  margin-left: -20px;
  }
  .container-fluid {
  padding: 0;
  }
  .dl-horizontal dt {
  float: none;
  width: auto;
  clear: none;
  text-align: left;
  }
  .dl-horizontal dd {
  margin-left: 0;
  }
  .container {
  width: auto;
  }
  .row-fluid {
  width: 100%;
  }
  .row,
  .thumbnails {
  margin-left: 0;
  }
  .thumbnails > li {
  float: none;
  margin-left: 0;
  }
  [class*="span"],
  .uneditable-input[class*="span"],
  .row-fluid [class*="span"] {
  display: block;
  float: none;
  width: 100%;
  margin-left: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  }
  .span12,
  .row-fluid .span12 {
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  }
  .row-fluid [class*="offset"]:first-child {
  margin-left: 0;
  }
  .input-large,
  .input-xlarge,
  .input-xxlarge,
  input[class*="span"],
  select[class*="span"],
  textarea[class*="span"],
  .uneditable-input {
  display: block;
  width: 100%;
  min-height: 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  }
  .input-prepend input,
  .input-append input,
  .input-prepend input[class*="span"],
  .input-append input[class*="span"] {
  display: inline-block;
  width: auto;
  }
  .controls-row [class*="span"] + [class*="span"] {
  margin-left: 0;
  }
  .modal {
  position: fixed;
  top: 20px;
  right: 20px;
  left: 20px;
  width: auto;
  margin: 0;
  }
  .modal.fade {
  top: -100px;
  }
  .modal.fade.in {
  top: 20px;
  }
  }
 
  @media (max-width: 480px) {
  .nav-collapse {
  -webkit-transform: translate3d(0, 0, 0);
  }
  .page-header h1 small {
  display: block;
  line-height: 20px;
  }
  input[type="checkbox"],
  input[type="radio"] {
  border: 1px solid #ccc;
  }
  .form-horizontal .control-label {
  float: none;
  width: auto;
  padding-top: 0;
  text-align: left;
  }
  .form-horizontal .controls {
  margin-left: 0;
  }
  .form-horizontal .control-list {
  padding-top: 0;
  }
  .form-horizontal .form-actions {
  padding-right: 10px;
  padding-left: 10px;
  }
  .media .pull-left,
  .media .pull-right {
  display: block;
  float: none;
  margin-bottom: 10px;
  }
  .media-object {
  margin-right: 0;
  margin-left: 0;
  }
  .modal {
  top: 10px;
  right: 10px;
  left: 10px;
  }
  .modal-header .close {
  padding: 10px;
  margin: -10px;
  }
  .carousel-caption {
  position: static;
  }
  }
 
  @media (max-width: 979px) {
  body {
  padding-top: 0;
  }
  .navbar-fixed-top,
  .navbar-fixed-bottom {
  position: static;
  }
  .navbar-fixed-top {
  margin-bottom: 20px;
  }
  .navbar-fixed-bottom {
  margin-top: 20px;
  }
  .navbar-fixed-top .navbar-inner,
  .navbar-fixed-bottom .navbar-inner {
  padding: 5px;
  }
  .navbar .container {
  width: auto;
  padding: 0;
  }
  .navbar .brand {
  padding-right: 10px;
  padding-left: 10px;
  margin: 0 0 0 -5px;
  }
  .nav-collapse {
  clear: both;
  }
  .nav-collapse .nav {
  float: none;
  margin: 0 0 10px;
  }
  .nav-collapse .nav > li {
  float: none;
  }
  .nav-collapse .nav > li > a {
  margin-bottom: 2px;
  }
  .nav-collapse .nav > .divider-vertical {
  display: none;
  }
  .nav-collapse .nav .nav-header {
  color: #777777;
  text-shadow: none;
  }
  .nav-collapse .nav > li > a,
  .nav-collapse .dropdown-menu a {
  padding: 9px 15px;
  font-weight: bold;
  color: #777777;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  }
  .nav-collapse .btn {
  padding: 4px 10px 4px;
  font-weight: normal;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  }
  .nav-collapse .dropdown-menu li + li a {
  margin-bottom: 2px;
  }
  .nav-collapse .nav > li > a:hover,
  .nav-collapse .dropdown-menu a:hover {
  background-color: #f2f2f2;
  }
  .navbar-inverse .nav-collapse .nav > li > a,
  .navbar-inverse .nav-collapse .dropdown-menu a {
  color: #999999;
  }
  .navbar-inverse .nav-collapse .nav > li > a:hover,
  .navbar-inverse .nav-collapse .dropdown-menu a:hover {
  background-color: #111111;
  }
  .nav-collapse.in .btn-group {
  padding: 0;
  margin-top: 5px;
  }
  .nav-collapse .dropdown-menu {
  position: static;
  top: auto;
  left: auto;
  display: none;
  float: none;
  max-width: none;
  padding: 0;
  margin: 0 15px;
  background-color: transparent;
  border: none;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  }
  .nav-collapse .open > .dropdown-menu {
  display: block;
  }
  .nav-collapse .dropdown-menu:before,
  .nav-collapse .dropdown-menu:after {
  display: none;
  }
  .nav-collapse .dropdown-menu .divider {
  display: none;
  }
  .nav-collapse .nav > li > .dropdown-menu:before,
  .nav-collapse .nav > li > .dropdown-menu:after {
  display: none;
  }
  .nav-collapse .navbar-form,
  .nav-collapse .navbar-search {
  float: none;
  padding: 10px 15px;
  margin: 10px 0;
  border-top: 1px solid #f2f2f2;
  border-bottom: 1px solid #f2f2f2;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  }
  .navbar-inverse .nav-collapse .navbar-form,
  .navbar-inverse .nav-collapse .navbar-search {
  border-top-color: #111111;
  border-bottom-color: #111111;
  }
  .navbar .nav-collapse .nav.pull-right {
  float: none;
  margin-left: 0;
  }
  .nav-collapse,
  .nav-collapse.collapse {
  height: 0;
  overflow: hidden;
  }
  .navbar .btn-navbar {
  display: block;
  }
  .navbar-static .navbar-inner {
  padding-right: 10px;
  padding-left: 10px;
  }
  }
 
  @media (min-width: 980px) {
  .nav-collapse.collapse {
  height: auto !important;
  overflow: visible !important;
  }
  }
 
  /*!
  * Bootstrap Responsive v2.2.1
  *
  * Copyright 2012 Twitter, Inc
  * Licensed under the Apache License v2.0
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
  */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
 
  /*!
  * Bootstrap v2.2.1
  *
  * Copyright 2012 Twitter, Inc
  * Licensed under the Apache License v2.0
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
  */
 
  article,
  aside,
  details,
  figcaption,
  figure,
  footer,
  header,
  hgroup,
  nav,
  section {
  display: block;
  }
 
  audio,
  canvas,
  video {
  display: inline-block;
  *display: inline;
  *zoom: 1;
  }
 
  audio:not([controls]) {
  display: none;
  }
 
  html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  }
 
  a:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
  }
 
  a:hover,
  a:active {
  outline: 0;
  }
 
  sub,
  sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
  }
 
  sup {
  top: -0.5em;
  }
 
  sub {
  bottom: -0.25em;
  }
 
  img {
  width: auto\9;
  height: auto;
  max-width: 100%;
  vertical-align: middle;
  border: 0;
  -ms-interpolation-mode: bicubic;
  }
 
  #map_canvas img,
  .google-maps img {
  max-width: none;
  }
 
  button,
  input,
  select,
  textarea {
  margin: 0;
  font-size: 100%;
  vertical-align: middle;
  }
 
  button,
  input {
  *overflow: visible;
  line-height: normal;
  }
 
  button::-moz-focus-inner,
  input::-moz-focus-inner {
  padding: 0;
  border: 0;
  }
 
  button,
  html input[type="button"],
  input[type="reset"],
  input[type="submit"] {
  cursor: pointer;
  -webkit-appearance: button;
  }
 
  input[type="search"] {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  -webkit-appearance: textfield;
  }
 
  input[type="search"]::-webkit-search-decoration,
  input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
  }
 
  textarea {
  overflow: auto;
  vertical-align: top;
  }
 
  .clearfix {
  *zoom: 1;
  }
 
  .clearfix:before,
  .clearfix:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .clearfix:after {
  clear: both;
  }
 
  .hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
  }
 
  .input-block-level {
  display: block;
  width: 100%;
  min-height: 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  }
 
  body {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 20px;
  color: #333333;
  background-color: #ffffff;
  }
 
  a {
  color: #0088cc;
  text-decoration: none;
  }
 
  a:hover {
  color: #005580;
  text-decoration: underline;
  }
 
  .img-rounded {
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  }
 
  .img-polaroid {
  padding: 4px;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  }
 
  .img-circle {
  -webkit-border-radius: 500px;
  -moz-border-radius: 500px;
  border-radius: 500px;
  }
 
  .row {
  margin-left: -20px;
  *zoom: 1;
  }
 
  .row:before,
  .row:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .row:after {
  clear: both;
  }
 
  [class*="span"] {
  float: left;
  min-height: 1px;
  margin-left: 20px;
  }
 
  .container,
  .navbar-static-top .container,
  .navbar-fixed-top .container,
  .navbar-fixed-bottom .container {
  width: 940px;
  }
 
  .span12 {
  width: 940px;
  }
 
  .span11 {
  width: 860px;
  }
 
  .span10 {
  width: 780px;
  }
 
  .span9 {
  width: 700px;
  }
 
  .span8 {
  width: 620px;
  }
 
  .span7 {
  width: 540px;
  }
 
  .span6 {
  width: 460px;
  }
 
  .span5 {
  width: 380px;
  }
 
  .span4 {
  width: 300px;
  }
 
  .span3 {
  width: 220px;
  }
 
  .span2 {
  width: 140px;
  }
 
  .span1 {
  width: 60px;
  }
 
  .offset12 {
  margin-left: 980px;
  }
 
  .offset11 {
  margin-left: 900px;
  }
 
  .offset10 {
  margin-left: 820px;
  }
 
  .offset9 {
  margin-left: 740px;
  }
 
  .offset8 {
  margin-left: 660px;
  }
 
  .offset7 {
  margin-left: 580px;
  }
 
  .offset6 {
  margin-left: 500px;
  }
 
  .offset5 {
  margin-left: 420px;
  }
 
  .offset4 {
  margin-left: 340px;
  }
 
  .offset3 {
  margin-left: 260px;
  }
 
  .offset2 {
  margin-left: 180px;
  }
 
  .offset1 {
  margin-left: 100px;
  }
 
  .row-fluid {
  width: 100%;
  *zoom: 1;
  }
 
  .row-fluid:before,
  .row-fluid:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .row-fluid:after {
  clear: both;
  }
 
  .row-fluid [class*="span"] {
  display: block;
  float: left;
  width: 100%;
  min-height: 30px;
  margin-left: 2.127659574468085%;
  *margin-left: 2.074468085106383%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  }
 
  .row-fluid [class*="span"]:first-child {
  margin-left: 0;
  }
 
  .row-fluid .controls-row [class*="span"] + [class*="span"] {
  margin-left: 2.127659574468085%;
  }
 
  .row-fluid .span12 {
  width: 100%;
  *width: 99.94680851063829%;
  }
 
  .row-fluid .span11 {
  width: 91.48936170212765%;
  *width: 91.43617021276594%;
  }
 
  .row-fluid .span10 {
  width: 82.97872340425532%;
  *width: 82.92553191489361%;
  }
 
  .row-fluid .span9 {
  width: 74.46808510638297%;
  *width: 74.41489361702126%;
  }
 
  .row-fluid .span8 {
  width: 65.95744680851064%;
  *width: 65.90425531914893%;
  }
 
  .row-fluid .span7 {
  width: 57.44680851063829%;
  *width: 57.39361702127659%;
  }
 
  .row-fluid .span6 {
  width: 48.93617021276595%;
  *width: 48.88297872340425%;
  }
 
  .row-fluid .span5 {
  width: 40.42553191489362%;
  *width: 40.37234042553192%;
  }
 
  .row-fluid .span4 {
  width: 31.914893617021278%;
  *width: 31.861702127659576%;
  }
 
  .row-fluid .span3 {
  width: 23.404255319148934%;
  *width: 23.351063829787233%;
  }
 
  .row-fluid .span2 {
  width: 14.893617021276595%;
  *width: 14.840425531914894%;
  }
 
  .row-fluid .span1 {
  width: 6.382978723404255%;
  *width: 6.329787234042553%;
  }
 
  .row-fluid .offset12 {
  margin-left: 104.25531914893617%;
  *margin-left: 104.14893617021275%;
  }
 
  .row-fluid .offset12:first-child {
  margin-left: 102.12765957446808%;
  *margin-left: 102.02127659574467%;
  }
 
  .row-fluid .offset11 {
  margin-left: 95.74468085106382%;
  *margin-left: 95.6382978723404%;
  }
 
  .row-fluid .offset11:first-child {
  margin-left: 93.61702127659574%;
  *margin-left: 93.51063829787232%;
  }
 
  .row-fluid .offset10 {
  margin-left: 87.23404255319149%;
  *margin-left: 87.12765957446807%;
  }
 
  .row-fluid .offset10:first-child {
  margin-left: 85.1063829787234%;
  *margin-left: 84.99999999999999%;
  }
 
  .row-fluid .offset9 {
  margin-left: 78.72340425531914%;
  *margin-left: 78.61702127659572%;
  }
 
  .row-fluid .offset9:first-child {
  margin-left: 76.59574468085106%;
  *margin-left: 76.48936170212764%;
  }
 
  .row-fluid .offset8 {
  margin-left: 70.2127659574468%;
  *margin-left: 70.10638297872339%;
  }
 
  .row-fluid .offset8:first-child {
  margin-left: 68.08510638297872%;
  *margin-left: 67.9787234042553%;
  }
 
  .row-fluid .offset7 {
  margin-left: 61.70212765957446%;
  *margin-left: 61.59574468085106%;
  }
 
  .row-fluid .offset7:first-child {
  margin-left: 59.574468085106375%;
  *margin-left: 59.46808510638297%;
  }
 
  .row-fluid .offset6 {
  margin-left: 53.191489361702125%;
  *margin-left: 53.085106382978715%;
  }
 
  .row-fluid .offset6:first-child {
  margin-left: 51.063829787234035%;
  *margin-left: 50.95744680851063%;
  }
 
  .row-fluid .offset5 {
  margin-left: 44.68085106382979%;
  *margin-left: 44.57446808510638%;
  }
 
  .row-fluid .offset5:first-child {
  margin-left: 42.5531914893617%;
  *margin-left: 42.4468085106383%;
  }
 
  .row-fluid .offset4 {
  margin-left: 36.170212765957444%;
  *margin-left: 36.06382978723405%;
  }
 
  .row-fluid .offset4:first-child {
  margin-left: 34.04255319148936%;
  *margin-left: 33.93617021276596%;
  }
 
  .row-fluid .offset3 {
  margin-left: 27.659574468085104%;
  *margin-left: 27.5531914893617%;
  }
 
  .row-fluid .offset3:first-child {
  margin-left: 25.53191489361702%;
  *margin-left: 25.425531914893618%;
  }
 
  .row-fluid .offset2 {
  margin-left: 19.148936170212764%;
  *margin-left: 19.04255319148936%;
  }
 
  .row-fluid .offset2:first-child {
  margin-left: 17.02127659574468%;
  *margin-left: 16.914893617021278%;
  }
 
  .row-fluid .offset1 {
  margin-left: 10.638297872340425%;
  *margin-left: 10.53191489361702%;
  }
 
  .row-fluid .offset1:first-child {
  margin-left: 8.51063829787234%;
  *margin-left: 8.404255319148938%;
  }
 
  [class*="span"].hide,
  .row-fluid [class*="span"].hide {
  display: none;
  }
 
  [class*="span"].pull-right,
  .row-fluid [class*="span"].pull-right {
  float: right;
  }
 
  .container {
  margin-right: auto;
  margin-left: auto;
  *zoom: 1;
  }
 
  .container:before,
  .container:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .container:after {
  clear: both;
  }
 
  .container-fluid {
  padding-right: 20px;
  padding-left: 20px;
  *zoom: 1;
  }
 
  .container-fluid:before,
  .container-fluid:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .container-fluid:after {
  clear: both;
  }
 
  p {
  margin: 0 0 10px;
  }
 
  .lead {
  margin-bottom: 20px;
  font-size: 21px;
  font-weight: 200;
  line-height: 30px;
  }
 
  small {
  font-size: 85%;
  }
 
  strong {
  font-weight: bold;
  }
 
  em {
  font-style: italic;
  }
 
  cite {
  font-style: normal;
  }
 
  .muted {
  color: #999999;
  }
 
  .text-warning {
  color: #c09853;
  }
 
  a.text-warning:hover {
  color: #a47e3c;
  }
 
  .text-error {
  color: #b94a48;
  }
 
  a.text-error:hover {
  color: #953b39;
  }
 
  .text-info {
  color: #3a87ad;
  }
 
  a.text-info:hover {
  color: #2d6987;
  }
 
  .text-success {
  color: #468847;
  }
 
  a.text-success:hover {
  color: #356635;
  }
 
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
  margin: 10px 0;
  font-family: inherit;
  font-weight: bold;
  line-height: 20px;
  color: inherit;
  text-rendering: optimizelegibility;
  }
 
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
  font-weight: normal;
  line-height: 1;
  color: #999999;
  }
 
  h1,
  h2,
  h3 {
  line-height: 40px;
  }
 
  h1 {
  font-size: 38.5px;
  }
 
  h2 {
  font-size: 31.5px;
  }
 
  h3 {
  font-size: 24.5px;
  }
 
  h4 {
  font-size: 17.5px;
  }
 
  h5 {
  font-size: 14px;
  }
 
  h6 {
  font-size: 11.9px;
  }
 
  h1 small {
  font-size: 24.5px;
  }
 
  h2 small {
  font-size: 17.5px;
  }
 
  h3 small {
  font-size: 14px;
  }
 
  h4 small {
  font-size: 14px;
  }
 
  .page-header {
  padding-bottom: 9px;
  margin: 20px 0 30px;
  border-bottom: 1px solid #eeeeee;
  }
 
  ul,
  ol {
  padding: 0;
  margin: 0 0 10px 25px;
  }
 
  ul ul,
  ul ol,
  ol ol,
  ol ul {
  margin-bottom: 0;
  }
 
  li {
  line-height: 20px;
  }
 
  ul.unstyled,
  ol.unstyled {
  margin-left: 0;
  list-style: none;
  }
 
  dl {
  margin-bottom: 20px;
  }
 
  dt,
  dd {
  line-height: 20px;
  }
 
  dt {
  font-weight: bold;
  }
 
  dd {
  margin-left: 10px;
  }
 
  .dl-horizontal {
  *zoom: 1;
  }
 
  .dl-horizontal:before,
  .dl-horizontal:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .dl-horizontal:after {
  clear: both;
  }
 
  .dl-horizontal dt {
  float: left;
  width: 160px;
  overflow: hidden;
  clear: left;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
  }
 
  .dl-horizontal dd {
  margin-left: 180px;
  }
 
  hr {
  margin: 20px 0;
  border: 0;
  border-top: 1px solid #eeeeee;
  border-bottom: 1px solid #ffffff;
  }
 
  abbr[title],
  abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #999999;
  }
 
  abbr.initialism {
  font-size: 90%;
  text-transform: uppercase;
  }
 
  blockquote {
  padding: 0 0 0 15px;
  margin: 0 0 20px;
  border-left: 5px solid #eeeeee;
  }
 
  blockquote p {
  margin-bottom: 0;
  font-size: 16px;
  font-weight: 300;
  line-height: 25px;
  }
 
  blockquote small {
  display: block;
  line-height: 20px;
  color: #999999;
  }
 
  blockquote small:before {
  content: '\2014 \00A0';
  }
 
  blockquote.pull-right {
  float: right;
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  }
 
  blockquote.pull-right p,
  blockquote.pull-right small {
  text-align: right;
  }
 
  blockquote.pull-right small:before {
  content: '';
  }
 
  blockquote.pull-right small:after {
  content: '\00A0 \2014';
  }
 
  q:before,
  q:after,
  blockquote:before,
  blockquote:after {
  content: "";
  }
 
  address {
  display: block;
  margin-bottom: 20px;
  font-style: normal;
  line-height: 20px;
  }
 
  code,
  pre {
  padding: 0 3px 2px;
  font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
  font-size: 12px;
  color: #333333;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  }
 
  code {
  padding: 2px 4px;
  color: #d14;
  background-color: #f7f7f9;
  border: 1px solid #e1e1e8;
  }
 
  pre {
  display: block;
  padding: 9.5px;
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 20px;
  word-break: break-all;
  word-wrap: break-word;
  white-space: pre;
  white-space: pre-wrap;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  }
 
  pre.prettyprint {
  margin-bottom: 20px;
  }
 
  pre code {
  padding: 0;
  color: inherit;
  background-color: transparent;
  border: 0;
  }
 
  .pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
  }
 
  form {
  margin: 0 0 20px;
  }
 
  fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  }
 
  legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 20px;
  font-size: 21px;
  line-height: 40px;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
  }
 
  legend small {
  font-size: 15px;
  color: #999999;
  }
 
  label,
  input,
  button,
  select,
  textarea {
  font-size: 14px;
  font-weight: normal;
  line-height: 20px;
  }
 
  input,
  button,
  select,
  textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  }
 
  label {
  display: block;
  margin-bottom: 5px;
  }
 
  select,
  textarea,
  input[type="text"],
  input[type="password"],
  input[type="datetime"],
  input[type="datetime-local"],
  input[type="date"],
  input[type="month"],
  input[type="time"],
  input[type="week"],
  input[type="number"],
  input[type="email"],
  input[type="url"],
  input[type="search"],
  input[type="tel"],
  input[type="color"],
  .uneditable-input {
  display: inline-block;
  height: 20px;
  padding: 4px 6px;
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 20px;
  color: #555555;
  vertical-align: middle;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  }
 
  input,
  textarea,
  .uneditable-input {
  width: 206px;
  }
 
  textarea {
  height: auto;
  }
 
  textarea,
  input[type="text"],
  input[type="password"],
  input[type="datetime"],
  input[type="datetime-local"],
  input[type="date"],
  input[type="month"],
  input[type="time"],
  input[type="week"],
  input[type="number"],
  input[type="email"],
  input[type="url"],
  input[type="search"],
  input[type="tel"],
  input[type="color"],
  .uneditable-input {
  background-color: #ffffff;
  border: 1px solid #cccccc;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
  -o-transition: border linear 0.2s, box-shadow linear 0.2s;
  transition: border linear 0.2s, box-shadow linear 0.2s;
  }
 
  textarea:focus,
  input[type="text"]:focus,
  input[type="password"]:focus,
  input[type="datetime"]:focus,
  input[type="datetime-local"]:focus,
  input[type="date"]:focus,
  input[type="month"]:focus,
  input[type="time"]:focus,
  input[type="week"]:focus,
  input[type="number"]:focus,
  input[type="email"]:focus,
  input[type="url"]:focus,
  input[type="search"]:focus,
  input[type="tel"]:focus,
  input[type="color"]:focus,
  .uneditable-input:focus {
  border-color: rgba(82, 168, 236, 0.8);
  outline: 0;
  outline: thin dotted \9;
  /* IE6-9 */
 
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
  }
 
  input[type="radio"],
  input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  *margin-top: 0;
  line-height: normal;
  cursor: pointer;
  }
 
  input[type="file"],
  input[type="image"],
  input[type="submit"],
  input[type="reset"],
  input[type="button"],
  input[type="radio"],
  input[type="checkbox"] {
  width: auto;
  }
 
  select,
  input[type="file"] {
  height: 30px;
  /* In IE7, the height of the select element cannot be changed by height, only font-size */
 
  *margin-top: 4px;
  /* For IE7, add top margin to align select with labels */
 
  line-height: 30px;
  }
 
  select {
  width: 220px;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  }
 
  select[multiple],
  select[size] {
  height: auto;
  }
 
  select:focus,
  input[type="file"]:focus,
  input[type="radio"]:focus,
  input[type="checkbox"]:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
  }
 
  .uneditable-input,
  .uneditable-textarea {
  color: #999999;
  cursor: not-allowed;
  background-color: #fcfcfc;
  border-color: #cccccc;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  }
 
  .uneditable-input {
  overflow: hidden;
  white-space: nowrap;
  }
 
  .uneditable-textarea {
  width: auto;
  height: auto;
  }
 
  input:-moz-placeholder,
  textarea:-moz-placeholder {
  color: #999999;
  }
 
  input:-ms-input-placeholder,
  textarea:-ms-input-placeholder {
  color: #999999;
  }
 
  input::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder {
  color: #999999;
  }
 
  .radio,
  .checkbox {
  min-height: 20px;
  padding-left: 20px;
  }
 
  .radio input[type="radio"],
  .checkbox input[type="checkbox"] {
  float: left;
  margin-left: -20px;
  }
 
  .controls > .radio:first-child,
  .controls > .checkbox:first-child {
  padding-top: 5px;
  }
 
  .radio.inline,
  .checkbox.inline {
  display: inline-block;
  padding-top: 5px;
  margin-bottom: 0;
  vertical-align: middle;
  }
 
  .radio.inline + .radio.inline,
  .checkbox.inline + .checkbox.inline {
  margin-left: 10px;
  }
 
  .input-mini {
  width: 60px;
  }
 
  .input-small {
  width: 90px;
  }
 
  .input-medium {
  width: 150px;
  }
 
  .input-large {
  width: 210px;
  }
 
  .input-xlarge {
  width: 270px;
  }
 
  .input-xxlarge {
  width: 530px;
  }
 
  input[class*="span"],
  select[class*="span"],
  textarea[class*="span"],
  .uneditable-input[class*="span"],
  .row-fluid input[class*="span"],
  .row-fluid select[class*="span"],
  .row-fluid textarea[class*="span"],
  .row-fluid .uneditable-input[class*="span"] {
  float: none;
  margin-left: 0;
  }
 
  .input-append input[class*="span"],
  .input-append .uneditable-input[class*="span"],
  .input-prepend input[class*="span"],
  .input-prepend .uneditable-input[class*="span"],
  .row-fluid input[class*="span"],
  .row-fluid select[class*="span"],
  .row-fluid textarea[class*="span"],
  .row-fluid .uneditable-input[class*="span"],
  .row-fluid .input-prepend [class*="span"],
  .row-fluid .input-append [class*="span"] {
  display: inline-block;
  }
 
  input,
  textarea,
  .uneditable-input {
  margin-left: 0;
  }
 
  .controls-row [class*="span"] + [class*="span"] {
  margin-left: 20px;
  }
 
  input.span12,
  textarea.span12,
  .uneditable-input.span12 {
  width: 926px;
  }
 
  input.span11,
  textarea.span11,
  .uneditable-input.span11 {
  width: 846px;
  }
 
  input.span10,
  textarea.span10,
  .uneditable-input.span10 {
  width: 766px;
  }
 
  input.span9,
  textarea.span9,
  .uneditable-input.span9 {
  width: 686px;
  }
 
  input.span8,
  textarea.span8,
  .uneditable-input.span8 {
  width: 606px;
  }
 
  input.span7,
  textarea.span7,
  .uneditable-input.span7 {
  width: 526px;
  }
 
  input.span6,
  textarea.span6,
  .uneditable-input.span6 {
  width: 446px;
  }
 
  input.span5,
  textarea.span5,
  .uneditable-input.span5 {
  width: 366px;
  }
 
  input.span4,
  textarea.span4,
  .uneditable-input.span4 {
  width: 286px;
  }
 
  input.span3,
  textarea.span3,
  .uneditable-input.span3 {
  width: 206px;
  }
 
  input.span2,
  textarea.span2,
  .uneditable-input.span2 {
  width: 126px;
  }
 
  input.span1,
  textarea.span1,
  .uneditable-input.span1 {
  width: 46px;
  }
 
  .controls-row {
  *zoom: 1;
  }
 
  .controls-row:before,
  .controls-row:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .controls-row:after {
  clear: both;
  }
 
  .controls-row [class*="span"],
  .row-fluid .controls-row [class*="span"] {
  float: left;
  }
 
  .controls-row .checkbox[class*="span"],
  .controls-row .radio[class*="span"] {
  padding-top: 5px;
  }
 
  input[disabled],
  select[disabled],
  textarea[disabled],
  input[readonly],
  select[readonly],
  textarea[readonly] {
  cursor: not-allowed;
  background-color: #eeeeee;
  }
 
  input[type="radio"][disabled],
  input[type="checkbox"][disabled],
  input[type="radio"][readonly],
  input[type="checkbox"][readonly] {
  background-color: transparent;
  }
 
  .control-group.warning > label,
  .control-group.warning .help-block,
  .control-group.warning .help-inline {
  color: #c09853;
  }
 
  .control-group.warning .checkbox,
  .control-group.warning .radio,
  .control-group.warning input,
  .control-group.warning select,
  .control-group.warning textarea {
  color: #c09853;
  }
 
  .control-group.warning input,
  .control-group.warning select,
  .control-group.warning textarea {
  border-color: #c09853;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  }
 
  .control-group.warning input:focus,
  .control-group.warning select:focus,
  .control-group.warning textarea:focus {
  border-color: #a47e3c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
  }
 
  .control-group.warning .input-prepend .add-on,
  .control-group.warning .input-append .add-on {
  color: #c09853;
  background-color: #fcf8e3;
  border-color: #c09853;
  }
 
  .control-group.error > label,
  .control-group.error .help-block,
  .control-group.error .help-inline {
  color: #b94a48;
  }
 
  .control-group.error .checkbox,
  .control-group.error .radio,
  .control-group.error input,
  .control-group.error select,
  .control-group.error textarea {
  color: #b94a48;
  }
 
  .control-group.error input,
  .control-group.error select,
  .control-group.error textarea {
  border-color: #b94a48;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  }
 
  .control-group.error input:focus,
  .control-group.error select:focus,
  .control-group.error textarea:focus {
  border-color: #953b39;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
  }
 
  .control-group.error .input-prepend .add-on,
  .control-group.error .input-append .add-on {
  color: #b94a48;
  background-color: #f2dede;
  border-color: #b94a48;
  }
 
  .control-group.success > label,
  .control-group.success .help-block,
  .control-group.success .help-inline {
  color: #468847;
  }
 
  .control-group.success .checkbox,
  .control-group.success .radio,
  .control-group.success input,
  .control-group.success select,
  .control-group.success textarea {
  color: #468847;
  }
 
  .control-group.success input,
  .control-group.success select,
  .control-group.success textarea {
  border-color: #468847;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  }
 
  .control-group.success input:focus,
  .control-group.success select:focus,
  .control-group.success textarea:focus {
  border-color: #356635;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
  }
 
  .control-group.success .input-prepend .add-on,
  .control-group.success .input-append .add-on {
  color: #468847;
  background-color: #dff0d8;
  border-color: #468847;
  }
 
  .control-group.info > label,
  .control-group.info .help-block,
  .control-group.info .help-inline {
  color: #3a87ad;
  }
 
  .control-group.info .checkbox,
  .control-group.info .radio,
  .control-group.info input,
  .control-group.info select,
  .control-group.info textarea {
  color: #3a87ad;
  }
 
  .control-group.info input,
  .control-group.info select,
  .control-group.info textarea {
  border-color: #3a87ad;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  }
 
  .control-group.info input:focus,
  .control-group.info select:focus,
  .control-group.info textarea:focus {
  border-color: #2d6987;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
  }
 
  .control-group.info .input-prepend .add-on,
  .control-group.info .input-append .add-on {
  color: #3a87ad;
  background-color: #d9edf7;
  border-color: #3a87ad;
  }
 
  input:focus:required:invalid,
  textarea:focus:required:invalid,
  select:focus:required:invalid {
  color: #b94a48;
  border-color: #ee5f5b;
  }
 
  input:focus:required:invalid:focus,
  textarea:focus:required:invalid:focus,
  select:focus:required:invalid:focus {
  border-color: #e9322d;
  -webkit-box-shadow: 0 0 6px #f8b9b7;
  -moz-box-shadow: 0 0 6px #f8b9b7;
  box-shadow: 0 0 6px #f8b9b7;
  }
 
  .form-actions {
  padding: 19px 20px 20px;
  margin-top: 20px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border-top: 1px solid #e5e5e5;
  *zoom: 1;
  }
 
  .form-actions:before,
  .form-actions:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .form-actions:after {
  clear: both;
  }
 
  .help-block,
  .help-inline {
  color: #595959;
  }
 
  .help-block {
  display: block;
  margin-bottom: 10px;
  }
 
  .help-inline {
  display: inline-block;
  *display: inline;
  padding-left: 5px;
  vertical-align: middle;
  *zoom: 1;
  }
 
  .input-append,
  .input-prepend {
  margin-bottom: 5px;
  font-size: 0;
  white-space: nowrap;
  }
 
  .input-append input,
  .input-prepend input,
  .input-append select,
  .input-prepend select,
  .input-append .uneditable-input,
  .input-prepend .uneditable-input,
  .input-append .dropdown-menu,
  .input-prepend .dropdown-menu {
  font-size: 14px;
  }
 
  .input-append input,
  .input-prepend input,
  .input-append select,
  .input-prepend select,
  .input-append .uneditable-input,
  .input-prepend .uneditable-input {
  position: relative;
  margin-bottom: 0;
  *margin-left: 0;
  vertical-align: top;
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
  }
 
  .input-append input:focus,
  .input-prepend input:focus,
  .input-append select:focus,
  .input-prepend select:focus,
  .input-append .uneditable-input:focus,
  .input-prepend .uneditable-input:focus {
  z-index: 2;
  }
 
  .input-append .add-on,
  .input-prepend .add-on {
  display: inline-block;
  width: auto;
  height: 20px;
  min-width: 16px;
  padding: 4px 5px;
  font-size: 14px;
  font-weight: normal;
  line-height: 20px;
  text-align: center;
  text-shadow: 0 1px 0 #ffffff;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  }
 
  .input-append .add-on,
  .input-prepend .add-on,
  .input-append .btn,
  .input-prepend .btn {
  vertical-align: top;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  }
 
  .input-append .active,
  .input-prepend .active {
  background-color: #a9dba9;
  border-color: #46a546;
  }
 
  .input-prepend .add-on,
  .input-prepend .btn {
  margin-right: -1px;
  }
 
  .input-prepend .add-on:first-child,
  .input-prepend .btn:first-child {
  -webkit-border-radius: 4px 0 0 4px;
  -moz-border-radius: 4px 0 0 4px;
  border-radius: 4px 0 0 4px;
  }
 
  .input-append input,
  .input-append select,
  .input-append .uneditable-input {
  -webkit-border-radius: 4px 0 0 4px;
  -moz-border-radius: 4px 0 0 4px;
  border-radius: 4px 0 0 4px;
  }
 
  .input-append input + .btn-group .btn,
  .input-append select + .btn-group .btn,
  .input-append .uneditable-input + .btn-group .btn {
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
  }
 
  .input-append .add-on,
  .input-append .btn,
  .input-append .btn-group {
  margin-left: -1px;
  }
 
  .input-append .add-on:last-child,
  .input-append .btn:last-child {
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
  }
 
  .input-prepend.input-append input,
  .input-prepend.input-append select,
  .input-prepend.input-append .uneditable-input {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  }
 
  .input-prepend.input-append input + .btn-group .btn,
  .input-prepend.input-append select + .btn-group .btn,
  .input-prepend.input-append .uneditable-input + .btn-group .btn {
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
  }
 
  .input-prepend.input-append .add-on:first-child,
  .input-prepend.input-append .btn:first-child {
  margin-right: -1px;
  -webkit-border-radius: 4px 0 0 4px;
  -moz-border-radius: 4px 0 0 4px;
  border-radius: 4px 0 0 4px;
  }
 
  .input-prepend.input-append .add-on:last-child,
  .input-prepend.input-append .btn:last-child {
  margin-left: -1px;
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
  }
 
  .input-prepend.input-append .btn-group:first-child {
  margin-left: 0;
  }
 
  input.search-query {
  padding-right: 14px;
  padding-right: 4px \9;
  padding-left: 14px;
  padding-left: 4px \9;
  /* IE7-8 doesn't have border-radius, so don't indent the padding */
 
  margin-bottom: 0;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  border-radius: 15px;
  }
 
  /* Allow for input prepend/append in search forms */
 
  .form-search .input-append .search-query,
  .form-search .input-prepend .search-query {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  }
 
  .form-search .input-append .search-query {
  -webkit-border-radius: 14px 0 0 14px;
  -moz-border-radius: 14px 0 0 14px;
  border-radius: 14px 0 0 14px;
  }
 
  .form-search .input-append .btn {
  -webkit-border-radius: 0 14px 14px 0;
  -moz-border-radius: 0 14px 14px 0;
  border-radius: 0 14px 14px 0;
  }
 
  .form-search .input-prepend .search-query {
  -webkit-border-radius: 0 14px 14px 0;
  -moz-border-radius: 0 14px 14px 0;
  border-radius: 0 14px 14px 0;
  }
 
  .form-search .input-prepend .btn {
  -webkit-border-radius: 14px 0 0 14px;
  -moz-border-radius: 14px 0 0 14px;
  border-radius: 14px 0 0 14px;
  }
 
  .form-search input,
  .form-inline input,
  .form-horizontal input,
  .form-search textarea,
  .form-inline textarea,
  .form-horizontal textarea,
  .form-search select,
  .form-inline select,
  .form-horizontal select,
  .form-search .help-inline,
  .form-inline .help-inline,
  .form-horizontal .help-inline,
  .form-search .uneditable-input,
  .form-inline .uneditable-input,
  .form-horizontal .uneditable-input,
  .form-search .input-prepend,
  .form-inline .input-prepend,
  .form-horizontal .input-prepend,
  .form-search .input-append,
  .form-inline .input-append,
  .form-horizontal .input-append {
  display: inline-block;
  *display: inline;
  margin-bottom: 0;
  vertical-align: middle;
  *zoom: 1;
  }
 
  .form-search .hide,
  .form-inline .hide,
  .form-horizontal .hide {
  display: none;
  }
 
  .form-search label,
  .form-inline label,
  .form-search .btn-group,
  .form-inline .btn-group {
  display: inline-block;
  }
 
  .form-search .input-append,
  .form-inline .input-append,
  .form-search .input-prepend,
  .form-inline .input-prepend {
  margin-bottom: 0;
  }
 
  .form-search .radio,
  .form-search .checkbox,
  .form-inline .radio,
  .form-inline .checkbox {
  padding-left: 0;
  margin-bottom: 0;
  vertical-align: middle;
  }
 
  .form-search .radio input[type="radio"],
  .form-search .checkbox input[type="checkbox"],
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
  float: left;
  margin-right: 3px;
  margin-left: 0;
  }
 
  .control-group {
  margin-bottom: 10px;
  }
 
  legend + .control-group {
  margin-top: 20px;
  -webkit-margin-top-collapse: separate;
  }
 
  .form-horizontal .control-group {
  margin-bottom: 20px;
  *zoom: 1;
  }
 
  .form-horizontal .control-group:before,
  .form-horizontal .control-group:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .form-horizontal .control-group:after {
  clear: both;
  }
 
  .form-horizontal .control-label {
  float: left;
  width: 160px;
  padding-top: 5px;
  text-align: right;
  }
 
  .form-horizontal .controls {
  *display: inline-block;
  *padding-left: 20px;
  margin-left: 180px;
  *margin-left: 0;
  }
 
  .form-horizontal .controls:first-child {
  *padding-left: 180px;
  }
 
  .form-horizontal .help-block {
  margin-bottom: 0;
  }
 
  .form-horizontal input + .help-block,
  .form-horizontal select + .help-block,
  .form-horizontal textarea + .help-block {
  margin-top: 10px;
  }
 
  .form-horizontal .form-actions {
  padding-left: 180px;
  }
 
  table {
  max-width: 100%;
  background-color: transparent;
  border-collapse: collapse;
  border-spacing: 0;
  }
 
  .table {
  width: 100%;
  margin-bottom: 20px;
  }
 
  .table th,
  .table td {
  padding: 8px;
  line-height: 20px;
  text-align: left;
  vertical-align: top;
  border-top: 1px solid #dddddd;
  }
 
  .table th {
  font-weight: bold;
  }
 
  .table thead th {
  vertical-align: bottom;
  }
 
  .table caption + thead tr:first-child th,
  .table caption + thead tr:first-child td,
  .table colgroup + thead tr:first-child th,
  .table colgroup + thead tr:first-child td,
  .table thead:first-child tr:first-child th,
  .table thead:first-child tr:first-child td {
  border-top: 0;
  }
 
  .table tbody + tbody {
  border-top: 2px solid #dddddd;
  }
 
  .table-condensed th,
  .table-condensed td {
  padding: 4px 5px;
  }
 
  .table-bordered {
  border: 1px solid #dddddd;
  border-collapse: separate;
  *border-collapse: collapse;
  border-left: 0;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  }
 
  .table-bordered th,
  .table-bordered td {
  border-left: 1px solid #dddddd;
  }
 
  .table-bordered caption + thead tr:first-child th,
  .table-bordered caption + tbody tr:first-child th,
  .table-bordered caption + tbody tr:first-child td,
  .table-bordered colgroup + thead tr:first-child th,
  .table-bordered colgroup + tbody tr:first-child th,
  .table-bordered colgroup + tbody tr:first-child td,
  .table-bordered thead:first-child tr:first-child th,
  .table-bordered tbody:first-child tr:first-child th,
  .table-bordered tbody:first-child tr:first-child td {
  border-top: 0;
  }
 
  .table-bordered thead:first-child tr:first-child th:first-child,
  .table-bordered tbody:first-child tr:first-child td:first-child {
  -webkit-border-top-left-radius: 4px;
  border-top-left-radius: 4px;
  -moz-border-radius-topleft: 4px;
  }
 
  .table-bordered thead:first-child tr:first-child th:last-child,
  .table-bordered tbody:first-child tr:first-child td:last-child {
  -webkit-border-top-right-radius: 4px;
  border-top-right-radius: 4px;
  -moz-border-radius-topright: 4px;
  }
 
  .table-bordered thead:last-child tr:last-child th:first-child,
  .table-bordered tbody:last-child tr:last-child td:first-child,
  .table-bordered tfoot:last-child tr:last-child td:first-child {
  -webkit-border-radius: 0 0 0 4px;
  -moz-border-radius: 0 0 0 4px;
  border-radius: 0 0 0 4px;
  -webkit-border-bottom-left-radius: 4px;
  border-bottom-left-radius: 4px;
  -moz-border-radius-bottomleft: 4px;
  }
 
  .table-bordered thead:last-child tr:last-child th:last-child,
  .table-bordered tbody:last-child tr:last-child td:last-child,
  .table-bordered tfoot:last-child tr:last-child td:last-child {
  -webkit-border-bottom-right-radius: 4px;
  border-bottom-right-radius: 4px;
  -moz-border-radius-bottomright: 4px;
  }
 
  .table-bordered caption + thead tr:first-child th:first-child,
  .table-bordered caption + tbody tr:first-child td:first-child,
  .table-bordered colgroup + thead tr:first-child th:first-child,
  .table-bordered colgroup + tbody tr:first-child td:first-child {
  -webkit-border-top-left-radius: 4px;
  border-top-left-radius: 4px;
  -moz-border-radius-topleft: 4px;
  }
 
  .table-bordered caption + thead tr:first-child th:last-child,
  .table-bordered caption + tbody tr:first-child td:last-child,
  .table-bordered colgroup + thead tr:first-child th:last-child,
  .table-bordered colgroup + tbody tr:first-child td:last-child {
  -webkit-border-top-right-radius: 4px;
  border-top-right-radius: 4px;
  -moz-border-radius-topright: 4px;
  }
 
  .table-striped tbody tr:nth-child(odd) td,
  .table-striped tbody tr:nth-child(odd) th {
  background-color: #f9f9f9;
  }
 
  .table-hover tbody tr:hover td,
  .table-hover tbody tr:hover th {
  background-color: #f5f5f5;
  }
 
  table td[class*="span"],
  table th[class*="span"],
  .row-fluid table td[class*="span"],
  .row-fluid table th[class*="span"] {
  display: table-cell;
  float: none;
  margin-left: 0;
  }
 
  .table td.span1,
  .table th.span1 {
  float: none;
  width: 44px;
  margin-left: 0;
  }
 
  .table td.span2,
  .table th.span2 {
  float: none;
  width: 124px;
  margin-left: 0;
  }
 
  .table td.span3,
  .table th.span3 {
  float: none;
  width: 204px;
  margin-left: 0;
  }
 
  .table td.span4,
  .table th.span4 {
  float: none;
  width: 284px;
  margin-left: 0;
  }
 
  .table td.span5,
  .table th.span5 {
  float: none;
  width: 364px;
  margin-left: 0;
  }
 
  .table td.span6,
  .table th.span6 {
  float: none;
  width: 444px;
  margin-left: 0;
  }
 
  .table td.span7,
  .table th.span7 {
  float: none;
  width: 524px;
  margin-left: 0;
  }
 
  .table td.span8,
  .table th.span8 {
  float: none;
  width: 604px;
  margin-left: 0;
  }
 
  .table td.span9,
  .table th.span9 {
  float: none;
  width: 684px;
  margin-left: 0;
  }
 
  .table td.span10,
  .table th.span10 {
  float: none;
  width: 764px;
  margin-left: 0;
  }
 
  .table td.span11,
  .table th.span11 {
  float: none;
  width: 844px;
  margin-left: 0;
  }
 
  .table td.span12,
  .table th.span12 {
  float: none;
  width: 924px;
  margin-left: 0;
  }
 
  .table tbody tr.success td {
  background-color: #dff0d8;
  }
 
  .table tbody tr.error td {
  background-color: #f2dede;
  }
 
  .table tbody tr.warning td {
  background-color: #fcf8e3;
  }
 
  .table tbody tr.info td {
  background-color: #d9edf7;
  }
 
  .table-hover tbody tr.success:hover td {
  background-color: #d0e9c6;
  }
 
  .table-hover tbody tr.error:hover td {
  background-color: #ebcccc;
  }
 
  .table-hover tbody tr.warning:hover td {
  background-color: #faf2cc;
  }
 
  .table-hover tbody tr.info:hover td {
  background-color: #c4e3f3;
  }
 
  [class^="icon-"],
  [class*=" icon-"] {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-top: 1px;
  *margin-right: .3em;
  line-height: 14px;
  vertical-align: text-top;
  background-image: url("../img/glyphicons-halflings.png");
  background-position: 14px 14px;
  background-repeat: no-repeat;
  }
 
  /* White icons with optional class, or on hover/active states of certain elements */
 
  .icon-white,
  .nav-pills > .active > a > [class^="icon-"],
  .nav-pills > .active > a > [class*=" icon-"],
  .nav-list > .active > a > [class^="icon-"],
  .nav-list > .active > a > [class*=" icon-"],
  .navbar-inverse .nav > .active > a > [class^="icon-"],
  .navbar-inverse .nav > .active > a > [class*=" icon-"],
  .dropdown-menu > li > a:hover > [class^="icon-"],
  .dropdown-menu > li > a:hover > [class*=" icon-"],
  .dropdown-menu > .active > a > [class^="icon-"],
  .dropdown-menu > .active > a > [class*=" icon-"],
  .dropdown-submenu:hover > a > [class^="icon-"],
  .dropdown-submenu:hover > a > [class*=" icon-"] {
  background-image: url("../img/glyphicons-halflings-white.png");
  }
 
  .icon-glass {
  background-position: 0 0;
  }
 
  .icon-music {
  background-position: -24px 0;
  }
 
  .icon-search {
  background-position: -48px 0;
  }
 
  .icon-envelope {
  background-position: -72px 0;
  }
 
  .icon-heart {
  background-position: -96px 0;
  }
 
  .icon-star {
  background-position: -120px 0;
  }
 
  .icon-star-empty {
  background-position: -144px 0;
  }
 
  .icon-user {
  background-position: -168px 0;
  }
 
  .icon-film {
  background-position: -192px 0;
  }
 
  .icon-th-large {
  background-position: -216px 0;
  }
 
  .icon-th {
  background-position: -240px 0;
  }
 
  .icon-th-list {
  background-position: -264px 0;
  }
 
  .icon-ok {
  background-position: -288px 0;
  }
 
  .icon-remove {
  background-position: -312px 0;
  }
 
  .icon-zoom-in {
  background-position: -336px 0;
  }
 
  .icon-zoom-out {
  background-position: -360px 0;
  }
 
  .icon-off {
  background-position: -384px 0;
  }
 
  .icon-signal {
  background-position: -408px 0;
  }
 
  .icon-cog {
  background-position: -432px 0;
  }
 
  .icon-trash {
  background-position: -456px 0;
  }
 
  .icon-home {
  background-position: 0 -24px;
  }
 
  .icon-file {
  background-position: -24px -24px;
  }
 
  .icon-time {
  background-position: -48px -24px;
  }
 
  .icon-road {
  background-position: -72px -24px;
  }
 
  .icon-download-alt {
  background-position: -96px -24px;
  }
 
  .icon-download {
  background-position: -120px -24px;
  }
 
  .icon-upload {
  background-position: -144px -24px;
  }
 
  .icon-inbox {
  background-position: -168px -24px;
  }
 
  .icon-play-circle {
  background-position: -192px -24px;
  }
 
  .icon-repeat {
  background-position: -216px -24px;
  }
 
  .icon-refresh {
  background-position: -240px -24px;
  }
 
  .icon-list-alt {
  background-position: -264px -24px;
  }
 
  .icon-lock {
  background-position: -287px -24px;
  }
 
  .icon-flag {
  background-position: -312px -24px;
  }
 
  .icon-headphones {
  background-position: -336px -24px;
  }
 
  .icon-volume-off {
  background-position: -360px -24px;
  }
 
  .icon-volume-down {
  background-position: -384px -24px;
  }
 
  .icon-volume-up {
  background-position: -408px -24px;
  }
 
  .icon-qrcode {
  background-position: -432px -24px;
  }
 
  .icon-barcode {
  background-position: -456px -24px;
  }
 
  .icon-tag {
  background-position: 0 -48px;
  }
 
  .icon-tags {
  background-position: -25px -48px;
  }
 
  .icon-book {
  background-position: -48px -48px;
  }
 
  .icon-bookmark {
  background-position: -72px -48px;
  }
 
  .icon-print {
  background-position: -96px -48px;
  }
 
  .icon-camera {
  background-position: -120px -48px;
  }
 
  .icon-font {
  background-position: -144px -48px;
  }
 
  .icon-bold {
  background-position: -167px -48px;
  }
 
  .icon-italic {
  background-position: -192px -48px;
  }
 
  .icon-text-height {
  background-position: -216px -48px;
  }
 
  .icon-text-width {
  background-position: -240px -48px;
  }
 
  .icon-align-left {
  background-position: -264px -48px;
  }
 
  .icon-align-center {
  background-position: -288px -48px;
  }
 
  .icon-align-right {
  background-position: -312px -48px;
  }
 
  .icon-align-justify {
  background-position: -336px -48px;
  }
 
  .icon-list {
  background-position: -360px -48px;
  }
 
  .icon-indent-left {
  background-position: -384px -48px;
  }
 
  .icon-indent-right {
  background-position: -408px -48px;
  }
 
  .icon-facetime-video {
  background-position: -432px -48px;
  }
 
  .icon-picture {
  background-position: -456px -48px;
  }
 
  .icon-pencil {
  background-position: 0 -72px;
  }
 
  .icon-map-marker {
  background-position: -24px -72px;
  }
 
  .icon-adjust {
  background-position: -48px -72px;
  }
 
  .icon-tint {
  background-position: -72px -72px;
  }
 
  .icon-edit {
  background-position: -96px -72px;
  }
 
  .icon-share {
  background-position: -120px -72px;
  }
 
  .icon-check {
  background-position: -144px -72px;
  }
 
  .icon-move {
  background-position: -168px -72px;
  }
 
  .icon-step-backward {
  background-position: -192px -72px;
  }
 
  .icon-fast-backward {
  background-position: -216px -72px;
  }
 
  .icon-backward {
  background-position: -240px -72px;
  }
 
  .icon-play {
  background-position: -264px -72px;
  }
 
  .icon-pause {
  background-position: -288px -72px;
  }
 
  .icon-stop {
  background-position: -312px -72px;
  }
 
  .icon-forward {
  background-position: -336px -72px;
  }
 
  .icon-fast-forward {
  background-position: -360px -72px;
  }
 
  .icon-step-forward {
  background-position: -384px -72px;
  }
 
  .icon-eject {
  background-position: -408px -72px;
  }
 
  .icon-chevron-left {
  background-position: -432px -72px;
  }
 
  .icon-chevron-right {
  background-position: -456px -72px;
  }
 
  .icon-plus-sign {
  background-position: 0 -96px;
  }
 
  .icon-minus-sign {
  background-position: -24px -96px;
  }
 
  .icon-remove-sign {
  background-position: -48px -96px;
  }
 
  .icon-ok-sign {
  background-position: -72px -96px;
  }
 
  .icon-question-sign {
  background-position: -96px -96px;
  }
 
  .icon-info-sign {
  background-position: -120px -96px;
  }
 
  .icon-screenshot {
  background-position: -144px -96px;
  }
 
  .icon-remove-circle {
  background-position: -168px -96px;
  }
 
  .icon-ok-circle {
  background-position: -192px -96px;
  }
 
  .icon-ban-circle {
  background-position: -216px -96px;
  }
 
  .icon-arrow-left {
  background-position: -240px -96px;
  }
 
  .icon-arrow-right {
  background-position: -264px -96px;
  }
 
  .icon-arrow-up {
  background-position: -289px -96px;
  }
 
  .icon-arrow-down {
  background-position: -312px -96px;
  }
 
  .icon-share-alt {
  background-position: -336px -96px;
  }
 
  .icon-resize-full {
  background-position: -360px -96px;
  }
 
  .icon-resize-small {
  background-position: -384px -96px;
  }
 
  .icon-plus {
  background-position: -408px -96px;
  }
 
  .icon-minus {
  background-position: -433px -96px;
  }
 
  .icon-asterisk {
  background-position: -456px -96px;
  }
 
  .icon-exclamation-sign {
  background-position: 0 -120px;
  }
 
  .icon-gift {
  background-position: -24px -120px;
  }
 
  .icon-leaf {
  background-position: -48px -120px;
  }
 
  .icon-fire {
  background-position: -72px -120px;
  }
 
  .icon-eye-open {
  background-position: -96px -120px;
  }
 
  .icon-eye-close {
  background-position: -120px -120px;
  }
 
  .icon-warning-sign {
  background-position: -144px -120px;
  }
 
  .icon-plane {
  background-position: -168px -120px;
  }
 
  .icon-calendar {
  background-position: -192px -120px;
  }
 
  .icon-random {
  width: 16px;
  background-position: -216px -120px;
  }
 
  .icon-comment {
  background-position: -240px -120px;
  }
 
  .icon-magnet {
  background-position: -264px -120px;
  }
 
  .icon-chevron-up {
  background-position: -288px -120px;
  }
 
  .icon-chevron-down {
  background-position: -313px -119px;
  }
 
  .icon-retweet {
  background-position: -336px -120px;
  }
 
  .icon-shopping-cart {
  background-position: -360px -120px;
  }
 
  .icon-folder-close {
  background-position: -384px -120px;
  }
 
  .icon-folder-open {
  width: 16px;
  background-position: -408px -120px;
  }
 
  .icon-resize-vertical {
  background-position: -432px -119px;
  }
 
  .icon-resize-horizontal {
  background-position: -456px -118px;
  }
 
  .icon-hdd {
  background-position: 0 -144px;
  }
 
  .icon-bullhorn {
  background-position: -24px -144px;
  }
 
  .icon-bell {
  background-position: -48px -144px;
  }
 
  .icon-certificate {
  background-position: -72px -144px;
  }
 
  .icon-thumbs-up {
  background-position: -96px -144px;
  }
 
  .icon-thumbs-down {
  background-position: -120px -144px;
  }
 
  .icon-hand-right {
  background-position: -144px -144px;
  }
 
  .icon-hand-left {
  background-position: -168px -144px;
  }
 
  .icon-hand-up {
  background-position: -192px -144px;
  }
 
  .icon-hand-down {
  background-position: -216px -144px;
  }
 
  .icon-circle-arrow-right {
  background-position: -240px -144px;
  }
 
  .icon-circle-arrow-left {
  background-position: -264px -144px;
  }
 
  .icon-circle-arrow-up {
  background-position: -288px -144px;
  }
 
  .icon-circle-arrow-down {
  background-position: -312px -144px;
  }
 
  .icon-globe {
  background-position: -336px -144px;
  }
 
  .icon-wrench {
  background-position: -360px -144px;
  }
 
  .icon-tasks {
  background-position: -384px -144px;
  }
 
  .icon-filter {
  background-position: -408px -144px;
  }
 
  .icon-briefcase {
  background-position: -432px -144px;
  }
 
  .icon-fullscreen {
  background-position: -456px -144px;
  }
 
  .dropup,
  .dropdown {
  position: relative;
  }
 
  .dropdown-toggle {
  *margin-bottom: -3px;
  }
 
  .dropdown-toggle:active,
  .open .dropdown-toggle {
  outline: 0;
  }
 
  .caret {
  display: inline-block;
  width: 0;
  height: 0;
  vertical-align: top;
  border-top: 4px solid #000000;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  content: "";
  }
 
  .dropdown .caret {
  margin-top: 8px;
  margin-left: 2px;
  }
 
  .dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  background-color: #ffffff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
  }
 
  .dropdown-menu.pull-right {
  right: 0;
  left: auto;
  }
 
  .dropdown-menu .divider {
  *width: 100%;
  height: 1px;
  margin: 9px 1px;
  *margin: -5px 0 5px;
  overflow: hidden;
  background-color: #e5e5e5;
  border-bottom: 1px solid #ffffff;
  }
 
  .dropdown-menu li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 20px;
  color: #333333;
  white-space: nowrap;
  }
 
  .dropdown-menu li > a:hover,
  .dropdown-menu li > a:focus,
  .dropdown-submenu:hover > a {
  color: #ffffff;
  text-decoration: none;
  background-color: #0081c2;
  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
  }
 
  .dropdown-menu .active > a,
  .dropdown-menu .active > a:hover {
  color: #333333;
  text-decoration: none;
  background-color: #0081c2;
  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
  background-repeat: repeat-x;
  outline: 0;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
  }
 
  .dropdown-menu .disabled > a,
  .dropdown-menu .disabled > a:hover {
  color: #999999;
  }
 
  .dropdown-menu .disabled > a:hover {
  text-decoration: none;
  cursor: default;
  background-color: transparent;
  background-image: none;
  }
 
  .open {
  *z-index: 1000;
  }
 
  .open > .dropdown-menu {
  display: block;
  }
 
  .pull-right > .dropdown-menu {
  right: 0;
  left: auto;
  }
 
  .dropup .caret,
  .navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px solid #000000;
  content: "";
  }
 
  .dropup .dropdown-menu,
  .navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 1px;
  }
 
  .dropdown-submenu {
  position: relative;
  }
 
  .dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
  -webkit-border-radius: 0 6px 6px 6px;
  -moz-border-radius: 0 6px 6px 6px;
  border-radius: 0 6px 6px 6px;
  }
 
  .dropdown-submenu:hover > .dropdown-menu {
  display: block;
  }
 
  .dropup .dropdown-submenu > .dropdown-menu {
  top: auto;
  bottom: 0;
  margin-top: 0;
  margin-bottom: -2px;
  -webkit-border-radius: 5px 5px 5px 0;
  -moz-border-radius: 5px 5px 5px 0;
  border-radius: 5px 5px 5px 0;
  }
 
  .dropdown-submenu > a:after {
  display: block;
  float: right;
  width: 0;
  height: 0;
  margin-top: 5px;
  margin-right: -10px;
  border-color: transparent;
  border-left-color: #cccccc;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  content: " ";
  }
 
  .dropdown-submenu:hover > a:after {
  border-left-color: #ffffff;
  }
 
  .dropdown-submenu.pull-left {
  float: none;
  }
 
  .dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
  -webkit-border-radius: 6px 0 6px 6px;
  -moz-border-radius: 6px 0 6px 6px;
  border-radius: 6px 0 6px 6px;
  }
 
  .dropdown .dropdown-menu .nav-header {
  padding-right: 20px;
  padding-left: 20px;
  }
 
  .typeahead {
  margin-top: 2px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  }
 
  .well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  }
 
  .well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
  }
 
  .well-large {
  padding: 24px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  }
 
  .well-small {
  padding: 9px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  }
 
  .fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -moz-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
  }
 
  .fade.in {
  opacity: 1;
  }
 
  .collapse {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition: height 0.35s ease;
  -moz-transition: height 0.35s ease;
  -o-transition: height 0.35s ease;
  transition: height 0.35s ease;
  }
 
  .collapse.in {
  height: auto;
  }
 
  .close {
  float: right;
  font-size: 20px;
  font-weight: bold;
  line-height: 20px;
  color: #000000;
  text-shadow: 0 1px 0 #ffffff;
  opacity: 0.2;
  filter: alpha(opacity=20);
  }
 
  .close:hover {
  color: #000000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.4;
  filter: alpha(opacity=40);
  }
 
  button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  }
 
  .btn {
  display: inline-block;
  *display: inline;
  padding: 4px 12px;
  margin-bottom: 0;
  *margin-left: .3em;
  font-size: 14px;
  line-height: 20px;
  *line-height: 20px;
  color: #333333;
  text-align: center;
  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
  vertical-align: middle;
  cursor: pointer;
  background-color: #f5f5f5;
  *background-color: #e6e6e6;
  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
  background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
  background-repeat: repeat-x;
  border: 1px solid #bbbbbb;
  *border: 0;
  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  border-bottom-color: #a2a2a2;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  *zoom: 1;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  }
 
  .btn:hover,
  .btn:active,
  .btn.active,
  .btn.disabled,
  .btn[disabled] {
  color: #333333;
  background-color: #e6e6e6;
  *background-color: #d9d9d9;
  }
 
  .btn:active,
  .btn.active {
  background-color: #cccccc \9;
  }
 
  .btn:first-child {
  *margin-left: 0;
  }
 
  .btn:hover {
  color: #333333;
  text-decoration: none;
  background-color: #e6e6e6;
  *background-color: #d9d9d9;
  /* Buttons in IE7 don't get borders, so darken on hover */
 
  background-position: 0 -15px;
  -webkit-transition: background-position 0.1s linear;
  -moz-transition: background-position 0.1s linear;
  -o-transition: background-position 0.1s linear;
  transition: background-position 0.1s linear;
  }
 
  .btn:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
  }
 
  .btn.active,
  .btn:active {
  background-color: #e6e6e6;
  background-color: #d9d9d9 \9;
  background-image: none;
  outline: 0;
  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  }
 
  .btn.disabled,
  .btn[disabled] {
  cursor: default;
  background-color: #e6e6e6;
  background-image: none;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  }
 
  .btn-large {
  padding: 11px 19px;
  font-size: 17.5px;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  }
 
  .btn-large [class^="icon-"],
  .btn-large [class*=" icon-"] {
  margin-top: 2px;
  }
 
  .btn-small {
  padding: 2px 10px;
  font-size: 11.9px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  }
 
  .btn-small [class^="icon-"],
  .btn-small [class*=" icon-"] {
  margin-top: 0;
  }
 
  .btn-mini {
  padding: 1px 6px;
  font-size: 10.5px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  }
 
  .btn-block {
  display: block;
  width: 100%;
  padding-right: 0;
  padding-left: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  }
 
  .btn-block + .btn-block {
  margin-top: 5px;
  }
 
  input[type="submit"].btn-block,
  input[type="reset"].btn-block,
  input[type="button"].btn-block {
  width: 100%;
  }
 
  .btn-primary.active,
  .btn-warning.active,
  .btn-danger.active,
  .btn-success.active,
  .btn-info.active,
  .btn-inverse.active {
  color: rgba(255, 255, 255, 0.75);
  }
 
  .btn {
  border-color: #c5c5c5;
  border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
  }
 
  .btn-primary {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #006dcc;
  *background-color: #0044cc;
  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
  background-image: -o-linear-gradient(top, #0088cc, #0044cc);
  background-image: linear-gradient(to bottom, #0088cc, #0044cc);
  background-repeat: repeat-x;
  border-color: #0044cc #0044cc #002a80;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  }
 
  .btn-primary:hover,
  .btn-primary:active,
  .btn-primary.active,
  .btn-primary.disabled,
  .btn-primary[disabled] {
  color: #ffffff;
  background-color: #0044cc;
  *background-color: #003bb3;
  }
 
  .btn-primary:active,
  .btn-primary.active {
  background-color: #003399 \9;
  }
 
  .btn-warning {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #faa732;
  *background-color: #f89406;
  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
  background-image: -o-linear-gradient(top, #fbb450, #f89406);
  background-image: linear-gradient(to bottom, #fbb450, #f89406);
  background-repeat: repeat-x;
  border-color: #f89406 #f89406 #ad6704;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  }
 
  .btn-warning:hover,
  .btn-warning:active,
  .btn-warning.active,
  .btn-warning.disabled,
  .btn-warning[disabled] {
  color: #ffffff;
  background-color: #f89406;
  *background-color: #df8505;
  }
 
  .btn-warning:active,
  .btn-warning.active {
  background-color: #c67605 \9;
  }
 
  .btn-danger {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #da4f49;
  *background-color: #bd362f;
  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
  background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
  background-repeat: repeat-x;
  border-color: #bd362f #bd362f #802420;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  }
 
  .btn-danger:hover,
  .btn-danger:active,
  .btn-danger.active,
  .btn-danger.disabled,
  .btn-danger[disabled] {
  color: #ffffff;
  background-color: #bd362f;
  *background-color: #a9302a;
  }
 
  .btn-danger:active,
  .btn-danger.active {
  background-color: #942a25 \9;
  }
 
  .btn-success {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #5bb75b;
  *background-color: #51a351;
  background-image: -moz-linear-gradient(top, #62c462, #51a351);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
  background-image: -o-linear-gradient(top, #62c462, #51a351);
  background-image: linear-gradient(to bottom, #62c462, #51a351);
  background-repeat: repeat-x;
  border-color: #51a351 #51a351 #387038;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  }
 
  .btn-success:hover,
  .btn-success:active,
  .btn-success.active,
  .btn-success.disabled,
  .btn-success[disabled] {
  color: #ffffff;
  background-color: #51a351;
  *background-color: #499249;
  }
 
  .btn-success:active,
  .btn-success.active {
  background-color: #408140 \9;
  }
 
  .btn-info {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #49afcd;
  *background-color: #2f96b4;
  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
  background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
  background-repeat: repeat-x;
  border-color: #2f96b4 #2f96b4 #1f6377;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  }
 
  .btn-info:hover,
  .btn-info:active,
  .btn-info.active,
  .btn-info.disabled,
  .btn-info[disabled] {
  color: #ffffff;
  background-color: #2f96b4;
  *background-color: #2a85a0;
  }
 
  .btn-info:active,
  .btn-info.active {
  background-color: #24748c \9;
  }
 
  .btn-inverse {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #363636;
  *background-color: #222222;
  background-image: -moz-linear-gradient(top, #444444, #222222);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
  background-image: -webkit-linear-gradient(top, #444444, #222222);
  background-image: -o-linear-gradient(top, #444444, #222222);
  background-image: linear-gradient(to bottom, #444444, #222222);
  background-repeat: repeat-x;
  border-color: #222222 #222222 #000000;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  }
 
  .btn-inverse:hover,
  .btn-inverse:active,
  .btn-inverse.active,
  .btn-inverse.disabled,
  .btn-inverse[disabled] {
  color: #ffffff;
  background-color: #222222;
  *background-color: #151515;
  }
 
  .btn-inverse:active,
  .btn-inverse.active {
  background-color: #080808 \9;
  }
 
  button.btn,
  input[type="submit"].btn {
  *padding-top: 3px;
  *padding-bottom: 3px;
  }
 
  button.btn::-moz-focus-inner,
  input[type="submit"].btn::-moz-focus-inner {
  padding: 0;
  border: 0;
  }
 
  button.btn.btn-large,
  input[type="submit"].btn.btn-large {
  *padding-top: 7px;
  *padding-bottom: 7px;
  }
 
  button.btn.btn-small,
  input[type="submit"].btn.btn-small {
  *padding-top: 3px;
  *padding-bottom: 3px;
  }
 
  button.btn.btn-mini,
  input[type="submit"].btn.btn-mini {
  *padding-top: 1px;
  *padding-bottom: 1px;
  }
 
  .btn-link,
  .btn-link:active,
  .btn-link[disabled] {
  background-color: transparent;
  background-image: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  }
 
  .btn-link {
  color: #0088cc;
  cursor: pointer;
  border-color: transparent;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  }
 
  .btn-link:hover {
  color: #005580;
  text-decoration: underline;
  background-color: transparent;
  }
 
  .btn-link[disabled]:hover {
  color: #333333;
  text-decoration: none;
  }
 
  .btn-group {
  position: relative;
  display: inline-block;
  *display: inline;
  *margin-left: .3em;
  font-size: 0;
  white-space: nowrap;
  vertical-align: middle;
  *zoom: 1;
  }
 
  .btn-group:first-child {
  *margin-left: 0;
  }
 
  .btn-group + .btn-group {
  margin-left: 5px;
  }
 
  .btn-toolbar {
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 0;
  }
 
  .btn-toolbar .btn + .btn,
  .btn-toolbar .btn-group + .btn,
  .btn-toolbar .btn + .btn-group {
  margin-left: 5px;
  }
 
  .btn-group > .btn {
  position: relative;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  }
 
  .btn-group > .btn + .btn {
  margin-left: -1px;
  }
 
  .btn-group > .btn,
  .btn-group > .dropdown-menu {
  font-size: 14px;
  }
 
  .btn-group > .btn-mini {
  font-size: 11px;
  }
 
  .btn-group > .btn-small {
  font-size: 12px;
  }
 
  .btn-group > .btn-large {
  font-size: 16px;
  }
 
  .btn-group > .btn:first-child {
  margin-left: 0;
  -webkit-border-bottom-left-radius: 4px;
  border-bottom-left-radius: 4px;
  -webkit-border-top-left-radius: 4px;
  border-top-left-radius: 4px;
  -moz-border-radius-bottomleft: 4px;
  -moz-border-radius-topleft: 4px;
  }
 
  .btn-group > .btn:last-child,
  .btn-group > .dropdown-toggle {
  -webkit-border-top-right-radius: 4px;
  border-top-right-radius: 4px;
  -webkit-border-bottom-right-radius: 4px;
  border-bottom-right-radius: 4px;
  -moz-border-radius-topright: 4px;
  -moz-border-radius-bottomright: 4px;
  }
 
  .btn-group > .btn.large:first-child {
  margin-left: 0;
  -webkit-border-bottom-left-radius: 6px;
  border-bottom-left-radius: 6px;
  -webkit-border-top-left-radius: 6px;
  border-top-left-radius: 6px;
  -moz-border-radius-bottomleft: 6px;
  -moz-border-radius-topleft: 6px;
  }
 
  .btn-group > .btn.large:last-child,
  .btn-group > .large.dropdown-toggle {
  -webkit-border-top-right-radius: 6px;
  border-top-right-radius: 6px;
  -webkit-border-bottom-right-radius: 6px;
  border-bottom-right-radius: 6px;
  -moz-border-radius-topright: 6px;
  -moz-border-radius-bottomright: 6px;
  }
 
  .btn-group > .btn:hover,
  .btn-group > .btn:focus,
  .btn-group > .btn:active,
  .btn-group > .btn.active {
  z-index: 2;
  }
 
  .btn-group .dropdown-toggle:active,
  .btn-group.open .dropdown-toggle {
  outline: 0;
  }
 
  .btn-group > .btn + .dropdown-toggle {
  *padding-top: 5px;
  padding-right: 8px;
  *padding-bottom: 5px;
  padding-left: 8px;
  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  }
 
  .btn-group > .btn-mini + .dropdown-toggle {
  *padding-top: 2px;
  padding-right: 5px;
  *padding-bottom: 2px;
  padding-left: 5px;
  }
 
  .btn-group > .btn-small + .dropdown-toggle {
  *padding-top: 5px;
  *padding-bottom: 4px;
  }
 
  .btn-group > .btn-large + .dropdown-toggle {
  *padding-top: 7px;
  padding-right: 12px;
  *padding-bottom: 7px;
  padding-left: 12px;
  }
 
  .btn-group.open .dropdown-toggle {
  background-image: none;
  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  }
 
  .btn-group.open .btn.dropdown-toggle {
  background-color: #e6e6e6;
  }
 
  .btn-group.open .btn-primary.dropdown-toggle {
  background-color: #0044cc;
  }
 
  .btn-group.open .btn-warning.dropdown-toggle {
  background-color: #f89406;
  }
 
  .btn-group.open .btn-danger.dropdown-toggle {
  background-color: #bd362f;
  }
 
  .btn-group.open .btn-success.dropdown-toggle {
  background-color: #51a351;
  }
 
  .btn-group.open .btn-info.dropdown-toggle {
  background-color: #2f96b4;
  }
 
  .btn-group.open .btn-inverse.dropdown-toggle {
  background-color: #222222;
  }
 
  .btn .caret {
  margin-top: 8px;
  margin-left: 0;
  }
 
  .btn-mini .caret,
  .btn-small .caret,
  .btn-large .caret {
  margin-top: 6px;
  }
 
  .btn-large .caret {
  border-top-width: 5px;
  border-right-width: 5px;
  border-left-width: 5px;
  }
 
  .dropup .btn-large .caret {
  border-bottom-width: 5px;
  }
 
  .btn-primary .caret,
  .btn-warning .caret,
  .btn-danger .caret,
  .btn-info .caret,
  .btn-success .caret,
  .btn-inverse .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
  }
 
  .btn-group-vertical {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
 
  *zoom: 1;
  }
 
  .btn-group-vertical .btn {
  display: block;
  float: none;
  width: 100%;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  }
 
  .btn-group-vertical .btn + .btn {
  margin-top: -1px;
  margin-left: 0;
  }
 
  .btn-group-vertical .btn:first-child {
  -webkit-border-radius: 4px 4px 0 0;
  -moz-border-radius: 4px 4px 0 0;
  border-radius: 4px 4px 0 0;
  }
 
  .btn-group-vertical .btn:last-child {
  -webkit-border-radius: 0 0 4px 4px;
  -moz-border-radius: 0 0 4px 4px;
  border-radius: 0 0 4px 4px;
  }
 
  .btn-group-vertical .btn-large:first-child {
  -webkit-border-radius: 6px 6px 0 0;
  -moz-border-radius: 6px 6px 0 0;
  border-radius: 6px 6px 0 0;
  }
 
  .btn-group-vertical .btn-large:last-child {
  -webkit-border-radius: 0 0 6px 6px;
  -moz-border-radius: 0 0 6px 6px;
  border-radius: 0 0 6px 6px;
  }
 
  .alert {
  padding: 8px 35px 8px 14px;
  margin-bottom: 20px;
  color: #c09853;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  background-color: #fcf8e3;
  border: 1px solid #fbeed5;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  }
 
  .alert h4 {
  margin: 0;
  }
 
  .alert .close {
  position: relative;
  top: -2px;
  right: -21px;
  line-height: 20px;
  }
 
  .alert-success {
  color: #468847;
  background-color: #dff0d8;
  border-color: #d6e9c6;
  }
 
  .alert-danger,
  .alert-error {
  color: #b94a48;
  background-color: #f2dede;
  border-color: #eed3d7;
  }
 
  .alert-info {
  color: #3a87ad;
  background-color: #d9edf7;
  border-color: #bce8f1;
  }
 
  .alert-block {
  padding-top: 14px;
  padding-bottom: 14px;
  }
 
  .alert-block > p,
  .alert-block > ul {
  margin-bottom: 0;
  }
 
  .alert-block p + p {
  margin-top: 5px;
  }
 
  .nav {
  margin-bottom: 20px;
  margin-left: 0;
  list-style: none;
  }
 
  .nav > li > a {
  display: block;
  }
 
  .nav > li > a:hover {
  text-decoration: none;
  background-color: #eeeeee;
  }
 
  .nav > .pull-right {
  float: right;
  }
 
  .nav-header {
  display: block;
  padding: 3px 15px;
  font-size: 11px;
  font-weight: bold;
  line-height: 20px;
  color: #999999;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  }
 
  .nav li + .nav-header {
  margin-top: 9px;
  }
 
  .nav-list {
  padding-right: 15px;
  padding-left: 15px;
  margin-bottom: 0;
  }
 
  .nav-list > li > a,
  .nav-list .nav-header {
  margin-right: -15px;
  margin-left: -15px;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  }
 
  .nav-list > li > a {
  padding: 3px 15px;
  }
 
  .nav-list > .active > a,
  .nav-list > .active > a:hover {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
  background-color: #0088cc;
  }
 
  .nav-list [class^="icon-"],
  .nav-list [class*=" icon-"] {
  margin-right: 2px;
  }
 
  .nav-list .divider {
  *width: 100%;
  height: 1px;
  margin: 9px 1px;
  *margin: -5px 0 5px;
  overflow: hidden;
  background-color: #e5e5e5;
  border-bottom: 1px solid #ffffff;
  }
 
  .nav-tabs,
  .nav-pills {
  *zoom: 1;
  }
 
  .nav-tabs:before,
  .nav-pills:before,
  .nav-tabs:after,
  .nav-pills:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .nav-tabs:after,
  .nav-pills:after {
  clear: both;
  }
 
  .nav-tabs > li,
  .nav-pills > li {
  float: left;
  }
 
  .nav-tabs > li > a,
  .nav-pills > li > a {
  padding-right: 12px;
  padding-left: 12px;
  margin-right: 2px;
  line-height: 14px;
  }
 
  .nav-tabs {
  border-bottom: 1px solid #ddd;
  }
 
  .nav-tabs > li {
  margin-bottom: -1px;
  }
 
  .nav-tabs > li > a {
  padding-top: 8px;
  padding-bottom: 8px;
  line-height: 20px;
  border: 1px solid transparent;
  -webkit-border-radius: 4px 4px 0 0;
  -moz-border-radius: 4px 4px 0 0;
  border-radius: 4px 4px 0 0;
  }
 
  .nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #dddddd;
  }
 
  .nav-tabs > .active > a,
  .nav-tabs > .active > a:hover {
  color: #555555;
  cursor: default;
  background-color: #ffffff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  }
 
  .nav-pills > li > a {
  padding-top: 8px;
  padding-bottom: 8px;
  margin-top: 2px;
  margin-bottom: 2px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  }
 
  .nav-pills > .active > a,
  .nav-pills > .active > a:hover {
  color: #ffffff;
  background-color: #0088cc;
  }
 
  .nav-stacked > li {
  float: none;
  }
 
  .nav-stacked > li > a {
  margin-right: 0;
  }
 
  .nav-tabs.nav-stacked {
  border-bottom: 0;
  }
 
  .nav-tabs.nav-stacked > li > a {
  border: 1px solid #ddd;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  }
 
  .nav-tabs.nav-stacked > li:first-child > a {
  -webkit-border-top-right-radius: 4px;
  border-top-right-radius: 4px;
  -webkit-border-top-left-radius: 4px;
  border-top-left-radius: 4px;
  -moz-border-radius-topright: 4px;
  -moz-border-radius-topleft: 4px;
  }
 
  .nav-tabs.nav-stacked > li:last-child > a {
  -webkit-border-bottom-right-radius: 4px;
  border-bottom-right-radius: 4px;
  -webkit-border-bottom-left-radius: 4px;
  border-bottom-left-radius: 4px;
  -moz-border-radius-bottomright: 4px;
  -moz-border-radius-bottomleft: 4px;
  }
 
  .nav-tabs.nav-stacked > li > a:hover {
  z-index: 2;
  border-color: #ddd;
  }
 
  .nav-pills.nav-stacked > li > a {
  margin-bottom: 3px;
  }
 
  .nav-pills.nav-stacked > li:last-child > a {
  margin-bottom: 1px;
  }
 
  .nav-tabs .dropdown-menu {
  -webkit-border-radius: 0 0 6px 6px;
  -moz-border-radius: 0 0 6px 6px;
  border-radius: 0 0 6px 6px;
  }
 
  .nav-pills .dropdown-menu {
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  }
 
  .nav .dropdown-toggle .caret {
  margin-top: 6px;
  border-top-color: #0088cc;
  border-bottom-color: #0088cc;
  }
 
  .nav .dropdown-toggle:hover .caret {
  border-top-color: #005580;
  border-bottom-color: #005580;
  }
 
  /* move down carets for tabs */
 
  .nav-tabs .dropdown-toggle .caret {
  margin-top: 8px;
  }
 
  .nav .active .dropdown-toggle .caret {
  border-top-color: #fff;
  border-bottom-color: #fff;
  }
 
  .nav-tabs .active .dropdown-toggle .caret {
  border-top-color: #555555;
  border-bottom-color: #555555;
  }
 
  .nav > .dropdown.active > a:hover {
  cursor: pointer;
  }
 
  .nav-tabs .open .dropdown-toggle,
  .nav-pills .open .dropdown-toggle,
  .nav > li.dropdown.open.active > a:hover {
  color: #ffffff;
  background-color: #999999;
  border-color: #999999;
  }
 
  .nav li.dropdown.open .caret,
  .nav li.dropdown.open.active .caret,
  .nav li.dropdown.open a:hover .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
  opacity: 1;
  filter: alpha(opacity=100);
  }
 
  .tabs-stacked .open > a:hover {
  border-color: #999999;
  }
 
  .tabbable {
  *zoom: 1;
  }
 
  .tabbable:before,
  .tabbable:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .tabbable:after {
  clear: both;
  }
 
  .tab-content {
  overflow: auto;
  }
 
  .tabs-below > .nav-tabs,
  .tabs-right > .nav-tabs,
  .tabs-left > .nav-tabs {
  border-bottom: 0;
  }
 
  .tab-content > .tab-pane,
  .pill-content > .pill-pane {
  display: none;
  }
 
  .tab-content > .active,
  .pill-content > .active {
  display: block;
  }
 
  .tabs-below > .nav-tabs {
  border-top: 1px solid #ddd;
  }
 
  .tabs-below > .nav-tabs > li {
  margin-top: -1px;
  margin-bottom: 0;
  }
 
  .tabs-below > .nav-tabs > li > a {
  -webkit-border-radius: 0 0 4px 4px;
  -moz-border-radius: 0 0 4px 4px;
  border-radius: 0 0 4px 4px;
  }
 
  .tabs-below > .nav-tabs > li > a:hover {
  border-top-color: #ddd;
  border-bottom-color: transparent;
  }
 
  .tabs-below > .nav-tabs > .active > a,
  .tabs-below > .nav-tabs > .active > a:hover {
  border-color: transparent #ddd #ddd #ddd;
  }
 
  .tabs-left > .nav-tabs > li,
  .tabs-right > .nav-tabs > li {
  float: none;
  }
 
  .tabs-left > .nav-tabs > li > a,
  .tabs-right > .nav-tabs > li > a {
  min-width: 74px;
  margin-right: 0;
  margin-bottom: 3px;
  }
 
  .tabs-left > .nav-tabs {
  float: left;
  margin-right: 19px;
  border-right: 1px solid #ddd;
  }
 
  .tabs-left > .nav-tabs > li > a {
  margin-right: -1px;
  -webkit-border-radius: 4px 0 0 4px;
  -moz-border-radius: 4px 0 0 4px;
  border-radius: 4px 0 0 4px;
  }
 
  .tabs-left > .nav-tabs > li > a:hover {
  border-color: #eeeeee #dddddd #eeeeee #eeeeee;
  }
 
  .tabs-left > .nav-tabs .active > a,
  .tabs-left > .nav-tabs .active > a:hover {
  border-color: #ddd transparent #ddd #ddd;
  *border-right-color: #ffffff;
  }
 
  .tabs-right > .nav-tabs {
  float: right;
  margin-left: 19px;
  border-left: 1px solid #ddd;
  }
 
  .tabs-right > .nav-tabs > li > a {
  margin-left: -1px;
  -webkit-border-radius: 0 4px 4px 0;
  -moz-border-radius: 0 4px 4px 0;
  border-radius: 0 4px 4px 0;
  }
 
  .tabs-right > .nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #eeeeee #dddddd;
  }
 
  .tabs-right > .nav-tabs .active > a,
  .tabs-right > .nav-tabs .active > a:hover {
  border-color: #ddd #ddd #ddd transparent;
  *border-left-color: #ffffff;
  }
 
  .nav > .disabled > a {
  color: #999999;
  }
 
  .nav > .disabled > a:hover {
  text-decoration: none;
  cursor: default;
  background-color: transparent;
  }
 
  .navbar {
  *position: relative;
  *z-index: 2;
  margin-bottom: 20px;
  overflow: visible;
  color: #777777;
  }
 
  .navbar-inner {
  min-height: 40px;
  padding-right: 20px;
  padding-left: 20px;
  background-color: #fafafa;
  background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
  background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
  background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
  background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
  background-repeat: repeat-x;
  border: 1px solid #d4d4d4;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
  *zoom: 1;
  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
  }
 
  .navbar-inner:before,
  .navbar-inner:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .navbar-inner:after {
  clear: both;
  }
 
  .navbar .container {
  width: auto;
  }
 
  .nav-collapse.collapse {
  height: auto;
  overflow: visible;
  }
 
  .navbar .brand {
  display: block;
  float: left;
  padding: 10px 20px 10px;
  margin-left: -20px;
  font-size: 20px;
  font-weight: 200;
  color: #777777;
  text-shadow: 0 1px 0 #ffffff;
  }
 
  .navbar .brand:hover {
  text-decoration: none;
  }
 
  .navbar-text {
  margin-bottom: 0;
  line-height: 40px;
  }
 
  .navbar-link {
  color: #777777;
  }
 
  .navbar-link:hover {
  color: #333333;
  }
 
  .navbar .divider-vertical {
  height: 40px;
  margin: 0 9px;
  border-right: 1px solid #ffffff;
  border-left: 1px solid #f2f2f2;
  }
 
  .navbar .btn,
  .navbar .btn-group {
  margin-top: 5px;
  }
 
  .navbar .btn-group .btn,
  .navbar .input-prepend .btn,
  .navbar .input-append .btn {
  margin-top: 0;
  }
 
  .navbar-form {
  margin-bottom: 0;
  *zoom: 1;
  }
 
  .navbar-form:before,
  .navbar-form:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .navbar-form:after {
  clear: both;
  }
 
  .navbar-form input,
  .navbar-form select,
  .navbar-form .radio,
  .navbar-form .checkbox {
  margin-top: 5px;
  }
 
  .navbar-form input,
  .navbar-form select,
  .navbar-form .btn {
  display: inline-block;
  margin-bottom: 0;
  }
 
  .navbar-form input[type="image"],
  .navbar-form input[type="checkbox"],
  .navbar-form input[type="radio"] {
  margin-top: 3px;
  }
 
  .navbar-form .input-append,
  .navbar-form .input-prepend {
  margin-top: 6px;
  white-space: nowrap;
  }
 
  .navbar-form .input-append input,
  .navbar-form .input-prepend input {
  margin-top: 0;
  }
 
  .navbar-search {
  position: relative;
  float: left;
  margin-top: 5px;
  margin-bottom: 0;
  }
 
  .navbar-search .search-query {
  padding: 4px 14px;
  margin-bottom: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  border-radius: 15px;
  }
 
  .navbar-static-top {
  position: static;
  margin-bottom: 0;
  }
 
  .navbar-static-top .navbar-inner {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  }
 
  .navbar-fixed-top,
  .navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
  margin-bottom: 0;
  }
 
  .navbar-fixed-top .navbar-inner,
  .navbar-static-top .navbar-inner {
  border-width: 0 0 1px;
  }
 
  .navbar-fixed-bottom .navbar-inner {
  border-width: 1px 0 0;
  }
 
  .navbar-fixed-top .navbar-inner,
  .navbar-fixed-bottom .navbar-inner {
  padding-right: 0;
  padding-left: 0;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  }
 
  .navbar-static-top .container,
  .navbar-fixed-top .container,
  .navbar-fixed-bottom .container {
  width: 940px;
  }
 
  .navbar-fixed-top {
  top: 0;
  }
 
  .navbar-fixed-top .navbar-inner,
  .navbar-static-top .navbar-inner {
  -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
  }
 
  .navbar-fixed-bottom {
  bottom: 0;
  }
 
  .navbar-fixed-bottom .navbar-inner {
  -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
  box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
  }
 
  .navbar .nav {
  position: relative;
  left: 0;
  display: block;
  float: left;
  margin: 0 10px 0 0;
  }
 
  .navbar .nav.pull-right {
  float: right;
  margin-right: 0;
  }
 
  .navbar .nav > li {
  float: left;
  }
 
  .navbar .nav > li > a {
  float: none;
  padding: 10px 15px 10px;
  color: #777777;
  text-decoration: none;
  text-shadow: 0 1px 0 #ffffff;
  }
 
  .navbar .nav .dropdown-toggle .caret {
  margin-top: 8px;
  }
 
  .navbar .nav > li > a:focus,
  .navbar .nav > li > a:hover {
  color: #333333;
  text-decoration: none;
  background-color: transparent;
  }
 
  .navbar .nav > .active > a,
  .navbar .nav > .active > a:hover,
  .navbar .nav > .active > a:focus {
  color: #555555;
  text-decoration: none;
  background-color: #e5e5e5;
  -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
  -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
  }
 
  .navbar .btn-navbar {
  display: none;
  float: right;
  padding: 7px 10px;
  margin-right: 5px;
  margin-left: 5px;
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #ededed;
  *background-color: #e5e5e5;
  background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
  background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
  background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
  background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
  background-repeat: repeat-x;
  border-color: #e5e5e5 #e5e5e5 #bfbfbf;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
  }
 
  .navbar .btn-navbar:hover,
  .navbar .btn-navbar:active,
  .navbar .btn-navbar.active,
  .navbar .btn-navbar.disabled,
  .navbar .btn-navbar[disabled] {
  color: #ffffff;
  background-color: #e5e5e5;
  *background-color: #d9d9d9;
  }
 
  .navbar .btn-navbar:active,
  .navbar .btn-navbar.active {
  background-color: #cccccc \9;
  }
 
  .navbar .btn-navbar .icon-bar {
  display: block;
  width: 18px;
  height: 2px;
  background-color: #f5f5f5;
  -webkit-border-radius: 1px;
  -moz-border-radius: 1px;
  border-radius: 1px;
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
  }
 
  .btn-navbar .icon-bar + .icon-bar {
  margin-top: 3px;
  }
 
  .navbar .nav > li > .dropdown-menu:before {
  position: absolute;
  top: -7px;
  left: 9px;
  display: inline-block;
  border-right: 7px solid transparent;
  border-bottom: 7px solid #ccc;
  border-left: 7px solid transparent;
  border-bottom-color: rgba(0, 0, 0, 0.2);
  content: '';
  }
 
  .navbar .nav > li > .dropdown-menu:after {
  position: absolute;
  top: -6px;
  left: 10px;
  display: inline-block;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #ffffff;
  border-left: 6px solid transparent;
  content: '';
  }
 
  .navbar-fixed-bottom .nav > li > .dropdown-menu:before {
  top: auto;
  bottom: -7px;
  border-top: 7px solid #ccc;
  border-bottom: 0;
  border-top-color: rgba(0, 0, 0, 0.2);
  }
 
  .navbar-fixed-bottom .nav > li > .dropdown-menu:after {
  top: auto;
  bottom: -6px;
  border-top: 6px solid #ffffff;
  border-bottom: 0;
  }
 
  .navbar .nav li.dropdown.open > .dropdown-toggle,
  .navbar .nav li.dropdown.active > .dropdown-toggle,
  .navbar .nav li.dropdown.open.active > .dropdown-toggle {
  color: #555555;
  background-color: #e5e5e5;
  }
 
  .navbar .nav li.dropdown > .dropdown-toggle .caret {
  border-top-color: #777777;
  border-bottom-color: #777777;
  }
 
  .navbar .nav li.dropdown.open > .dropdown-toggle .caret,
  .navbar .nav li.dropdown.active > .dropdown-toggle .caret,
  .navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
  border-top-color: #555555;
  border-bottom-color: #555555;
  }
 
  .navbar .pull-right > li > .dropdown-menu,
  .navbar .nav > li > .dropdown-menu.pull-right {
  right: 0;
  left: auto;
  }
 
  .navbar .pull-right > li > .dropdown-menu:before,
  .navbar .nav > li > .dropdown-menu.pull-right:before {
  right: 12px;
  left: auto;
  }
 
  .navbar .pull-right > li > .dropdown-menu:after,
  .navbar .nav > li > .dropdown-menu.pull-right:after {
  right: 13px;
  left: auto;
  }
 
  .navbar .pull-right > li > .dropdown-menu .dropdown-menu,
  .navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {
  right: 100%;
  left: auto;
  margin-right: -1px;
  margin-left: 0;
  -webkit-border-radius: 6px 0 6px 6px;
  -moz-border-radius: 6px 0 6px 6px;
  border-radius: 6px 0 6px 6px;
  }
 
  .navbar-inverse {
  color: #999999;
  }
 
  .navbar-inverse .navbar-inner {
  background-color: #1b1b1b;
  background-image: -moz-linear-gradient(top, #222222, #111111);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
  background-image: -webkit-linear-gradient(top, #222222, #111111);
  background-image: -o-linear-gradient(top, #222222, #111111);
  background-image: linear-gradient(to bottom, #222222, #111111);
  background-repeat: repeat-x;
  border-color: #252525;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
  }
 
  .navbar-inverse .brand,
  .navbar-inverse .nav > li > a {
  color: #999999;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  }
 
  .navbar-inverse .brand:hover,
  .navbar-inverse .nav > li > a:hover {
  color: #ffffff;
  }
 
  .navbar-inverse .nav > li > a:focus,
  .navbar-inverse .nav > li > a:hover {
  color: #ffffff;
  background-color: transparent;
  }
 
  .navbar-inverse .nav .active > a,
  .navbar-inverse .nav .active > a:hover,
  .navbar-inverse .nav .active > a:focus {
  color: #ffffff;
  background-color: #111111;
  }
 
  .navbar-inverse .navbar-link {
  color: #999999;
  }
 
  .navbar-inverse .navbar-link:hover {
  color: #ffffff;
  }
 
  .navbar-inverse .divider-vertical {
  border-right-color: #222222;
  border-left-color: #111111;
  }
 
  .navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
  .navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
  .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
  color: #ffffff;
  background-color: #111111;
  }
 
  .navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
  border-top-color: #999999;
  border-bottom-color: #999999;
  }
 
  .navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
  .navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
  .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
  }
 
  .navbar-inverse .navbar-search .search-query {
  color: #ffffff;
  background-color: #515151;
  border-color: #111111;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
  -webkit-transition: none;
  -moz-transition: none;
  -o-transition: none;
  transition: none;
  }
 
  .navbar-inverse .navbar-search .search-query:-moz-placeholder {
  color: #cccccc;
  }
 
  .navbar-inverse .navbar-search .search-query:-ms-input-placeholder {
  color: #cccccc;
  }
 
  .navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {
  color: #cccccc;
  }
 
  .navbar-inverse .navbar-search .search-query:focus,
  .navbar-inverse .navbar-search .search-query.focused {
  padding: 5px 15px;
  color: #333333;
  text-shadow: 0 1px 0 #ffffff;
  background-color: #ffffff;
  border: 0;
  outline: 0;
  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
  }
 
  .navbar-inverse .btn-navbar {
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #0e0e0e;
  *background-color: #040404;
  background-image: -moz-linear-gradient(top, #151515, #040404);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
  background-image: -webkit-linear-gradient(top, #151515, #040404);
  background-image: -o-linear-gradient(top, #151515, #040404);
  background-image: linear-gradient(to bottom, #151515, #040404);
  background-repeat: repeat-x;
  border-color: #040404 #040404 #000000;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  }
 
  .navbar-inverse .btn-navbar:hover,
  .navbar-inverse .btn-navbar:active,
  .navbar-inverse .btn-navbar.active,
  .navbar-inverse .btn-navbar.disabled,
  .navbar-inverse .btn-navbar[disabled] {
  color: #ffffff;
  background-color: #040404;
  *background-color: #000000;
  }
 
  .navbar-inverse .btn-navbar:active,
  .navbar-inverse .btn-navbar.active {
  background-color: #000000 \9;
  }
 
  .breadcrumb {
  padding: 8px 15px;
  margin: 0 0 20px;
  list-style: none;
  background-color: #f5f5f5;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  }
 
  .breadcrumb li {
  display: inline-block;
  *display: inline;
  text-shadow: 0 1px 0 #ffffff;
  *zoom: 1;
  }
 
  .breadcrumb .divider {
  padding: 0 5px;
  color: #ccc;
  }
 
  .breadcrumb .active {
  color: #999999;
  }
 
  .pagination {
  margin: 20px 0;
  }
 
  .pagination ul {
  display: inline-block;
  *display: inline;
  margin-bottom: 0;
  margin-left: 0;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  *zoom: 1;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  }
 
  .pagination ul > li {
  display: inline;
  }
 
  .pagination ul > li > a,
  .pagination ul > li > span {
  float: left;
  padding: 4px 12px;
  line-height: 20px;
  text-decoration: none;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border-left-width: 0;
  }
 
  .pagination ul > li > a:hover,
  .pagination ul > .active > a,
  .pagination ul > .active > span {
  background-color: #f5f5f5;
  }
 
  .pagination ul > .active > a,
  .pagination ul > .active > span {
  color: #999999;
  cursor: default;
  }
 
  .pagination ul > .disabled > span,
  .pagination ul > .disabled > a,
  .pagination ul > .disabled > a:hover {
  color: #999999;
  cursor: default;
  background-color: transparent;
  }
 
  .pagination ul > li:first-child > a,
  .pagination ul > li:first-child > span {
  border-left-width: 1px;
  -webkit-border-bottom-left-radius: 4px;
  border-bottom-left-radius: 4px;
  -webkit-border-top-left-radius: 4px;
  border-top-left-radius: 4px;
  -moz-border-radius-bottomleft: 4px;
  -moz-border-radius-topleft: 4px;
  }
 
  .pagination ul > li:last-child > a,
  .pagination ul > li:last-child > span {
  -webkit-border-top-right-radius: 4px;
  border-top-right-radius: 4px;
  -webkit-border-bottom-right-radius: 4px;
  border-bottom-right-radius: 4px;
  -moz-border-radius-topright: 4px;
  -moz-border-radius-bottomright: 4px;
  }
 
  .pagination-centered {
  text-align: center;
  }
 
  .pagination-right {
  text-align: right;
  }
 
  .pagination-large ul > li > a,
  .pagination-large ul > li > span {
  padding: 11px 19px;
  font-size: 17.5px;
  }
 
  .pagination-large ul > li:first-child > a,
  .pagination-large ul > li:first-child > span {
  -webkit-border-bottom-left-radius: 6px;
  border-bottom-left-radius: 6px;
  -webkit-border-top-left-radius: 6px;
  border-top-left-radius: 6px;
  -moz-border-radius-bottomleft: 6px;
  -moz-border-radius-topleft: 6px;
  }
 
  .pagination-large ul > li:last-child > a,
  .pagination-large ul > li:last-child > span {
  -webkit-border-top-right-radius: 6px;
  border-top-right-radius: 6px;
  -webkit-border-bottom-right-radius: 6px;
  border-bottom-right-radius: 6px;
  -moz-border-radius-topright: 6px;
  -moz-border-radius-bottomright: 6px;
  }
 
  .pagination-mini ul > li:first-child > a,
  .pagination-small ul > li:first-child > a,
  .pagination-mini ul > li:first-child > span,
  .pagination-small ul > li:first-child > span {
  -webkit-border-bottom-left-radius: 3px;
  border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-top-left-radius: 3px;
  -moz-border-radius-bottomleft: 3px;
  -moz-border-radius-topleft: 3px;
  }
 
  .pagination-mini ul > li:last-child > a,
  .pagination-small ul > li:last-child > a,
  .pagination-mini ul > li:last-child > span,
  .pagination-small ul > li:last-child > span {
  -webkit-border-top-right-radius: 3px;
  border-top-right-radius: 3px;
  -webkit-border-bottom-right-radius: 3px;
  border-bottom-right-radius: 3px;
  -moz-border-radius-topright: 3px;
  -moz-border-radius-bottomright: 3px;
  }
 
  .pagination-small ul > li > a,
  .pagination-small ul > li > span {
  padding: 2px 10px;
  font-size: 11.9px;
  }
 
  .pagination-mini ul > li > a,
  .pagination-mini ul > li > span {
  padding: 1px 6px;
  font-size: 10.5px;
  }
 
  .pager {
  margin: 20px 0;
  text-align: center;
  list-style: none;
  *zoom: 1;
  }
 
  .pager:before,
  .pager:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .pager:after {
  clear: both;
  }
 
  .pager li {
  display: inline;
  }
 
  .pager li > a,
  .pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  border-radius: 15px;
  }
 
  .pager li > a:hover {
  text-decoration: none;
  background-color: #f5f5f5;
  }
 
  .pager .next > a,
  .pager .next > span {
  float: right;
  }
 
  .pager .previous > a,
  .pager .previous > span {
  float: left;
  }
 
  .pager .disabled > a,
  .pager .disabled > a:hover,
  .pager .disabled > span {
  color: #999999;
  cursor: default;
  background-color: #fff;
  }
 
  .modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000000;
  }
 
  .modal-backdrop.fade {
  opacity: 0;
  }
 
  .modal-backdrop,
  .modal-backdrop.fade.in {
  opacity: 0.8;
  filter: alpha(opacity=80);
  }
 
  .modal {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 1050;
  width: 560px;
  margin: -250px 0 0 -280px;
  background-color: #ffffff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.3);
  *border: 1px solid #999;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  outline: none;
  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding-box;
  background-clip: padding-box;
  }
 
  .modal.fade {
  top: -25%;
  -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
  -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
  -o-transition: opacity 0.3s linear, top 0.3s ease-out;
  transition: opacity 0.3s linear, top 0.3s ease-out;
  }
 
  .modal.fade.in {
  top: 50%;
  }
 
  .modal-header {
  padding: 9px 15px;
  border-bottom: 1px solid #eee;
  }
 
  .modal-header .close {
  margin-top: 2px;
  }
 
  .modal-header h3 {
  margin: 0;
  line-height: 30px;
  }
 
  .modal-body {
  max-height: 400px;
  padding: 15px;
  overflow-y: auto;
  }
 
  .modal-form {
  margin-bottom: 0;
  }
 
  .modal-footer {
  padding: 14px 15px 15px;
  margin-bottom: 0;
  text-align: right;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  -webkit-border-radius: 0 0 6px 6px;
  -moz-border-radius: 0 0 6px 6px;
  border-radius: 0 0 6px 6px;
  *zoom: 1;
  -webkit-box-shadow: inset 0 1px 0 #ffffff;
  -moz-box-shadow: inset 0 1px 0 #ffffff;
  box-shadow: inset 0 1px 0 #ffffff;
  }
 
  .modal-footer:before,
  .modal-footer:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .modal-footer:after {
  clear: both;
  }
 
  .modal-footer .btn + .btn {
  margin-bottom: 0;
  margin-left: 5px;
  }
 
  .modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
  }
 
  .modal-footer .btn-block + .btn-block {
  margin-left: 0;
  }
 
  .tooltip {
  position: absolute;
  z-index: 1030;
  display: block;
  padding: 5px;
  font-size: 11px;
  opacity: 0;
  filter: alpha(opacity=0);
  visibility: visible;
  }
 
  .tooltip.in {
  opacity: 0.8;
  filter: alpha(opacity=80);
  }
 
  .tooltip.top {
  margin-top: -3px;
  }
 
  .tooltip.right {
  margin-left: 3px;
  }
 
  .tooltip.bottom {
  margin-top: 3px;
  }
 
  .tooltip.left {
  margin-left: -3px;
  }
 
  .tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #ffffff;
  text-align: center;
  text-decoration: none;
  background-color: #000000;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  }
 
  .tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  }
 
  .tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-top-color: #000000;
  border-width: 5px 5px 0;
  }
 
  .tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-right-color: #000000;
  border-width: 5px 5px 5px 0;
  }
 
  .tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-left-color: #000000;
  border-width: 5px 0 5px 5px;
  }
 
  .tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-bottom-color: #000000;
  border-width: 0 5px 5px;
  }
 
  .popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1010;
  display: none;
  width: 236px;
  padding: 1px;
  background-color: #ffffff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
  }
 
  .popover.top {
  margin-top: -10px;
  }
 
  .popover.right {
  margin-left: 10px;
  }
 
  .popover.bottom {
  margin-top: 10px;
  }
 
  .popover.left {
  margin-left: -10px;
  }
 
  .popover-title {
  padding: 8px 14px;
  margin: 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 18px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  -webkit-border-radius: 5px 5px 0 0;
  -moz-border-radius: 5px 5px 0 0;
  border-radius: 5px 5px 0 0;
  }
 
  .popover-content {
  padding: 9px 14px;
  }
 
  .popover-content p,
  .popover-content ul,
  .popover-content ol {
  margin-bottom: 0;
  }
 
  .popover .arrow,
  .popover .arrow:after {
  position: absolute;
  display: inline-block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  }
 
  .popover .arrow:after {
  z-index: -1;
  content: "";
  }
 
  .popover.top .arrow {
  bottom: -10px;
  left: 50%;
  margin-left: -10px;
  border-top-color: #ffffff;
  border-width: 10px 10px 0;
  }
 
  .popover.top .arrow:after {
  bottom: -1px;
  left: -11px;
  border-top-color: rgba(0, 0, 0, 0.25);
  border-width: 11px 11px 0;
  }
 
  .popover.right .arrow {
  top: 50%;
  left: -10px;
  margin-top: -10px;
  border-right-color: #ffffff;
  border-width: 10px 10px 10px 0;
  }
 
  .popover.right .arrow:after {
  bottom: -11px;
  left: -1px;
  border-right-color: rgba(0, 0, 0, 0.25);
  border-width: 11px 11px 11px 0;
  }
 
  .popover.bottom .arrow {
  top: -10px;
  left: 50%;
  margin-left: -10px;
  border-bottom-color: #ffffff;
  border-width: 0 10px 10px;
  }
 
  .popover.bottom .arrow:after {
  top: -1px;
  left: -11px;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  border-width: 0 11px 11px;
  }
 
  .popover.left .arrow {
  top: 50%;
  right: -10px;
  margin-top: -10px;
  border-left-color: #ffffff;
  border-width: 10px 0 10px 10px;
  }
 
  .popover.left .arrow:after {
  right: -1px;
  bottom: -11px;
  border-left-color: rgba(0, 0, 0, 0.25);
  border-width: 11px 0 11px 11px;
  }
 
  .thumbnails {
  margin-left: -20px;
  list-style: none;
  *zoom: 1;
  }
 
  .thumbnails:before,
  .thumbnails:after {
  display: table;
  line-height: 0;
  content: "";
  }
 
  .thumbnails:after {
  clear: both;
  }
 
  .row-fluid .thumbnails {
  margin-left: 0;
  }
 
  .thumbnails > li {
  float: left;
  margin-bottom: 20px;
  margin-left: 20px;
  }
 
  .thumbnail {
  display: block;
  padding: 4px;
  line-height: 20px;
  border: 1px solid #ddd;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  }
 
  a.thumbnail:hover {
  border-color: #0088cc;
  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
  }
 
  .thumbnail > img {
  display: block;
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
  }
 
  .thumbnail .caption {
  padding: 9px;
  color: #555555;
  }
 
  .media,
  .media-body {
  overflow: hidden;
  *overflow: visible;
  zoom: 1;
  }
 
  .media,
  .media .media {
  margin-top: 15px;
  }
 
  .media:first-child {
  margin-top: 0;
  }
 
  .media-object {
  display: block;
  }
 
  .media-heading {
  margin: 0 0 5px;
  }
 
  .media .pull-left {
  margin-right: 10px;
  }
 
  .media .pull-right {
  margin-left: 10px;
  }
 
  .media-list {
  margin-left: 0;
  list-style: none;
  }
 
  .label,
  .badge {
  display: inline-block;
  padding: 2px 4px;
  font-size: 11.844px;
  font-weight: bold;
  line-height: 14px;
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  white-space: nowrap;
  vertical-align: baseline;
  background-color: #999999;
  }
 
  .label {
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  }
 
  .badge {
  padding-right: 9px;
  padding-left: 9px;
  -webkit-border-radius: 9px;
  -moz-border-radius: 9px;
  border-radius: 9px;
  }
 
  a.label:hover,
  a.badge:hover {
  color: #ffffff;
  text-decoration: none;
  cursor: pointer;
  }
 
  .label-important,
  .badge-important {
  background-color: #b94a48;
  }
 
  .label-important[href],
  .badge-important[href] {
  background-color: #953b39;
  }
 
  .label-warning,
  .badge-warning {
  background-color: #f89406;
  }
 
  .label-warning[href],
  .badge-warning[href] {
  background-color: #c67605;
  }
 
  .label-success,
  .badge-success {
  background-color: #468847;
  }
 
  .label-success[href],
  .badge-success[href] {
  background-color: #356635;
  }
 
  .label-info,
  .badge-info {
  background-color: #3a87ad;
  }
 
  .label-info[href],
  .badge-info[href] {
  background-color: #2d6987;
  }
 
  .label-inverse,
  .badge-inverse {
  background-color: #333333;
  }
 
  .label-inverse[href],
  .badge-inverse[href] {
  background-color: #1a1a1a;
  }
 
  .btn .label,
  .btn .badge {
  position: relative;
  top: -1px;
  }
 
  .btn-mini .label,
  .btn-mini .badge {
  top: 0;
  }
 
  @-webkit-keyframes progress-bar-stripes {
  from {
  background-position: 40px 0;
  }
  to {
  background-position: 0 0;
  }
  }
 
  @-moz-keyframes progress-bar-stripes {
  from {
  background-position: 40px 0;
  }
  to {
  background-position: 0 0;
  }
  }
 
  @-ms-keyframes progress-bar-stripes {
  from {
  background-position: 40px 0;
  }
  to {
  background-position: 0 0;
  }
  }
 
  @-o-keyframes progress-bar-stripes {
  from {
  background-position: 0 0;
  }
  to {
  background-position: 40px 0;
  }
  }
 
  @keyframes progress-bar-stripes {
  from {
  background-position: 40px 0;
  }
  to {
  background-position: 0 0;
  }
  }
 
  .progress {
  height: 20px;
  margin-bottom: 20px;
  overflow: hidden;
  background-color: #f7f7f7;
  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
  background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
  background-repeat: repeat-x;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  }
 
  .progress .bar {
  float: left;
  width: 0;
  height: 100%;
  font-size: 12px;
  color: #ffffff;
  text-align: center;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #0e90d2;
  background-image: -moz-linear-gradient(top, #149bdf, #0480be);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
  background-image: -o-linear-gradient(top, #149bdf, #0480be);
  background-image: linear-gradient(to bottom, #149bdf, #0480be);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: width 0.6s ease;
  -moz-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
  }
 
  .progress .bar + .bar {
  -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  }
 
  .progress-striped .bar {
  background-color: #149bdf;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  -webkit-background-size: 40px 40px;
  -moz-background-size: 40px 40px;
  -o-background-size: 40px 40px;
  background-size: 40px 40px;
  }
 
  .progress.active .bar {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -moz-animation: progress-bar-stripes 2s linear infinite;
  -ms-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
  }
 
  .progress-danger .bar,
  .progress .bar-danger {
  background-color: #dd514c;
  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
  background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
  }
 
  .progress-danger.progress-striped .bar,
  .progress-striped .bar-danger {
  background-color: #ee5f5b;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  }
 
  .progress-success .bar,
  .progress .bar-success {
  background-color: #5eb95e;
  background-image: -moz-linear-gradient(top, #62c462, #57a957);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
  background-image: -o-linear-gradient(top, #62c462, #57a957);
  background-image: linear-gradient(to bottom, #62c462, #57a957);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
  }
 
  .progress-success.progress-striped .bar,
  .progress-striped .bar-success {
  background-color: #62c462;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  }
 
  .progress-info .bar,
  .progress .bar-info {
  background-color: #4bb1cf;
  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
  background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
  }
 
  .progress-info.progress-striped .bar,
  .progress-striped .bar-info {
  background-color: #5bc0de;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  }
 
  .progress-warning .bar,
  .progress .bar-warning {
  background-color: #faa732;
  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
  background-image: -o-linear-gradient(top, #fbb450, #f89406);
  background-image: linear-gradient(to bottom, #fbb450, #f89406);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
  }
 
  .progress-warning.progress-striped .bar,
  .progress-striped .bar-warning {
  background-color: #fbb450;
  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  }
 
  .accordion {
  margin-bottom: 20px;
  }
 
  .accordion-group {
  margin-bottom: 2px;
  border: 1px solid #e5e5e5;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  }
 
  .accordion-heading {
  border-bottom: 0;
  }
 
  .accordion-heading .accordion-toggle {
  display: block;
  padding: 8px 15px;
  }
 
  .accordion-toggle {
  cursor: pointer;
  }
 
  .accordion-inner {
  padding: 9px 15px;
  border-top: 1px solid #e5e5e5;
  }
 
  .carousel {
  position: relative;
  margin-bottom: 20px;
  line-height: 1;
  }
 
  .carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
  }
 
  .carousel .item {
  position: relative;
  display: none;
  -webkit-transition: 0.6s ease-in-out left;
  -moz-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
  }
 
  .carousel .item > img {
  display: block;
  line-height: 1;
  }
 
  .carousel .active,
  .carousel .next,
  .carousel .prev {
  display: block;
  }
 
  .carousel .active {
  left: 0;
  }
 
  .carousel .next,
  .carousel .prev {
  position: absolute;
  top: 0;
  width: 100%;
  }
 
  .carousel .next {
  left: 100%;
  }
 
  .carousel .prev {
  left: -100%;
  }
 
  .carousel .next.left,
  .carousel .prev.right {
  left: 0;
  }
 
  .carousel .active.left {
  left: -100%;
  }
 
  .carousel .active.right {
  left: 100%;
  }
 
  .carousel-control {
  position: absolute;
  top: 40%;
  left: 15px;
  width: 40px;
  height: 40px;
  margin-top: -20px;
  font-size: 60px;
  font-weight: 100;
  line-height: 30px;
  color: #ffffff;
  text-align: center;
  background: #222222;
  border: 3px solid #ffffff;
  -webkit-border-radius: 23px;
  -moz-border-radius: 23px;
  border-radius: 23px;
  opacity: 0.5;
  filter: alpha(opacity=50);
  }
 
  .carousel-control.right {
  right: 15px;
  left: auto;
  }
 
  .carousel-control:hover {
  color: #ffffff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
  }
 
  .carousel-caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 15px;
  background: #333333;
  background: rgba(0, 0, 0, 0.75);
  }
 
  .carousel-caption h4,
  .carousel-caption p {
  line-height: 20px;
  color: #ffffff;
  }
 
  .carousel-caption h4 {
  margin: 0 0 5px;
  }
 
  .carousel-caption p {
  margin-bottom: 0;
  }
 
  .hero-unit {
  padding: 60px;
  margin-bottom: 30px;
  font-size: 18px;
  font-weight: 200;
  line-height: 30px;
  color: inherit;
  background-color: #eeeeee;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  }
 
  .hero-unit h1 {
  margin-bottom: 0;
  font-size: 60px;
  line-height: 1;
  letter-spacing: -1px;
  color: inherit;
  }
 
  .hero-unit li {
  line-height: 30px;
  }
 
  .pull-right {
  float: right;
  }
 
  .pull-left {
  float: left;
  }
 
  .hide {
  display: none;
  }
 
  .show {
  display: block;
  }
 
  .invisible {
  visibility: hidden;
  }
 
  .affix {
  position: fixed;
  }
 
  /*!
  * Bootstrap v2.2.1
  *
  * Copyright 2012 Twitter, Inc
  * Licensed under the Apache License v2.0
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
  */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}.text-warning{color:#c09853}a.text-warning:hover{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover{color:#2d6987}.text-success{color:#468847}a.text-success:hover{color:#356635}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal;cursor:pointer}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info>label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn,.input-append select+.btn-group .btn,.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.warning td{background-color:#fcf8e3}.table tbody tr.info td{background-color:#d9edf7}.table-hover tbody tr.success:hover td{background-color:#d0e9c6}.table-hover tbody tr.error:hover td{background-color:#ebcccc}.table-hover tbody tr.warning:hover td{background-color:#faf2cc}.table-hover tbody tr.info:hover td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#333;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent;background-image:none}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #bbb;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:2px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini{padding:1px 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,0.15) rgba(0,0,0,0.15) rgba(0,0,0,0.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar .btn+.btn,.btn-toolbar .btn-group+.btn,.btn-toolbar .btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu{font-size:14px}.btn-group>.btn-mini{font-size:11px}.btn-group>.btn-small{font-size:12px}.btn-group>.btn-large{font-size:16px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical .btn{display:block;float:none;width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical .btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible;color:#777}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px}.navbar-link{color:#777}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse{color:#999}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#ccc}.breadcrumb .active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:1px 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow:after{z-index:-1;content:""}.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-top-color:#fff;border-width:10px 10px 0}.popover.top .arrow:after{bottom:-1px;left:-11px;border-top-color:rgba(0,0,0,0.25);border-width:11px 11px 0}.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-right-color:#fff;border-width:10px 10px 10px 0}.popover.right .arrow:after{bottom:-11px;left:-1px;border-right-color:rgba(0,0,0,0.25);border-width:11px 11px 11px 0}.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-bottom-color:#fff;border-width:0 10px 10px}.popover.bottom .arrow:after{top:-1px;left:-11px;border-bottom-color:rgba(0,0,0,0.25);border-width:0 11px 11px}.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-left-color:#fff;border-width:10px 0 10px 10px}.popover.left .arrow:after{right:-1px;bottom:-11px;border-left-color:rgba(0,0,0,0.25);border-width:11px 0 11px 11px}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media .pull-left{margin-right:10px}.media .pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item>img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}
 
  <?php
  include('template.inc.php');
  include_header_documents("");
  include_once('../include/common.inc.php');
 
  echo "<table>
  <tr><th>Agency Name</th><th>Disclosure Log URL recorded?</th><th>Do we monitor this URL?</th></tr>";
  $agenciesdb = $server->get_db('disclosr-agencies');
  $docsdb = $server->get_db('disclosr-documents');
  try {
  $rows = $agenciesdb->get_view("app", "byCanonicalName", null, true)->rows;
 
 
  if ($rows) {
  foreach ($rows as $row) {
 
  echo "<tr><td><b>" . $row->value->name . "</b> (".$row->id.")</td>\n";
 
  echo "<td>";
  if (isset($row->value->FOIDocumentsURL)) {
  echo '<a href="viewDocument.php?hash='.md5($row->value->FOIDocumentsURL).'">'
  .$row->value->FOIDocumentsURL.'</a>';
  } else {
  echo "<font color='red'>✘</font>";
  }
  echo "</td>\n<td>";
  if (isset($row->value->FOIDocumentsURL)) {
  if (file_exists("./scrapers/".$row->id.'.py')) {
  echo "<font color='green'>✔</font>";
  } else if (file_exists("./scrapers/".$row->id.'.txt')){
  echo "<font color='blue'><b>▬</b></font>";
  } else {
  echo "<font color='red'>✘</font>";
  }
  }
  echo "</td></tr>\n";
  }
  }
  } catch (SetteeRestClientException $e) {
  setteErrorHandler($e);
  }
  echo "</table>";
  include_footer_documents();
  ?>
 Binary files /dev/null and b/documents/favicon.ico differ
  import sys,os
  sys.path.insert(0, os.path.join(os.path.dirname(__file__) or '.', '../'))
  import scrape
  from bs4 import BeautifulSoup
  import parsedatetime as pdt
  from time import mktime
  from datetime import datetime
  import feedparser
  import abc
 
  class GenericDisclogScraper(object):
  __metaclass__ = abc.ABCMeta
  agencyID = None
  disclogURL = None
  def getAgencyID(self):
  """ disclosr agency id """
  if self.agencyID == None:
  self.agencyID = os.path.basename(sys.argv[0]).replace(".py","")
  return self.agencyID
 
  def getURL(self):
  """ disclog URL"""
  if self.disclogURL == None:
  agency = scrape.agencydb.get(self.getAgencyID())
  self.disclogURL = agency['FOIDocumentsURL']
  return self.disclogURL
 
  @abc.abstractmethod
  def doScrape(self):
  """ do the scraping """
  return
 
 
 
  class GenericRSSDisclogScraper(GenericDisclogScraper):
  def getDescription(self, entry, doc):
  """ get description from rss entry"""
  doc['description'] = entry.summary
  return
 
  def doScrape(self):
  foidocsdb = scrape.couch['disclosr-foidocuments']
  (url,mime_type,content) = scrape.fetchURL(scrape.docsdb, self.getURL(), "foidocuments", self.getAgencyID())
  feed = feedparser.parse(content)
  for entry in feed.entries:
  #print entry
  print entry.id
  hash = scrape.mkhash(entry.id)
  #print hash
  doc = foidocsdb.get(hash)
  #print doc
  if doc == None:
  print "saving"
  edate = datetime.fromtimestamp(mktime( entry.published_parsed)).strftime("%Y-%m-%d")
  doc = {'_id': hash, 'agencyID': self.getAgencyID(), 'url': entry.link, 'docID': entry.id,
  "date": edate,"title": entry.title}
  self.getDescription(entry, doc)
  foidocsdb.save(doc)
  else:
  print "already saved"
 
  class GenericOAICDisclogScraper(GenericDisclogScraper):
  __metaclass__ = abc.ABCMeta
  @abc.abstractmethod
  def getColumns(self,columns):
  """ rearranges columns if required """
  return
 
  def doScrape(self):
  cal = pdt.Calendar()
  foidocsdb = scrape.couch['disclosr-foidocuments']
  (url,mime_type,content) = scrape.fetchURL(scrape.docsdb, self.getURL(), "foidocuments", self.getAgencyID())
  if content != None:
  if mime_type == "text/html" or mime_type == "application/xhtml+xml" or mime_type =="application/xml":
  # http://www.crummy.com/software/BeautifulSoup/documentation.html
  soup = BeautifulSoup(content)
  for row in soup.table.find_all('tr'):
  columns = row.find_all('td')
  if len(columns) == 5:
  (id, date, description, title, notes) = self.getColumns(columns)
  print id.string
  hash = scrape.mkhash(url+id.string)
  links = []
  for atag in row.find_all("a"):
  if atag.has_key('href'):
  links.append(scrape.fullurl(url,atag['href']))
  doc = foidocsdb.get(hash)
  descriptiontxt = ""
  for string in description.stripped_strings:
  descriptiontxt = descriptiontxt + " \n" + string
 
  if doc == None:
  print "saving"
  dtresult = cal.parseDateText(date.string)
  if len(dtresult) == 2:
  (dtdate,dtr) = dtresult
  print dtdate
  edate = ""+str(dtdate[0])+'-'+str(dtdate[1])+'-'+str(dtdate[2])
  else:
  edate = ""
  doc = {'_id': hash, 'agencyID': self.getAgencyID(), 'url': self.getURL(), "links": links, 'docID': id.string,
  "date": edate, "description": descriptiontxt,"title": title.string,"notes": notes.string}
  foidocsdb.save(doc)
  else:
  print "already saved"
 
  elif len(row.find_all('th')) == 5:
  print "header row"
 
  else:
  print "ERROR number of columns incorrect"
  print row
 
  google-site-verification: google676a414ad086cefb.html
 
  google-site-verification: googlebcce906c6b666bb8.html
 
  /* the humans responsible & colophon */
  /* humanstxt.org */
 
 
  /* TEAM */
  <your title>: <your name>
  Site:
  Twitter:
  Location:
 
  /* THANKS */
  Names (& URL):
 
  /* SITE */
  Standards: HTML5, CSS3
  Components: Modernizr, jQuery
  Software:
 
 
 
  -o/-
  +oo//-
  :ooo+//:
  -ooooo///-
  /oooooo//:
  :ooooooo+//-
  -+oooooooo///-
  -://////////////+oooooooooo++////////////::
  :+ooooooooooooooooooooooooooooooooooooo+:::-
  -/+ooooooooooooooooooooooooooooooo+/::////:-
  -:+oooooooooooooooooooooooooooo/::///////:-
  --/+ooooooooooooooooooooo+::://////:-
  -:+ooooooooooooooooo+:://////:--
  /ooooooooooooooooo+//////:-
  -ooooooooooooooooooo////-
  /ooooooooo+oooooooooo//:
  :ooooooo+/::/+oooooooo+//-
  -oooooo/::///////+oooooo///-
  /ooo+::://////:---:/+oooo//:
  -o+/::///////:- -:/+o+//-
  :-:///////:- -:/://
  -////:- --//:
  -- -:
 
 Binary files /dev/null and b/documents/img/glyphicons-halflings-white.png differ
 Binary files /dev/null and b/documents/img/glyphicons-halflings.png differ
  <?php
  include('template.inc.php');
  include_header_documents("");
  include_once('../include/common.inc.php');
  ?>
  <?php
 
 
 
  $agenciesdb = $server->get_db('disclosr-agencies');
 
  $idtoname = Array();
  foreach ($agenciesdb->get_view("app", "byCanonicalName")->rows as $row) {
  $idtoname[$row->id] = trim($row->value->name);
  }
  $foidocsdb = $server->get_db('disclosr-foidocuments');
  try {
  $rows = $foidocsdb->get_view("app", "byDate", Array('9999-99-99','0000-00-00'), true)->rows;
 
 
  if ($rows) {
  foreach ($rows as $row) {
  //print_r($row);
  displayLogEntry($row,$idtoname);
  /* 1/1/11 title (Dept dfggdfgdf)
  description:
  source link:
  documents:
  #1 title link */
  }
  }
  } catch (SetteeRestClientException $e) {
  setteErrorHandler($e);
  }
  include_footer_documents();
  ?>
 
  /* ===================================================
  * bootstrap-transition.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#transitions
  * ===================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ========================================================== */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
  * ======================================================= */
 
  $(function () {
 
  $.support.transition = (function () {
 
  var transitionEnd = (function () {
 
  var el = document.createElement('bootstrap')
  , transEndEventNames = {
  'WebkitTransition' : 'webkitTransitionEnd'
  , 'MozTransition' : 'transitionend'
  , 'OTransition' : 'oTransitionEnd otransitionend'
  , 'transition' : 'transitionend'
  }
  , name
 
  for (name in transEndEventNames){
  if (el.style[name] !== undefined) {
  return transEndEventNames[name]
  }
  }
 
  }())
 
  return transitionEnd && {
  end: transitionEnd
  }
 
  })()
 
  })
 
  }(window.jQuery);/* ==========================================================
  * bootstrap-alert.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#alerts
  * ==========================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ========================================================== */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* ALERT CLASS DEFINITION
  * ====================== */
 
  var dismiss = '[data-dismiss="alert"]'
  , Alert = function (el) {
  $(el).on('click', dismiss, this.close)
  }
 
  Alert.prototype.close = function (e) {
  var $this = $(this)
  , selector = $this.attr('data-target')
  , $parent
 
  if (!selector) {
  selector = $this.attr('href')
  selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
  }
 
  $parent = $(selector)
 
  e && e.preventDefault()
 
  $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
 
  $parent.trigger(e = $.Event('close'))
 
  if (e.isDefaultPrevented()) return
 
  $parent.removeClass('in')
 
  function removeElement() {
  $parent
  .trigger('closed')
  .remove()
  }
 
  $.support.transition && $parent.hasClass('fade') ?
  $parent.on($.support.transition.end, removeElement) :
  removeElement()
  }
 
 
  /* ALERT PLUGIN DEFINITION
  * ======================= */
 
  $.fn.alert = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('alert')
  if (!data) $this.data('alert', (data = new Alert(this)))
  if (typeof option == 'string') data[option].call($this)
  })
  }
 
  $.fn.alert.Constructor = Alert
 
 
  /* ALERT DATA-API
  * ============== */
 
  $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
 
  }(window.jQuery);/* ============================================================
  * bootstrap-button.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#buttons
  * ============================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============================================================ */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* BUTTON PUBLIC CLASS DEFINITION
  * ============================== */
 
  var Button = function (element, options) {
  this.$element = $(element)
  this.options = $.extend({}, $.fn.button.defaults, options)
  }
 
  Button.prototype.setState = function (state) {
  var d = 'disabled'
  , $el = this.$element
  , data = $el.data()
  , val = $el.is('input') ? 'val' : 'html'
 
  state = state + 'Text'
  data.resetText || $el.data('resetText', $el[val]())
 
  $el[val](data[state] || this.options[state])
 
  // push to event loop to allow forms to submit
  setTimeout(function () {
  state == 'loadingText' ?
  $el.addClass(d).attr(d, d) :
  $el.removeClass(d).removeAttr(d)
  }, 0)
  }
 
  Button.prototype.toggle = function () {
  var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
 
  $parent && $parent
  .find('.active')
  .removeClass('active')
 
  this.$element.toggleClass('active')
  }
 
 
  /* BUTTON PLUGIN DEFINITION
  * ======================== */
 
  $.fn.button = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('button')
  , options = typeof option == 'object' && option
  if (!data) $this.data('button', (data = new Button(this, options)))
  if (option == 'toggle') data.toggle()
  else if (option) data.setState(option)
  })
  }
 
  $.fn.button.defaults = {
  loadingText: 'loading...'
  }
 
  $.fn.button.Constructor = Button
 
 
  /* BUTTON DATA-API
  * =============== */
 
  $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
  var $btn = $(e.target)
  if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
  $btn.button('toggle')
  })
 
  }(window.jQuery);/* ==========================================================
  * bootstrap-carousel.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#carousel
  * ==========================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ========================================================== */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* CAROUSEL CLASS DEFINITION
  * ========================= */
 
  var Carousel = function (element, options) {
  this.$element = $(element)
  this.options = options
  this.options.slide && this.slide(this.options.slide)
  this.options.pause == 'hover' && this.$element
  .on('mouseenter', $.proxy(this.pause, this))
  .on('mouseleave', $.proxy(this.cycle, this))
  }
 
  Carousel.prototype = {
 
  cycle: function (e) {
  if (!e) this.paused = false
  this.options.interval
  && !this.paused
  && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
  return this
  }
 
  , to: function (pos) {
  var $active = this.$element.find('.item.active')
  , children = $active.parent().children()
  , activePos = children.index($active)
  , that = this
 
  if (pos > (children.length - 1) || pos < 0) return
 
  if (this.sliding) {
  return this.$element.one('slid', function () {
  that.to(pos)
  })
  }
 
  if (activePos == pos) {
  return this.pause().cycle()
  }
 
  return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
  }
 
  , pause: function (e) {
  if (!e) this.paused = true
  if (this.$element.find('.next, .prev').length && $.support.transition.end) {
  this.$element.trigger($.support.transition.end)
  this.cycle()
  }
  clearInterval(this.interval)
  this.interval = null
  return this
  }
 
  , next: function () {
  if (this.sliding) return
  return this.slide('next')
  }
 
  , prev: function () {
  if (this.sliding) return
  return this.slide('prev')
  }
 
  , slide: function (type, next) {
  var $active = this.$element.find('.item.active')
  , $next = next || $active[type]()
  , isCycling = this.interval
  , direction = type == 'next' ? 'left' : 'right'
  , fallback = type == 'next' ? 'first' : 'last'
  , that = this
  , e
 
  this.sliding = true
 
  isCycling && this.pause()
 
  $next = $next.length ? $next : this.$element.find('.item')[fallback]()
 
  e = $.Event('slide', {
  relatedTarget: $next[0]
  })
 
  if ($next.hasClass('active')) return
 
  if ($.support.transition && this.$element.hasClass('slide')) {
  this.$element.trigger(e)
  if (e.isDefaultPrevented()) return
  $next.addClass(type)
  $next[0].offsetWidth // force reflow
  $active.addClass(direction)
  $next.addClass(direction)
  this.$element.one($.support.transition.end, function () {
  $next.removeClass([type, direction].join(' ')).addClass('active')
  $active.removeClass(['active', direction].join(' '))
  that.sliding = false
  setTimeout(function () { that.$element.trigger('slid') }, 0)
  })
  } else {
  this.$element.trigger(e)
  if (e.isDefaultPrevented()) return
  $active.removeClass('active')
  $next.addClass('active')
  this.sliding = false
  this.$element.trigger('slid')
  }
 
  isCycling && this.cycle()
 
  return this
  }
 
  }
 
 
  /* CAROUSEL PLUGIN DEFINITION
  * ========================== */
 
  $.fn.carousel = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('carousel')
  , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
  , action = typeof option == 'string' ? option : options.slide
  if (!data) $this.data('carousel', (data = new Carousel(this, options)))
  if (typeof option == 'number') data.to(option)
  else if (action) data[action]()
  else if (options.interval) data.cycle()
  })
  }
 
  $.fn.carousel.defaults = {
  interval: 5000
  , pause: 'hover'
  }
 
  $.fn.carousel.Constructor = Carousel
 
 
  /* CAROUSEL DATA-API
  * ================= */
 
  $(document).on('click.carousel.data-api', '[data-slide]', function (e) {
  var $this = $(this), href
  , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
  , options = $.extend({}, $target.data(), $this.data())
  $target.carousel(options)
  e.preventDefault()
  })
 
  }(window.jQuery);/* =============================================================
  * bootstrap-collapse.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#collapse
  * =============================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============================================================ */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* COLLAPSE PUBLIC CLASS DEFINITION
  * ================================ */
 
  var Collapse = function (element, options) {
  this.$element = $(element)
  this.options = $.extend({}, $.fn.collapse.defaults, options)
 
  if (this.options.parent) {
  this.$parent = $(this.options.parent)
  }
 
  this.options.toggle && this.toggle()
  }
 
  Collapse.prototype = {
 
  constructor: Collapse
 
  , dimension: function () {
  var hasWidth = this.$element.hasClass('width')
  return hasWidth ? 'width' : 'height'
  }
 
  , show: function () {
  var dimension
  , scroll
  , actives
  , hasData
 
  if (this.transitioning) return
 
  dimension = this.dimension()
  scroll = $.camelCase(['scroll', dimension].join('-'))
  actives = this.$parent && this.$parent.find('> .accordion-group > .in')
 
  if (actives && actives.length) {
  hasData = actives.data('collapse')
  if (hasData && hasData.transitioning) return
  actives.collapse('hide')
  hasData || actives.data('collapse', null)
  }
 
  this.$element[dimension](0)
  this.transition('addClass', $.Event('show'), 'shown')
  $.support.transition && this.$element[dimension](this.$element[0][scroll])
  }
 
  , hide: function () {
  var dimension
  if (this.transitioning) return
  dimension = this.dimension()
  this.reset(this.$element[dimension]())
  this.transition('removeClass', $.Event('hide'), 'hidden')
  this.$element[dimension](0)
  }
 
  , reset: function (size) {
  var dimension = this.dimension()
 
  this.$element
  .removeClass('collapse')
  [dimension](size || 'auto')
  [0].offsetWidth
 
  this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
 
  return this
  }
 
  , transition: function (method, startEvent, completeEvent) {
  var that = this
  , complete = function () {
  if (startEvent.type == 'show') that.reset()
  that.transitioning = 0
  that.$element.trigger(completeEvent)
  }
 
  this.$element.trigger(startEvent)
 
  if (startEvent.isDefaultPrevented()) return
 
  this.transitioning = 1
 
  this.$element[method]('in')
 
  $.support.transition && this.$element.hasClass('collapse') ?
  this.$element.one($.support.transition.end, complete) :
  complete()
  }
 
  , toggle: function () {
  this[this.$element.hasClass('in') ? 'hide' : 'show']()
  }
 
  }
 
 
  /* COLLAPSIBLE PLUGIN DEFINITION
  * ============================== */
 
  $.fn.collapse = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('collapse')
  , options = typeof option == 'object' && option
  if (!data) $this.data('collapse', (data = new Collapse(this, options)))
  if (typeof option == 'string') data[option]()
  })
  }
 
  $.fn.collapse.defaults = {
  toggle: true
  }
 
  $.fn.collapse.Constructor = Collapse
 
 
  /* COLLAPSIBLE DATA-API
  * ==================== */
 
  $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
  var $this = $(this), href
  , target = $this.attr('data-target')
  || e.preventDefault()
  || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
  , option = $(target).data('collapse') ? 'toggle' : $this.data()
  $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
  $(target).collapse(option)
  })
 
  }(window.jQuery);/* ============================================================
  * bootstrap-dropdown.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#dropdowns
  * ============================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============================================================ */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* DROPDOWN CLASS DEFINITION
  * ========================= */
 
  var toggle = '[data-toggle=dropdown]'
  , Dropdown = function (element) {
  var $el = $(element).on('click.dropdown.data-api', this.toggle)
  $('html').on('click.dropdown.data-api', function () {
  $el.parent().removeClass('open')
  })
  }
 
  Dropdown.prototype = {
 
  constructor: Dropdown
 
  , toggle: function (e) {
  var $this = $(this)
  , $parent
  , isActive
 
  if ($this.is('.disabled, :disabled')) return
 
  $parent = getParent($this)
 
  isActive = $parent.hasClass('open')
 
  clearMenus()
 
  if (!isActive) {
  $parent.toggleClass('open')
  $this.focus()
  }
 
  return false
  }
 
  , keydown: function (e) {
  var $this
  , $items
  , $active
  , $parent
  , isActive
  , index
 
  if (!/(38|40|27)/.test(e.keyCode)) return
 
  $this = $(this)
 
  e.preventDefault()
  e.stopPropagation()
 
  if ($this.is('.disabled, :disabled')) return
 
  $parent = getParent($this)
 
  isActive = $parent.hasClass('open')
 
  if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
 
  $items = $('[role=menu] li:not(.divider) a', $parent)
 
  if (!$items.length) return
 
  index = $items.index($items.filter(':focus'))
 
  if (e.keyCode == 38 && index > 0) index-- // up
  if (e.keyCode == 40 && index < $items.length - 1) index++ // down
  if (!~index) index = 0
 
  $items
  .eq(index)
  .focus()
  }
 
  }
 
  function clearMenus() {
  $(toggle).each(function () {
  getParent($(this)).removeClass('open')
  })
  }
 
  function getParent($this) {
  var selector = $this.attr('data-target')
  , $parent
 
  if (!selector) {
  selector = $this.attr('href')
  selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
  }
 
  $parent = $(selector)
  $parent.length || ($parent = $this.parent())
 
  return $parent
  }
 
 
  /* DROPDOWN PLUGIN DEFINITION
  * ========================== */
 
  $.fn.dropdown = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('dropdown')
  if (!data) $this.data('dropdown', (data = new Dropdown(this)))
  if (typeof option == 'string') data[option].call($this)
  })
  }
 
  $.fn.dropdown.Constructor = Dropdown
 
 
  /* APPLY TO STANDARD DROPDOWN ELEMENTS
  * =================================== */
 
  $(document)
  .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
  .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
  .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
  .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
 
  }(window.jQuery);/* =========================================================
  * bootstrap-modal.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#modals
  * =========================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ========================================================= */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* MODAL CLASS DEFINITION
  * ====================== */
 
  var Modal = function (element, options) {
  this.options = options
  this.$element = $(element)
  .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
  this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
  }
 
  Modal.prototype = {
 
  constructor: Modal
 
  , toggle: function () {
  return this[!this.isShown ? 'show' : 'hide']()
  }
 
  , show: function () {
  var that = this
  , e = $.Event('show')
 
  this.$element.trigger(e)
 
  if (this.isShown || e.isDefaultPrevented()) return
 
  this.isShown = true
 
  this.escape()
 
  this.backdrop(function () {
  var transition = $.support.transition && that.$element.hasClass('fade')
 
  if (!that.$element.parent().length) {
  that.$element.appendTo(document.body) //don't move modals dom position
  }
 
  that.$element
  .show()
 
  if (transition) {
  that.$element[0].offsetWidth // force reflow
  }
 
  that.$element
  .addClass('in')
  .attr('aria-hidden', false)
 
  that.enforceFocus()
 
  transition ?
  that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
  that.$element.focus().trigger('shown')
 
  })
  }
 
  , hide: function (e) {
  e && e.preventDefault()
 
  var that = this
 
  e = $.Event('hide')
 
  this.$element.trigger(e)
 
  if (!this.isShown || e.isDefaultPrevented()) return
 
  this.isShown = false
 
  this.escape()
 
  $(document).off('focusin.modal')
 
  this.$element
  .removeClass('in')
  .attr('aria-hidden', true)
 
  $.support.transition && this.$element.hasClass('fade') ?
  this.hideWithTransition() :
  this.hideModal()
  }
 
  , enforceFocus: function () {
  var that = this
  $(document).on('focusin.modal', function (e) {
  if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
  that.$element.focus()
  }
  })
  }
 
  , escape: function () {
  var that = this
  if (this.isShown && this.options.keyboard) {
  this.$element.on('keyup.dismiss.modal', function ( e ) {
  e.which == 27 && that.hide()
  })
  } else if (!this.isShown) {
  this.$element.off('keyup.dismiss.modal')
  }
  }
 
  , hideWithTransition: function () {
  var that = this
  , timeout = setTimeout(function () {
  that.$element.off($.support.transition.end)
  that.hideModal()
  }, 500)
 
  this.$element.one($.support.transition.end, function () {
  clearTimeout(timeout)
  that.hideModal()
  })
  }
 
  , hideModal: function (that) {
  this.$element
  .hide()
  .trigger('hidden')
 
  this.backdrop()
  }
 
  , removeBackdrop: function () {
  this.$backdrop.remove()
  this.$backdrop = null
  }
 
  , backdrop: function (callback) {
  var that = this
  , animate = this.$element.hasClass('fade') ? 'fade' : ''
 
  if (this.isShown && this.options.backdrop) {
  var doAnimate = $.support.transition && animate
 
  this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
  .appendTo(document.body)
 
  this.$backdrop.click(
  this.options.backdrop == 'static' ?
  $.proxy(this.$element[0].focus, this.$element[0])
  : $.proxy(this.hide, this)
  )
 
  if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
 
  this.$backdrop.addClass('in')
 
  doAnimate ?
  this.$backdrop.one($.support.transition.end, callback) :
  callback()
 
  } else if (!this.isShown && this.$backdrop) {
  this.$backdrop.removeClass('in')
 
  $.support.transition && this.$element.hasClass('fade')?
  this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) :
  this.removeBackdrop()
 
  } else if (callback) {
  callback()
  }
  }
  }
 
 
  /* MODAL PLUGIN DEFINITION
  * ======================= */
 
  $.fn.modal = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('modal')
  , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
  if (!data) $this.data('modal', (data = new Modal(this, options)))
  if (typeof option == 'string') data[option]()
  else if (options.show) data.show()
  })
  }
 
  $.fn.modal.defaults = {
  backdrop: true
  , keyboard: true
  , show: true
  }
 
  $.fn.modal.Constructor = Modal
 
 
  /* MODAL DATA-API
  * ============== */
 
  $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
  var $this = $(this)
  , href = $this.attr('href')
  , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
  , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
 
  e.preventDefault()
 
  $target
  .modal(option)
  .one('hide', function () {
  $this.focus()
  })
  })
 
  }(window.jQuery);
  /* ===========================================================
  * bootstrap-tooltip.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#tooltips
  * Inspired by the original jQuery.tipsy by Jason Frame
  * ===========================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ========================================================== */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* TOOLTIP PUBLIC CLASS DEFINITION
  * =============================== */
 
  var Tooltip = function (element, options) {
  this.init('tooltip', element, options)
  }
 
  Tooltip.prototype = {
 
  constructor: Tooltip
 
  , init: function (type, element, options) {
  var eventIn
  , eventOut
 
  this.type = type
  this.$element = $(element)
  this.options = this.getOptions(options)
  this.enabled = true
 
  if (this.options.trigger == 'click') {
  this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
  } else if (this.options.trigger != 'manual') {
  eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
  eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
  this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
  this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
  }
 
  this.options.selector ?
  (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
  this.fixTitle()
  }
 
  , getOptions: function (options) {
  options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
 
  if (options.delay && typeof options.delay == 'number') {
  options.delay = {
  show: options.delay
  , hide: options.delay
  }
  }
 
  return options
  }
 
  , enter: function (e) {
  var self = $(e.currentTarget)[this.type](this._options).data(this.type)
 
  if (!self.options.delay || !self.options.delay.show) return self.show()
 
  clearTimeout(this.timeout)
  self.hoverState = 'in'
  this.timeout = setTimeout(function() {
  if (self.hoverState == 'in') self.show()
  }, self.options.delay.show)
  }
 
  , leave: function (e) {
  var self = $(e.currentTarget)[this.type](this._options).data(this.type)
 
  if (this.timeout) clearTimeout(this.timeout)
  if (!self.options.delay || !self.options.delay.hide) return self.hide()
 
  self.hoverState = 'out'
  this.timeout = setTimeout(function() {
  if (self.hoverState == 'out') self.hide()
  }, self.options.delay.hide)
  }
 
  , show: function () {
  var $tip
  , inside
  , pos
  , actualWidth
  , actualHeight
  , placement
  , tp
 
  if (this.hasContent() && this.enabled) {
  $tip = this.tip()
  this.setContent()
 
  if (this.options.animation) {
  $tip.addClass('fade')
  }
 
  placement = typeof this.options.placement == 'function' ?
  this.options.placement.call(this, $tip[0], this.$element[0]) :
  this.options.placement
 
  inside = /in/.test(placement)
 
  $tip
  .detach()
  .css({ top: 0, left: 0, display: 'block' })
  .insertAfter(this.$element)
 
  pos = this.getPosition(inside)
 
  actualWidth = $tip[0].offsetWidth
  actualHeight = $tip[0].offsetHeight
 
  switch (inside ? placement.split(' ')[1] : placement) {
  case 'bottom':
  tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
  break
  case 'top':
  tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
  break
  case 'left':
  tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
  break
  case 'right':
  tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
  break
  }
 
  $tip
  .offset(tp)
  .addClass(placement)
  .addClass('in')
  }
  }
 
  , setContent: function () {
  var $tip = this.tip()
  , title = this.getTitle()
 
  $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
  $tip.removeClass('fade in top bottom left right')
  }
 
  , hide: function () {
  var that = this
  , $tip = this.tip()
 
  $tip.removeClass('in')
 
  function removeWithAnimation() {
  var timeout = setTimeout(function () {
  $tip.off($.support.transition.end).detach()
  }, 500)
 
  $tip.one($.support.transition.end, function () {
  clearTimeout(timeout)
  $tip.detach()
  })
  }
 
  $.support.transition && this.$tip.hasClass('fade') ?
  removeWithAnimation() :
  $tip.detach()
 
  return this
  }
 
  , fixTitle: function () {
  var $e = this.$element
  if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
  $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title')
  }
  }
 
  , hasContent: function () {
  return this.getTitle()
  }
 
  , getPosition: function (inside) {
  return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), {
  width: this.$element[0].offsetWidth
  , height: this.$element[0].offsetHeight
  })
  }
 
  , getTitle: function () {
  var title
  , $e = this.$element
  , o = this.options
 
  title = $e.attr('data-original-title')
  || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
 
  return title
  }
 
  , tip: function () {
  return this.$tip = this.$tip || $(this.options.template)
  }
 
  , validate: function () {
  if (!this.$element[0].parentNode) {
  this.hide()
  this.$element = null
  this.options = null
  }
  }
 
  , enable: function () {
  this.enabled = true
  }
 
  , disable: function () {
  this.enabled = false
  }
 
  , toggleEnabled: function () {
  this.enabled = !this.enabled
  }
 
  , toggle: function (e) {
  var self = $(e.currentTarget)[this.type](this._options).data(this.type)
  self[self.tip().hasClass('in') ? 'hide' : 'show']()
  }
 
  , destroy: function () {
  this.hide().$element.off('.' + this.type).removeData(this.type)
  }
 
  }
 
 
  /* TOOLTIP PLUGIN DEFINITION
  * ========================= */
 
  $.fn.tooltip = function ( option ) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('tooltip')
  , options = typeof option == 'object' && option
  if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
  if (typeof option == 'string') data[option]()
  })
  }
 
  $.fn.tooltip.Constructor = Tooltip
 
  $.fn.tooltip.defaults = {
  animation: true
  , placement: 'top'
  , selector: false
  , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
  , trigger: 'hover'
  , title: ''
  , delay: 0
  , html: false
  }
 
  }(window.jQuery);/* ===========================================================
  * bootstrap-popover.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#popovers
  * ===========================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * =========================================================== */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* POPOVER PUBLIC CLASS DEFINITION
  * =============================== */
 
  var Popover = function (element, options) {
  this.init('popover', element, options)
  }
 
 
  /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
  ========================================== */
 
  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
 
  constructor: Popover
 
  , setContent: function () {
  var $tip = this.tip()
  , title = this.getTitle()
  , content = this.getContent()
 
  $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
  $tip.find('.popover-content > *')[this.options.html ? 'html' : 'text'](content)
 
  $tip.removeClass('fade top bottom left right in')
  }
 
  , hasContent: function () {
  return this.getTitle() || this.getContent()
  }
 
  , getContent: function () {
  var content
  , $e = this.$element
  , o = this.options
 
  content = $e.attr('data-content')
  || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
 
  return content
  }
 
  , tip: function () {
  if (!this.$tip) {
  this.$tip = $(this.options.template)
  }
  return this.$tip
  }
 
  , destroy: function () {
  this.hide().$element.off('.' + this.type).removeData(this.type)
  }
 
  })
 
 
  /* POPOVER PLUGIN DEFINITION
  * ======================= */
 
  $.fn.popover = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('popover')
  , options = typeof option == 'object' && option
  if (!data) $this.data('popover', (data = new Popover(this, options)))
  if (typeof option == 'string') data[option]()
  })
  }
 
  $.fn.popover.Constructor = Popover
 
  $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
  placement: 'right'
  , trigger: 'click'
  , content: ''
  , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
  })
 
  }(window.jQuery);/* =============================================================
  * bootstrap-scrollspy.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#scrollspy
  * =============================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============================================================== */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* SCROLLSPY CLASS DEFINITION
  * ========================== */
 
  function ScrollSpy(element, options) {
  var process = $.proxy(this.process, this)
  , $element = $(element).is('body') ? $(window) : $(element)
  , href
  this.options = $.extend({}, $.fn.scrollspy.defaults, options)
  this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
  this.selector = (this.options.target
  || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
  || '') + ' .nav li > a'
  this.$body = $('body')
  this.refresh()
  this.process()
  }
 
  ScrollSpy.prototype = {
 
  constructor: ScrollSpy
 
  , refresh: function () {
  var self = this
  , $targets
 
  this.offsets = $([])
  this.targets = $([])
 
  $targets = this.$body
  .find(this.selector)
  .map(function () {
  var $el = $(this)
  , href = $el.data('target') || $el.attr('href')
  , $href = /^#\w/.test(href) && $(href)
  return ( $href
  && $href.length
  && [[ $href.position().top, href ]] ) || null
  })
  .sort(function (a, b) { return a[0] - b[0] })
  .each(function () {
  self.offsets.push(this[0])
  self.targets.push(this[1])
  })
  }
 
  , process: function () {
  var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
  , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
  , maxScroll = scrollHeight - this.$scrollElement.height()
  , offsets = this.offsets
  , targets = this.targets
  , activeTarget = this.activeTarget
  , i
 
  if (scrollTop >= maxScroll) {
  return activeTarget != (i = targets.last()[0])
  && this.activate ( i )
  }
 
  for (i = offsets.length; i--;) {
  activeTarget != targets[i]
  && scrollTop >= offsets[i]
  && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
  && this.activate( targets[i] )
  }
  }
 
  , activate: function (target) {
  var active
  , selector
 
  this.activeTarget = target
 
  $(this.selector)
  .parent('.active')
  .removeClass('active')
 
  selector = this.selector
  + '[data-target="' + target + '"],'
  + this.selector + '[href="' + target + '"]'
 
  active = $(selector)
  .parent('li')
  .addClass('active')
 
  if (active.parent('.dropdown-menu').length) {
  active = active.closest('li.dropdown').addClass('active')
  }
 
  active.trigger('activate')
  }
 
  }
 
 
  /* SCROLLSPY PLUGIN DEFINITION
  * =========================== */
 
  $.fn.scrollspy = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('scrollspy')
  , options = typeof option == 'object' && option
  if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
  if (typeof option == 'string') data[option]()
  })
  }
 
  $.fn.scrollspy.Constructor = ScrollSpy
 
  $.fn.scrollspy.defaults = {
  offset: 10
  }
 
 
  /* SCROLLSPY DATA-API
  * ================== */
 
  $(window).on('load', function () {
  $('[data-spy="scroll"]').each(function () {
  var $spy = $(this)
  $spy.scrollspy($spy.data())
  })
  })
 
  }(window.jQuery);/* ========================================================
  * bootstrap-tab.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#tabs
  * ========================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ======================================================== */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* TAB CLASS DEFINITION
  * ==================== */
 
  var Tab = function (element) {
  this.element = $(element)
  }
 
  Tab.prototype = {
 
  constructor: Tab
 
  , show: function () {
  var $this = this.element
  , $ul = $this.closest('ul:not(.dropdown-menu)')
  , selector = $this.attr('data-target')
  , previous
  , $target
  , e
 
  if (!selector) {
  selector = $this.attr('href')
  selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
  }
 
  if ( $this.parent('li').hasClass('active') ) return
 
  previous = $ul.find('.active:last a')[0]
 
  e = $.Event('show', {
  relatedTarget: previous
  })
 
  $this.trigger(e)
 
  if (e.isDefaultPrevented()) return
 
  $target = $(selector)
 
  this.activate($this.parent('li'), $ul)
  this.activate($target, $target.parent(), function () {
  $this.trigger({
  type: 'shown'
  , relatedTarget: previous
  })
  })
  }
 
  , activate: function ( element, container, callback) {
  var $active = container.find('> .active')
  , transition = callback
  && $.support.transition
  && $active.hasClass('fade')
 
  function next() {
  $active
  .removeClass('active')
  .find('> .dropdown-menu > .active')
  .removeClass('active')
 
  element.addClass('active')
 
  if (transition) {
  element[0].offsetWidth // reflow for transition
  element.addClass('in')
  } else {
  element.removeClass('fade')
  }
 
  if ( element.parent('.dropdown-menu') ) {
  element.closest('li.dropdown').addClass('active')
  }
 
  callback && callback()
  }
 
  transition ?
  $active.one($.support.transition.end, next) :
  next()
 
  $active.removeClass('in')
  }
  }
 
 
  /* TAB PLUGIN DEFINITION
  * ===================== */
 
  $.fn.tab = function ( option ) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('tab')
  if (!data) $this.data('tab', (data = new Tab(this)))
  if (typeof option == 'string') data[option]()
  })
  }
 
  $.fn.tab.Constructor = Tab
 
 
  /* TAB DATA-API
  * ============ */
 
  $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
  e.preventDefault()
  $(this).tab('show')
  })
 
  }(window.jQuery);/* =============================================================
  * bootstrap-typeahead.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#typeahead
  * =============================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============================================================ */
 
 
  !function($){
 
  "use strict"; // jshint ;_;
 
 
  /* TYPEAHEAD PUBLIC CLASS DEFINITION
  * ================================= */
 
  var Typeahead = function (element, options) {
  this.$element = $(element)
  this.options = $.extend({}, $.fn.typeahead.defaults, options)
  this.matcher = this.options.matcher || this.matcher
  this.sorter = this.options.sorter || this.sorter
  this.highlighter = this.options.highlighter || this.highlighter
  this.updater = this.options.updater || this.updater
  this.$menu = $(this.options.menu).appendTo('body')
  this.source = this.options.source
  this.shown = false
  this.listen()
  }
 
  Typeahead.prototype = {
 
  constructor: Typeahead
 
  , select: function () {
  var val = this.$menu.find('.active').attr('data-value')
  this.$element
  .val(this.updater(val))
  .change()
  return this.hide()
  }
 
  , updater: function (item) {
  return item
  }
 
  , show: function () {
  var pos = $.extend({}, this.$element.offset(), {
  height: this.$element[0].offsetHeight
  })
 
  this.$menu.css({
  top: pos.top + pos.height
  , left: pos.left
  })
 
  this.$menu.show()
  this.shown = true
  return this
  }
 
  , hide: function () {
  this.$menu.hide()
  this.shown = false
  return this
  }
 
  , lookup: function (event) {
  var items
 
  this.query = this.$element.val()
 
  if (!this.query || this.query.length < this.options.minLength) {
  return this.shown ? this.hide() : this
  }
 
  items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
 
  return items ? this.process(items) : this
  }
 
  , process: function (items) {
  var that = this
 
  items = $.grep(items, function (item) {
  return that.matcher(item)
  })
 
  items = this.sorter(items)
 
  if (!items.length) {
  return this.shown ? this.hide() : this
  }
 
  return this.render(items.slice(0, this.options.items)).show()
  }
 
  , matcher: function (item) {
  return ~item.toLowerCase().indexOf(this.query.toLowerCase())
  }
 
  , sorter: function (items) {
  var beginswith = []
  , caseSensitive = []
  , caseInsensitive = []
  , item
 
  while (item = items.shift()) {
  if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item)
  else if (~item.indexOf(this.query)) caseSensitive.push(item)
  else caseInsensitive.push(item)
  }
 
  return beginswith.concat(caseSensitive, caseInsensitive)
  }
 
  , highlighter: function (item) {
  var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
  return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
  return '<strong>' + match + '</strong>'
  })
  }
 
  , render: function (items) {
  var that = this
 
  items = $(items).map(function (i, item) {
  i = $(that.options.item).attr('data-value', item)
  i.find('a').html(that.highlighter(item))
  return i[0]
  })
 
  items.first().addClass('active')
  this.$menu.html(items)
  return this
  }
 
  , next: function (event) {
  var active = this.$menu.find('.active').removeClass('active')
  , next = active.next()
 
  if (!next.length) {
  next = $(this.$menu.find('li')[0])
  }
 
  next.addClass('active')
  }
 
  , prev: function (event) {
  var active = this.$menu.find('.active').removeClass('active')
  , prev = active.prev()
 
  if (!prev.length) {
  prev = this.$menu.find('li').last()
  }
 
  prev.addClass('active')
  }
 
  , listen: function () {
  this.$element
  .on('blur', $.proxy(this.blur, this))
  .on('keypress', $.proxy(this.keypress, this))
  .on('keyup', $.proxy(this.keyup, this))
 
  if (this.eventSupported('keydown')) {
  this.$element.on('keydown', $.proxy(this.keydown, this))
  }
 
  this.$menu
  .on('click', $.proxy(this.click, this))
  .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
  }
 
  , eventSupported: function(eventName) {
  var isSupported = eventName in this.$element
  if (!isSupported) {
  this.$element.setAttribute(eventName, 'return;')
  isSupported = typeof this.$element[eventName] === 'function'
  }
  return isSupported
  }
 
  , move: function (e) {
  if (!this.shown) return
 
  switch(e.keyCode) {
  case 9: // tab
  case 13: // enter
  case 27: // escape
  e.preventDefault()
  break
 
  case 38: // up arrow
  e.preventDefault()
  this.prev()
  break
 
  case 40: // down arrow
  e.preventDefault()
  this.next()
  break
  }
 
  e.stopPropagation()
  }
 
  , keydown: function (e) {
  this.suppressKeyPressRepeat = !~$.inArray(e.keyCode, [40,38,9,13,27])
  this.move(e)
  }
 
  , keypress: function (e) {
  if (this.suppressKeyPressRepeat) return
  this.move(e)
  }
 
  , keyup: function (e) {
  switch(e.keyCode) {
  case 40: // down arrow
  case 38: // up arrow
  case 16: // shift
  case 17: // ctrl
  case 18: // alt
  break
 
  case 9: // tab
  case 13: // enter
  if (!this.shown) return
  this.select()
  break
 
  case 27: // escape
  if (!this.shown) return
  this.hide()
  break
 
  default:
  this.lookup()
  }
 
  e.stopPropagation()
  e.preventDefault()
  }
 
  , blur: function (e) {
  var that = this
  setTimeout(function () { that.hide() }, 150)
  }
 
  , click: function (e) {
  e.stopPropagation()
  e.preventDefault()
  this.select()
  }
 
  , mouseenter: function (e) {
  this.$menu.find('.active').removeClass('active')
  $(e.currentTarget).addClass('active')
  }
 
  }
 
 
  /* TYPEAHEAD PLUGIN DEFINITION
  * =========================== */
 
  $.fn.typeahead = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('typeahead')
  , options = typeof option == 'object' && option
  if (!data) $this.data('typeahead', (data = new Typeahead(this, options)))
  if (typeof option == 'string') data[option]()
  })
  }
 
  $.fn.typeahead.defaults = {
  source: []
  , items: 8
  , menu: '<ul class="typeahead dropdown-menu"></ul>'
  , item: '<li><a href="#"></a></li>'
  , minLength: 1
  }
 
  $.fn.typeahead.Constructor = Typeahead
 
 
  /* TYPEAHEAD DATA-API
  * ================== */
 
  $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
  var $this = $(this)
  if ($this.data('typeahead')) return
  e.preventDefault()
  $this.typeahead($this.data())
  })
 
  }(window.jQuery);
  /* ==========================================================
  * bootstrap-affix.js v2.2.1
  * http://twitter.github.com/bootstrap/javascript.html#affix
  * ==========================================================
  * Copyright 2012 Twitter, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ========================================================== */
 
 
  !function ($) {
 
  "use strict"; // jshint ;_;
 
 
  /* AFFIX CLASS DEFINITION
  * ====================== */
 
  var Affix = function (element, options) {
  this.options = $.extend({}, $.fn.affix.defaults, options)
  this.$window = $(window)
  .on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
  .on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
  this.$element = $(element)
  this.checkPosition()
  }
 
  Affix.prototype.checkPosition = function () {
  if (!this.$element.is(':visible')) return
 
  var scrollHeight = $(document).height()
  , scrollTop = this.$window.scrollTop()
  , position = this.$element.offset()
  , offset = this.options.offset
  , offsetBottom = offset.bottom
  , offsetTop = offset.top
  , reset = 'affix affix-top affix-bottom'
  , affix
 
  if (typeof offset != 'object') offsetBottom = offsetTop = offset
  if (typeof offsetTop == 'function') offsetTop = offset.top()
  if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
 
  affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
  false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
  'bottom' : offsetTop != null && scrollTop <= offsetTop ?
  'top' : false
 
  if (this.affixed === affix) return
 
  this.affixed = affix
  this.unpin = affix == 'bottom' ? position.top - scrollTop : null
 
  this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
  }
 
 
  /* AFFIX PLUGIN DEFINITION
  * ======================= */
 
  $.fn.affix = function (option) {
  return this.each(function () {
  var $this = $(this)
  , data = $this.data('affix')
  , options = typeof option == 'object' && option
  if (!data) $this.data('affix', (data = new Affix(this, options)))
  if (typeof option == 'string') data[option]()
  })
  }
 
  $.fn.affix.Constructor = Affix
 
  $.fn.affix.defaults = {
  offset: 0
  }
 
 
  /* AFFIX DATA-API
  * ============== */
 
  $(window).on('load', function () {
  $('[data-spy="affix"]').each(function () {
  var $spy = $(this)
  , data = $spy.data()
 
  data.offset = data.offset || {}
 
  data.offsetBottom && (data.offset.bottom = data.offsetBottom)
  data.offsetTop && (data.offset.top = data.offsetTop)
 
  $spy.affix(data)
  })
  })
 
 
  }(window.jQuery);
  /*!
  * Bootstrap.js by @fat & @mdo
  * Copyright 2012 Twitter, Inc.
  * http://www.apache.org/licenses/LICENSE-2.0.txt
  */
  !function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()},e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")},e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=n,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},to:function(t){var n=this.$element.find(".item.active"),r=n.parent().children(),i=r.index(n),s=this;if(t>r.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){s.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",e(r[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0]});if(i.hasClass("active"))return;if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}},e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e(document).on("click.carousel.data-api","[data-slide]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data());i.carousel(s),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning)return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning)return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=typeof n=="object"&&n;i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;return n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=e(n),r.length||(r=t.parent()),r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||(s.toggleClass("open"),n.focus()),!1},keydown:function(t){var n,r,s,o,u,a;if(!/(38|40|27)/.test(t.keyCode))return;n=e(this),t.preventDefault(),t.stopPropagation();if(n.is(".disabled, :disabled"))return;o=i(n),u=o.hasClass("open");if(!u||u&&t.keyCode==27)return n.click();r=e("[role=menu] li:not(.divider) a",o);if(!r.length)return;a=r.index(r.filter(":focus")),t.keyCode==38&&a>0&&a--,t.keyCode==40&&a<r.length-1&&a++,~a||(a=0),r.eq(a).focus()}},e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e(document).on("click.dropdown.data-api touchstart.dropdown.data-api",r).on("click.dropdown touchstart.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(e){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,e.proxy(this.removeBackdrop,this)):this.removeBackdrop()):t&&t()}},e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):this.options.trigger!="manual"&&(i=this.options.trigger=="hover"?"mouseenter":"focus",s=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this))),this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,t,this.$element.data()),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);if(!n.options.delay||!n.options.delay.show)return n.show();clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){n.hoverState=="in"&&n.show()},n.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var e,t,n,r,i,s,o;if(this.hasContent()&&this.enabled){e=this.tip(),this.setContent(),this.options.animation&&e.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,t=/in/.test(s),e.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),n=this.getPosition(t),r=e[0].offsetWidth,i=e[0].offsetHeight;switch(t?s.split(" ")[1]:s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}e.offset(o).addClass(s).addClass("in")}},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function r(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip();return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?r():n.detach(),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(t){return e.extend({},t?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);n[n.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover",title:"",delay:0,html:!1}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content > *")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-content")||(typeof n.content=="function"?n.content.call(t[0]):n.content),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var t=e(this),n=t.data("target")||t.attr("href"),r=/^#\w/.test(n)&&e(n);return r&&r.length&&[[r.position().top,n]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}},e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}},e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.$menu=e(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:t.top+t.height,left:t.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=!~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},blur:function(e){var t=this;setTimeout(function(){t.hide()},150)},click:function(e){e.stopPropagation(),e.preventDefault(),this.select()},mouseenter:function(t){this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")}},e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;t.preventDefault(),n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))},e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery);
 
  # [HTML5 Boilerplate](http://html5boilerplate.com)
 
  HTML5 Boilerplate is a professional front-end template that helps you build fast, robust, adaptable, and future-proof websites. Spend more time developing and less time reinventing the wheel.
 
  This project is the product of many years of iterative development and combined community knowledge. It does not impose a specific development philosophy or framework, so you're free to architect your code in the way that you want.
 
 
  ## Quick start
 
  Clone the git repo - `git clone git://github.com/h5bp/html5-boilerplate.git` - or [download it](https://github.com/h5bp/html5-boilerplate/zipball/master)
 
 
  ## Features
 
  * HTML5 ready. Use the new elements with confidence.
  * Cross-browser compatible (Chrome, Opera, Safari, Firefox 3.6+, IE6+).
  * Designed with progressive enhancement in mind.
  * CSS normalizations and common bug fixes.
  * IE-specific classes for easier cross-browser control.
  * A default print stylesheet, performance optimized.
  * Mobile browser optimizations.
  * Protection against any stray `console.log` causing JavaScript errors in IE6/7.
  * The latest jQuery via CDN, with a local fallback.
  * A custom Modernizr build for feature detection.
  * An optimized Google Analytics snippet.
  * Apache server caching, compression, and other configuration defaults for Grade-A performance.
  * Cross-domain Ajax and Flash.
  * "Delete-key friendly." Easy to strip out parts you don't need.
  * Extensive inline and accompanying documentation.
 
 
  ## Contributing
 
  Anyone and everyone is welcome to [contribute](https://github.com/h5bp/html5-boilerplate/wiki/contribute). Hundreds of developers have helped make the HTML5 Boilerplate what it is today.
 
 
  ## Project information
 
  * Source: http://github.com/h5bp/html5-boilerplate
  * Web: http://html5boilerplate.com
  * Docs: http://html5boilerplate.com/docs
  * Twitter: http://twitter.com/h5bp
 
 
  ## License
 
  ### Major components:
 
  * jQuery: MIT/GPL license
  * Modernizr: MIT/BSD license
  * Normalize.css: Public Domain
 
  ### Everything else:
 
  The Unlicense (aka: public domain)
 
  <?php
  $subdomain = str_replace('disclo.gs','',$_SERVER['SERVER_NAME']);
  $script = $_SERVER['REQUEST_URI'];
 
  if ($script == '/google676a414ad086cefb.html') {
  echo 'google-site-verification: google676a414ad086cefb.html';
  exit();
  }
  if ($script == '/googlebcce906c6b666bb8.html') {
  echo 'google-site-verification: googlebcce906c6b666bb8.html';
  exit();
  }
 
  header('HTTP/1.1 301 Moved Permanently');
  header('Location: http://'.$subdomain.'disclosurelo.gs'.$script);
  exit();
  ?>
 
 
  # www.robotstxt.org/
  # http://code.google.com/web/controlcrawlindex/
 
  User-agent: *
 
  <?php
 
  // Agency X updated Y, new files, diff of plain text/link text,
  // feed for just one agency or all
  // This is a minimum example of using the Universal Feed Generator Class
  include("lib/FeedWriter.php");
  //Creating an instance of FeedWriter class.
  $TestFeed = new FeedWriter(RSS2);
  //Setting the channel elements
  //Use wrapper functions for common channelelements
  $TestFeed->setTitle('Last Modified - All');
  $TestFeed->setLink('http://disclosr.lambdacomplex.org/rss.xml.php');
  $TestFeed->setDescription('This is test of creating a RSS 2.0 feed Universal Feed Writer');
  //Retriving informations from database
  $rows = $db->get_view("app", "byLastModified")->rows;
  //print_r($rows);
  foreach ($rows as $row) {
  //Create an empty FeedItem
  $newItem = $TestFeed->createNewItem();
  //Add elements to the feed item
  $newItem->setTitle($row['name']);
  $newItem->setLink($row['id']);
  $newItem->setDate(date("c", $row['metadata']['lastModified']));
  $newItem->setDescription($row['name']);
  //Now add the feed item
  $TestFeed->addItem($newItem);
  }
  //OK. Everything is done. Now genarate the feed.
  $TestFeed->genarateFeed();
  ?>
file:b/documents/run.bat (new)
  python scrape.py
  pause
  #http://packages.python.org/CouchDB/client.html
  import couchdb
  import urllib2
  from BeautifulSoup import BeautifulSoup
  import re
  import hashlib
  from urlparse import urljoin
  import time
  import os
  import mimetypes
  import re
  import urllib
  import urlparse
 
  def mkhash(input):
  return hashlib.md5(input).hexdigest().encode("utf-8")
 
  def canonurl(url):
  r"""Return the canonical, ASCII-encoded form of a UTF-8 encoded URL, or ''
  if the URL looks invalid.
  >>> canonurl('\xe2\x9e\xa1.ws') # tinyarro.ws
  'http://xn--hgi.ws/'
  """
  # strip spaces at the ends and ensure it's prefixed with 'scheme://'
  url = url.strip()
  if not url:
  return ''
  if not urlparse.urlsplit(url).scheme:
  url = 'http://' + url
 
  # turn it into Unicode
  #try:
  # url = unicode(url, 'utf-8')
  #except UnicodeDecodeError:
  # return '' # bad UTF-8 chars in URL
 
  # parse the URL into its components
  parsed = urlparse.urlsplit(url)
  scheme, netloc, path, query, fragment = parsed
 
  # ensure scheme is a letter followed by letters, digits, and '+-.' chars
  if not re.match(r'[a-z][-+.a-z0-9]*$', scheme, flags=re.I):
  return ''
  scheme = str(scheme)
 
  # ensure domain and port are valid, eg: sub.domain.<1-to-6-TLD-chars>[:port]
  match = re.match(r'(.+\.[a-z0-9]{1,6})(:\d{1,5})?$', netloc, flags=re.I)
  if not match:
  return ''
  domain, port = match.groups()
  netloc = domain + (port if port else '')
  netloc = netloc.encode('idna')
 
  # ensure path is valid and convert Unicode chars to %-encoded
  if not path:
  path = '/' # eg: 'http://google.com' -> 'http://google.com/'
  path = urllib.quote(urllib.unquote(path.encode('utf-8')), safe='/;')
 
  # ensure query is valid
  query = urllib.quote(urllib.unquote(query.encode('utf-8')), safe='=&?/')
 
  # ensure fragment is valid
  fragment = urllib.quote(urllib.unquote(fragment.encode('utf-8')))
 
  # piece it all back together, truncating it to a maximum of 4KB
  url = urlparse.urlunsplit((scheme, netloc, path, query, fragment))
  return url[:4096]
 
  def fullurl(url,href):
  href = href.replace(" ","%20")
  href = re.sub('#.*$','',href)
  return urljoin(url,href)
 
  #http://diveintopython.org/http_web_services/etags.html
  class NotModifiedHandler(urllib2.BaseHandler):
  def http_error_304(self, req, fp, code, message, headers):
  addinfourl = urllib2.addinfourl(fp, headers, req.get_full_url())
  addinfourl.code = code
  return addinfourl
 
  def fetchURL(docsdb, url, fieldName, agencyID, scrape_again=True):
  url = canonurl(url)
  hash = mkhash(url)
  req = urllib2.Request(url)
  print "Fetching %s" % url
  if url.startswith("mailto") or url.startswith("javascript") or url.startswith("#") or url == None or url == "":
  print "Not a valid HTTP url"
  return (None,None,None)
  doc = docsdb.get(hash)
  if doc == None:
  doc = {'_id': hash, 'agencyID': agencyID, 'url': url, 'fieldName':fieldName}
  else:
  if (('page_scraped' in doc) and (time.time() - doc['page_scraped']) < 60*24*14*1000):
  print "Uh oh, trying to scrape URL again too soon!"
  last_attachment_fname = doc["_attachments"].keys()[-1]
  last_attachment = docsdb.get_attachment(doc,last_attachment_fname)
  return (doc['url'],doc['mime_type'],last_attachment.read())
  if scrape_again == False:
  print "Not scraping this URL again as requested"
  return (None,None,None)
 
  time.sleep(3) # wait 3 seconds to give webserver time to recover
 
  req.add_header("User-Agent", "Mozilla/4.0 (compatible; Prometheus webspider; owner maxious@lambdacomplex.org)")
  #if there is a previous version stored in couchdb, load caching helper tags
  if doc.has_key('etag'):
  req.add_header("If-None-Match", doc['etag'])
  if doc.has_key('last_modified'):
  req.add_header("If-Modified-Since", doc['last_modified'])
 
  opener = urllib2.build_opener(NotModifiedHandler())
  try:
  url_handle = opener.open(req)
  doc['url'] = url_handle.geturl() # may have followed a redirect to a new url
  headers = url_handle.info() # the addinfourls have the .info() too
  doc['etag'] = headers.getheader("ETag")
  doc['last_modified'] = headers.getheader("Last-Modified")
  doc['date'] = headers.getheader("Date")
  doc['page_scraped'] = time.time()
  doc['web_server'] = headers.getheader("Server")
  doc['via'] = headers.getheader("Via")
  doc['powered_by'] = headers.getheader("X-Powered-By")
  doc['file_size'] = headers.getheader("Content-Length")
  content_type = headers.getheader("Content-Type")
  if content_type != None:
  doc['mime_type'] = content_type.split(";")[0]
  else:
  (type,encoding) = mimetypes.guess_type(url)
  doc['mime_type'] = type
  if hasattr(url_handle, 'code'):
  if url_handle.code == 304:
  print "the web page has not been modified"
  return (None,None,None)
  else:
  content = url_handle.read()
  docsdb.save(doc)
  doc = docsdb.get(hash) # need to get a _rev
  docsdb.put_attachment(doc, content, str(time.time())+"-"+os.path.basename(url), doc['mime_type'])
  return (doc['url'], doc['mime_type'], content)
  #store as attachment epoch-filename
 
  except urllib2.URLError as e:
  error = ""
  if hasattr(e, 'reason'):
  error = "error %s in downloading %s" % (str(e.reason), url)
  elif hasattr(e, 'code'):
  error = "error %s in downloading %s" % (e.code, url)
  print error
  doc['error'] = error
  docsdb.save(doc)
  return (None,None,None)
 
 
 
  def scrapeAndStore(docsdb, url, depth, fieldName, agencyID):
  (url,mime_type,content) = fetchURL(docsdb, url, fieldName, agencyID)
  badURLs = ["http://www.ausport.gov.au/supporting/funding/grants_and_scholarships/grant_funding_report"]
  if content != None and depth > 0 and url != "http://www.ausport.gov.au/supporting/funding/grants_and_scholarships/grant_funding_report":
  if mime_type == "text/html" or mime_type == "application/xhtml+xml" or mime_type =="application/xml":
  # http://www.crummy.com/software/BeautifulSoup/documentation.html
  soup = BeautifulSoup(content)
  navIDs = soup.findAll(id=re.compile('nav|Nav|menu|bar|left|right|sidebar|more-links|breadcrumb|footer|header'))
  for nav in navIDs:
  print "Removing element", nav['id']
  nav.extract()
  navClasses = soup.findAll(attrs={'class' : re.compile('nav|menu|bar|left|right|sidebar|more-links|breadcrumb|footer|header')})
  for nav in navClasses:
  print "Removing element", nav['class']
  nav.extract()
  links = soup.findAll('a') # soup.findAll('a', id=re.compile("^p-"))
  linkurls = set([])
  for link in links:
  if link.has_key("href"):
  if link['href'].startswith("http"):
  # lets not do external links for now
  # linkurls.add(link['href'])
  None
  if link['href'].startswith("mailto"):
  # not http
  None
  if link['href'].startswith("javascript"):
  # not http
  None
  else:
  # remove anchors and spaces in urls
  linkurls.add(fullurl(url,link['href']))
  for linkurl in linkurls:
  #print linkurl
  scrapeAndStore(docsdb, linkurl, depth-1, fieldName, agencyID)
 
  #couch = couchdb.Server('http://192.168.1.148:5984/')
  couch = couchdb.Server('http://127.0.0.1:5984/')
  # select database
  agencydb = couch['disclosr-agencies']
  docsdb = couch['disclosr-documents']
 
  if __name__ == "__main__":
  for row in agencydb.view('app/getScrapeRequired'): #not recently scraped agencies view?
  agency = agencydb.get(row.id)
  print agency['name']
  for key in agency.keys():
  if key == "FOIDocumentsURL" and "status" not in agency.keys:
  scrapeAndStore(docsdb, agency[key],0,key,agency['_id'])
  if key == 'website' and False:
  scrapeAndStore(docsdb, agency[key],0,key,agency['_id'])
  if key.endswith('URL') and False:
  print key
  depth = 1
  if 'scrapeDepth' in agency.keys():
  depth = agency['scrapeDepth']
  scrapeAndStore(docsdb, agency[key],depth,key,agency['_id'])
  agency['metadata']['lastScraped'] = time.time()
  agencydb.save(agency)
 
  import sys,os
  sys.path.insert(0, os.path.join(os.path.dirname(__file__) or '.', '../'))
  import genericScrapers
  #RSS feed not detailed
 
  #http://www.doughellmann.com/PyMOTW/abc/
  class ScraperImplementation(genericScrapers.GenericOAICDisclogScraper):
  def getColumns(self,columns):
  (id, date, description, title, notes) = columns
  return (id, date, description, title, notes)
 
  if __name__ == '__main__':
  print 'Subclass:', issubclass(ScraperImplementation, genericScrapers.GenericOAICDisclogScraper)
  print 'Instance:', isinstance(ScraperImplementation(), genericScrapers.GenericOAICDisclogScraper)
  ScraperImplementation().doScrape()
 
  # multiple pages need to be scraped initially, each entry has a subpage
  http://www.ipaustralia.gov.au/about-us/freedom-of-information/foi-disclosure-log/?page=35&sessionId=3644188
 
  import sys,os
  sys.path.insert(0, os.path.join(os.path.dirname(__file__) or '.', '../'))
  import genericScrapers
  #RSS feed not detailed
 
  #http://www.doughellmann.com/PyMOTW/abc/
  class ScraperImplementation(genericScrapers.GenericOAICDisclogScraper):
  def getColumns(self,columns):
  (id, date, title, description, notes) = columns
  return (id, date, description, title, notes)
 
  if __name__ == '__main__':
  print 'Subclass:', issubclass(ScraperImplementation, genericScrapers.GenericOAICDisclogScraper)
  print 'Instance:', isinstance(ScraperImplementation(), genericScrapers.GenericOAICDisclogScraper)
  ScraperImplementation().doScrape()
 
 
  import sys,os
  sys.path.insert(0, os.path.join(os.path.dirname(__file__) or '.', '../'))
  import genericScrapers
  #RSS feed not detailed
  import scrape
  from bs4 import BeautifulSoup
  #http://www.doughellmann.com/PyMOTW/abc/
  class ScraperImplementation(genericScrapers.GenericRSSDisclogScraper):
  def getDescription(self,entry,doc):
  (url,mime_type,content) = scrape.fetchURL(scrape.docsdb, entry.link, "foidocuments", self.getAgencyID(), False)
  if content != None:
  if mime_type == "text/html" or mime_type == "application/xhtml+xml" or mime_type =="application/xml":
  # http://www.crummy.com/software/BeautifulSoup/documentation.html
  soup = BeautifulSoup(content)
  links = []
  description = ""
  dldivs = soup.find('div',class_="download")
  if dldivs != None:
  for atag in dldivs.find_all("a"):
  if atag.has_key('href'):
  links.append(scrape.fullurl(url,atag['href']))
  nodldivs = soup.find('div',class_="incompleteNotification")
  if nodldivs != None and nodldivs.stripped_strings != None:
  for text in nodldivs.stripped_strings:
  description = description + text
  for row in soup.table.find_all('tr'):
  if row != None:
  description = description + "\n" + row.find('th').string + ": "
  for text in row.find('div').stripped_strings:
  description = description + text
  if links != []:
  doc.update({'links': links})
  if description != "":
  doc.update({ 'description': description})
 
 
  if __name__ == '__main__':
  print 'Subclass:', issubclass(ScraperImplementation, genericScrapers.GenericRSSDisclogScraper)
  print 'Instance:', isinstance(ScraperImplementation(), genericScrapers.GenericRSSDisclogScraper)
  ScraperImplementation().doScrape()
 
 
  # pdf
  http://www.awm.gov.au/about/AWM_Disclosure_Log.pdf
 
  import sys,os
  sys.path.insert(0, os.path.join(os.path.dirname(__file__) or '.', '../'))
  import genericScrapers
  #RSS feed not detailed
 
  #http://www.doughellmann.com/PyMOTW/abc/
  class ScraperImplementation(genericScrapers.GenericRSSDisclogScraper):
  def getColumns(self,columns):
  (id, date, title, description, notes) = columns
  return (id, date, description, title, notes)
 
  if __name__ == '__main__':
  print 'Subclass:', issubclass(ScraperImplementation, genericScrapers.GenericRSSDisclogScraper)
  print 'Instance:', isinstance(ScraperImplementation(), genericScrapers.GenericRSSDisclogScraper)
  ScraperImplementation().doScrape()
 
  www.finance.gov.au/foi/disclosure-log/foi-rss.xml
 
  import sys,os
  sys.path.insert(0, os.path.join(os.path.dirname(__file__) or '.', '../'))
  import genericScrapers
  #RSS feed not detailed
 
  #http://www.doughellmann.com/PyMOTW/abc/
  class ScraperImplementation(genericScrapers.GenericRSSDisclogScraper):
  def getColumns(self,columns):
  (id, date, title, description, notes) = columns
  return (id, date, description, title, notes)
 
  if __name__ == '__main__':
  print 'Subclass:', issubclass(ScraperImplementation, genericScrapers.GenericRSSDisclogScraper)
  print 'Instance:', isinstance(ScraperImplementation(), genericScrapers.GenericRSSDisclogScraper)
  ScraperImplementation().doScrape()
 
  http://www.righttoknow.org.au/feed/search/%20(latest_status:successful%20OR%20latest_status:partially_successful)
 
  python 3cd40b1240e987cbcd3f0e67054ce259.py
  pause
  <?php
  include_once('include/common.inc.php');
  include_header('Search');
  ?>
  <div class="foundation-header">
  <h1><a href="search.php">Search</a></h1>
  </div>
  <form>
  <input type="text" name="q" value="<?php if (isset($_REQUEST['q']))echo $_REQUEST['q'];?>"/>
  <input type="submit"/>
  </form>
 
  <?php
  if (isset($_REQUEST['q'])) {
  $request = Requests::get($serverAddr."disclosr-documents/_fti/_design/lucene/by_all?include_docs=true&q=".$_REQUEST['q']);
  $results = json_decode($request->body);
  $db = $server->get_db('disclosr-documents');
  foreach ($results->rows as $result) {
  //print_r($result);
  //$row = $db->get($result->id);
  echo $result->doc->_id." ".$result->doc->url."<br>".PHP_EOL;
  }
  }
  include_footer();
  ?>
  <?php
 
  function include_header_documents($title) {
  ?>
  <!doctype html>
  <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
  <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
  <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
  <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
  <!-- Consider adding a manifest.appcache: h5bp.com/d/Offline -->
  <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
  <head>
  <meta charset="utf-8">
 
  <!-- Use the .htaccess and remove these lines to avoid edge case issues.
  More info: h5bp.com/i/378 -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
  <title>Australian Disclosure Logs<?php if ($title != "") echo " - $title";?></title>
  <meta name="description" content="">
 
  <!-- Mobile viewport optimized: h5bp.com/viewport -->
  <meta name="viewport" content="width=device-width">
 
  <!-- Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons -->
  <meta name="google-site-verification" content="jkknX5g2FCpQvrW030b1Nq2hyoa6mb3EDiA7kCoHNj8" />
 
  <!-- Le styles -->
  <link href="css/bootstrap.min.css" rel="stylesheet">
  <style type="text/css">
  body {
  padding-top: 60px;
  padding-bottom: 40px;
  }
  .sidebar-nav {
  padding: 9px 0;
  }
  </style>
  <link href="css/bootstrap-responsive.min.css" rel="stylesheet">
 
  <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
  <!--[if lt IE 9]>
  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
  <!-- More ideas for your <head> here: h5bp.com/d/head-Tips -->
 
  <!-- All JavaScript at the bottom, except this Modernizr build.
  Modernizr enables HTML5 elements & feature detects for optimal performance.
  Create your own custom Modernizr build: www.modernizr.com/download/ -->
  <script src="js/libs/modernizr-2.5.3.min.js"></script>
 
  </head>
  <body>
  <div class="navbar navbar-inverse navbar-fixed-top">
  <div class="navbar-inner">
  <div class="container-fluid">
  <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
  <span class="icon-bar"></span>
  <span class="icon-bar"></span>
  <span class="icon-bar"></span>
  </a>
  <a class="brand" href="#">Australian Disclosure Logs</a>
  <div class="nav-collapse collapse">
  <p class="navbar-text pull-right">
  Check out our subsites on:
  <a href="http://orgs.disclosurelo.gs">Government Agencies</a>
  • <a href="http://lobbyists.disclosurelo.gs">Political Lobbyists</a>
  • <a href="http://contracts.disclosurelo.gs">Government Contracts and Spending</a>
 
  </p>
  <ul class="nav">
  <li><a href="index.php">Home</a></li>
  <li><a href="disclogsList.php">List of Disclosure Logs</a></li>
  <li><a href="about.php">About</a></li>
 
  </ul>
  </div><!--/.nav-collapse -->
  </div>
  </div>
  </div>
  <div class="container">
  <?php
  }
  function include_footer_documents() {
  ?>
  </div> <!-- /container -->
  <hr>
 
  <footer>
  <p>&copy; Company 2012</p>
  </footer>
  <script type="text/javascript">
 
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-12341040-4']);
  _gaq.push(['_setDomainName', 'disclosurelo.gs']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_trackPageview']);
 
  (function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
 
  </script>
  <!-- Le javascript
  ================================================== -->
  <!-- Placed at the end of the document so the pages load faster
  <script src="js/jquery.js"></script>
  <script src="js/bootstrap-transition.js"></script>
  <script src="js/bootstrap-alert.js"></script>
  <script src="js/bootstrap-modal.js"></script>
  <script src="js/bootstrap-dropdown.js"></script>
  <script src="js/bootstrap-scrollspy.js"></script>
  <script src="js/bootstrap-tab.js"></script>
  <script src="js/bootstrap-tooltip.js"></script>
  <script src="js/bootstrap-popover.js"></script>
  <script src="js/bootstrap-button.js"></script>
  <script src="js/bootstrap-collapse.js"></script>
  <script src="js/bootstrap-carousel.js"></script>
  <script src="js/bootstrap-typeahead.js"></script>-->
 
  </body>
  </html>
  <?php
  }
 
  function displayLogEntry($row, $idtoname) {
  echo "<div><h2>".$row->value->date.": ".$row->value->title." (".$idtoname[$row->value->agencyID].")</h2> <p>".str_replace("\n","<br>",$row->value->description);
  if (isset($row->value->notes)) {
  echo " <br>Note: ".$row->value->notes;
  }
  echo "</p>";
 
  if (isset($row->value->links)){
  echo "<h3>Links/Documents</h3><ul>";
  foreach ($row->value->links as $link) {
  echo "<li><a href='$link'>".$link."</a></li>";
  }
 
  echo "</ul>";
  }
  echo "<small><A href='".$row->value->url."'>View original source...</a> ID: ".$row->value->docID."</small>";
  echo"</div>";
  }
 
  <?php
 
  include_once('../include/common.inc.php');
  $hash = $_REQUEST['hash'];
  $docsdb = $server->get_db('disclosr-documents');
  $doc = object_to_array($docsdb->get($hash));
 
  if (!isset($doc['_attachments']) || count($doc['_attachments']) == 0) die ("no attachments");
  $attachments = $doc['_attachments'];
  $attachment_filenames = array_keys($attachments);
  //print_r($attachments);
  $url = $serverAddr.'disclosr-documents/'.$hash.'/'.urlencode($attachment_filenames[0]);
  //echo $url;
  $request = Requests::get($url);
  echo ($request->body);
<?php <?php
   
include_once('include/common.inc.php'); include_once('include/common.inc.php');
include_header();  
   
function displayValue($key, $value, $mode) { function displayValue($key, $value, $mode) {
global $db, $schemas; global $db, $schemas;
if ($mode == "view") { if ($mode == "view") {
  if (strpos($key, "_") === 0 || $key== "metadata") return;
echo "<tr>"; echo "<tr>";
   
echo "<td>" . $schemas['agency']["properties"][$key]['x-title'] . "<br><small>" . $schemas['agency']["properties"][$key]['description'] . "</small></td><td>"; echo "<td>";
  if (isset($schemas['agency']["properties"][$key])) {
  echo $schemas['agency']["properties"][$key]['x-title'] . "<br><small>" . $schemas['agency']["properties"][$key]['description']."</small>";
  }
  echo "</td><td>";
if (is_array($value)) { if (is_array($value)) {
echo "<ol>"; echo "<ol>";
foreach ($value as $subkey => $subvalue) { foreach ($value as $subkey => $subvalue) {
if (isset($schemas['agency']["properties"][$key]['x-property'])) {  
echo '<li property="' . $schemas['agency']["properties"][$key]['x-property'] . '">'; echo "<li ";
} else { if (isset($schemas['agency']["properties"][$key]['x-property'])) {
echo "<li>"; echo ' property="' . $schemas['agency']["properties"][$key]['x-property'] . '" ';
} } if (isset($schemas['agency']["properties"][$key]['x-itemprop'])) {
  echo ' itemprop="' . $schemas['agency']["properties"][$key]['x-itemprop'] . '" ';
  }
  echo " >";
   
echo "$subvalue</li>"; echo "$subvalue</li>";
} }
echo "</ol></td></tr>"; echo "</ol></td></tr>";
} else { } else {
if (isset($schemas['agency']["properties"][$key]['x-property'])) { if (isset($schemas['agency']["properties"][$key]['x-property'])) {
echo '<span property="' . $schemas['agency']["properties"][$key]['x-property'] . '">'; echo '<span property="' . $schemas['agency']["properties"][$key]['x-property'] . '">';
} else { } else {
echo "<span>"; echo "<span>";
} }
if ((strpos($key, "URL") > 0 || $key == 'website') && $value != "") { if ((strpos($key, "URL") > 0 || $key == 'website') && $value != "") {
echo "<a href='$value'>view</a></span>"; echo "<a ".($key == 'website' ? 'itemprop="url"':'')." href='$value'>$value</a>";
} else { } else {
echo "$value</span>"; echo "$value</span>";
} }
} }
echo "</td></tr>"; echo "</td></tr>";
} }
if ($mode == "edit") { if ($mode == "edit") {
if (is_array($value)) { if (is_array($value)) {
echo '<div class="row"> echo '<div class="row">
<div class="seven columns"> <div class="seven columns">
<fieldset> <fieldset>
<h5>' . $key . '</h5>'; <h5>' . $key . '</h5>';
foreach ($value as $subkey => $subvalue) { foreach ($value as $subkey => $subvalue) {
echo "<label>$subkey</label><input class='input-text' type='text' id='$key$subkey' name='$key" . '[' . $subkey . "]' value='$subvalue'/></tr>"; echo "<label>$subkey</label><input class='input-text' type='text' id='$key$subkey' name='$key" . '[' . $subkey . "]' value='$subvalue'/></tr>";
} }
echo "</fieldset> echo "</fieldset>
</div> </div>
</div>"; </div>";
} else { } else {
if (strpos($key, "_") === 0) { if (strpos($key, "_") === 0) {
echo"<input type='hidden' id='$key' name='$key' value='$value'/>"; echo"<input type='hidden' id='$key' name='$key' value='$value'/>";
} else if ($key == "parentOrg") { } else if ($key == "parentOrg") {
echo "<label for='$key'>$key</label><select id='$key' name='$key'><option value=''> Select... </option>"; echo "<label for='$key'>$key</label><select id='$key' name='$key'><option value=''> Select... </option>";
$rows = $db->get_view("app", "byDeptStateName")->rows; $rows = $db->get_view("app", "byDeptStateName")->rows;
//print_r($rows); //print_r($rows);
foreach ($rows as $row) { foreach ($rows as $row) {
echo "<option value='{$row->value}'" . (($row->value == $value) ? "SELECTED" : "") . " >" . str_replace("Department of ", "", $row->key) . "</option>"; echo "<option value='{$row->value}'" . (($row->value == $value) ? "SELECTED" : "") . " >" . str_replace("Department of ", "", $row->key) . "</option>";
} }
echo" </select>"; echo" </select>";
} else { } else {
echo "<label>$key</label><input class='input-text' type='text' id='$key' name='$key' value='$value'/>"; echo "<label>$key</label><input class='input-text' type='text' id='$key' name='$key' value='$value'/>";
if ((strpos($key, "URL") > 0 || $key == 'website') && $value != "") { if ((strpos($key, "URL") > 0 || $key == 'website') && $value != "") {
echo "<a href='$value'>view</a>"; echo "<a ".($key == 'website' ? 'itemprop="url"':'')." href='$value'>view</a>";
   
} }
if ($key == 'abn') { if ($key == 'abn') {
echo "<a href='http://www.abr.business.gov.au/SearchByAbn.aspx?SearchText=$value'>view abn</a>"; echo "<a href='http://www.abr.business.gov.au/SearchByAbn.aspx?SearchText=$value'>view abn</a>";
} }
} }
} }
} }
// //
} }
   
function addDefaultFields($row) { function addDefaultFields($row) {
global $schemas; global $schemas;
$defaultFields = array_keys($schemas['agency']['properties']); $defaultFields = array_keys($schemas['agency']['properties']);
foreach ($defaultFields as $defaultField) { foreach ($defaultFields as $defaultField) {
if (!isset($row[$defaultField])) { if (!isset($row[$defaultField])) {
if ($schemas['agency']['properties'][$defaultField]['type'] == "string") { if ($schemas['agency']['properties'][$defaultField]['type'] == "string") {
$row[$defaultField] = ""; $row[$defaultField] = "";
} }
if ($schemas['agency']['properties'][$defaultField]['type'] == "array") { if ($schemas['agency']['properties'][$defaultField]['type'] == "array") {
$row[$defaultField] = Array(""); $row[$defaultField] = Array("");
} }
} else if ($schemas['agency']['properties'][$defaultField]['type'] == "array") { } else if ($schemas['agency']['properties'][$defaultField]['type'] == "array") {
if (is_array($row[$defaultField])) { if (is_array($row[$defaultField])) {
$row[$defaultField][] = ""; $row[$defaultField][] = "";
$row[$defaultField][] = ""; $row[$defaultField][] = "";
$row[$defaultField][] = ""; $row[$defaultField][] = "";
} else { } else {
$value = $row[$defaultField]; $value = $row[$defaultField];
$row[$defaultField] = Array($value); $row[$defaultField] = Array($value);
$row[$defaultField][] = ""; $row[$defaultField][] = "";
$row[$defaultField][] = ""; $row[$defaultField][] = "";
} }
} }
} }
return $row; return $row;
} }
   
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
   
if (isset($_REQUEST['id'])) { if (isset($_REQUEST['id'])) {
//get an agency record as json/html, search by name/abn/id //get an agency record as json/html, search by name/abn/id
// by name = startkey="Ham"&endkey="Ham\ufff0" // by name = startkey="Ham"&endkey="Ham\ufff0"
// edit? // edit?
   
$obj = $db->get($_REQUEST['id']); $obj = $db->get($_REQUEST['id']);
  include_header($obj->name);
//print_r($row); //print_r($row);
if (sizeof($_POST) > 0) { if (sizeof($_POST) > 0) {
//print_r($_POST); //print_r($_POST);
foreach ($_POST as $postkey => $postvalue) { foreach ($_POST as $postkey => $postvalue) {
if ($postvalue == "") { if ($postvalue == "") {
unset($_POST[$postkey]); unset($_POST[$postkey]);
} }
if (is_array($postvalue)) { if (is_array($postvalue)) {
if (count($postvalue) == 1 && $postvalue[0] == "") { if (count($postvalue) == 1 && $postvalue[0] == "") {
unset($_POST[$postkey]); unset($_POST[$postkey]);
} else { } else {
foreach ($_POST[$postkey] as $key => &$value) { foreach ($_POST[$postkey] as $key => &$value) {
if ($value == "") { if ($value == "") {
unset($_POST[$postkey][$key]); unset($_POST[$postkey][$key]);
} }
} }
} }
} }
} }
if (isset($_POST['_id']) && $db->get_rev($_POST['_id']) == $_POST['_rev']) { if (isset($_POST['_id']) && $db->get_rev($_POST['_id']) == $_POST['_rev']) {
echo "Edited version was latest version, continue saving"; echo "Edited version was latest version, continue saving";
$newdoc = $_POST; $newdoc = $_POST;
$newdoc['metadata']['lastModified'] = time(); $newdoc['metadata']['lastModified'] = time();
$obj = $db->save($newdoc); $obj = $db->save($newdoc);
} else { } else {
echo "ALERT doc revised by someone else while editing. Document not saved."; echo "ALERT doc revised by someone else while editing. Document not saved.";
} }
} }
   
$mode = "edit"; $mode = "view";
$rowArray = object_to_array($obj); $rowArray = object_to_array($obj);
ksort($rowArray); ksort($rowArray);
if ($mode == "edit") { if ($mode == "edit") {
$row = addDefaultFields($rowArray); $row = addDefaultFields($rowArray);
} else { } else {
$row = $rowArray; $row = $rowArray;
} }
   
if ($mode == "view") { if ($mode == "view") {
echo '<div typeof="schema:GovernmentOrganisation" about="#' . $row['_id'] . '"><table width="100%">'; echo '<div itemscope itemtype="http://schema.org/GovernmentOrganization" typeof="schema:GovernmentOrganization" about="#' . $row['_id'] . '"><table width="100%">';
echo '<tr> <td colspan="2"><h3>' . $row['name'] . "</h3></td></tr>"; echo '<tr> <td colspan="2"><h3 itemprop="name">' . $row['name'] . "</h3></td></tr>";
echo "<tr><th>Field Name</th><th>Field Value</th></tr>"; echo "<tr><th>Field Name</th><th>Field Value</th></tr>";
} }
if ($mode == "edit") { if ($mode == "edit") {
?> ?>
<input id="addfield" type="button" value="Add Field"/> <input id="addfield" type="button" value="Add Field"/>
<script> <script>
window.onload = function() { window.onload = function() {
$(document).ready(function() { $(document).ready(function() {
// put all your jQuery goodness in here. // put all your jQuery goodness in here.
// http://charlie.griefer.com/blog/2009/09/17/jquery-dynamically-adding-form-elements/ // http://charlie.griefer.com/blog/2009/09/17/jquery-dynamically-adding-form-elements/
$('#addfield').click(function() { $('#addfield').click(function() {
var field_name=window.prompt("fieldname?",""); var field_name=window.prompt("fieldname?","");
if (field_name !="") { if (field_name !="") {
$('#submitbutton').before($('<span></span>') $('#submitbutton').before($('<span></span>')
.append("<label>"+field_name+"</label>") .append("<label>"+field_name+"</label>")
.append("<input class='input-text' type='text' id='"+field_name+"' name='"+field_name+"'/>") .append("<input class='input-text' type='text' id='"+field_name+"' name='"+field_name+"'/>")
); );
} }
}); });
}); });
}; };
</script> </script>
<form id="editform" class="nice" method="post"> <form id="editform" class="nice" method="post">
<?php <?php
   
} }
foreach ($row as $key => $value) { foreach ($row as $key => $value) {
echo displayValue($key, $value, $mode); echo displayValue($key, $value, $mode);
} }
if ($mode == "view") { if ($mode == "view") {
echo "</table></div>"; echo "</table></div>";
} }
if ($mode == "edit") { if ($mode == "edit") {
echo '<input id="submitbutton" type="submit"/></form>'; echo '<input id="submitbutton" type="submit"/></form>';
} }
} else { } else {
  // show all list
  include_header('Agencies');
try { try {
/* $rows = $db->get_view("app", "showNamesABNs")->rows; /* $rows = $db->get_view("app", "showNamesABNs")->rows;
//print_r($rows); //print_r($rows);
foreach ($rows as $row) { foreach ($rows as $row) {
// print_r($row); // print_r($row);
echo '<li><a href="getAgency.php?id=' . $row->key . '">' . echo '<li><a href="getAgency.php?id=' . $row->key . '">' .
(isset($row->value->name) && $row->value->name != "" ? $row->value->name : "NO NAME " . $row->value->abn) (isset($row->value->name) && $row->value->name != "" ? $row->value->name : "NO NAME " . $row->value->abn)
. '</a></li>'; . '</a></li>';
} */ } */
$rows = $db->get_view("app", "byCanonicalName")->rows; $rows = $db->get_view("app", "byCanonicalName")->rows;
//print_r($rows); //print_r($rows);
echo '<ul>'; echo '<ul>';
foreach ($rows as $row) { foreach ($rows as $row) {
// print_r($row); // print_r($row);
echo '<li typeof="schema:GovernmentOrganisation foaf:Organization" about="getAgency.php?id=' . $row->value->_id . '"> echo '<li itemscope itemtype="http://schema.org/GovernmentOrganization" typeof="schema:GovernmentOrganization foaf:Organization" about="getAgency.php?id=' . $row->value->_id . '">
<a href="getAgency.php?id=' . $row->value->_id . '" rel="schema:url foaf:page" property="schema:name foaf:name">' . <a href="getAgency.php?id=' . $row->value->_id . '" rel="schema:url foaf:page" property="schema:name foaf:name" itemprop="url"><span itemprop="name">' .
$row->value->name $row->value->name
. '</a></li>'; . '</span></a></li>';
} }
echo "</ul>"; echo "</ul>";
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
} }
include_footer(); include_footer();
?> ?>
   
  google-site-verification: google676a414ad086cefb.html
 
file:a/graph.php -> file:b/graph.php
<?php <?php
include_once('include/common.inc.php'); include_once('include/common.inc.php');
//include_header(); //include_header();
$format = "html"; $format = "html";
if (isset($_REQUEST['format'])) { if (isset($_REQUEST['format'])) {
$format = $_REQUEST['format']; $format = $_REQUEST['format'];
} }
   
function add_node($id, $label, $parent="") { function add_node($id, $label, $parent="") {
global $format; global $format;
if ($format == "html") { if ($format == "html") {
// echo "nodes[\"$id\"] = graph.newNode({label: \"$label\"});" . PHP_EOL; // echo "nodes[\"$id\"] = graph.newNode({label: \"$label\"});" . PHP_EOL;
} }
if ($format == "dot" && $label != "") { if ($format == "dot" && $label != "") {
echo "$id [label=\"$label\"];". PHP_EOL; echo "$id [label=\"$label\"];". PHP_EOL;
} }
if ($format == "gexf") { if ($format == "gexf") {
echo "<node id='$id' label=\"".htmlentities($label,ENT_XML1)."\" ".($parent != ""? "pid='$parent'><viz:size value='1'/>":"><viz:size value='2'/>") echo "<node id='$id' label=\"".htmlentities($label,ENT_XML1)."\" ".($parent != ""? "pid='$parent'><viz:size value='1'/>":"><viz:size value='2'/>")
."<viz:color b='".rand(0,255)."' g='".rand(0,255)."' r='".rand(0,255)."'/>" ."<viz:color b='".rand(0,255)."' g='".rand(0,255)."' r='".rand(0,255)."'/>"
."</node>". PHP_EOL; ."</node>". PHP_EOL;
} }
} }
   
function add_edge($from, $to, $color) { function add_edge($from, $to, $color) {
global $format; global $format;
if ($format == "html") { if ($format == "html") {
// echo "graph.newEdge(nodes[\"$from\"], nodes['$to'], {color: '$color'});" . PHP_EOL; // echo "graph.newEdge(nodes[\"$from\"], nodes['$to'], {color: '$color'});" . PHP_EOL;
} }
if ($format == "dot") { if ($format == "dot") {
echo "$from -> $to ".($color != ""? "[color=$color]":"").";". PHP_EOL; echo "$from -> $to ".($color != ""? "[color=$color]":"").";". PHP_EOL;
} }
if ($format == "gexf") { if ($format == "gexf") {
echo "<edge id='$from$to' source='$from' target='$to' />". PHP_EOL; echo "<edge id='$from$to' source='$from' target='$to' />". PHP_EOL;
} }
} }
if ($format == "gexf") { if ($format == "gexf") {
//header('Content-Type: text/xml'); //header('Content-Type: text/xml');
header('Content-Type: application/gexf+xml'); header('Content-Type: application/gexf+xml');
echo '<?xml version="1.0" encoding="UTF-8"?> echo '<?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" xmlns:viz="http://www.gexf.net/1.2draft/viz" version="1.2"> <gexf xmlns="http://www.gexf.net/1.2draft" xmlns:viz="http://www.gexf.net/1.2draft/viz" version="1.2">
<meta lastmodifieddate="2009-03-20"> <meta lastmodifieddate="2009-03-20">
<creator>Gexf.net</creator> <creator>Gexf.net</creator>
<description>A hello world! file</description> <description>A hello world! file</description>
</meta> </meta>
<graph mode="static" defaultedgetype="directed"> <graph mode="static" defaultedgetype="directed">
<nodes>'. PHP_EOL; <nodes>'. PHP_EOL;
} }
   
if ($format == "dot") { if ($format == "dot") {
echo 'digraph g {'. PHP_EOL; echo 'digraph g {'. PHP_EOL;
} }
$db = $server->get_db('disclosr-agencies'); $db = $server->get_db('disclosr-agencies');
add_node("fedg","Federal Government - Commonwealth of Australia"); add_node("fedg","Federal Government - Commonwealth of Australia");
try { try {
$rows = $db->get_view("app", "byCanonicalName", null, true)->rows; $rows = $db->get_view("app", "byCanonicalName", null, true)->rows;
//print_r($rows); //print_r($rows);
foreach ($rows as $row) { foreach ($rows as $row) {
add_node($row->id, $row->key); add_node($row->id, $row->key);
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
if ($format == "gexf") { if ($format == "gexf") {
echo '</nodes> echo '</nodes>
<edges>'. PHP_EOL; <edges>'. PHP_EOL;
} }
try { try {
$rows = $db->get_view("app", "byDeptStateName", null, true)->rows; $rows = $db->get_view("app", "byDeptStateName", null, true)->rows;
//print_r($rows); //print_r($rows);
foreach ($rows as $row) { foreach ($rows as $row) {
add_edge("fedg", $row->value, 'yellow'); add_edge("fedg", $row->value, 'yellow');
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
   
try { try {
$rows = $db->get_view("app", "parentOrgs", null, true)->rows; $rows = $db->get_view("app", "parentOrgs", null, true)->rows;
// print_r($rows); // print_r($rows);
foreach ($rows as $row) { foreach ($rows as $row) {
add_edge($row->key, $row->value, 'blue'); add_edge($row->key, $row->value, 'blue');
} }
} catch (SetteeRestClientException $e) { } catch (SetteeRestClientException $e) {
setteErrorHandler($e); setteErrorHandler($e);
} }
if ($format == "html") { if ($format == "html") {
?> ?>
<div id="sigma-example" width="960" style="min-height:800px;background-color: #333;"></div> <div id="sigma-example" width="960" style="min-height:800px;background-color: #333;"></div>
<script src="javascripts/sigma.min.js"></script> <script src="js/sigma.min.js"></script>
<script src="javascripts/sigma/plugins/sigma.parseGexf.js"></script> <script src="js/sigma/plugins/sigma.parseGexf.js"></script>
<script src="javascripts/sigma/plugins/sigma.forceatlas2.js"></script> <script src="js/sigma/plugins/sigma.forceatlas2.js"></script>
<script type="text/javascript">function init() { <script type="text/javascript">function init() {
// Instanciate sigma.js and customize rendering : // Instanciate sigma.js and customize rendering :
var sigInst = sigma.init(document.getElementById('sigma-example')).drawingProperties({ var sigInst = sigma.init(document.getElementById('sigma-example')).drawingProperties({
defaultLabelColor: '#fff', defaultLabelColor: '#fff',
defaultLabelSize: 14, defaultLabelSize: 14,
defaultLabelBGColor: '#fff', defaultLabelBGColor: '#fff',
defaultLabelHoverColor: '#000', defaultLabelHoverColor: '#000',
labelThreshold: 6, labelThreshold: 6,
defaultEdgeType: 'curve' defaultEdgeType: 'curve'
}).graphProperties({ }).graphProperties({
minNodeSize: 0.5, minNodeSize: 0.5,
maxNodeSize: 5, maxNodeSize: 5,
minEdgeSize: 5, minEdgeSize: 5,
maxEdgeSize: 5 maxEdgeSize: 5
}).mouseProperties({ }).mouseProperties({
maxRatio: 32 maxRatio: 32
}); });
   
// Parse a GEXF encoded file to fill the graph // Parse a GEXF encoded file to fill the graph
// (requires "sigma.parseGexf.js" to be included) // (requires "sigma.parseGexf.js" to be included)
sigInst.parseGexf('graph.php?format=gexf'); sigInst.parseGexf('graph.php?format=gexf');
sigInst.bind('downnodes',function(event){ sigInst.bind('downnodes',function(event){
var nodes = event.content; var nodes = event.content;
}); });
// Start the ForceAtlas2 algorithm // Start the ForceAtlas2 algorithm
// (requires "sigma.forceatlas2.js" to be included) // (requires "sigma.forceatlas2.js" to be included)
sigInst.startForceAtlas2(); sigInst.startForceAtlas2();
// Draw the graph : // Draw the graph :
sigInst.draw(); sigInst.draw();
} }
   
if (document.addEventListener) { if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", init, false); document.addEventListener("DOMContentLoaded", init, false);
} else { } else {
window.onload = init; window.onload = init;
} }
</script> </script>
   
<?php <?php
} }
if ($format == "dot") { if ($format == "dot") {
echo "}"; echo "}";
} }
if ($format == "gexf") { if ($format == "gexf") {
echo ' </edges> echo ' </edges>
</graph> </graph>
</gexf>'. PHP_EOL; </gexf>'. PHP_EOL;
} }
//include_footer(); //include_footer();
?> ?>
   
   
<?php <?php
   
date_default_timezone_set("Australia/Sydney"); date_default_timezone_set("Australia/Sydney");
   
$basePath = ""; $basePath = "";
if (strstr($_SERVER['PHP_SELF'], "alaveteli/") if (strstr($_SERVER['PHP_SELF'], "alaveteli/")
|| strstr($_SERVER['PHP_SELF'], "admin/") || strstr($_SERVER['PHP_SELF'], "admin/")
|| strstr($_SERVER['PHP_SELF'], "lib/") || strstr($_SERVER['PHP_SELF'], "lib/")
|| strstr($_SERVER['PHP_SELF'], "include/")) || strstr($_SERVER['PHP_SELF'], "include/")
  || strstr($_SERVER['PHP_SELF'], "documents/")
  )
$basePath = "../"; $basePath = "../";
   
include_once ('couchdb.inc.php'); include_once ('couchdb.inc.php');
include_once ('template.inc.php'); include_once ('template.inc.php');
require_once $basePath.'lib/Requests/library/Requests.php'; require_once $basePath.'lib/Requests/library/Requests.php';
   
Requests::register_autoloader(); Requests::register_autoloader();
   
  if (isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] != 'localhost') {
   
  require $basePath."lib/amon-php/amon.php";
  Amon::config(array('address'=> 'http://127.0.0.1:2464',
  'protocol' => 'http',
  'secret_key' => "I2LJ6dOMmlnXgVAkTPFXd5M3ejkga8Gd2FbBt6iqZdw"));
  Amon::setup_exception_handler();
  }
   
# Convert a stdClass to an Array. http://www.php.net/manual/en/language.types.object.php#102735 # Convert a stdClass to an Array. http://www.php.net/manual/en/language.types.object.php#102735
   
function object_to_array(stdClass $Class) { function object_to_array(stdClass $Class) {
# Typecast to (array) automatically converts stdClass -> array. # Typecast to (array) automatically converts stdClass -> array.
$Class = (array) $Class; $Class = (array) $Class;
   
# Iterate through the former properties looking for any stdClass properties. # Iterate through the former properties looking for any stdClass properties.
# Recursively apply (array). # Recursively apply (array).
foreach ($Class as $key => $value) { foreach ($Class as $key => $value) {
if (is_object($value) && get_class($value) === 'stdClass') { if (is_object($value) && get_class($value) === 'stdClass') {
$Class[$key] = object_to_array($value); $Class[$key] = object_to_array($value);
} }
} }
return $Class; return $Class;
} }
   
# Convert an Array to stdClass. http://www.php.net/manual/en/language.types.object.php#102735 # Convert an Array to stdClass. http://www.php.net/manual/en/language.types.object.php#102735
   
function array_to_object(array $array) { function array_to_object(array $array) {
# Iterate through our array looking for array values. # Iterate through our array looking for array values.
# If found recurvisely call itself. # If found recurvisely call itself.
foreach ($array as $key => $value) { foreach ($array as $key => $value) {
if (is_array($value)) { if (is_array($value)) {
$array[$key] = array_to_object($value); $array[$key] = array_to_object($value);
} }
} }
   
# Typecast to (object) will automatically convert array -> stdClass # Typecast to (object) will automatically convert array -> stdClass
return (object) $array; return (object) $array;
} }
   
function dept_to_portfolio($deptName) { function dept_to_portfolio($deptName) {
return trim(str_replace("Department of", "", str_replace("Department of the", "Department of", $deptName))); return trim(str_replace("Department of", "", str_replace("Department of the", "Department of", $deptName)));
} }
function phrase_to_tag ($phrase) { function phrase_to_tag ($phrase) {
return str_replace(" ","_",str_replace("'","",str_replace(",","",strtolower($phrase)))); return str_replace(" ","_",str_replace("'","",str_replace(",","",strtolower($phrase))));
} }
  function local_url() {
  return "http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/";
  }
function GetDomain($url) function GetDomain($url)
{ {
$nowww = ereg_replace('www\.','',$url); $nowww = ereg_replace('www\.','',$url);
$domain = parse_url($nowww); $domain = parse_url($nowww);
if(!empty($domain["host"])) if(!empty($domain["host"]))
{ {
return $domain["host"]; return $domain["host"];
} else } else
{ {
return $domain["path"]; return $domain["path"];
} }
} }
   
<?php <?php
   
include $basePath . "schemas/schemas.inc.php"; include $basePath . "schemas/schemas.inc.php";
   
require ($basePath . 'couchdb/settee/src/settee.php'); require ($basePath . 'couchdb/settee/src/settee.php');
   
function createDocumentsDesignDoc() {  
/*"views": {  
"web_server": {  
"map": "function(doc) {\n emit(doc.web_server, 1);\n}",  
"reduce": "function (key, values, rereduce) {\n return sum(values);\n}"  
},  
"byAgency": {  
"map": "function(doc) {\n emit(doc.agencyID, 1);\n}",  
"reduce": "function (key, values, rereduce) {\n return sum(values);\n}"  
},  
"byURL": {  
"map": "function(doc) {\n emit(doc.url, doc);\n}"  
},  
"agency": {  
"map": "function(doc) {\n emit(doc.agencyID, doc);\n}"  
},  
"byWebServer": {  
"map": "function(doc) {\n emit(doc.web_server, doc);\n}"  
}  
}*/  
}  
   
function createAgencyDesignDoc() {  
global $db;  
$obj = new stdClass();  
$obj->_id = "_design/" . urlencode("app");  
$obj->language = "javascript";  
$obj->views->all->map = "function(doc) { emit(doc._id, doc); };";  
$obj->views->byABN->map = "function(doc) { emit(doc.abn, doc); };";  
$obj->views->byCanonicalName->map = "function(doc) {  
if (doc.parentOrg || doc.orgType == 'FMA-DepartmentOfState') {  
emit(doc.name, doc);  
}  
};";  
$obj->views->byDeptStateName->map = "function(doc) {  
if (doc.orgType == 'FMA-DepartmentOfState') {  
emit(doc.name, doc._id);  
}  
};";  
$obj->views->parentOrgs->map = "function(doc) {  
if (doc.parentOrg) {  
emit(doc._id, doc.parentOrg);  
}  
};";  
$obj->views->byName->map = 'function(doc) {  
if (typeof(doc["status"]) == "undefined" || doc["status"] != "suspended") {  
emit(doc.name, doc._id);  
if (typeof(doc.shortName) != "undefined" && doc.shortName != doc.name) {  
emit(doc.shortName, doc._id);  
}  
for (name in doc.otherNames) {  
if (doc.otherNames[name] != "" && doc.otherNames[name] != doc.name) {  
emit(doc.otherNames[name], doc._id);  
}  
}  
for (name in doc.foiBodies) {  
if (doc.foiBodies[name] != "" && doc.foiBodies[name] != doc.name) {  
emit(doc.foiBodies[name], doc._id);  
}  
}  
}  
};';  
   
$obj->views->foiEmails->map = "function(doc) {  
emit(doc._id, doc.foiEmail);  
};";  
   
$obj->views->byLastModified->map = "function(doc) { emit(doc.metadata.lastModified, doc); }";  
$obj->views->getActive->map = 'function(doc) { if (doc.status == "active") { emit(doc._id, doc); } };';  
$obj->views->getSuspended->map = 'function(doc) { if (doc.status == "suspended") { emit(doc._id, doc); } };';  
$obj->views->getScrapeRequired->map = "function(doc) {  
   
var lastScrape = Date.parse(doc.metadata.lastScraped);  
   
var today = new Date();  
   
if (!lastScrape || lastScrape.getTime() + 1000 != today.getTime()) {  
emit(doc._id, doc);  
}  
   
};";  
$obj->views->showNamesABNs->map = "function(doc) { emit(doc._id, {name: doc.name, abn: doc.abn}); };";  
$obj->views->getConflicts->map = "function(doc) {  
if (doc._conflicts) {  
emit(null, [doc._rev].concat(doc._conflicts));  
}  
}";  
// http://stackoverflow.com/questions/646628/javascript-startswith  
$obj->views->score->map = 'if(!String.prototype.startsWith){  
String.prototype.startsWith = function (str) {  
return !this.indexOf(str);  
}  
}  
   
function(doc) {  
count = 0;  
if (doc["status"] != "suspended") {  
for(var propName in doc) {  
if(typeof(doc[propName]) != "undefined" && doc[propName] != "") {  
count++;  
}  
}  
portfolio = doc.parentOrg;  
if (doc.orgType == "FMA-DepartmentOfState") {  
portfolio = doc._id;  
}  
if (doc.orgType == "Court-Commonwealth" || doc.orgType == "FMA-DepartmentOfParliament") {  
portfolio = doc.orgType;  
}  
emit(count+doc._id, {id:doc._id, name: doc.name, score:count, orgType: doc.orgType, portfolio:portfolio});  
}  
}';  
$obj->views->scoreHas->map = 'if(!String.prototype.startsWith){  
String.prototype.startsWith = function (str) {  
return !this.indexOf(str);  
}  
}  
if(!String.prototype.endsWith){  
String.prototype.endsWith = function(suffix) {  
    return this.indexOf(suffix, this.length - suffix.length) !== -1;  
};  
}  
function(doc) {  
if (typeof(doc["status"]) == "undefined" || doc["status"] != "suspended") {  
for(var propName in doc) {  
if(typeof(doc[propName]) != "undefined" && (propName.startsWith("has") || propName.endsWith("URL"))) {  
emit(propName, 1);  
}  
}  
emit("total", 1);  
}  
}';  
$obj->views->scoreHas->reduce = 'function (key, values, rereduce) {  
return sum(values);  
}';  
$obj->views->fieldNames->map = '  
function(doc) {  
for(var propName in doc) {  
emit(propName, doc._id);  
}  
   
}';  
$obj->views->fieldNames->reduce = 'function (key, values, rereduce) {  
return values.length;  
}';  
// allow safe updates (even if slightly slower due to extra: rev-detection check).  
return $db->save($obj, true);  
}  
   
if (php_uname('n') == "vanille") { if (php_uname('n') == "vanille") {
$serverAddr = 'http://192.168.178.21:5984/'; $serverAddr = 'http://192.168.178.21:5984/';
   
} else } else
if (php_uname('n') == "KYUUBEY") { if (php_uname('n') == "KYUUBEY") {
   
$serverAddr = 'http://192.168.1.148:5984/'; $serverAddr = 'http://192.168.1.148:5984/';
} else { } else {
$serverAddr = 'http://127.0.0.1:5984/'; $serverAddr = 'http://127.0.0.1:5984/';
} }
$server = new SetteeServer($serverAddr); $server = new SetteeServer($serverAddr);
   
function setteErrorHandler($e) { function setteErrorHandler($e) {
  if (class_exists('Amon')) {
  Amon::log($e->getMessage() . " " . print_r($_SERVER,true), array('error'));
  }
echo $e->getMessage() . "<br>" . PHP_EOL; echo $e->getMessage() . "<br>" . PHP_EOL;
} }
   
<?php <?php
   
function include_header() { function include_header($title) {
global $basePath; global $basePath;
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
   
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]--> <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
   
<!-- Set the viewport width to device width for mobile --> <!-- Set the viewport width to device width for mobile -->
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
   
<title>Disclosr</title> <title><?php echo $title; ?> - Disclosr</title>
   
<!-- Included CSS Files --> <!-- Included CSS Files -->
<link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/foundation.css"> <link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/foundation.css">
<link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/app.css"> <link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/app.css">
   
<!--[if lt IE 9]> <!--[if lt IE 9]>
<link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/ie.css"> <link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/ie.css">
<![endif]--> <![endif]-->
   
   
<!-- IE Fix for HTML5 Tags --> <!-- IE Fix for HTML5 Tags -->
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--> <![endif]-->
   
</head> </head>
<body xmlns:schema="http://schema.org/" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <body xmlns:schema="http://schema.org/" xmlns:foaf="http://xmlns.com/foaf/0.1/">
   
<!-- navBar --> <!-- navBar -->
<div id="navbar" class="container"> <div id="navbar" class="container">
<div class="row"> <div class="row">
<div class="four columns"> <div class="four columns">
<h1><a href="/">Disclosr</a></h1> <h1><a href="/">Disclosr</a></h1>
</div> </div>
<div class="eight columns hide-on-phones"> <div class="eight columns hide-on-phones">
<strong class="right"> <strong class="right">
<a href="getAgency.php">Agencies</a> <a href="getAgency.php">Agencies</a>
<a href="about.php">About/FAQ</a> <a href="about.php">About/FAQ</a>
</strong> </strong>
</div> </div>
</div> </div>
</div> </div>
<!-- /navBar --> <!-- /navBar -->
   
<!-- container --> <!-- container -->
<div class="container"> <div class="container">
<?php } <?php }
   
function include_footer() { function include_footer() {
global $basePath; global $basePath;
?> ?>
</div> </div>
<!-- container --> <!-- container -->
   
   
   
   
<!-- Included JS Files --> <!-- Included JS Files -->
<script src="<?php echo $basePath; ?>javascripts/foundation.js"></script> <script src="<?php echo $basePath; ?>js/foundation.js"></script>
<script src="<?php echo $basePath; ?>javascripts/app.js"></script> <script src="<?php echo $basePath; ?>js/app.js"></script>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="javascripts/flotr2/flotr2.js"></script> <script type="text/javascript" src="<?php echo $basePath ?>js/flotr2/flotr2.js"></script>
  <?php
  if (strpos($_SERVER['SERVER_NAME'], ".gs")) {
  ?>
  <script type="text/javascript">
   
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-12341040-2']);
  _gaq.push(['_trackPageview']);
   
  (function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
   
  </script>
   
</body> </body>
</html> </html>
   
<?php } <?php }
  }
   
   
file:b/index.php (new)
  <?php
  /* Redirect to a different page in the current directory that was requested */
  $host = $_SERVER['HTTP_HOST'];
  $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
  $extra = 'getAgency.php';
  header("Location: http://$host$uri/$extra");
  exit;
  ?>
 
file:a/javascripts/app.js (deleted)
/* Foundation v2.1.4 http://foundation.zurb.com */  
$(document).ready(function () {  
 
/* Use this js doc for all application specific JS */  
 
/* TABS --------------------------------- */  
/* Remove if you don't need :) */  
 
function activateTab($tab) {  
var $activeTab = $tab.closest('dl').find('a.active'),  
contentLocation = $tab.attr("href") + 'Tab';  
 
//Make Tab Active  
$activeTab.removeClass('active');  
$tab.addClass('active');  
 
//Show Tab Content  
$(contentLocation).closest('.tabs-content').children('li').hide();  
$(contentLocation).show();  
}  
 
$('dl.tabs').each(function () {  
//Get all tabs  
var tabs = $(this).children('dd').children('a');  
tabs.click(function (e) {  
activateTab($(this));  
});  
});  
 
if (window.location.hash) {  
activateTab($('a[href="' + window.location.hash + '"]'));  
}  
 
/* ALERT BOXES ------------ */  
$(".alert-box").delegate("a.close", "click", function(event) {  
event.preventDefault();  
$(this).closest(".alert-box").fadeOut(function(event){  
$(this).remove();  
});  
});  
 
 
/* PLACEHOLDER FOR FORMS ------------- */  
/* Remove this and jquery.placeholder.min.js if you don't need :) */  
 
//$('input, textarea').placeholder();  
 
 
 
/* UNCOMMENT THE LINE YOU WANT BELOW IF YOU WANT IE6/7/8 SUPPORT AND ARE USING .block-grids */  
// $('.block-grid.two-up>li:nth-child(2n+1)').css({clear: 'left'});  
// $('.block-grid.three-up>li:nth-child(3n+1)').css({clear: 'left'});  
// $('.block-grid.four-up>li:nth-child(4n+1)').css({clear: 'left'});  
// $('.block-grid.five-up>li:nth-child(5n+1)').css({clear: 'left'});  
 
 
 
/* DROPDOWN NAV ------------- */  
 
var currentFoundationDropdown = null;  
$('.nav-bar li a, .nav-bar li a:after').each(function() {  
$(this).data('clicks', 0);  
});  
$('.nav-bar li a, .nav-bar li a:after').live('click', function(e) {  
e.preventDefault();  
if (currentFoundationDropdown !== $(this).index() || currentFoundationDropdown === null) {  
$(this).data('clicks', 0);  
currentFoundationDropdown = $(this).index();  
}  
$(this).data('clicks', ($(this).data('clicks') + 1));  
var f = $(this).siblings('.flyout');  
if (!f.is(':visible') && $(this).parent('.has-flyout').length > 1) {  
$('.nav-bar li .flyout').hide();  
f.show();  
} else if (($(this).data('clicks') > 1) || ($(this).parent('.has-flyout').length < 1)) {  
window.location = $(this).attr('href');  
}  
});  
$('.nav-bar').live('click', function(e) {  
e.stopPropagation();  
if ($(e.target).parents().is('.flyout') || $(e.target).is('.flyout')) {  
e.preventDefault();  
}  
});  
// $('body').bind('touchend', function(e) {  
// if (!$(e.target).parents().is('.nav-bar') || !$(e.target).is('.nav-bar')) {  
// $('.nav-bar li .flyout').is(':visible').hide();  
// }  
// });  
 
/* DISABLED BUTTONS ------------- */  
/* Gives elements with a class of 'disabled' a return: false; */  
 
});  
 
directory:a/javascripts/flotr2 (deleted)
 
/* Foundation v2.1.4 http://foundation.zurb.com */  
/*! jQuery v1.7.1 jquery.com | jquery.org/license */  
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement){cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close()}d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1){for(h in a.converters){typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h])}}l=k,k=d[g];if(k==="*"){k=l}else{if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g){i in d&&(c[g[i]]=d[i])}while(f[0]==="*"){f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"))}if(h){for(i in e){if(e[i]&&e[i].test(h)){f.unshift(i);break}}}if(f[0] in d){j=f[0]}else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b)){f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)})}else{if(!c&&b!=null&&typeof b=="object"){for(var e in b){ca(a+"["+e+"]",b[e],c,d)}}else{d(a,b)}}}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c){c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d])}e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++){l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)))}(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++){h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border"){for(;g<h;g++){c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0}}return d+"px"}d=bz(a,b,b);if(d<0||d==null){d=a.style[b]||0}d=parseFloat(d)||0;if(c){for(;g<h;g++){d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0)}}return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio"){a.defaultChecked=a.checked}}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object"){b.outerHTML=a.outerHTML}else{if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option"){b.selected=a.defaultSelected}else{if(c==="input"||c==="textarea"){b.defaultValue=a.defaultValue}}}else{a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)}}b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i){for(d=0,e=i[c].length;d<e;d++){f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}}}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement){while(b.length){c.createElement(b.pop())}}return c}function T(a,b,c){b=b||0;if(f.isFunction(b)){return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c})}if(b.nodeType){return f.grep(a,function(a,d){return a===b===c})}if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b)){return f.filter(b,d,!c)}b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return !a||!a.parentNode||a.parentNode.nodeType===11}function K(){return !0}function J(){return !1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b])){continue}if(b!=="toJSON"){return !1}}return !0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else{d=b}}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++){b[a[c]]=!0}return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a){return this}if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2]){return f.find(a)}this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return !d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a)){return f.ready(a)}a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++){if((a=arguments[j])!=null){for(c in a){d=i[c],f=a[c];if(i===f){continue}l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}}}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body){return setTimeout(e.ready,1)}e.isReady=!0;if(a!==!0&&--e.readyWait>0){return}A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete"){return setTimeout(e.ready,1)}if(c.addEventListener){c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1)}else{if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval" in a},isNumeric:function(a){return !isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a)){return !1}try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf")){return !1}}catch(c){return !1}var d;for(d in a){}return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a){return !1}return !0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b){return null}b=e.trim(b);if(a.JSON&&a.JSON.parse){return a.JSON.parse(b)}if(n.test(b.replace(o,"@").replace(p,"]").replace(q,""))){return(new Function("return "+b))()}e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a){if(c.apply(a[f],d)===!1){break}}}else{for(;g<h;){if(c.apply(a[g++],d)===!1){break}}}}else{if(i){for(f in a){if(c.call(a[f],f,a[f])===!1){break}}}else{for(;g<h;){if(c.call(a[g],g,a[g++])===!1){break}}}}return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H){return H.call(b,a,c)}d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++){if(c in b&&b[c]===a){return c}}}return -1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number"){for(var f=c.length;e<f;e++){a[d++]=c[e]}}else{while(c[e]!==b){a[d++]=c[e++]}}a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++){e=!!b(a[f],f),c!==e&&d.push(a[f])}return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k){for(;i<j;i++){f=c(a[i],i,d),f!=null&&(h[h.length]=f)}}else{for(g in a){f=c(a[g],g,d),f!=null&&(h[h.length]=f)}}return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a)){return b}var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c){e.access(a,j,c[j],f,g,d)}return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++){g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h)}return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++){g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)}},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++){if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++){for(var f=0;f<c.length;f++){if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique){break}}}}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++){if(a===c[b]){return !0}}}return !1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return !c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return !d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return !!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null){a=h}else{for(var b in h){a[b]=h[b]}}return a}},i=h.promise({}),j;for(j in g){i[j]=g[j].fire,i[j+"With"]=g[j].fireWith}i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++){b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g}g||j.resolveWith(j,b)}else{j!==a&&j.resolveWith(j,d?[a]:[])}return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e){return{}}g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent){for(o in {submit:1,change:1,focusin:1}){n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p}}k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div><table "+n+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return !!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b){return}n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function"){e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c)}g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c]){return g.events}k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k]){return}if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++){delete d[b[e]]}if(!(c?m:f.isEmptyObject)(d)){return}}}if(!c){delete j[k].data;if(!m(j[k])){return}}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b){return b!==!0&&a.getAttribute("classid")===b}}return !0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++){g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]))}f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object"){return this.each(function(){f.data(this,a)})}d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b){return f.queue(this[0],a)}return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--){if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0)){h++,l.add(m)}}m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a)){return this.each(function(b){f(this).addClass(a.call(this,b,this.className))})}if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1){if(!e.className&&b.length===1){e.className=a}else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++){~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ")}e.className=f.trim(g)}}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a)){return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))})}if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className){if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++){h=h.replace(" "+c[i]+" "," ")}g.className=f.trim(h)}else{g.className=""}}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a)){return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)})}return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++]){i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}}else{if(c==="undefined"||c==="boolean"){this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""}}})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++){if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1){return !0}}return !1},val:function(a){var c,d,e,g=this[0];if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set" in c)||c.set(this,h,"value")===b){this.value=h}}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get" in c&&(d=c.get(g,"value"))!==b){return d}d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return !b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0){return null}c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j){return b}h.push(b)}}if(j&&!h.length&&i.length){return f(i[g]).val()}return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn){return f(a)[c](d)}if(typeof a.getAttribute=="undefined"){return f.prop(a,c,d)}i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set" in h&&i&&(g=h.set(a,d,c))!==b){return g}a.setAttribute(c,""+d);return d}if(h&&"get" in h&&i&&(g=h.get(a,c))!==null){return g}g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++){e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode){f.error("type property can't be changed")}else{if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button")){return w.get(a,b)}return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button")){return w.set(a,b,c)}a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set" in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get" in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b)){return a.checked=f.inArray(f(a).val(),b)>=0}}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1){a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o){f.event.remove(a,j+b[h],c,d,!0)}continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++){s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s))}r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered)){return}h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h]){return}c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j){j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0)}return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1){return}r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode){r.push([m,s]),n=m}n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++){m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault()}c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++){r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r)}q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace)){c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando]){return a}var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;){e=i[--d],a[e]=g[e]}a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event)){return new f.Event(a,b)}a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d)){a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b}return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form")){return !1}f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form")){return !1}f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))})}return !1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox"){return a.handleObj.handler.apply(this,arguments)}},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a){this.on(i,c,d,a[i],g)}return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1){e=J}else{if(!e){return this}}g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a){this.off(g,c,a[g])}return this}if(c===!1||typeof c=="function"){d=c,c=b}d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){return f.event.trigger(a,b,this[0],!0)}},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length){b[d++].guid=c}return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else{if(m.filter(b,[j]).length>0){k=j;break}}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9){return[]}if(!b||typeof b!="string"){return e}var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b)){if(w.length===2&&o.relative[w[0]]){j=y(w[0]+w[1],d,f)}else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length){b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}}}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length){q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}}else{k=w=[]}}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]"){if(!u){e.push.apply(e,k)}else{if(d&&d.nodeType===1){for(t=0;k[t]!=null;t++){k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t])}}else{for(t=0;k[t]!=null;t++){k[t]&&k[t].nodeType===1&&e.push(j[t])}}}}else{s(k,e)}l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h){for(var b=1;b<a.length;b++){a[b]===a[b-1]&&a.splice(b--,1)}}}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a){return[]}for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter){if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\"){continue}s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f){g=i=!0}else{if(f===!0){continue}}}if(f){for(n=0;(j=s[n])!=null;n++){j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0))}}if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g){return[]}break}}}if(a===q){if(g==null){m.error(a)}else{break}}q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string"){return a.textContent}if(typeof a.innerText=="string"){return a.innerText.replace(k,"")}for(a=a.firstChild;a;a=a.nextSibling){e+=n(a)}}else{if(d===3||d===4){return a.nodeValue}}}else{for(b=0;c=a[b];b++){c.nodeType!==8&&(e+=n(c))}}return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++){if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++){c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b)}d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++){d[e].getAttribute("name")===a[1]&&c.push(d[e])}return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined"){return b.getElementsByTagName(a[1])}}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f){return a}for(var g=0,h;(h=b[g])!=null;g++){h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1))}return !1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else{a[2]&&m.error(a[0])}a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not"){if((a.exec(b[3])||"").length>1||/^\w/.test(b[3])){b[3]=m(b[3],null,null,c)}else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return !1}}else{if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0])){return !0}}return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return !!a.firstChild},empty:function(a){return !a.firstChild},has:function(a,b,c){return !!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f){return f(a,c,b,d)}if(e==="contains"){return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0}if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++){if(g[h]===a){return !1}}return !0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling){if(l.nodeType===1){return !1}}if(k==="first"){return !0}l=a;case"last":while(l=l.nextSibling){if(l.nodeType===1){return !1}}return !0;case"nth":c=b[2],e=b[3];if(c===1&&e===0){return !0}f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling){l.nodeType===1&&(l.nodeIndex=++i)}g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f){return f(a,c,b,d)}}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match){o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q))}var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]"){Array.prototype.push.apply(d,a)}else{if(typeof a.length=="number"){for(var e=a.length;c<e;c++){d.push(a[c])}}else{for(;a[c];c++){d.push(a[c])}}}return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition){return a.compareDocumentPosition?-1:1}return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex){return a.sourceIndex-b.sourceIndex}var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i){return v(a,b)}if(!g){return -1}if(!i){return 1}while(j){e.unshift(j),j=j.parentNode}j=i;while(j){f.unshift(j),j=j.parentNode}c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++){if(e[k]!==f[k]){return v(e[k],f[k])}}return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b){return c}var d=a.nextSibling;while(d){if(d===b){return -1}d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++){c[e].nodeType===1&&d.push(c[e])}c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1]){return s(e.getElementsByTagName(b),f)}if(h[2]&&o.find.CLASS&&e.getElementsByClassName){return s(e.getElementsByClassName(h[2]),f)}}if(e.nodeType===9){if(b==="body"&&e.body){return s([e.body],f)}if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode){return s([],f)}if(i.id===h[3]){return s([i],f)}}try{return s(e.querySelectorAll(b),f)}catch(j){}}else{if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p){return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}}catch(r){}finally{l||k.removeAttribute("id")}}}}return a(b,e,f,g)};for(var e in a){m[e]=a[e]}b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a)){try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11){return f}}}catch(g){}}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1){return}o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c){return b.getElementsByClassName(a[1])}},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return !!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return !1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a)){f+=d[0],a=a.replace(o.match.PSEUDO,"")}a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++){m(a,g[h],e,c)}return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string"){return f(a).filter(function(){for(c=0,d=b.length;c<d;c++){if(f.contains(b[c],this)){return !0}}})}var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0){for(h=g;h<e.length;h++){for(i=0;i<g;i++){if(e[i]===e[h]){e.splice(h--,1);break}}}}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++){if(f.contains(this,b[a])){return !0}}})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return !!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++){f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h})}g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11){break}}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a){return this[0]&&this[0].parentNode?this.prevAll().length:-1}if(typeof a=="string"){return f.inArray(this[0],f(a))}return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d))){g.nodeType===1&&e.push(g),g=g[c]}return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c]){if(a.nodeType===1&&++e===b){break}}return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling){a.nodeType===1&&a!==b&&c.push(a)}return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a)){return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))})}if(typeof a!="object"&&a!==b){return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))}return f.text(this)},wrapAll:function(a){if(f.isFunction(a)){return this.each(function(b){f(this).wrapAll(a.call(this,b))})}if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1){a=a.firstChild}return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a)){return this.each(function(b){f(this).wrapInner(a.call(this,b))})}return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)})}if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)})}if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++){if(!a||f.filter(a,[d]).length){!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d)}}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild){b.removeChild(b.firstChild)}}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null}if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++){this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}}catch(e){this.empty().append(a)}}else{f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a)}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a)){return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))})}typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j)){return this.each(function(){f(this).domManip(a,c,d,!0)})}if(f.isFunction(j)){return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)})}if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++){d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g){e[g]&&bk(d[g],e[g])}}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g){bj(d[g],e[g])}}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k){continue}if(typeof k=="string"){if(!_.test(k)){k=b.createTextNode(k)}else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--){o=o.lastChild}if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i){f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}}var r;if(!f.support.appendChecked){if(k[0]&&typeof(r=k.length)=="number"){for(i=0;i<r;i++){bn(k[i])}}else{bn(k)}}k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return !a.type||be.test(a.type)};for(j=0;h[j];j++){if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript")){e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j])}else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()]){continue}c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events){e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle)}b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b){return this}return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get" in k&&(g=k.get(a,!1,e))!==b){return g}return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d)){return}h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set" in k)||(d=k.set(a,d))!==b){try{j[c]=d}catch(l){}}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get" in g&&(e=g.get(a,!0,d))!==b){return e}if(bz){return bz(a,c)}},swap:function(a,b,c){var d={};for(var e in b){d[e]=a.style[e],a.style[e]=b[e]}c.call(a);for(e in b){a.style[e]=d[e]}}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0){return bC(a,b,d)}f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b)){return b}b=parseFloat(b);if(b>=0){return b+"px"}}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter){return}}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return !f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS){return bS.apply(this,arguments)}if(!this.length){return this}var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):thi