Преглед изворни кода

Adding sincro directory for clean-up - refs #6029

Yannick Warnier пре 12 година
родитељ
комит
4b38efa56c
71 измењених фајлова са 4449 додато и 0 уклоњено
  1. BIN
      sincro/.mapagoogle.js.swp
  2. 15 0
      sincro/README
  3. 46 0
      sincro/body.php
  4. 22 0
      sincro/config.js
  5. BIN
      sincro/css/images/222222_256x240_icons_icons.png
  6. BIN
      sincro/css/images/2e83ff_256x240_icons_icons.png
  7. BIN
      sincro/css/images/454545_256x240_icons_icons.png
  8. BIN
      sincro/css/images/888888_256x240_icons_icons.png
  9. BIN
      sincro/css/images/barra.png
  10. BIN
      sincro/css/images/bg_fondo.png
  11. BIN
      sincro/css/images/cccccc_40x100_textures_03_highlight_soft_75.png
  12. BIN
      sincro/css/images/cd0a0a_256x240_icons_icons.png
  13. BIN
      sincro/css/images/dadada_40x100_textures_02_glass_75.png
  14. BIN
      sincro/css/images/e6e6e6_40x100_textures_02_glass_75.png
  15. BIN
      sincro/css/images/fbf9ee_40x100_textures_02_glass_55.png
  16. BIN
      sincro/css/images/fef1ec_40x100_textures_05_inset_soft_95.png
  17. BIN
      sincro/css/images/ffffff_40x100_textures_02_glass_65.png
  18. BIN
      sincro/css/images/ffffff_40x100_textures_02_glass_75.png
  19. 118 0
      sincro/css/style.css
  20. 118 0
      sincro/css/style.css~
  21. 9 0
      sincro/css/ui.accordion.css
  22. 7 0
      sincro/css/ui.allplugins.css
  23. 37 0
      sincro/css/ui.core.css
  24. 60 0
      sincro/css/ui.datepicker.css
  25. 13 0
      sincro/css/ui.dialog.css
  26. 4 0
      sincro/css/ui.progressbar.css
  27. 13 0
      sincro/css/ui.resizable.css
  28. 13 0
      sincro/css/ui.slider.css
  29. 9 0
      sincro/css/ui.tabs.css
  30. 239 0
      sincro/css/ui.theme.css
  31. 240 0
      sincro/css/ui.theme.css~
  32. 1383 0
      sincro/data_100k.txt
  33. BIN
      sincro/data_1600k.txt
  34. BIN
      sincro/header-logo.png
  35. 3 0
      sincro/htaccess.txt
  36. 4 0
      sincro/import.php
  37. 628 0
      sincro/index.aspx
  38. 245 0
      sincro/index.php
  39. 11 0
      sincro/jquery-1.3.1.min.js
  40. 211 0
      sincro/jquery.query-2.0.1.js
  41. BIN
      sincro/loading.gif
  42. 53 0
      sincro/mapagoogle.html
  43. 21 0
      sincro/mapagoogle.js
  44. 485 0
      sincro/motor.js
  45. BIN
      sincro/themes/base/images/222222_256x240_icons_icons.png
  46. BIN
      sincro/themes/base/images/2e83ff_256x240_icons_icons.png
  47. BIN
      sincro/themes/base/images/454545_256x240_icons_icons.png
  48. BIN
      sincro/themes/base/images/888888_256x240_icons_icons.png
  49. BIN
      sincro/themes/base/images/cccccc_40x100_textures_03_highlight_soft_75.png
  50. BIN
      sincro/themes/base/images/cd0a0a_256x240_icons_icons.png
  51. BIN
      sincro/themes/base/images/dadada_40x100_textures_02_glass_75.png
  52. BIN
      sincro/themes/base/images/e6e6e6_40x100_textures_02_glass_75.png
  53. BIN
      sincro/themes/base/images/fbf9ee_40x100_textures_02_glass_55.png
  54. BIN
      sincro/themes/base/images/fef1ec_40x100_textures_05_inset_soft_95.png
  55. BIN
      sincro/themes/base/images/ffffff_40x100_textures_02_glass_65.png
  56. BIN
      sincro/themes/base/images/ffffff_40x100_textures_02_glass_75.png
  57. 9 0
      sincro/themes/base/ui.accordion.css
  58. 3 0
      sincro/themes/base/ui.all.css
  59. 4 0
      sincro/themes/base/ui.all.css~
  60. 7 0
      sincro/themes/base/ui.allplugins.css
  61. 37 0
      sincro/themes/base/ui.core.css
  62. 60 0
      sincro/themes/base/ui.datepicker.css
  63. 13 0
      sincro/themes/base/ui.dialog.css
  64. 4 0
      sincro/themes/base/ui.progressbar.css
  65. 13 0
      sincro/themes/base/ui.resizable.css
  66. 13 0
      sincro/themes/base/ui.slider.css
  67. 9 0
      sincro/themes/base/ui.tabs.css
  68. 240 0
      sincro/themes/base/ui.theme.css
  69. 8 0
      sincro/ui.core.min.js
  70. 12 0
      sincro/ui.progressbar.min.js
  71. 10 0
      sincro/web.config

BIN
sincro/.mapagoogle.js.swp


+ 15 - 0
sincro/README

@@ -0,0 +1,15 @@
+Infinite Family Network Connectivity Web Test
+
+Installation
+=============
+
+1. Put all files of the directory with this README on a web server
+2. Edit config.js with the desired settings
+3. Make sure the web server accepts HTTP POST on index.html. 
+If the web server does not allow HTTP POST, the test will yield an error message immediately when running a test.
+A sample .htaccess file can be found in the same directory as the HTML file which can be used to allow HTTP POST 
+on an Apache server with PHP installed.
+
+Happy testing!
+
+

+ 46 - 0
sincro/body.php

@@ -0,0 +1,46 @@
+<div id="centrado">
+  <div id="mainContentFrame">
+    <!--img id="logo"/-->
+    <div class="border">
+        <div>
+            <h3 class="titulo" id="title"></h3>
+            <span id="subtitle"></span>
+        </div>
+
+		<div id="statusContainer">
+			<div id="resultMessage">
+				<h4 class="result-title"></h4>
+				<div class="result-message"></div>
+			</div>
+		
+			<div id="testInProgress">
+				<img src="loading.gif" width="16" height="16" align="absmiddle"/> <span id="testInProgressLabel"></span>
+			</div>
+		</div>
+
+		<div id="progressPanel">
+			<div id="progressbar"></div>
+		</div>
+
+		<div id="buttonPanel"> 
+            <form>
+                <input type="button" id="startTestButton" class="btn"/>
+            </form>
+        </div>
+    </div>
+    </div>
+	<div class="resultado_datos" id="technicalDetails">
+		Celeridad de descarga:<br />
+                 &nbsp;&nbsp;Efectivo: <span id="currentdlspeed"></span><br />
+                 &nbsp;&nbsp;Mínimo requerido: <span id="requireddlspeed" class="required"></span>
+		<br/>
+		Celeridad de subida:<br />
+                 &nbsp;&nbsp; Efectivo : <span id="currentulspeed"></span><br />
+		 &nbsp;&nbsp; Mínimo requerido: <span id="requiredulspeed" class="required"></span>
+		<br/>
+                Tiempo de respuesta:<br />
+                &nbsp;&nbsp;Efectivo: <span id="currenttime"></span><br />
+                &nbsp;&nbsp;Máximo requerido: <span id="requiredtime" class="required"></span>
+        <br/>
+</div>
+</div>

+ 22 - 0
sincro/config.js

@@ -0,0 +1,22 @@
+var Settings = {
+  Logo            : "header-logo.png",	// URL to logo image 
+  MinimumDlSpeed  : 100,	// Required download speed in kbit/s
+  MinimumUlSpeed  : 100,        // Required upload speed in kbit/s
+  MaximumTime     : 300,	// Required response time (milliseconds)
+  RequestCount    : 20,		// Number of requests to perform
+  Debug           : true	// true, if detailed output of the test run needs to be shown, otherwise false
+};
+var Strings = {
+  StartTest       : "Iniciar prueba",
+  TestInProgress  : "La prueba se está ejecutando, espere por favor...",
+  Title           : "Prueba de conexión de datos",
+  SubTitle        : "Esta página le permite probar la velocidad de su conexión local hacia el servidor central del Ministerio.",
+  TestFailed      : {
+     Title   : "Lo sentimos, su conexión es algo lenta y podría no ser suficiente para los objetivos de esta aplicación.",
+     Message : "(Si esto fue su primera prueba, intente correrla nuevamente en un par de horas)"
+  },
+  TestPassed : {
+    Title  : "Felicidades, su conexión cumple con los requerimientos establecidos.",
+    Message : ""
+  }
+};

BIN
sincro/css/images/222222_256x240_icons_icons.png


BIN
sincro/css/images/2e83ff_256x240_icons_icons.png


BIN
sincro/css/images/454545_256x240_icons_icons.png


BIN
sincro/css/images/888888_256x240_icons_icons.png


BIN
sincro/css/images/barra.png


BIN
sincro/css/images/bg_fondo.png


BIN
sincro/css/images/cccccc_40x100_textures_03_highlight_soft_75.png


BIN
sincro/css/images/cd0a0a_256x240_icons_icons.png


BIN
sincro/css/images/dadada_40x100_textures_02_glass_75.png


BIN
sincro/css/images/e6e6e6_40x100_textures_02_glass_75.png


BIN
sincro/css/images/fbf9ee_40x100_textures_02_glass_55.png


BIN
sincro/css/images/fef1ec_40x100_textures_05_inset_soft_95.png


BIN
sincro/css/images/ffffff_40x100_textures_02_glass_65.png


BIN
sincro/css/images/ffffff_40x100_textures_02_glass_75.png


+ 118 - 0
sincro/css/style.css

@@ -0,0 +1,118 @@
+/*Imoport las hojas de estilos separadas*/
+@import "ui.core.css";
+@import "ui.theme.css";
+@import "ui.allplugins.css";
+/*Estilo para Vista de Sincronización*/
+.form-column{
+	width: 400px;
+	float: left;
+	}
+.anim-column{
+	width: 300px;
+	float: right;
+	padding-right: 400px;
+}
+.titulo{
+		font-family: Arial;
+		font-size: 30px;
+		color:#0174DF;
+	}
+body,html,form, table, input, div, select
+    {
+      font-size:8pt;
+      font-family:verdana, arial, helvetica, sans-serif;
+    }
+    H3
+    {
+        font-family: Times New Roman;
+        font-size: large;
+    }
+    H4
+    {
+        font-family: Times New Roman;
+        font-size: 12pt;
+    }
+	THEAD
+	{
+		background-color: #D7E1F5;
+	}
+	#resultMessage h4
+	{
+		font-family: Arial, Helvetica, Sans Serif;
+		font-size: 12pt;
+		font-weight: bold;
+		padding: 0px;
+	}
+	.resultado_datos{		
+		font-weight: bold;
+		font-size: 12px;	
+	}
+	.resultado_datos span{
+		color: #FF0080;
+		font-weight:normal;		
+		}
+	.resultado_datos span.required{
+            color: #888888;
+        }
+	#progressbar
+	{
+                margin-bottom: 10px;
+		/*margin-bottom: 30px;
+		margin-top: 30px;*/
+	}
+	#pagesincro{
+		background: url("images/bg_fondo.png") no-repeat #81DAF5 600px 200px;
+		width: 1130px;
+		height: 800px;
+		padding: 20px;
+	}
+	#centrado{
+	width: 350px;
+	margin: auto;
+	/*top: 20%;
+	left: 20%;
+	margin-top: -480px; /*Restamos la mitad de alto
+	margin-left: -550px; /*Restamos la mitad de ancho*/	
+	}
+	#testInProgress
+	{
+		display: none;
+		margin-top: 30px;
+	}
+	#buttonPanel
+	{
+		margin: auto;
+		/*width: 350px;*/
+		text-align: center;
+	}
+    #resultMessage
+    {
+        display: none;
+        margin-left: auto;
+        margin-right: auto;
+    }
+	#statusContainer
+	{
+		margin-top: 10px;
+		margin-bottom: 10px;
+		min-height: 50px;
+		position: relative;
+	}
+	#technicalDetails
+	{
+		display: none;
+		margin: auto;
+		width: 360px;
+		padding: 20px;
+		background-color: #F2F5A9;
+	}
+	#mainContentFrame
+	{
+		width: 350px; 
+		margin-left: auto; 
+		margin-right: auto
+	}
+	#mainContentFrame .border
+	{
+	/*	padding: 20px*/
+	}

+ 118 - 0
sincro/css/style.css~

@@ -0,0 +1,118 @@
+/*Imoport las hojas de estilos separadas*/
+@import "ui.core.css";
+@import "ui.theme.css";
+@import "ui.allplugins.css";
+/*Estilo para Vista de Sincronización*/
+.form-column{
+	width: 400px;
+	float: left;
+	}
+.anim-column{
+	width: 300px;
+	float: right;
+	padding-right: 400px;
+}
+.titulo{
+		font-family: Arial;
+		font-size: 30px;
+		color:#0174DF;
+	}
+body,html,form, table, input, div, select
+    {
+      font-size:8pt;
+      font-family:verdana, arial, helvetica, sans-serif;
+    }
+    H3
+    {
+        font-family: Times New Roman;
+        font-size: large;
+    }
+    H4
+    {
+        font-family: Times New Roman;
+        font-size: 12pt;
+    }
+	THEAD
+	{
+		background-color: #D7E1F5;
+	}
+	#resultMessage h4
+	{
+		font-family: Arial, Helvetica, Sans Serif;
+		font-size: 12pt;
+		font-weight: bold;
+		padding: 0px;
+	}
+	.resultado_datos{		
+		font-weight: bold;
+		font-size: 12px;	
+	}
+	.resultado_datos span{
+		color: #FF0080;
+		font-weight:normal;		
+		}
+	.resultado_datos span.required{
+            color: #888888;
+        }
+	#progressbar
+	{
+                margin-bottom: 10px;
+		/*margin-bottom: 30px;
+		margin-top: 30px;*/
+	}
+	#pagesincro{
+		background: url("images/bg_fondo.png") no-repeat #81DAF5 600px 100px;
+		width: 1130px;
+		height: 600px;
+		padding: 20px;
+	}
+	#centrado{
+	width: 350px;
+	margin: auto;
+	/*top: 20%;
+	left: 20%;
+	margin-top: -480px; /*Restamos la mitad de alto
+	margin-left: -550px; /*Restamos la mitad de ancho*/	
+	}
+	#testInProgress
+	{
+		display: none;
+		margin-top: 30px;
+	}
+	#buttonPanel
+	{
+		margin: auto;
+		/*width: 350px;*/
+		text-align: center;
+	}
+    #resultMessage
+    {
+        display: none;
+        margin-left: auto;
+        margin-right: auto;
+    }
+	#statusContainer
+	{
+		margin-top: 10px;
+		margin-bottom: 10px;
+		min-height: 50px;
+		position: relative;
+	}
+	#technicalDetails
+	{
+		display: none;
+		margin: auto;
+		width: 360px;
+		padding: 20px;
+		background-color: #F2F5A9;
+	}
+	#mainContentFrame
+	{
+		width: 350px; 
+		margin-left: auto; 
+		margin-right: auto
+	}
+	#mainContentFrame .border
+	{
+	/*	padding: 20px*/
+	}

+ 9 - 0
sincro/css/ui.accordion.css

@@ -0,0 +1,9 @@
+/* Accordion
+----------------------------------*/
+.ui-accordion-group {margin-bottom: 1px;}
+.ui-accordion-header { cursor: pointer; position: relative;  }
+.ui-accordion-selected .ui-accordion-header { border-bottom: 0; }
+.ui-accordion .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
+.ui-accordion-content-wrap { border-top: 0; margin-top: -1px; position: relative; top: 1px; }
+.ui-accordion-content { padding: 1em 2.2em; }

+ 7 - 0
sincro/css/ui.allplugins.css

@@ -0,0 +1,7 @@
+@import url("ui.accordion.css");
+@import url("ui.datepicker.css");
+@import url("ui.dialog.css");
+@import url("ui.progressbar.css");
+@import url("ui.resizable.css");
+@import url("ui.slider.css");
+@import url("ui.tabs.css");

+ 37 - 0
sincro/css/ui.core.css

@@ -0,0 +1,37 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+*/
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

+ 60 - 0
sincro/css/ui.datepicker.css

@@ -0,0 +1,60 @@
+/* Datepicker
+----------------------------------*/
+.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+.ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker-prev, .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker-prev-hover, .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker-prev { left:2px; }
+.ui-datepicker-next { right:2px; }
+.ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker-title select.ui-datepicker-year { float: right; }
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold;  }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}

+ 13 - 0
sincro/css/ui.dialog.css

@@ -0,0 +1,13 @@
+/* Dialog
+----------------------------------*/
+.ui-dialog { position: relative; padding: .2em; width: 300px; }
+.ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative;  }
+.ui-dialog-title { float: left; margin: .1em 0 .2em; } 
+.ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog-titlebar-close:hover, .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; }
+.ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }

+ 4 - 0
sincro/css/ui.progressbar.css

@@ -0,0 +1,4 @@
+/* Progressbar
+----------------------------------*/
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar-value {margin: -1px; height:100%; }

+ 13 - 0
sincro/css/ui.resizable.css

@@ -0,0 +1,13 @@
+/* Resizable
+----------------------------------*/
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}

+ 13 - 0
sincro/css/ui.slider.css

@@ -0,0 +1,13 @@
+/* Slider
+----------------------------------*/
+.ui-slider { position: relative; text-align: left; }
+.ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider-range { position: absolute; z-index: 1; font-size: 1%; display: block; border: 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { position: relative; top: 0; height: 100%; }
+
+.ui-slider-vertical { width: .8em; height: 100%; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; height: auto; width: 100%; }

+ 9 - 0
sincro/css/ui.tabs.css

@@ -0,0 +1,9 @@
+/* Tabs
+----------------------------------*/
+.ui-tabs {padding: .2em;}
+.ui-tabs-nav { padding: .2em .2em 0 .2em;  position: relative; }
+.ui-tabs-nav li { float: left; border-bottom: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
+.ui-tabs-nav li a { display:block; text-decoration: none; padding: .5em 1em; }
+.ui-tabs-nav li.ui-tabs-selected {  padding-bottom: .1em; border-bottom: 0; }
+.ui-tabs-panel { padding: 1em 1.4em;  display: block; border: 0; background: none; }
+.ui-tabs-hide { display: none !important; }

+ 239 - 0
sincro/css/ui.theme.css

@@ -0,0 +1,239 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+* To view and modify this theme, visit http://themeroller.com/{themeurl}
+*/
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
+.ui-widget-header {
+    background: url("images/barra.png") repeat-x scroll 0 50% #CCCCCC;
+    /*border: 1px solid #ccc;*/
+    color: #222222;
+    font-weight: bold;
+    -moz-border-radius: 45px;
+   -webkit-border-radius: 45px;
+}
+#progressPanel{
+	-moz-border-radius: 45px;
+   -webkit-border-radius: 45px;
+	}
+.ui-widget-header a { color: #222222/*{fcHeader}*/; }
+.ui-widget-content a { color: #222222/*{fcContent}*/; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/e6e6e6_40x100_textures_02_glass_75.png)/*{bgImgUrlDefault}*/ 0/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; outline: none; }
+.ui-state-default a { color: #555555/*{fcDefault}*/; text-decoration: none; outline: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/dadada_40x100_textures_02_glass_75.png)/*{bgImgUrlHover}*/ 0/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; outline: none; }
+.ui-state-hover a { color: #212121/*{fcHover}*/; text-decoration: none; outline: none; }
+.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ffffff_40x100_textures_02_glass_65.png)/*{bgImgUrlActive}*/ 0/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; outline: none; }
+.ui-state-active a { color: #212121/*{fcActive}*/; outline: none; text-decoration: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/fbf9ee_40x100_textures_02_glass_55.png)/*{bgImgUrlHighlight}*/ 0/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
+.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/fef1ec_40x100_textures_05_inset_soft_95.png)/*{bgImgUrlError}*/ 0/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/222222_256x240_icons_icons.png)/*{iconsContent}*/; }
+.ui-widget-content .ui-icon {background-image: url(images/222222_256x240_icons_icons.png)/*{iconsContent}*/; }
+.ui-widget-header .ui-icon {background-image: url(images/222222_256x240_icons_icons.png)/*{iconsHeader}*/; }
+.ui-state-default .ui-icon { background-image: url(images/888888_256x240_icons_icons.png)/*{iconsDefault}*/; }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/454545_256x240_icons_icons.png)/*{iconsHover}*/; }
+.ui-state-active .ui-icon {background-image: url(images/454545_256x240_icons_icons.png)/*{iconsActive}*/; }
+.ui-state-highlight .ui-icon {background-image: url(images/2e83ff_256x240_icons_icons.png)/*{iconsHighlight}*/; }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/cd0a0a_256x240_icons_icons.png)/*{iconsError}*/; }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ none/*{bgImgUrlOverlay}*/ 0/*{bgOverlayXPos}*/ 0/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
+.ui-widget-shadow { margin: -4px/*{offsetTopShadow}*/ 0 0 -4px/*{offsetLeftShadow}*/; padding: 4px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ none/*{bgImgUrlShadow}*/ 0/*{bgShadowXPos}*/ 0/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .35;filter:Alpha(Opacity=35)/*{opacityShadow}*/; -moz-border-radius: 4px/*{cornerRadiusShadow}*/; -webkit-border-radius: 4px/*{cornerRadiusShadow}*/; }

+ 240 - 0
sincro/css/ui.theme.css~

@@ -0,0 +1,240 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+* To view and modify this theme, visit http://themeroller.com/{themeurl}
+*/
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
+.ui-widget-header {
+    background: url("images/barra.png") repeat-x scroll 0 50% #CCCCCC;
+    /*border: 1px solid #ccc;*/
+    color: #222222;
+    font-weight: bold;
+    -moz-border-radius: 45px;
+   -webkit-border-radius: 45px;
+}
+#progressPanel{
+	-moz-border-radius: 45px;
+   -webkit-border-radius: 45px;
+	}
+.ui-widget-header a { color: #222222/*{fcHeader}*/; }
+.ui-widget-content { background: #ffffff/*{bgColorContent}*/ url(images/ffffff_40x100_textures_02_glass_75.png)/*{bgImgUrlContent}*/ 0/*{bgContentXPos}*/ 0/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
+.ui-widget-content a { color: #222222/*{fcContent}*/; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/e6e6e6_40x100_textures_02_glass_75.png)/*{bgImgUrlDefault}*/ 0/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; outline: none; }
+.ui-state-default a { color: #555555/*{fcDefault}*/; text-decoration: none; outline: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/dadada_40x100_textures_02_glass_75.png)/*{bgImgUrlHover}*/ 0/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; outline: none; }
+.ui-state-hover a { color: #212121/*{fcHover}*/; text-decoration: none; outline: none; }
+.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ffffff_40x100_textures_02_glass_65.png)/*{bgImgUrlActive}*/ 0/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; outline: none; }
+.ui-state-active a { color: #212121/*{fcActive}*/; outline: none; text-decoration: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/fbf9ee_40x100_textures_02_glass_55.png)/*{bgImgUrlHighlight}*/ 0/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
+.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/fef1ec_40x100_textures_05_inset_soft_95.png)/*{bgImgUrlError}*/ 0/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/222222_256x240_icons_icons.png)/*{iconsContent}*/; }
+.ui-widget-content .ui-icon {background-image: url(images/222222_256x240_icons_icons.png)/*{iconsContent}*/; }
+.ui-widget-header .ui-icon {background-image: url(images/222222_256x240_icons_icons.png)/*{iconsHeader}*/; }
+.ui-state-default .ui-icon { background-image: url(images/888888_256x240_icons_icons.png)/*{iconsDefault}*/; }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/454545_256x240_icons_icons.png)/*{iconsHover}*/; }
+.ui-state-active .ui-icon {background-image: url(images/454545_256x240_icons_icons.png)/*{iconsActive}*/; }
+.ui-state-highlight .ui-icon {background-image: url(images/2e83ff_256x240_icons_icons.png)/*{iconsHighlight}*/; }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/cd0a0a_256x240_icons_icons.png)/*{iconsError}*/; }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ none/*{bgImgUrlOverlay}*/ 0/*{bgOverlayXPos}*/ 0/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
+.ui-widget-shadow { margin: -4px/*{offsetTopShadow}*/ 0 0 -4px/*{offsetLeftShadow}*/; padding: 4px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ none/*{bgImgUrlShadow}*/ 0/*{bgShadowXPos}*/ 0/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .35;filter:Alpha(Opacity=35)/*{opacityShadow}*/; -moz-border-radius: 4px/*{cornerRadiusShadow}*/; -webkit-border-radius: 4px/*{cornerRadiusShadow}*/; }

+ 1383 - 0
sincro/data_100k.txt

@@ -0,0 +1,1383 @@
+GXFFv0K/5xi/M38zvza/Kux83/m1+Wsv5WebJr66tToEqzRevbwMBFdpBcgTQrJUgLJU/DyBKsMV
+L6FxV5z+bmp+e9G/LPztqf5Yadp+rfmFZ6VM/k/TdUlWC0mvyOMSyO7xruTsGZQTQEgGuKvB/wDn
+EPzf/wA5R+afK3mp/wDnKHyVZeUdX0y/hj8r3sMcNtPfW7Rs1w01vBPPGgibiFYFeVTt8NSq/Mn8
+o/NOs/8AORf/AD8/vPzB8s3dwfLXlG71Fl1G2kf0hoGjWT6ZCCQQPTvLhlbj0Jevvikv3ruLm2so
+JLm7uI7W2i3lnmcIijxLMQBv44oVkdZFV0YOjgMjqagg7ggjrXFX/9X7+Yq7FXYqkPmjyzoXnPy7
+rflPzPpsOseXvMVlNp+s6ZcLyjmt50KOhHyOxG4O43xV/KR/zlP/AM46a/8A84z/AJqal5Jv/Wvv
+K2o89Q/L/wAxyDa+0xmoqu3T17ckRyjxo/2XXFk8Q8o+bPMXkPzRoHnXyjqcmjeZvK97HqGianF1
+jmiO1R+0jglXU7MpKnY4q/qz/wCcWv8AnIvy5/zkt+V2m+dtKEVh5hseNh568sq1X07U0UF1AJqY
+ZR+8hY9UP8wYBYvpHrirsVdir8Vf+fuX5rrHYflp+SWnz/vL2aTzd5mRWG0VvztdPjcD+eRpX3/k
+GKQ/E2w0+/1a/sNI0u3a71TVrmGx0y1QVaW5uHWKGMe7OwGKX9XumaJpn/OKv/OJkum20sduv5Te
+RLu5ubtD8M2pxWslxPMCdyZrtmb/AGWLF+Sv/PtrSLfyp5U/5yW/5yb1q5QX3kHyzc6dpN3cqH/0
+t7Z9TvJSzVqzNHAtD15N44pKP/IL/n4v5/8Ay+/Jf8yPMH5t+YJPzU89ajrsFr+VWg3vpQzetLbN
+NqM11JAiFLKBni4gCg==
+8iY46DdFafTn/OIn51fmb/zmv+T3/ORvkP8ANjW7XR5EtYtL0zzroVt9QltIdatrrkvprIAfqxhD
+KeQLK1GNfixQX5tf84Uf84seVf8AnI384POXlXzLreoS+QfINnJfXWraNxtH1Nze/VrVQ0iymFLh
+FeXb4wBTlXfFkXuv/OTFrqfl7/nIf8pv+cOv+cWr3VPyv0TyneWRWPRtSu4zJ5g14peXGo3cvrc5
+mtrUJIfUY/tgCg==
+GmKvsD/n4v8A85Mfmn/zj/pf5O+WPyr82fo7zf5ge8vtd1JrK1uZbu205IIo0aKaN0UXE8xLBFBP
+HiCBigB5B/zkJ/z9D8x+TL/Q/KX5TaHoWseYvL9taP8Amd5jv1ln01tTWFGvdM05I5I2KRS843nL
+ncUQNTkVaYT/AM/Ivzr1380Lb/nHr8nPLkZtL3zvpGlecPMPl2GZif0jraxwaVZTEUqI2kkbcbko
+1NsVDHv+cxfMf/OZ/wCSOg+XfI175uvvLn5KeW9M0zyh5e826ZqNsLzzNOumgXU95LzN8Wcxygo=
+cVREAryJ5lUPNfyK/wCcc/8AnIL8qfy90j/nLHTvzNsvyh/LiCwi1/XY4ri7GqX+jWlxyitXsUgM
+M312gWFJH4n1FLUxS8c/P780/wA2Pz70U/m/+ZvngWWl+aNcl0/8sPyXtZpZF+qW7lLi5is4yI1i
+t3Ig9eVTJPNyVBxVuKof0L/84c+SfOX5ef8AONX5TeU/P0lwfNOn6S81/aXTtJNZx3dxLc29m5fc
+G3hlSIr+yV4jYDFi/wD/1vv5irsVdirsVfOH/OUX/OOfln/nJb8rtR8kawY9P1+zLX/kjzOV5Sab
+qSKQjmm5ilH7uVP2lP8AMqkK
+v5T/ADr5M8zfl15t8weRvOWlyaL5o8r3j2OsadJ+xIm4dG6PHIpDo42ZSCOuLJ7R/wA4t/8AORnm
+L/nGf80tP87aYJtQ8s6gEsPP3llGoL/TS1SUB2E8BJkhbxqhPF2xUv6tPKHmzy7578r6D5y8p6pD
+rXlvzLZRaho2pwGqSwTLyU+II6Mp3UgggEEYsWR4q7FX4k/85S/8+/8A/nJL88vz687fmTp3mPyd
+caB5gmt4vL/1y8u7aaz060gSGCCSFbWUcl4lmKsQzMW2rim3q/8Azi7/AM+zNO/KTzpoP5mfmr5y
+t/OfmXyvci98u+WtIgeHS7e7Qfurmeaf97cNESWReCKGAY8qYrb6Y/5+AyzQf84ffnc8DFXfTLGK
+Qjr6cup2iSD6VYg4qH44+VvNT+Qf+fafn21hNL385/zSPl+IioItLS3tbi5Ne4ZLNk+TYr1eIfkr
+/wA486t58/LD87fzw1nTpv8AAf5UeWdRl0x6Mq6nrvo0hhVgQTHac/XlKmlQiH7TUUvuX/nEjzFb
+/lB/z7z/AOclfzTtZ4n13V9U1DS7QBqSJcyWlpplkGpvUSXZkA8DXFHV9Ff8+mPy5k8s/kb5q8/X
+ScZ/zG8wGOwYjc2GiobSM1PYztPipfFv5V/mD5M0r/n4L+d/51fmt5ih0Xy9+W2oebdUSa4rJJNN
+DKNEsrW3iHxySenLSNFBPwjsCcV6PmD/AJyz/wCckdQ/5yh/NZfO0eiy6FoOk2aaJ5L0It610tqs
+7yCSbht688klSqVA+FQWpUqQiPza/wCca9S/J+5/5x38pebkls/Ov5uWian5sspWpHp0eoalFZ2t
+lQdJIYSWmP8AvxivRQSq+g9V1zyrqv8Az8wvdU886hp/lnyN+WfmuSGS41CRYrO00/yXpbLaKS/i
+9opVRUsxoASd1HRiX/OZn/OUWl/85b/mp5G8seWoZdG/LHyxqf6L0bUr5vQmvX1W4ggudSmiaggQ
+IlIw3xBas/EtxVSA+9v+c/PzV/LbVf8AnE/XvIH5O+cNK8w2HkrzP5V8sebbDRrgXUdhaBJZ7OB5
+EqhDNZqAVYiqlTuCMUB5B/ziD+T3/OLn5M/l/wCTf+co/wA8/wAz9D1PzLeWcd95c8sXk8M8Whzs
+7+msVjA8091dqpDbx/umJogYc8VJfqz/AM4//wDOQfk3/nI7ytrHnTyHpWuWPl3TNYn0i1v9as/q
+YvzAiO1xa/G/OL4+NTQhgVIBGKH/1/v5irsVdirsVaO+KvzJ/wCfiv8AziOv5yeTn/NryHpgk/NP
+yJZsdQsbdR6muaPFV5LcgU5T24q8JO5HKP8AaWikP5zwQyhl3BAIOKX6w/8APsz/AJyofyH5rj/5
+x/8AO+pcfJnne7aTyHfXDfBputS1ZrSp2WK9P2R0E1P9+E4qX9AoNcWLeKu6Yqlmpa1o+jQi41jV
+bPSYD0mvZ44E/wCCkZRir56/OnzH/wA49fmr+W3nL8rfOf5x+VNK0jzjYNYXtxBr+mx3MDclkjlj
+5zEco5EVgCKGlDirzL8rv+cK
+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
+tbmNori2lUPHJG4K
+sjq1QwYGhB2OKqdpZWen2ltYWFrDY2NlEkFnZW6LFFDFGAo=
+iRogCg==
+qqBQACgGKorFXYq7FXYq7FX/1/v5irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdir//2f/Y/+AAEEpGSUYAAQIBAMgAyAAA/+0SbFBob3Rvc2hvcCAzLjAAOEJJTQQE
+AAAAAAAoHAIAAAIAAhwCBQAcd2l0aCBncmFkYXRpb24gQmxhY2sgSUYgTG9nbzhCSU0D7QAAAAAA
+EADIAAAAAQABAMgAAAABAAE4QklNA/MAAAAAAAgAAAAAAAAAADhCSU0ECg==
+AAAAAAABAAA4QklNJxAAAAAAAAo=
+AAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAA
+AQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0EFAAAAAAABAAAAAI4QklN
+BAwAAAAAEU8AAAABAAAAgAAAAIAAAAGAAADAAAAAETMAGAAB/9j/4AAQSkZJRgABAgEASABIAAD/
+/gAnRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcKggNC4wAP/uAA5BZG9iZQBkgAAAAAH/
+2wCEAAwICAgJCAwJCQwRCwo=
+CxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0O
+DRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
+DAz/wAARCACAAIADASIAAhEBAxEB/90ABAAI/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcI
+CQo=
+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
+wjGvZ/4K
+2z/rS4X6k5zsH629OeCQ3Ie7EsA7ttadk/8AX6qXL1v6wdK/bPRczpe/0jlVOY2yJDXcscR/XC4L
+oH+LXrtHWMXL6ldj1UYVzL/0D3WPsdWd7Gt31Utrqe76e73pKbP+NCzq2Xm9N6AwUuwupvb6Ffu9
+R17HBjvtD/osxGevVZ7Gf6RN1To31p6T0vI611z6z3tqw6w4YuAwVNLpFdFLXwyva611df8ARV1H
+WPqyepdf6R1puU6g9KNhdUGh3qCwD27yf0XG2z2P31/6NG+tXRsjrfQ7+n41jKr3OrsqdaN1ZdVY
+y9rLmj/Bv9PY5JTwPSj1ir62YGd1jPtsz6sO7qXVmT+ixsUsLacJlP8AN12P9luR7Gen+j9P/TWZ
+mP8AW36wWdH6j9mtuF2Xc/P6jlBxAxqLTXRjYmI95/R23WHZ7Pfs/R4/0LLaups/xadVu9bKf1xz
+eodRre3qz/RD2W7yHCir31PpxWtbXTs/0df6P0P5lal/1Aw/+bX7Aw8g4/q21XZeYWB9lrq3Nsdu
+Eta36H6L/B0pKeM6n9bev9U6ZgdKwr7mMAx8TK6gyWWX5j2tc+pl/wBP06vp2bf0l/07P0P88VvU
+ck/VT62fWW+97reo2jApYHEM2t2Y3qsZO3c6u7/MqXV9R+qT8e76uU9Fx2HD6Xlm3JFj9p2ub78l
+7vp3Xbv/AAX/AIL+bwHf4q+tWYz8GzqdTsHD9T9l0Oa4ibHF7nZejdj7Gu/SPr9az/R/ov0SSnQ+
+rWW7oXX8npGVe5nT6ej42Yyp7ia6vQa2vLfW0/Q9R7rLrdn84tj6hZ/V+q9Ht6t1N5Lc/JtuwqSA
+PSx59Oqr2hv5zH/SXJfXnouTVV0bBuz7OofWTPtsxBkhrag7GuP6Wq2ur3fZ6LbWbN7/APuT/gv0
+dfpeDh0YOFRhY42041baqx/JYNjfyJKTpJJJKf/W9VSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklP
+KdE+r3Usj6y5X1o6+1rMhu7G6ViNIeKKAXM9Yvbu/TXs3f8Ab13+k9Knq0kklKSSSSU//9kAOEJJ
+TQQGAAAAAAAHAAYAAAABAQD//gAnRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcKggNC4w
+AP/uAA5BZG9iZQBkQAAAAAH/2wCEAAICAgICAgICAgIDAgICAwQDAgIDBAUEBAQEBAUGBQUFBQUF
+BgYHBwgHBwYJCQo=
+Cg==
+CQkMDAwMDAwMDAwMDAwMDAwBAwMDBQQFCQYGCQ0K
+CQo=
+DQ8ODg4ODw8MDAwMDA8PDAwMDAwMDwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCADI
+AMgDAREAAhEBAxEB/90ABAAZ/8QBogAAAAcBAQEBAQAAAAAAAAAABAUDAgYBAAcICQo=
+CwEAAgIDAQEBAQEAAAAAAAAAAQACAwQFBgcICQo=
+CxAAAgEDAwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLx
+JUM0U5KismNzwjVEJ5OjszYXVGR0w9LiCCaDCQo=
+GBmElEVGpLRW01UoGvLj88TU5PRldYWVpbXF1eX1ZnaGlqa2xtbm9jdHV2d3h5ent8fX5/c4SFho
+eIiYqLjI2Oj4KTlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+hEAAgIBAgMFBQQFBgQIAwNtAQAC
+EQMEIRIxQQVRE2EiBnGBkTKhsfAUwdHhI0IVUmJy8TMkNEOCFpJTJaJjssIHc9I14kSDF1STCAkK
+GBkmNkUaJ2R0VTfyo7PDKCnT4/OElKS0xNTk9GV1hZWltcXV5fVGVmZ2hpamtsbW5vZHV2d3h5en
+t8fX5/c4SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6/9oADAMBAAIRAxEA
+PwD7+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9D7+Yq7
+FXYq7FWmIUFiQANyT0AxV8b+fv8AnPv/AJxW/LrWrry9q/5mRavq9hKYdQttAsrvVkgkXqrz2sTw
+1HQgOSO+K09V/KD/AJyU/JL890uV/K/z/YeYdQskEl9oTrLZ6jCh/bazukimK9uSqV98Ve6Yq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9H7+Yq7FXYq7FX4yf8APz3/AJyq1ry3Jb/8
+46/l9q0ulXmp2KX/AOZ+sWjtHcLZ3Ira6YjrQp66D1JipqU4p9l2xSA/DNVVFCqoVV2VQKADwAxS
+n3lfzP5j8k+YtH82+UdauvL3mbQLhbrRtas3KTQSqex7qw2ZTVWBKsCCcVf1X/8AOJP/ADkDaf8A
+OSH5L6B58eOG08z2jvpHnjS4T8FvqtqF9VkHURzoyzID0VwOoOLF9NYq7FWNebfOPlbyF5d1Tzb5
+z16y8s+WtFiM+p6zqEqwwRINhVm6knZVFSTsATir480P/n49/wA4k675kXy5H+YdxpnrSrBa69qe
+l3tnpsrseK/6TLEBGpP7UoRffFX3Fb3EF3BDdWsyXNtcxrLb3ETB45I3HJXRlJBBBqCOuKq2KuxV
+2KuxV2KuxV2KuxV2KuxV2KuxV//S+/mKuxV2KuxV/IR/zkt5rvvO3/OQv50+ZL+dp5bvzhqttAzG
+vG3sZ2s7eMeyRQKo+WLIPEcVdir9i/8An0F5svYfOH5z+Qy/LTL/AEjTfMMcZ/YuLWd7SRh/rpMg
+P+qMUF+7WKHYq/nn/wCfqH506z5p/OGy/Ja0u5IfKP5bWdrfanYI/wC7utZ1GEXAmkA6+hbyIqA1
+oXc9TikPyxIBqDuD1B98Uv37/wCfUf526t5v8geb/wAnfMWovf3P5ZSW155RkmLPIujX5kU23M1q
+ttPGQgPRXVR8Kiigv1rxQ7FXYq7FXYq7FXYq7FXYq7FXYq7FX//T+/mKuxV2KuxV/IJ/zkj5WvfJ
+n/OQX50+XL+FoJrLzjq08SOKFoL24a8t3Hs8UysPY4sg8VxV2Kv2I/59BeVb2bzp+c/nnhTTNO0X
+TdAWU/tXF1cPdso8eKQK
+T/rDFBfu7ih2Kv5dP+fiehXuh/8AOXn5oveI4i1+PSNW02VgQJLeXTreGqk9QskDp8xiyD4lxV+w
+f/PoHy7qU3n385vNqxMNGsdB03RpLj9k3dzcvchB3JWOCg==
+nw5DxxQX7xYodirsVdirsVdirsVdirsVdirsVdir/9T7+Yq7FXYq7FX4p/8AP0L/AJxc1nVryD/n
+I/yJpUupC1sotP8AzS021RpJkhthxtdUCAkssafupqCqqEf7KuQpD8RFYMoZSGVtww3BHscUpx5f
+0DXPNmu6T5Y8saTc695j165Sz0bRbJDJcXM7mioij7yTso3JABOKv6rP+cQP+ce4P+ccPyV0PyTd
+NDcebdTkfWfPmoQUKS6pdKvOJG/aS3RUhQ9wvLblixfUeKuxV8Df85x/84bJ/wA5OeXtJ8weU7y2
+0b81vJkMsOiXN4WW01Kxkb1HsLl1DGOj/HFJxPFiQRxYkKQX40aF/wA+8v8AnLfWvMcfl64/K8+X
+Y/WEd15j1TUbEabAlaNKZbeeZ5FHWkaMx8MVt/QT/wA4xf8AOPXlz/nGr8rdN/L/AES4/Supyyvq
+Pm7zIyem+o6lMAJJeO/GNFVY41rsiitWqSofQ+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//9X7+Yq7
+FXYq6uKvlD82f+c1f+cZvyjuL7RfN35j2Wpa7bKVu/K+hxSavditQY5VtVeOMnoVldcVp+QP5jfm
+1/z7R8/eYrrXX/JL8w/L11eymW9uPLJg0m2mdjUv9SW/MKE9+CL9+Kd31d/zjF/zkL/z7c/LCR38
+h21z+WXmS8X0LjzH5xsLye/kRuqfpIm7jiQ91V0U9xir9X/LXmvyx5y0uHW/KPmLTfM+j3ABh1TS
+rqK7gaorT1IWZa07VxQ/PP8A5y//AOfhemf845+b5Pyw8oeTR5x8/wBpZ299rNxqU72mmWEd2vqQ
+IfTVpZ5GSjELxUA7vWoCkB+ZHmH/AJ+df85YeZbuf9C+Y9A8pwyE+np+i6Nb3DIv/GS++tufnTFa
+edf9D9/85di5Zj+duoCdTVrc6fpVAfAx/U9vuxTT2LyH/wA/SP8AnJnyxext5tby9+ZWliizWl/Y
+JplzQdSlzp6xqD/rRN8sVp+x3/OMn/OZP5Vf85OWU1p5ekn8s+e9Ng9fWvIGqMv1tIxQGe1lX4Lm
+EE05LRh+2i1FVjT64BB3GKuxV2KuxV2KuxV2KuxV2KuxV2KuxV//1vv5irsVaY8QSdgOpOKv59/+
+c6P+c9/MXnrX9c/KL8ltfm0L8vNGlk0/zN5v06RorvXrmM8ZoredKNFaIwKVQgzbmvp0DKQH5VWG
+n3l/d2umaTYT6hqF9KIrLTbOF5p55G6JHFErO7HwAJxS9h1P/nGz/nIXRtKj1zVfyP8AO9npUqeo
+t42i3bAIRWroiM67b/EoxW3jLo8M01vMjRXFuxS4t5FKSRsOquhoVI8CMVZr+X35l/mD+VGtxeYv
+y2846p5M1ZGVpJ9MnMUc/E7LcQGsU6/5MiMMVfqb+T//ADnJ+R35xapoui/85nflN5Sv/Mlui2el
+/m9JpEFzalQaquoQvG8lsCT9qMtECalYxU4op+1Pk3yl+XGi6ZZXfkDy15c0vR7uBJNPu9As7SG3
+mgcVR45LZAo=
+6sNwQSDihiX5o/8AOPv5N/nHpF7pH5g/l9o+ti8QqurC3SDUYH7SQXsIWeNgdwQ1D0II2xV/Ml/z
+lZ/zjprH/OMv5r33ka6updW8t6lANV8jeYZVCg==
+93pzsU4yhdhNA4MclAAdnAAYDFkHinkjzr5m/Lfzd5e8+eTNSk0nzP5WvEvtIvYyR8abNG4H2o5U
+JSRTsysQcVf15fk3+ZWl/nD+VvkX8zdHVYrPzlpEGoNbKeXoTsONzbknqYZleM+64sXpeKuxV2Ku
+xV2KuxV2KuxV2KuxV2Kv/9f7+Yq7FXxB/wA/Bvzmu/yc/wCcbvM0uiXb2Xmnz9PF5T8vXUVPUhN8
+rtdzrXoUtY5eJG4YqcVD+XdFVFVEFEQBUXwA6DFk/f3/AJ9a/wDOPGkeXPy5k/P7X9OiuvN3n2S4
+tvJ9zMnJ9P0a2ka3doSfsvdSo5ZgKmMIK0LVUF+tQxQ+dPzr/wCcVPyO/P2zuE/MDyTavrkikW3n
+LTQLHWIGpRWF3EA0gA/YlDp/k4q/CD/nKD/n33+af5AJf+a/LTS/mZ+V9vWSbX7KHjqWmR7f8dGz
+SvwjvNDVKCriPFkC+AgQyhlYFWFVYdCD4Yq/Z7/n0j5x/NK91z8wfJMlze6l+Tuh6XHdwJcFntdM
+1qadeEFo7VCevEZHkiU0+EPQE1ZQX7k4ofkh/wA/dfKFpfflN+WnnoW6/pLy15pbSjdgfF9V1W0k
+d4yfD1bWM4pD8CDil/Sd/wA+t9Yn1P8A5xS020mkaRfL/mnXNPtgTXjG0yXYUe1bg4oL9GMUOxV2
+KuxV2KuxV2KuxV2KuxV2Kv8A/9D7+Yq7FX4f/wDP4LzHcm//ACL8oK5FmsOt63PH/NMDa20RP+qr
+SU/1sUh+KszFYZWHVUY1+g4pf2F/84+6Pa6B+RX5N6PZoEt7DyVoUaKBQVNhCzH6SScWL1/FXYqt
+dEkVkdQ6OCrowqCD1BB6jFXxT5n/AOfeX/OJ3mvzTdebL/8ALZrG71CdrnUNL0rUr7T9Ollc1dvq
+ltMkcfI9RGFHtim31V5I8heTPy28u2PlLyF5a0/yn5b06ptdI02FYYgxpydqbu7U+J2JZu5OKGXY
+q/M//n65LGn/ADjBp8bkc5vPGjCIHrVYbtjT6BikP5ysUv6Rv+fWFkbX/nFW2uGFBqfm7XblT4hZ
+I4P1xYoL9H8UOxV2KuxV2KuxV2KuxV2KuxV2Kv8A/9H7+Yq7FX4S/wDP4HT5o/OX5G6sVItrjRdc
+tFftzhuLSQj7pBiyD8cJE9SN17upX7xir+u//nFvzPbecf8AnHP8k/MNrKsyXfk3SYJXXoJrS2S1
+nU+6yRMp9xixL3rFXYq7FXYq7FXYq/Iv/n715gjtfyr/ACn8riQCfXPNs+oejXcxadYyIzU8A90g
++nFIfgaffYdzil/VD/zgH5Yl8q/84kfk5aXMHoXWradc63OniNVvZ7yI/wDIqVMUF9i4odirsVdi
+rsVdirsVdirsVdirsVf/0vv5irsVfln/AM/YvIVz5i/Ifyt53s7Yzyfl15nhk1CRRvHY6rGbORj7
+euYK
+4pD+ebFL+hX/AJ9RfmnH5n/JXzD+V95cKdW/LHWZJLGBn+NtL1hnuomCnei3HrqadNvHFBfqhih2
+KsZg86eT7rVn0C282aNc66jFH0WK/t3uwy9VMCuXqKdKYqybFXYq7FX89v8Az9p86w6z+eHkXyVb
+TGRfI/lU3F/F2judYuDJT5+jbxn6RikPy2sNMu9a1DT9F09DLf61dQafYRCpLT3UiwxCg8WcYpf2
+ZeRvLFt5J8l+UfJtmVa18qaNY6RA6jiGWyt0gDAe/CuLFlOKuxV2KuxV2KuxV2KuxV2KuxV2Kv8A
+/9P7+Yq+C/8AnKL/AJz9/LL/AJxw1l/JNvpF1+Yf5jRwpNfeXLCZLa209ZVDxfXrt1k4M6kMsaI7
+U3IUEEqafCPnr/n5/wCTPzc/Ljzp+Wf5i/kRqFrpPnPSrjTZ7vSdbhuzC8i/up1jntrY8opArr8X
+UYrT8elDBVDHkwA5N0qe5pil9U/84a/n0P8AnHf89fLnnDUp5I/JmtI2g+fo0UtTTbplIueIBJNt
+MqS7Cg==
+lQyj7WKl+5Xmz/n5P/ziT5ZspbjT/Pl550u0X93pmg6TeySOew9W5it4R9MmKKfl/wD85I/8/L/z
+L/Nqx1Hyf+V2nzflR5KvlaG91NJxJr99Awo=
+MjXEVEtFbuISXpt6lKjFNPgP8tfy88+fmd520jyr+V+h3uted72YS6e2nlo5bZlNfrk10Cv1dIz8
+TSswp48qAqv7A/IOkeYNA8j+T9D816z/AIi8z6PothZeYde3/wBMvYLdI7ifcAn1HBap3PffFiy3
+FWjir+Rv/nKv8xG/NT/nIv8AN3zokyz2N15gn0/RpFNVNjpQGn2xU+DJAG+nFkHov/OA/wCWp/M3
+/nKX8trSe1F1pHk6eXzZrlRVFj0tOVtyH+VdtCMVL+i/83/+ckPyW/IW48uWv5r+eLfypcea2m/Q
+0T29zcs0dvxEs0i2sUpjjQuoLvRanr1osXs1hf2WqWVnqWnXUd7p+owR3VhewsHimhmUPHIjDYqy
+kEEdRiqLxV4d/wA5GfnZon/OP35Rea/zM1dUup9KhW38vaQzBTf6pcn07S2XvQueTkbhFZu2Kvxu
+/wCffX/OTn5v+cP+cqH0P8wvP+r+atN/NPT9Ve70m+uXksbbULWJr+GSzt2JS3VUikjCRhRxIBrQ
+YpL+gLFDsVdirsVQpvrMXY083cIv2iNwtj6i+sYg3EyCOvLjXatKVxVEg1xVvFX/1Pv2cVfi/wDn
+p/z6185/mD+aHnj8wPJv5uaWlp521a51qXTfMNpcm4t57uQyPCLi3ZxJGpNEJQELRd6VxSC+VvNH
+/PrX/nKTQkaXRE8qedkViBFpuqm1mI8eN/Fbp/w+KbfLf5if84v/APOQX5TaTe+YPzB/KfW/Lvl7
+T3jS/wDMJWG6sYTK4jQyXFrLMihnYKCSBUgd8VeEYq9E/K38qPPv50ebIfI/5b6LHr/me4t5buLT
+ZLy1sqww09Vw93LEp4g1IUlqVNKA4q/T78pf+fSfnPUp7bUPzr8/2PlrTaK83lvyuDe3z7gtG95c
+IkMW2xKJJ7eOKLfsJ+T35EflV+Q/l7/Dn5YeUrXy9bTcTqWo7zX986/t3d3KWllPWgZuK9FCjbFD
+1/FXYq+f/wDnKf8AM5fye/5x+/NLz6jhdQ0zRZbXQ15cWbUdQIs7TifESzK23YHFX8jCKURVLFyo
+ALnqduv04sn7u/8APpD8qW03yd+Yn5y6haGO582X0flzy3cN1Nhpp9S7dR4SXLhSaf7qxQXxv+a/
+6S/5zO/5z9n8kw3M0/lhfMn+F7NQ5aO28v8Al/k2pSxb/D6xhneo/adcUv6RtP0+y0mwsdL022Sy
+07TbeK0sLOIcY4oIVCRxqOwVQAMWKMxV+DH/AD9C/NTT/wAw/wA1vyv/ACG0jzTY2Og+XHjv/N+s
+yTL9SstR1SQW8ctzICQPqdqHkYdvUp1xSHrHmD/nGby1+Tkmhf8AOYH/ADiCh/OW88s6VaWXl78v
+NKEd7ptzM9n+irzVzLaSieUrEXlkt4xyMxLVCg==
+GXFFv0K/5xi/M38zvza/Kux83/m1+Wsv5WebJr66tToEqzRevbwMBFdpBcgTQrJUgLJU/DyBKsMV
+L6FxV5z+bmp+e9G/LPztqf5Yadp+rfmFZ6VM/k/TdUlWC0mvyOMSyO7xruTsGZQTQEgGuKvB/wDn
+EPzf/wA5R+afK3mp/wDnKHyVZeUdX0y/hj8r3sMcNtPfW7Rs1w01vBPPGgibiFYFeVTt8NSq/Mn8
+o/NOs/8AORf/AD8/vPzB8s3dwfLXlG71Fl1G2kf0hoGjWT6ZCCQQPTvLhlbj0Jevvikv3ruLm2so
+JLm7uI7W2i3lnmcIijxLMQBv44oVkdZFV0YOjgMjqagg7ggjrXFX/9X7+Yq7FXYqkPmjyzoXnPy7
+rflPzPpsOseXvMVlNp+s6ZcLyjmt50KOhHyOxG4O43xV/KR/zlP/AM46a/8A84z/AJqal5Jv/Wvv
+K2o89Q/L/wAxyDa+0xmoqu3T17ckRyjxo/2XXFk8Q8o+bPMXkPzRoHnXyjqcmjeZvK97HqGianF1
+jmiO1R+0jglXU7MpKnY4q/qz/wCcWv8AnIvy5/zkt+V2m+dtKEVh5hseNh568sq1X07U0UF1AJqY
+ZR+8hY9UP8wYBYvpHrirsVdir8Vf+fuX5rrHYflp+SWnz/vL2aTzd5mRWG0VvztdPjcD+eRpX3/k
+GKQ/E2w0+/1a/sNI0u3a71TVrmGx0y1QVaW5uHWKGMe7OwGKX9XumaJpn/OKv/OJkum20sduv5Te
+RLu5ubtD8M2pxWslxPMCdyZrtmb/AGWLF+Sv/PtrSLfyp5U/5yW/5yb1q5QX3kHyzc6dpN3cqH/0
+t7Z9TvJSzVqzNHAtD15N44pKP/IL/n4v5/8Ay+/Jf8yPMH5t+YJPzU89ajrsFr+VWg3vpQzetLbN
+NqM11JAiFLKBni4gCg==
+8iY46DdFafTn/OIn51fmb/zmv+T3/ORvkP8ANjW7XR5EtYtL0zzroVt9QltIdatrrkvprIAfqxhD
+KeQLK1GNfixQX5tf84Uf84seVf8AnI384POXlXzLreoS+QfINnJfXWraNxtH1Nze/VrVQ0iymFLh
+FeXb4wBTlXfFkXuv/OTFrqfl7/nIf8pv+cOv+cWr3VPyv0TyneWRWPRtSu4zJ5g14peXGo3cvrc5
+mtrUJIfUY/tgCg==
+GmKvsD/n4v8A85Mfmn/zj/pf5O+WPyr82fo7zf5ge8vtd1JrK1uZbu205IIo0aKaN0UXE8xLBFBP
+HiCBigB5B/zkJ/z9D8x+TL/Q/KX5TaHoWseYvL9taP8Amd5jv1ln01tTWFGvdM05I5I2KRS843nL
+ncUQNTkVaYT/AM/Ivzr1380Lb/nHr8nPLkZtL3zvpGlecPMPl2GZif0jraxwaVZTEUqI2kkbcbko
+1NsVDHv+cxfMf/OZ/wCSOg+XfI175uvvLn5KeW9M0zyh5e826ZqNsLzzNOumgXU95LzN8Wcxygo=
+cVREAryJ5lUPNfyK/wCcc/8AnIL8qfy90j/nLHTvzNsvyh/LiCwi1/XY4ri7GqX+jWlxyitXsUgM
+M312gWFJH4n1FLUxS8c/P780/wA2Pz70U/m/+ZvngWWl+aNcl0/8sPyXtZpZF+qW7lLi5is4yI1i
+t3Ig9eVTJPNyVBxVuKof0L/84c+SfOX5ef8AONX5TeU/P0lwfNOn6S81/aXTtJNZx3dxLc29m5fc
+G3hlSIr+yV4jYDFi/wD/1vv5irsVdirsVfOH/OUX/OOfln/nJb8rtR8kawY9P1+zLX/kjzOV5Sab
+qSKQjmm5ilH7uVP2lP8AMqkK
+v5T/ADr5M8zfl15t8weRvOWlyaL5o8r3j2OsadJ+xIm4dG6PHIpDo42ZSCOuLJ7R/wA4t/8AORnm
+L/nGf80tP87aYJtQ8s6gEsPP3llGoL/TS1SUB2E8BJkhbxqhPF2xUv6tPKHmzy7578r6D5y8p6pD
+rXlvzLZRaho2pwGqSwTLyU+II6Mp3UgggEEYsWR4q7FX4k/85S/8+/8A/nJL88vz687fmTp3mPyd
+caB5gmt4vL/1y8u7aaz060gSGCCSFbWUcl4lmKsQzMW2rim3q/8Azi7/AM+zNO/KTzpoP5mfmr5y
+t/OfmXyvci98u+WtIgeHS7e7Qfurmeaf97cNESWReCKGAY8qYrb6Y/5+AyzQf84ffnc8DFXfTLGK
+Qjr6cup2iSD6VYg4qH44+VvNT+Qf+fafn21hNL385/zSPl+IioItLS3tbi5Ne4ZLNk+TYr1eIfkr
+/wA486t58/LD87fzw1nTpv8AAf5UeWdRl0x6Mq6nrvo0hhVgQTHac/XlKmlQiH7TUUvuX/nEjzFb
+/lB/z7z/AOclfzTtZ4n13V9U1DS7QBqSJcyWlpplkGpvUSXZkA8DXFHV9Ff8+mPy5k8s/kb5q8/X
+ScZ/zG8wGOwYjc2GiobSM1PYztPipfFv5V/mD5M0r/n4L+d/51fmt5ih0Xy9+W2oebdUSa4rJJNN
+DKNEsrW3iHxySenLSNFBPwjsCcV6PmD/AJyz/wCckdQ/5yh/NZfO0eiy6FoOk2aaJ5L0It610tqs
+7yCSbht688klSqVA+FQWpUqQiPza/wCca9S/J+5/5x38pebkls/Ov5uWian5sspWpHp0eoalFZ2t
+lQdJIYSWmP8AvxivRQSq+g9V1zyrqv8Az8wvdU886hp/lnyN+WfmuSGS41CRYrO00/yXpbLaKS/i
+9opVRUsxoASd1HRiX/OZn/OUWl/85b/mp5G8seWoZdG/LHyxqf6L0bUr5vQmvX1W4ggudSmiaggQ
+IlIw3xBas/EtxVSA+9v+c/PzV/LbVf8AnE/XvIH5O+cNK8w2HkrzP5V8sebbDRrgXUdhaBJZ7OB5
+EqhDNZqAVYiqlTuCMUB5B/ziD+T3/OLn5M/l/wCTf+co/wA8/wAz9D1PzLeWcd95c8sXk8M8Whzs
+7+msVjA8091dqpDbx/umJogYc8VJfqz/AM4//wDOQfk3/nI7ytrHnTyHpWuWPl3TNYn0i1v9as/q
+YvzAiO1xa/G/OL4+NTQhgVIBGKH/1/v5irsVdirsVaO+KvzJ/wCfiv8AziOv5yeTn/NryHpgk/NP
+yJZsdQsbdR6muaPFV5LcgU5T24q8JO5HKP8AaWikP5zwQyhl3BAIOKX6w/8APsz/AJyofyH5rj/5
+x/8AO+pcfJnne7aTyHfXDfBputS1ZrSp2WK9P2R0E1P9+E4qX9AoNcWLeKu6Yqlmpa1o+jQi41jV
+bPSYD0mvZ44E/wCCkZRir56/OnzH/wA49fmr+W3nL8rfOf5x+VNK0jzjYNYXtxBr+mx3MDclkjlj
+5zEco5EVgCKGlDirzL8rv+cK
+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
+tbmNori2lUPHJG4K
+sjq1QwYGhB2OKqdpZWen2ltYWFrDY2NlEkFnZW6LFFDFGAo=
+iRogCg==
+qqBQACgGKorFXYq7FXYq7FX/1/v5irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdir//2f/Y/+AAEEpGSUYAAQIBAMgAyAAA/+0SbFBob3Rvc2hvcCAzLjAAOEJJTQQE
+AAAAAAAoHAIAAAIAAhwCBQAcd2l0aCBncmFkYXRpb24gQmxhY2sgSUYgTG9nbzhCSU0D7QAAAAAA
+EADIAAAAAQABAMgAAAABAAE4QklNA/MAAAAAAAgAAAAAAAAAADhCSU0ECg==
+AAAAAAABAAA4QklNJxAAAAAAAAo=
+AAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAA
+AQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0EFAAAAAAABAAAAAI4QklN
+BAwAAAAAEU8AAAABAAAAgAAAAIAAAAGAAADAAAAAETMAGAAB/9j/4AAQSkZJRgABAgEASABIAAD/
+/gAnRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcKggNC4wAP/uAA5BZG9iZQBkgAAAAAH/
+2wCEAAwICAgJCAwJCQwRCwo=
+CxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0O
+DRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
+DAz/wAARCACAAIADASIAAhEBAxEB/90ABAAI/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcI
+CQo=
+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
+wjGvZ/4K
+2z/rS4X6k5zsH629OeCQ3Ie7EsA7ttadk/8AX6qXL1v6wdK/bPRczpe/0jlVOY2yJDXcscR/XC4L
+oH+LXrtHWMXL6ldj1UYVzL/0D3WPsdWd7Gt31Utrqe76e73pKbP+NCzq2Xm9N6AwUuwupvb6Ffu9
+R17HBjvtD/osxGevVZ7Gf6RN1To31p6T0vI611z6z3tqw6w4YuAwVNLpFdFLXwyva611df8ARV1H
+WPqyepdf6R1puU6g9KNhdUGh3qCwD27yf0XG2z2P31/6NG+tXRsjrfQ7+n41jKr3OrsqdaN1ZdVY
+y9rLmj/Bv9PY5JTwPSj1ir62YGd1jPtsz6sO7qXVmT+ixsUsLacJlP8AN12P9luR7Gen+j9P/TWZ
+mP8AW36wWdH6j9mtuF2Xc/P6jlBxAxqLTXRjYmI95/R23WHZ7Pfs/R4/0LLaups/xadVu9bKf1xz
+eodRre3qz/RD2W7yHCir31PpxWtbXTs/0df6P0P5lal/1Aw/+bX7Aw8g4/q21XZeYWB9lrq3Nsdu
+Eta36H6L/B0pKeM6n9bev9U6ZgdKwr7mMAx8TK6gyWWX5j2tc+pl/wBP06vp2bf0l/07P0P88VvU
+ck/VT62fWW+97reo2jApYHEM2t2Y3qsZO3c6u7/MqXV9R+qT8e76uU9Fx2HD6Xlm3JFj9p2ub78l
+7vp3Xbv/AAX/AIL+bwHf4q+tWYz8GzqdTsHD9T9l0Oa4ibHF7nZejdj7Gu/SPr9az/R/ov0SSnQ+
+rWW7oXX8npGVe5nT6ej42Yyp7ia6vQa2vLfW0/Q9R7rLrdn84tj6hZ/V+q9Ht6t1N5Lc/JtuwqSA
+PSx59Oqr2hv5zH/SXJfXnouTVV0bBuz7OofWTPtsxBkhrag7GuP6Wq2ur3fZ6LbWbN7/APuT/gv0
+dfpeDh0YOFRhY42041baqx/JYNjfyJKTpJJJKf/W9VSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklP
+KdE+r3Usj6y5X1o6+1rMhu7G6ViNIeKKAXM9Yvbu/TXs3f8Ab13+k9Knq0kklKSSSSU//9kAOEJJ
+TQQGAAAAAAAHAAYAAAABAQD//gAnRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcKggNC4w
+AP/uAA5BZG9iZQBkQAAAAAH/2wCEAAICAgICAgICAgIDAgICAwQDAgIDBAUEBAQEBAUGBQUFBQUF
+BgYHBwgHBwYJCQo=
+Cg==
+CQkMDAwMDAwMDAwMDAwMDAwBAwMDBQQFCQYGCQ0K
+CQo=
+DQ8ODg4ODw8MDAwMDA8PDAwMDAwMDwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCADI
+AMgDAREAAhEBAxEB/90ABAAZ/8QBogAAAAcBAQEBAQAAAAAAAAAABAUDAgYBAAcICQo=
+CwEAAgIDAQEBAQEAAAAAAAAAAQACAwQFBgcICQo=
+CxAAAgEDAwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLx
+JUM0U5KismNzwjVEJ5OjszYXVGR0w9LiCCaDCQo=
+GBmElEVGpLRW01UoGvLj88TU5PRldYWVpbXF1eX1ZnaGlqa2xtbm9jdHV2d3h5ent8fX5/c4SFho
+eIiYqLjI2Oj4KTlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+hEAAgIBAgMFBQQFBgQIAwNtAQAC
+EQMEIRIxQQVRE2EiBnGBkTKhsfAUwdHhI0IVUmJy8TMkNEOCFpJTJaJjssIHc9I14kSDF1STCAkK
+GBkmNkUaJ2R0VTfyo7PDKCnT4/OElKS0xNTk9GV1hZWltcXV5fVGVmZ2hpamtsbW5vZHV2d3h5en
+t8fX5/c4SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6/9oADAMBAAIRAxEA
+PwD7+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9D7+Yq7
+FXYq7FWmIUFiQANyT0AxV8b+fv8AnPv/AJxW/LrWrry9q/5mRavq9hKYdQttAsrvVkgkXqrz2sTw
+1HQgOSO+K09V/KD/AJyU/JL890uV/K/z/YeYdQskEl9oTrLZ6jCh/bazukimK9uSqV98Ve6Yq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9H7+Yq7FXYq7FX4yf8APz3/AJyq1ry3Jb/8
+46/l9q0ulXmp2KX/AOZ+sWjtHcLZ3Ira6YjrQp66D1JipqU4p9l2xSA/DNVVFCqoVV2VQKADwAxS
+n3lfzP5j8k+YtH82+UdauvL3mbQLhbrRtas3KTQSqex7qw2ZTVWBKsCCcVf1X/8AOJP/ADkDaf8A
+OSH5L6B58eOG08z2jvpHnjS4T8FvqtqF9VkHURzoyzID0VwOoOLF9NYq7FWNebfOPlbyF5d1Tzb5
+z16y8s+WtFiM+p6zqEqwwRINhVm6knZVFSTsATir480P/n49/wA4k675kXy5H+YdxpnrSrBa69qe
+l3tnpsrseK/6TLEBGpP7UoRffFX3Fb3EF3BDdWsyXNtcxrLb3ETB45I3HJXRlJBBBqCOuKq2KuxV
+2KuxV2KuxV2KuxV2KuxV2KuxV//S+/mKuxV2KuxV/IR/zkt5rvvO3/OQv50+ZL+dp5bvzhqttAzG
+vG3sZ2s7eMeyRQKo+WLIPEcVdir9i/8An0F5svYfOH5z+Qy/LTL/AEjTfMMcZ/YuLWd7SRh/rpMg
+P+qMUF+7WKHYq/nn/wCfqH506z5p/OGy/Ja0u5IfKP5bWdrfanYI/wC7utZ1GEXAmkA6+hbyIqA1
+oXc9TikPyxIBqDuD1B98Uv37/wCfUf526t5v8geb/wAnfMWovf3P5ZSW155RkmLPIujX5kU23M1q
+ttPGQgPRXVR8Kiigv1rxQ7FXYq7FXYq7FXYq7FXYq7FXYq7FX//T+/mKuxV2KuxV/IJ/zkj5WvfJ
+n/OQX50+XL+FoJrLzjq08SOKFoL24a8t3Hs8UysPY4sg8VxV2Kv2I/59BeVb2bzp+c/nnhTTNO0X
+TdAWU/tXF1cPdso8eKQK
+T/rDFBfu7ih2Kv5dP+fiehXuh/8AOXn5oveI4i1+PSNW02VgQJLeXTreGqk9QskDp8xiyD4lxV+w
+f/PoHy7qU3n385vNqxMNGsdB03RpLj9k3dzcvchB3JWOCg==
+nw5DxxQX7xYodirsVdirsVdirsVdirsVdirsVdir/9T7+Yq7FXYq7FX4p/8AP0L/AJxc1nVryD/n
+I/yJpUupC1sotP8AzS021RpJkhthxtdUCAkssafupqCqqEf7KuQpD8RFYMoZSGVtww3BHscUpx5f
+0DXPNmu6T5Y8saTc695j165Sz0bRbJDJcXM7mioij7yTso3JABOKv6rP+cQP+ce4P+ccPyV0PyTd
+NDcebdTkfWfPmoQUKS6pdKvOJG/aS3RUhQ9wvLblixfUeKuxV8Df85x/84bJ/wA5OeXtJ8weU7y2
+0b81vJkMsOiXN4WW01Kxkb1HsLl1DGOj/HFJxPFiQRxYkKQX40aF/wA+8v8AnLfWvMcfl64/K8+X
+Y/WEd15j1TUbEabAlaNKZbeeZ5FHWkaMx8MVt/QT/wA4xf8AOPXlz/nGr8rdN/L/AES4/Supyyvq
+Pm7zIyem+o6lMAJJeO/GNFVY41rsiitWqSofQ+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//9X7+Yq7
+FXYq6uKvlD82f+c1f+cZvyjuL7RfN35j2Wpa7bKVu/K+hxSavditQY5VtVeOMnoVldcVp+QP5jfm
+1/z7R8/eYrrXX/JL8w/L11eymW9uPLJg0m2mdjUv9SW/MKE9+CL9+Kd31d/zjF/zkL/z7c/LCR38
+h21z+WXmS8X0LjzH5xsLye/kRuqfpIm7jiQ91V0U9xir9X/LXmvyx5y0uHW/KPmLTfM+j3ABh1TS
+rqK7gaorT1IWZa07VxQ/PP8A5y//AOfhemf845+b5Pyw8oeTR5x8/wBpZ299rNxqU72mmWEd2vqQ
+IfTVpZ5GSjELxUA7vWoCkB+ZHmH/AJ+df85YeZbuf9C+Y9A8pwyE+np+i6Nb3DIv/GS++tufnTFa
+edf9D9/85di5Zj+duoCdTVrc6fpVAfAx/U9vuxTT2LyH/wA/SP8AnJnyxext5tby9+ZWliizWl/Y
+JplzQdSlzp6xqD/rRN8sVp+x3/OMn/OZP5Vf85OWU1p5ekn8s+e9Ng9fWvIGqMv1tIxQGe1lX4Lm
+EE05LRh+2i1FVjT64BB3GKuxV2KuxV2KuxV2KuxV2KuxV2KuxV//1vv5irsVaY8QSdgOpOKv59/+
+c6P+c9/MXnrX9c/KL8ltfm0L8vNGlk0/zN5v06RorvXrmM8ZoredKNFaIwKVQgzbmvp0DKQH5VWG
+n3l/d2umaTYT6hqF9KIrLTbOF5p55G6JHFErO7HwAJxS9h1P/nGz/nIXRtKj1zVfyP8AO9npUqeo
+t42i3bAIRWroiM67b/EoxW3jLo8M01vMjRXFuxS4t5FKSRsOquhoVI8CMVZr+X35l/mD+VGtxeYv
+y2846p5M1ZGVpJ9MnMUc/E7LcQGsU6/5MiMMVfqb+T//ADnJ+R35xapoui/85nflN5Sv/Mlui2el
+/m9JpEFzalQaquoQvG8lsCT9qMtECalYxU4op+1Pk3yl+XGi6ZZXfkDy15c0vR7uBJNPu9As7SG3
+mgcVR45LZAo=
+6sNwQSDihiX5o/8AOPv5N/nHpF7pH5g/l9o+ti8QqurC3SDUYH7SQXsIWeNgdwQ1D0II2xV/Ml/z
+lZ/zjprH/OMv5r33ka6updW8t6lANV8jeYZVCg==
+93pzsU4yhdhNA4MclAAdnAAYDFkHinkjzr5m/Lfzd5e8+eTNSk0nzP5WvEvtIvYyR8abNG4H2o5U
+JSRTsysQcVf15fk3+ZWl/nD+VvkX8zdHVYrPzlpEGoNbKeXoTsONzbknqYZleM+64sXpeKuxV2Ku
+xV2KuxV2KuxV2KuxV2Kv/9f7+Yq7FXxB/wA/Bvzmu/yc/wCcbvM0uiXb2Xmnz9PF5T8vXUVPUhN8
+rtdzrXoUtY5eJG4YqcVD+XdFVFVEFEQBUXwA6DFk/f3/AJ9a/wDOPGkeXPy5k/P7X9OiuvN3n2S4
+tvJ9zMnJ9P0a2ka3doSfsvdSo5ZgKmMIK0LVUF+tQxQ+dPzr/wCcVPyO/P2zuE/MDyTavrkikW3n
+LTQLHWIGpRWF3EA0gA/YlDp/k4q/CD/nKD/n33+af5AJf+a/LTS/mZ+V9vWSbX7KHjqWmR7f8dGz
+SvwjvNDVKCriPFkC+AgQyhlYFWFVYdCD4Yq/Z7/n0j5x/NK91z8wfJMlze6l+Tuh6XHdwJcFntdM
+1qadeEFo7VCevEZHkiU0+EPQE1ZQX7k4ofkh/wA/dfKFpfflN+WnnoW6/pLy15pbSjdgfF9V1W0k
+d4yfD1bWM4pD8CDil/Sd/wA+t9Yn1P8A5xS020mkaRfL/mnXNPtgTXjG0yXYUe1bg4oL9GMUOxV2
+KuxV2KuxV2KuxV2KuxV2Kv8A/9D7+Yq7FX4f/wDP4LzHcm//ACL8oK5FmsOt63PH/NMDa20RP+qr
+SU/1sUh+KszFYZWHVUY1+g4pf2F/84+6Pa6B+RX5N6PZoEt7DyVoUaKBQVNhCzH6SScWL1/FXYqt
+dEkVkdQ6OCrowqCD1BB6jFXxT5n/AOfeX/OJ3mvzTdebL/8ALZrG71CdrnUNL0rUr7T9Ollc1dvq
+ltMkcfI9RGFHtim31V5I8heTPy28u2PlLyF5a0/yn5b06ptdI02FYYgxpydqbu7U+J2JZu5OKGXY
+q/M//n65LGn/ADjBp8bkc5vPGjCIHrVYbtjT6BikP5ysUv6Rv+fWFkbX/nFW2uGFBqfm7XblT4hZ
+I4P1xYoL9H8UOxV2KuxV2KuxV2KuxV2KuxV2Kv8A/9H7+Yq7FX4S/wDP4HT5o/OX5G6sVItrjRdc
+tFftzhuLSQj7pBiyD8cJE9SN17upX7xir+u//nFvzPbecf8AnHP8k/MNrKsyXfk3SYJXXoJrS2S1
+nU+6yRMp9xixL3rFXYq7FXYq7FXYq/Iv/n715gjtfyr/ACn8riQCfXPNs+oejXcxadYyIzU8A90g
++nFIfgaffYdzil/VD/zgH5Yl8q/84kfk5aXMHoXWradc63OniNVvZ7yI/wDIqVMUF9i4odirsVdi
+rsVdirsVdirsVdirsVf/0vv5irsVfln/AM/YvIVz5i/Ifyt53s7Yzyfl15nhk1CRRvHY6rGbORj7
+euYK
+4pD+ebFL+hX/AJ9RfmnH5n/JXzD+V95cKdW/LHWZJLGBn+NtL1hnuomCnei3HrqadNvHFBfqhih2
+KsZg86eT7rVn0C282aNc66jFH0WK/t3uwy9VMCuXqKdKYqybFXYq7FX89v8Az9p86w6z+eHkXyVb
+TGRfI/lU3F/F2judYuDJT5+jbxn6RikPy2sNMu9a1DT9F09DLf61dQafYRCpLT3UiwxCg8WcYpf2
+ZeRvLFt5J8l+UfJtmVa18qaNY6RA6jiGWyt0gDAe/CuLFlOKuxV2KuxV2KuxV2KuxV2KuxV2Kv8A
+/9P7+Yq+C/8AnKL/AJz9/LL/AJxw1l/JNvpF1+Yf5jRwpNfeXLCZLa209ZVDxfXrt1k4M6kMsaI7
+U3IUEEqafCPnr/n5/wCTPzc/Ljzp+Wf5i/kRqFrpPnPSrjTZ7vSdbhuzC8i/up1jntrY8opArr8X
+UYrT8elDBVDHkwA5N0qe5pil9U/84a/n0P8AnHf89fLnnDUp5I/JmtI2g+fo0UtTTbplIueIBJNt
+MqS7Cg==
+lQyj7WKl+5Xmz/n5P/ziT5ZspbjT/Pl550u0X93pmg6TeySOew9W5it4R9MmKKfl/wD85I/8/L/z
+L/Nqx1Hyf+V2nzflR5KvlaG91NJxJr99Awo=
+MjXEVEtFbuISXpt6lKjFNPgP8tfy88+fmd520jyr+V+h3uted72YS6e2nlo5bZlNfrk10Cv1dIz8
+TSswp48qAqv7A/IOkeYNA8j+T9D816z/AIi8z6PothZeYde3/wBMvYLdI7ifcAn1HBap3PffFiy3
+FWjir+Rv/nKv8xG/NT/nIv8AN3zokyz2N15gn0/RpFNVNjpQGn2xU+DJAG+nFkHov/OA/wCWp/M3
+/nKX8trSe1F1pHk6eXzZrlRVFj0tOVtyH+VdtCMVL+i/83/+ckPyW/IW48uWv5r+eLfypcea2m/Q
+0T29zcs0dvxEs0i2sUpjjQuoLvRanr1osXs1hf2WqWVnqWnXUd7p+owR3VhewsHimhmUPHIjDYqy
+kEEdRiqLxV4d/wA5GfnZon/OP35Rea/zM1dUup9KhW38vaQzBTf6pcn07S2XvQueTkbhFZu2Kvxu
+/wCffX/OTn5v+cP+cqH0P8wvP+r+atN/NPT9Ve70m+uXksbbULWJr+GSzt2JS3VUikjCRhRxIBrQ
+YpL+gLFDsVdirsVQpvrMXY083cIv2iNwtj6i+sYg3EyCOvLjXatKVxVEg1xVvFX/1Pv2cVfi/wDn
+p/z6185/mD+aHnj8wPJv5uaWlp521a51qXTfMNpcm4t57uQyPCLi3ZxJGpNEJQELRd6VxSC+VvNH
+/PrX/nKTQkaXRE8qedkViBFpuqm1mI8eN/Fbp/w+KbfLf5if84v/APOQX5TaTe+YPzB/KfW/Lvl7
+T3jS/wDMJWG6sYTK4jQyXFrLMihnYKCSBUgd8VeEYq9E/K38qPPv50ebIfI/5b6LHr/me4t5buLT
+ZLy1sqww09Vw93LEp4g1IUlqVNKA4q/T78pf+fSfnPUp7bUPzr8/2PlrTaK83lvyuDe3z7gtG95c
+IkMW2xKJJ7eOKLfsJ+T35EflV+Q/l7/Dn5YeUrXy9bTcTqWo7zX986/t3d3KWllPWgZuK9FCjbFD
+1/FXYq+f/wDnKf8AM5fye/5x+/NLz6jhdQ0zRZbXQ15cWbUdQIs7TifESzK23YHFX8jCKURVLFyo
+ALnqduv04sn7u/8APpD8qW03yd+Yn5y6haGO582X0flzy3cN1Nhpp9S7dR4SXLhSaf7qxQXxv+a/
+6S/5zO/5z9n8kw3M0/lhfMn+F7NQ5aO28v8Al/k2pSxb/D6xhneo/adcUv6RtP0+y0mwsdL022Sy
+07TbeK0sLOIcY4oIVCRxqOwVQAMWKMxV+DH/AD9C/NTT/wAw/wA1vyv/ACG0jzTY2Og+XHjv/N+s
+yTL9SstR1SQW8ctzICQPqdqHkYdvUp1xSHrHmD/nGby1+Tkmhf8AOYH/ADiCh/OW88s6VaWXl78v
+NKEd7ptzM9n+irzVzLaSieUrEXlkt4xyMxLVCg==
+GXFFv0K/5xi/M38zvza/Kux83/m1+Wsv5WebJr66tToEqzRevbwMBFdpBcgTQrJUgLJU/DyBKsMV
+L6FxV5z+bmp+e9G/LPztqf5Yadp+rfmFZ6VM/k/TdUlWC0mvyOMSyO7xruTsGZQTQEgGuKvB/wDn
+EPzf/wA5R+afK3mp/wDnKHyVZeUdX0y/hj8r3sMcNtPfW7Rs1w01vBPPGgibiFYFeVTt8NSq/Mn8
+o/NOs/8AORf/AD8/vPzB8s3dwfLXlG71Fl1G2kf0hoGjWT6ZCCQQPTvLhlbj0Jevvikv3ruLm2so
+JLm7uI7W2i3lnmcIijxLMQBv44oVkdZFV0YOjgMjqagg7ggjrXFX/9X7+Yq7FXYqkPmjyzoXnPy7
+rflPzPpsOseXvMVlNp+s6ZcLyjmt50KOhHyOxG4O43xV/KR/zlP/AM46a/8A84z/AJqal5Jv/Wvv
+K2o89Q/L/wAxyDa+0xmoqu3T17ckRyjxo/2XXFk8Q8o+bPMXkPzRoHnXyjqcmjeZvK97HqGianF1
+jmiO1R+0jglXU7MpKnY4q/qz/wCcWv8AnIvy5/zkt+V2m+dtKEVh5hseNh568sq1X07U0UF1AJqY
+ZR+8hY9UP8wYBYvpHrirsVdir8Vf+fuX5rrHYflp+SWnz/vL2aTzd5mRWG0VvztdPjcD+eRpX3/k
+GKQ/E2w0+/1a/sNI0u3a71TVrmGx0y1QVaW5uHWKGMe7OwGKX9XumaJpn/OKv/OJkum20sduv5Te
+RLu5ubtD8M2pxWslxPMCdyZrtmb/AGWLF+Sv/PtrSLfyp5U/5yW/5yb1q5QX3kHyzc6dpN3cqH/0
+t7Z9TvJSzVqzNHAtD15N44pKP/IL/n4v5/8Ay+/Jf8yPMH5t+YJPzU89ajrsFr+VWg3vpQzetLbN
+NqM11JAiFLKBni4gCg==
+8iY46DdFafTn/OIn51fmb/zmv+T3/ORvkP8ANjW7XR5EtYtL0zzroVt9QltIdatrrkvprIAfqxhD
+KeQLK1GNfixQX5tf84Uf84seVf8AnI384POXlXzLreoS+QfINnJfXWraNxtH1Nze/VrVQ0iymFLh
+FeXb4wBTlXfFkXuv/OTFrqfl7/nIf8pv+cOv+cWr3VPyv0TyneWRWPRtSu4zJ5g14peXGo3cvrc5
+mtrUJIfUY/tgCg==
+GmKvsD/n4v8A85Mfmn/zj/pf5O+WPyr82fo7zf5ge8vtd1JrK1uZbu205IIo0aKaN0UXE8xLBFBP
+HiCBigB5B/zkJ/z9D8x+TL/Q/KX5TaHoWseYvL9taP8Amd5jv1ln01tTWFGvdM05I5I2KRS843nL
+ncUQNTkVaYT/AM/Ivzr1380Lb/nHr8nPLkZtL3zvpGlecPMPl2GZif0jraxwaVZTEUqI2kkbcbko
+1NsVDHv+cxfMf/OZ/wCSOg+XfI175uvvLn5KeW9M0zyh5e826ZqNsLzzNOumgXU95LzN8Wcxygo=
+cVREAryJ5lUPNfyK/wCcc/8AnIL8qfy90j/nLHTvzNsvyh/LiCwi1/XY4ri7GqX+jWlxyitXsUgM
+M312gWFJH4n1FLUxS8c/P780/wA2Pz70U/m/+ZvngWWl+aNcl0/8sPyXtZpZF+qW7lLi5is4yI1i
+t3Ig9eVTJPNyVBxVuKof0L/84c+SfOX5ef8AONX5TeU/P0lwfNOn6S81/aXTtJNZx3dxLc29m5fc
+G3hlSIr+yV4jYDFi/wD/1vv5irsVdirsVfOH/OUX/OOfln/nJb8rtR8kawY9P1+zLX/kjzOV5Sab
+qSKQjmm5ilH7uVP2lP8AMqkK
+v5T/ADr5M8zfl15t8weRvOWlyaL5o8r3j2OsadJ+xIm4dG6PHIpDo42ZSCOuLJ7R/wA4t/8AORnm
+L/nGf80tP87aYJtQ8s6gEsPP3llGoL/TS1SUB2E8BJkhbxqhPF2xUv6tPKHmzy7578r6D5y8p6pD
+rXlvzLZRaho2pwGqSwTLyU+II6Mp3UgggEEYsWR4q7FX4k/85S/8+/8A/nJL88vz687fmTp3mPyd
+caB5gmt4vL/1y8u7aaz060gSGCCSFbWUcl4lmKsQzMW2rim3q/8Azi7/AM+zNO/KTzpoP5mfmr5y
+t/OfmXyvci98u+WtIgeHS7e7Qfurmeaf97cNESWReCKGAY8qYrb6Y/5+AyzQf84ffnc8DFXfTLGK
+Qjr6cup2iSD6VYg4qH44+VvNT+Qf+fafn21hNL385/zSPl+IioItLS3tbi5Ne4ZLNk+TYr1eIfkr
+/wA486t58/LD87fzw1nTpv8AAf5UeWdRl0x6Mq6nrvo0hhVgQTHac/XlKmlQiH7TUUvuX/nEjzFb
+/lB/z7z/AOclfzTtZ4n13V9U1DS7QBqSJcyWlpplkGpvUSXZkA8DXFHV9Ff8+mPy5k8s/kb5q8/X
+ScZ/zG8wGOwYjc2GiobSM1PYztPipfFv5V/mD5M0r/n4L+d/51fmt5ih0Xy9+W2oebdUSa4rJJNN
+DKNEsrW3iHxySenLSNFBPwjsCcV6PmD/AJyz/wCckdQ/5yh/NZfO0eiy6FoOk2aaJ5L0It610tqs
+7yCSbht688klSqVA+FQWpUqQiPza/wCca9S/J+5/5x38pebkls/Ov5uWian5sspWpHp0eoalFZ2t
+lQdJIYSWmP8AvxivRQSq+g9V1zyrqv8Az8wvdU886hp/lnyN+WfmuSGS41CRYrO00/yXpbLaKS/i
+9opVRUsxoASd1HRiX/OZn/OUWl/85b/mp5G8seWoZdG/LHyxqf6L0bUr5vQmvX1W4ggudSmiaggQ
+IlIw3xBas/EtxVSA+9v+c/PzV/LbVf8AnE/XvIH5O+cNK8w2HkrzP5V8sebbDRrgXUdhaBJZ7OB5
+EqhDNZqAVYiqlTuCMUB5B/ziD+T3/OLn5M/l/wCTf+co/wA8/wAz9D1PzLeWcd95c8sXk8M8Whzs
+7+msVjA8091dqpDbx/umJogYc8VJfqz/AM4//wDOQfk3/nI7ytrHnTyHpWuWPl3TNYn0i1v9as/q
+YvzAiO1xa/G/OL4+NTQhgVIBGKH/1/v5irsVdirsVaO+KvzJ/wCfiv8AziOv5yeTn/NryHpgk/NP
+yJZsdQsbdR6muaPFV5LcgU5T24q8JO5HKP8AaWikP5zwQyhl3BAIOKX6w/8APsz/AJyofyH5rj/5
+x/8AO+pcfJnne7aTyHfXDfBputS1ZrSp2WK9P2R0E1P9+E4qX9AoNcWLeKu6Yqlmpa1o+jQi41jV
+bPSYD0mvZ44E/wCCkZRir56/OnzH/wA49fmr+W3nL8rfOf5x+VNK0jzjYNYXtxBr+mx3MDclkjlj
+5zEco5EVgCKGlDirzL8rv+cK
+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
+tbmNori2lUPHJG4K
+sjq1QwYGhB2OKqdpZWen2ltYWFrDY2NlEkFnZW6LFFDFGAo=
+iRogCg==
+qqBQACgGKorFXYq7FXYq7FX/1/v5irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdir//2f/Y/+AAEEpGSUYAAQIBAMgAyAAA/+0SbFBob3Rvc2hvcCAzLjAAOEJJTQQE
+AAAAAAAoHAIAAAIAAhwCBQAcd2l0aCBncmFkYXRpb24gQmxhY2sgSUYgTG9nbzhCSU0D7QAAAAAA
+EADIAAAAAQABAMgAAAABAAE4QklNA/MAAAAAAAgAAAAAAAAAADhCSU0ECg==
+AAAAAAABAAA4QklNJxAAAAAAAAo=
+AAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAA
+AQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0EFAAAAAAABAAAAAI4QklN
+BAwAAAAAEU8AAAABAAAAgAAAAIAAAAGAAADAAAAAETMAGAAB/9j/4AAQSkZJRgABAgEASABIAAD/
+/gAnRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcKggNC4wAP/uAA5BZG9iZQBkgAAAAAH/
+2wCEAAwICAgJCAwJCQwRCwo=
+CxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0O
+DRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
+DAz/wAARCACAAIADASIAAhEBAxEB/90ABAAI/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcI
+CQo=
+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
+wjGvZ/4K
+2z/rS4X6k5zsH629OeCQ3Ie7EsA7ttadk/8AX6qXL1v6wdK/bPRczpe/0jlVOY2yJDXcscR/XC4L
+oH+LXrtHWMXL6ldj1UYVzL/0D3WPsdWd7Gt31Utrqe76e73pKbP+NCzq2Xm9N6AwUuwupvb6Ffu9
+R17HBjvtD/osxGevVZ7Gf6RN1To31p6T0vI611z6z3tqw6w4YuAwVNLpFdFLXwyva611df8ARV1H
+WPqyepdf6R1puU6g9KNhdUGh3qCwD27yf0XG2z2P31/6NG+tXRsjrfQ7+n41jKr3OrsqdaN1ZdVY
+y9rLmj/Bv9PY5JTwPSj1ir62YGd1jPtsz6sO7qXVmT+ixsUsLacJlP8AN12P9luR7Gen+j9P/TWZ
+mP8AW36wWdH6j9mtuF2Xc/P6jlBxAxqLTXRjYmI95/R23WHZ7Pfs/R4/0LLaups/xadVu9bKf1xz
+eodRre3qz/RD2W7yHCir31PpxWtbXTs/0df6P0P5lal/1Aw/+bX7Aw8g4/q21XZeYWB9lrq3Nsdu
+Eta36H6L/B0pKeM6n9bev9U6ZgdKwr7mMAx8TK6gyWWX5j2tc+pl/wBP06vp2bf0l/07P0P88VvU
+ck/VT62fWW+97reo2jApYHEM2t2Y3qsZO3c6u7/MqXV9R+qT8e76uU9Fx2HD6Xlm3JFj9p2ub78l
+7vp3Xbv/AAX/AIL+bwHf4q+tWYz8GzqdTsHD9T9l0Oa4ibHF7nZejdj7Gu/SPr9az/R/ov0SSnQ+
+rWW7oXX8npGVe5nT6ej42Yyp7ia6vQa2vLfW0/Q9R7rLrdn84tj6hZ/V+q9Ht6t1N5Lc/JtuwqSA
+PSx59Oqr2hv5zH/SXJfXnouTVV0bBuz7OofWTPtsxBkhrag7GuP6Wq2ur3fZ6LbWbN7/APuT/gv0
+dfpeDh0YOFRhY42041baqx/JYNjfyJKTpJJJKf/W9VSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklP
+KdE+r3Usj6y5X1o6+1rMhu7G6ViNIeKKAXM9Yvbu/TXs3f8Ab13+k9Knq0kklKSSSSU//9kAOEJJ
+TQQGAAAAAAAHAAYAAAABAQD//gAnRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcKggNC4w
+AP/uAA5BZG9iZQBkQAAAAAH/2wCEAAICAgICAgICAgIDAgICAwQDAgIDBAUEBAQEBAUGBQUFBQUF
+BgYHBwgHBwYJCQo=
+Cg==
+CQkMDAwMDAwMDAwMDAwMDAwBAwMDBQQFCQYGCQ0K
+CQo=
+DQ8ODg4ODw8MDAwMDA8PDAwMDAwMDwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCADI
+AMgDAREAAhEBAxEB/90ABAAZ/8QBogAAAAcBAQEBAQAAAAAAAAAABAUDAgYBAAcICQo=
+CwEAAgIDAQEBAQEAAAAAAAAAAQACAwQFBgcICQo=
+CxAAAgEDAwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLx
+JUM0U5KismNzwjVEJ5OjszYXVGR0w9LiCCaDCQo=
+GBmElEVGpLRW01UoGvLj88TU5PRldYWVpbXF1eX1ZnaGlqa2xtbm9jdHV2d3h5ent8fX5/c4SFho
+eIiYqLjI2Oj4KTlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+hEAAgIBAgMFBQQFBgQIAwNtAQAC
+EQMEIRIxQQVRE2EiBnGBkTKhsfAUwdHhI0IVUmJy8TMkNEOCFpJTJaJjssIHc9I14kSDF1STCAkK
+GBkmNkUaJ2R0VTfyo7PDKCnT4/OElKS0xNTk9GV1hZWltcXV5fVGVmZ2hpamtsbW5vZHV2d3h5en
+t8fX5/c4SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6/9oADAMBAAIRAxEA
+PwD7+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9D7+Yq7
+FXYq7FWmIUFiQANyT0AxV8b+fv8AnPv/AJxW/LrWrry9q/5mRavq9hKYdQttAsrvVkgkXqrz2sTw
+1HQgOSO+K09V/KD/AJyU/JL890uV/K/z/YeYdQskEl9oTrLZ6jCh/bazukimK9uSqV98Ve6Yq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9H7+Yq7FXYq7FX4yf8APz3/AJyq1ry3Jb/8
+46/l9q0ulXmp2KX/AOZ+sWjtHcLZ3Ira6YjrQp66D1JipqU4p9l2xSA/DNVVFCqoVV2VQKADwAxS
+n3lfzP5j8k+YtH82+UdauvL3mbQLhbrRtas3KTQSqex7qw2ZTVWBKsCCcVf1X/8AOJP/ADkDaf8A
+OSH5L6B58eOG08z2jvpHnjS4T8FvqtqF9VkHURzoyzID0VwOoOLF9NYq7FWNebfOPlbyF5d1Tzb5
+z16y8s+WtFiM+p6zqEqwwRINhVm6knZVFSTsATir480P/n49/wA4k675kXy5H+YdxpnrSrBa69qe
+l3tnpsrseK/6TLEBGpP7UoRffFX3Fb3EF3BDdWsyXNtcxrLb3ETB45I3HJXRlJBBBqCOuKq2KuxV
+2KuxV2KuxV2KuxV2KuxV2KuxV//S+/mKuxV2KuxV/IR/zkt5rvvO3/OQv50+ZL+dp5bvzhqttAzG
+vG3sZ2s7eMeyRQKo+WLIPEcVdir9i/8An0F5svYfOH5z+Qy/LTL/AEjTfMMcZ/YuLWd7SRh/rpMg
+P+qMUF+7WKHYq/nn/wCfqH506z5p/OGy/Ja0u5IfKP5bWdrfanYI/wC7utZ1GEXAmkA6+hbyIqA1
+oXc9TikPyxIBqDuD1B98Uv37/wCfUf526t5v8geb/wAnfMWovf3P5ZSW155RkmLPIujX5kU23M1q
+ttPGQgPRXVR8Kiigv1rxQ7FXYq7FXYq7FXYq7FXYq7FXYq7FX//T+/mKuxV2KuxV/IJ/zkj5WvfJ
+n/OQX50+XL+FoJrLzjq08SOKFoL24a8t3Hs8UysPY4sg8VxV2Kv2I/59BeVb2bzp+c/nnhTTNO0X
+TdAWU/tXF1cPdso8eKQK
+T/rDFBfu7ih2Kv5dP+fiehXuh/8AOXn5oveI4i1+PSNW02VgQJLeXTreGqk9QskDp8xiyD4lxV+w
+f/PoHy7qU3n385vNqxMNGsdB03RpLj9k3dzcvchB3JWOCg==
+nw5DxxQX7xYodirsVdirsVdirsVdirsVdirsVdir/9T7+Yq7FXYq7FX4p/8AP0L/AJxc1nVryD/n
+I/yJpUupC1sotP8AzS021RpJkhthxtdUCAkssafupqCqqEf7KuQpD8RFYMoZSGVtww3BHscUpx5f
+0DXPNmu6T5Y8saTc695j165Sz0bRbJDJcXM7mioij7yTso3JABOKv6rP+cQP+ce4P+ccPyV0PyTd
+NDcebdTkfWfPmoQUKS6pdKvOJG/aS3RUhQ9wvLblixfUeKuxV8Df85x/84bJ/wA5OeXtJ8weU7y2
+0b81vJkMsOiXN4WW01Kxkb1HsLl1DGOj/HFJxPFiQRxYkKQX40aF/wA+8v8AnLfWvMcfl64/K8+X
+Y/WEd15j1TUbEabAlaNKZbeeZ5FHWkaMx8MVt/QT/wA4xf8AOPXlz/nGr8rdN/L/AES4/Supyyvq
+Pm7zIyem+o6lMAJJeO/GNFVY41rsiitWqSofQ+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//9X7+Yq7
+FXYq6uKvlD82f+c1f+cZvyjuL7RfN35j2Wpa7bKVu/K+hxSavditQY5VtVeOMnoVldcVp+QP5jfm
+1/z7R8/eYrrXX/JL8w/L11eymW9uPLJg0m2mdjUv9SW/MKE9+CL9+Kd31d/zjF/zkL/z7c/LCR38
+h21z+WXmS8X0LjzH5xsLye/kRuqfpIm7jiQ91V0U9xir9X/LXmvyx5y0uHW/KPmLTfM+j3ABh1TS
+rqK7gaorT1IWZa07VxQ/PP8A5y//AOfhemf845+b5Pyw8oeTR5x8/wBpZ299rNxqU72mmWEd2vqQ
+IfTVpZ5GSjELxUA7vWoCkB+ZHmH/AJ+df85YeZbuf9C+Y9A8pwyE+np+i6Nb3DIv/GS++tufnTFa
+edf9D9/85di5Zj+duoCdTVrc6fpVAfAx/U9vuxTT2LyH/wA/SP8AnJnyxext5tby9+ZWliizWl/Y
+JplzQdSlzp6xqD/rRN8sVp+x3/OMn/OZP5Vf85OWU1p5ekn8s+e9Ng9fWvIGqMv1tIxQGe1lX4Lm
+EE05LRh+2i1FVjT64BB3GKuxV2KuxV2KuxV2KuxV2KuxV2KuxV//1vv5irsVaY8QSdgOpOKv59/+
+c6P+c9/MXnrX9c/KL8ltfm0L8vNGlk0/zN5v06RorvXrmM8ZoredKNFaIwKVQgzbmvp0DKQH5VWG
+n3l/d2umaTYT6hqF9KIrLTbOF5p55G6JHFErO7HwAJxS9h1P/nGz/nIXRtKj1zVfyP8AO9npUqeo
+t42i3bAIRWroiM67b/EoxW3jLo8M01vMjRXFuxS4t5FKSRsOquhoVI8CMVZr+X35l/mD+VGtxeYv
+y2846p5M1ZGVpJ9MnMUc/E7LcQGsU6/5MiMMVfqb+T//ADnJ+R35xapoui/85nflN5Sv/Mlui2el
+/m9JpEFzalQaquoQvG8lsCT9qMtECalYxU4op+1Pk3yl+XGi6ZZXfkDy15c0vR7uBJNPu9As7SG3
+mgcVR45LZAo=
+6sNwQSDihiX5o/8AOPv5N/nHpF7pH5g/l9o+ti8QqurC3SDUYH7SQXsIWeNgdwQ1D0II2xV/Ml/z
+lZ/zjprH/OMv5r33ka6updW8t6lANV8jeYZVCg==
+93pzsU4yhdhNA4MclAAdnAAYDFkHinkjzr5m/Lfzd5e8+eTNSk0nzP5WvEvtIvYyR8abNG4H2o5U
+JSRTsysQcVf15fk3+ZWl/nD+VvkX8zdHVYrPzlpEGoNbKeXoTsONzbknqYZleM+64sXpeKuxV2Ku
+xV2KuxV2KuxV2KuxV2Kv/9f7+Yq7FXxB/wA/Bvzmu/yc/wCcbvM0uiXb2Xmnz9PF5T8vXUVPUhN8
+rtdzrXoUtY5eJG4YqcVD+XdFVFVEFEQBUXwA6DFk/f3/AJ9a/wDOPGkeXPy5k/P7X9OiuvN3n2S4
+tvJ9zMnJ9P0a2ka3doSfsvdSo5ZgKmMIK0LVUF+tQxQ+dPzr/wCcVPyO/P2zuE/MDyTavrkikW3n
+LTQLHWIGpRWF3EA0gA/YlDp/k4q/CD/nKD/n33+af5AJf+a/LTS/mZ+V9vWSbX7KHjqWmR7f8dGz
+SvwjvNDVKCriPFkC+AgQyhlYFWFVYdCD4Yq/Z7/n0j5x/NK91z8wfJMlze6l+Tuh6XHdwJcFntdM
+1qadeEFo7VCevEZHkiU0+EPQE1ZQX7k4ofkh/wA/dfKFpfflN+WnnoW6/pLy15pbSjdgfF9V1W0k
+d4yfD1bWM4pD8CDil/Sd/wA+t9Yn1P8A5xS020mkaRfL/mnXNPtgTXjG0yXYUe1bg4oL9GMUOxV2
+KuxV2KuxV2KuxV2KuxV2Kv8A/9D7+Yq7FX4f/wDP4LzHcm//ACL8oK5FmsOt63PH/NMDa20RP+qr
+SU/1sUh+KszFYZWHVUY1+g4pf2F/84+6Pa6B+RX5N6PZoEt7DyVoUaKBQVNhCzH6SScWL1/FXYqt
+dEkVkdQ6OCrowqCD1BB6jFXxT5n/AOfeX/OJ3mvzTdebL/8ALZrG71CdrnUNL0rUr7T9Ollc1dvq
+ltMkcfI9RGFHtim31V5I8heTPy28u2PlLyF5a0/yn5b06ptdI02FYYgxpydqbu7U+J2JZu5OKGXY
+q/M//n65LGn/ADjBp8bkc5vPGjCIHrVYbtjT6BikP5ysUv6Rv+fWFkbX/nFW2uGFBqfm7XblT4hZ
+I4P1xYoL9H8UOxV2KuxV2KuxV2KuxV2KuxV2Kv8A/9H7+Yq7FX4S/wDP4HT5o/OX5G6sVItrjRdc
+tFftzhuLSQj7pBiyD8cJE9SN17upX7xir+u//nFvzPbecf8AnHP8k/MNrKsyXfk3SYJXXoJrS2S1
+nU+6yRMp9xixL3rFXYq7FXYq7FXYq/Iv/n715gjtfyr/ACn8riQCfXPNs+oejXcxadYyIzU8A90g
++nFIfgaffYdzil/VD/zgH5Yl8q/84kfk5aXMHoXWradc63OniNVvZ7yI/wDIqVMUF9i4odirsVdi
+rsVdirsVdirsVdirsVf/0vv5irsVfln/AM/YvIVz5i/Ifyt53s7Yzyfl15nhk1CRRvHY6rGbORj7
+euYK
+4pD+ebFL+hX/AJ9RfmnH5n/JXzD+V95cKdW/LHWZJLGBn+NtL1hnuomCnei3HrqadNvHFBfqhih2
+KsZg86eT7rVn0C282aNc66jFH0WK/t3uwy9VMCuXqKdKYqybFXYq7FX89v8Az9p86w6z+eHkXyVb
+TGRfI/lU3F/F2judYuDJT5+jbxn6RikPy2sNMu9a1DT9F09DLf61dQafYRCpLT3UiwxCg8WcYpf2
+ZeRvLFt5J8l+UfJtmVa18qaNY6RA6jiGWyt0gDAe/CuLFlOKuxV2KuxV2KuxV2KuxV2KuxV2Kv8A
+/9P7+Yq+C/8AnKL/AJz9/LL/AJxw1l/JNvpF1+Yf5jRwpNfeXLCZLa209ZVDxfXrt1k4M6kMsaI7
+U3IUEEqafCPnr/n5/wCTPzc/Ljzp+Wf5i/kRqFrpPnPSrjTZ7vSdbhuzC8i/up1jntrY8opArr8X
+UYrT8elDBVDHkwA5N0qe5pil9U/84a/n0P8AnHf89fLnnDUp5I/JmtI2g+fo0UtTTbplIueIBJNt
+MqS7Cg==
+lQyj7WKl+5Xmz/n5P/ziT5ZspbjT/Pl550u0X93pmg6TeySOew9W5it4R9MmKKfl/wD85I/8/L/z
+L/Nqx1Hyf+V2nzflR5KvlaG91NJxJr99Awo=
+MjXEVEtFbuISXpt6lKjFNPgP8tfy88+fmd520jyr+V+h3uted72YS6e2nlo5bZlNfrk10Cv1dIz8
+TSswp48qAqv7A/IOkeYNA8j+T9D816z/AIi8z6PothZeYde3/wBMvYLdI7ifcAn1HBap3PffFiy3
+FWjir+Rv/nKv8xG/NT/nIv8AN3zokyz2N15gn0/RpFNVNjpQGn2xU+DJAG+nFkHov/OA/wCWp/M3
+/nKX8trSe1F1pHk6eXzZrlRVFj0tOVtyH+VdtCMVL+i/83/+ckPyW/IW48uWv5r+eLfypcea2m/Q
+0T29zcs0dvxEs0i2sUpjjQuoLvRanr1osXs1hf2WqWVnqWnXUd7p+owR3VhewsHimhmUPHIjDYqy
+kEEdRiqLxV4d/wA5GfnZon/OP35Rea/zM1dUup9KhW38vaQzBTf6pcn07S2XvQueTkbhFZu2Kvxu
+/wCffX/OTn5v+cP+cqH0P8wvP+r+atN/NPT9Ve70m+uXksbbULWJr+GSzt2JS3VUikjCRhRxIBrQ
+YpL+gLFDsVdirsVQpvrMXY083cIv2iNwtj6i+sYg3EyCOvLjXatKVxVEg1xVvFX/1Pv2cVfi/wDn
+p/z6185/mD+aHnj8wPJv5uaWlp521a51qXTfMNpcm4t57uQyPCLi3ZxJGpNEJQELRd6VxSC+VvNH
+/PrX/nKTQkaXRE8qedkViBFpuqm1mI8eN/Fbp/w+KbfLf5if84v/APOQX5TaTe+YPzB/KfW/Lvl7
+T3jS/wDMJWG6sYTK4jQyXFrLMihnYKCSBUgd8VeEYq9E/K38qPPv50ebIfI/5b6LHr/me4t5buLT
+ZLy1sqww09Vw93LEp4g1IUlqVNKA4q/T78pf+fSfnPUp7bUPzr8/2PlrTaK83lvyuDe3z7gtG95c
+IkMW2xKJJ7eOKLfsJ+T35EflV+Q/l7/Dn5YeUrXy9bTcTqWo7zX986/t3d3KWllPWgZuK9FCjbFD
+1/FXYq+f/wDnKf8AM5fye/5x+/NLz6jhdQ0zRZbXQ15cWbUdQIs7TifESzK23YHFX8jCKURVLFyo
+ALnqduv04sn7u/8APpD8qW03yd+Yn5y6haGO582X0flzy3cN1Nhpp9S7dR4SXLhSaf7qxQXxv+a/
+6S/5zO/5z9n8kw3M0/lhfMn+F7NQ5aO28v8Al/k2pSxb/D6xhneo/adcUv6RtP0+y0mwsdL022Sy
+07TbeK0sLOIcY4oIVCRxqOwVQAMWKMxV+DH/AD9C/NTT/wAw/wA1vyv/ACG0jzTY2Og+XHjv/N+s
+yTL9SstR1SQW8ctzICQPqdqHkYdvUp1xSHrHmD/nGby1+Tkmhf8AOYH/ADiCh/OW88s6VaWXl78v
+NKEd7ptzM9n+irzVzLaSieUrEXlkt4xyMxLVCg==
+GXFFv0K/5xi/M38zvza/Kux83/m1+Wsv5WebJr66tToEqzRevbwMBFdpBcgTQrJUgLJU/DyBKsMV
+L6FxV5z+bmp+e9G/LPztqf5Yadp+rfmFZ6VM/k/TdUlWC0mvyOMSyO7xruTsGZQTQEgGuKvB/wDn
+EPzf/wA5R+afK3mp/wDnKHyVZeUdX0y/hj8r3sMcNtPfW7Rs1w01vBPPGgibiFYFeVTt8NSq/Mn8
+o/NOs/8AORf/AD8/vPzB8s3dwfLXlG71Fl1G2kf0hoGjWT6ZCCQQPTvLhlbj0Jevvikv3ruLm2so
+JLm7uI7W2i3lnmcIijxLMQBv44oVkdZFV0YOjgMjqagg7ggjrXFX/9X7+Yq7FXYqkPmjyzoXnPy7
+rflPzPpsOseXvMVlNp+s6ZcLyjmt50KOhHyOxG4O43xV/KR/zlP/AM46a/8A84z/AJqal5Jv/Wvv
+K2o89Q/L/wAxyDa+0xmoqu3T17ckRyjxo/2XXFk8Q8o+bPMXkPzRoHnXyjqcmjeZvK97HqGianF1
+jmiO1R+0jglXU7MpKnY4q/qz/wCcWv8AnIvy5/zkt+V2m+dtKEVh5hseNh568sq1X07U0UF1AJqY
+ZR+8hY9UP8wYBYvpHrirsVdir8Vf+fuX5rrHYflp+SWnz/vL2aTzd5mRWG0VvztdPjcD+eRpX3/k
+GKQ/E2w0+/1a/sNI0u3a71TVrmGx0y1QVaW5uHWKGMe7OwGKX9XumaJpn/OKv/OJkum20sduv5Te
+RLu5ubtD8M2pxWslxPMCdyZrtmb/AGWLF+Sv/PtrSLfyp5U/5yW/5yb1q5QX3kHyzc6dpN3cqH/0
+t7Z9TvJSzVqzNHAtD15N44pKP/IL/n4v5/8Ay+/Jf8yPMH5t+YJPzU89ajrsFr+VWg3vpQzetLbN
+NqM11JAiFLKBni4gCg==
+8iY46DdFafTn/OIn51fmb/zmv+T3/ORvkP8ANjW7XR5EtYtL0zzroVt9QltIdatrrkvprIAfqxhD
+KeQLK1GNfixQX5tf84Uf84seVf8AnI384POXlXzLreoS+QfINnJfXWraNxtH1Nze/VrVQ0iymFLh
+FeXb4wBTlXfFkXuv/OTFrqfl7/nIf8pv+cOv+cWr3VPyv0TyneWRWPRtSu4zJ5g14peXGo3cvrc5
+mtrUJIfUY/tgCg==
+GmKvsD/n4v8A85Mfmn/zj/pf5O+WPyr82fo7zf5ge8vtd1JrK1uZbu205IIo0aKaN0UXE8xLBFBP
+HiCBigB5B/zkJ/z9D8x+TL/Q/KX5TaHoWseYvL9taP8Amd5jv1ln01tTWFGvdM05I5I2KRS843nL
+ncUQNTkVaYT/AM/Ivzr1380Lb/nHr8nPLkZtL3zvpGlecPMPl2GZif0jraxwaVZTEUqI2kkbcbko
+1NsVDHv+cxfMf/OZ/wCSOg+XfI175uvvLn5KeW9M0zyh5e826ZqNsLzzNOumgXU95LzN8Wcxygo=
+cVREAryJ5lUPNfyK/wCcc/8AnIL8qfy90j/nLHTvzNsvyh/LiCwi1/XY4ri7GqX+jWlxyitXsUgM
+M312gWFJH4n1FLUxS8c/P780/wA2Pz70U/m/+ZvngWWl+aNcl0/8sPyXtZpZF+qW7lLi5is4yI1i
+t3Ig9eVTJPNyVBxVuKof0L/84c+SfOX5ef8AONX5TeU/P0lwfNOn6S81/aXTtJNZx3dxLc29m5fc
+G3hlSIr+yV4jYDFi/wD/1vv5irsVdirsVfOH/OUX/OOfln/nJb8rtR8kawY9P1+zLX/kjzOV5Sab
+qSKQjmm5ilH7uVP2lP8AMqkK
+v5T/ADr5M8zfl15t8weRvOWlyaL5o8r3j2OsadJ+xIm4dG6PHIpDo42ZSCOuLJ7R/wA4t/8AORnm
+L/nGf80tP87aYJtQ8s6gEsPP3llGoL/TS1SUB2E8BJkhbxqhPF2xUv6tPKHmzy7578r6D5y8p6pD
+rXlvzLZRaho2pwGqSwTLyU+II6Mp3UgggEEYsWR4q7FX4k/85S/8+/8A/nJL88vz687fmTp3mPyd
+caB5gmt4vL/1y8u7aaz060gSGCCSFbWUcl4lmKsQzMW2rim3q/8Azi7/AM+zNO/KTzpoP5mfmr5y
+t/OfmXyvci98u+WtIgeHS7e7Qfurmeaf97cNESWReCKGAY8qYrb6Y/5+AyzQf84ffnc8DFXfTLGK
+Qjr6cup2iSD6VYg4qH44+VvNT+Qf+fafn21hNL385/zSPl+IioItLS3tbi5Ne4ZLNk+TYr1eIfkr
+/wA486t58/LD87fzw1nTpv8AAf5UeWdRl0x6Mq6nrvo0hhVgQTHac/XlKmlQiH7TUUvuX/nEjzFb
+/lB/z7z/AOclfzTtZ4n13V9U1DS7QBqSJcyWlpplkGpvUSXZkA8DXFHV9Ff8+mPy5k8s/kb5q8/X
+ScZ/zG8wGOwYjc2GiobSM1PYztPipfFv5V/mD5M0r/n4L+d/51fmt5ih0Xy9+W2oebdUSa4rJJNN
+DKNEsrW3iHxySenLSNFBPwjsCcV6PmD/AJyz/wCckdQ/5yh/NZfO0eiy6FoOk2aaJ5L0It610tqs
+7yCSbht688klSqVA+FQWpUqQiPza/wCca9S/J+5/5x38pebkls/Ov5uWian5sspWpHp0eoalFZ2t
+lQdJIYSWmP8AvxivRQSq+g9V1zyrqv8Az8wvdU886hp/lnyN+WfmuSGS41CRYrO00/yXpbLaKS/i
+9opVRUsxoASd1HRiX/OZn/OUWl/85b/mp5G8seWoZdG/LHyxqf6L0bUr5vQmvX1W4ggudSmiaggQ
+IlIw3xBas/EtxVSA+9v+c/PzV/LbVf8AnE/XvIH5O+cNK8w2HkrzP5V8sebbDRrgXUdhaBJZ7OB5
+EqhDNZqAVYiqlTuCMUB5B/ziD+T3/OLn5M/l/wCTf+co/wA8/wAz9D1PzLeWcd95c8sXk8M8Whzs
+7+msVjA8091dqpDbx/umJogYc8VJfqz/AM4//wDOQfk3/nI7ytrHnTyHpWuWPl3TNYn0i1v9as/q
+YvzAiO1xa/G/OL4+NTQhgVIBGKH/1/v5irsVdirsVaO+KvzJ/wCfiv8AziOv5yeTn/NryHpgk/NP
+yJZsdQsbdR6muaPFV5LcgU5T24q8JO5HKP8AaWikP5zwQyhl3BAIOKX6w/8APsz/AJyofyH5rj/5
+x/8AO+pcfJnne7aTyHfXDfBputS1ZrSp2WK9P2R0E1P9+E4qX9AoNcWLeKu6Yqlmpa1o+jQi41jV
+bPSYD0mvZ44E/wCCkZRir56/OnzH/wA49fmr+W3nL8rfOf5x+VNK0jzjYNYXtxBr+mx3MDclkjlj
+5zEco5EVgCKGlDirzL8rv+cK
+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
+tbmNori2lUPHJG4K
+sjq1QwYGhB2OKqdpZWen2ltYWFrDY2NlEkFnZW6LFFDFGAo=
+iRogCg==
+qqBQACgGKorFXYq7FXYq7FX/1/v5irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdir//2f/Y/+AAEEpGSUYAAQIBAMgAyAAA/+0SbFBob3Rvc2hvcCAzLjAAOEJJTQQE
+AAAAAAAoHAIAAAIAAhwCBQAcd2l0aCBncmFkYXRpb24gQmxhY2sgSUYgTG9nbzhCSU0D7QAAAAAA
+EADIAAAAAQABAMgAAAABAAE4QklNA/MAAAAAAAgAAAAAAAAAADhCSU0ECg==
+AAAAAAABAAA4QklNJxAAAAAAAAo=
+AAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAA
+AQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0EFAAAAAAABAAAAAI4QklN
+BAwAAAAAEU8AAAABAAAAgAAAAIAAAAGAAADAAAAAETMAGAAB/9j/4AAQSkZJRgABAgEASABIAAD/
+/gAnRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcKggNC4wAP/uAA5BZG9iZQBkgAAAAAH/
+2wCEAAwICAgJCAwJCQwRCwo=
+CxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0O
+DRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
+DAz/wAARCACAAIADASIAAhEBAxEB/90ABAAI/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcI
+CQo=
+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
+wjGvZ/4K
+2z/rS4X6k5zsH629OeCQ3Ie7EsA7ttadk/8AX6qXL1v6wdK/bPRczpe/0jlVOY2yJDXcscR/XC4L
+oH+LXrtHWMXL6ldj1UYVzL/0D3WPsdWd7Gt31Utrqe76e73pKbP+NCzq2Xm9N6AwUuwupvb6Ffu9
+R17HBjvtD/osxGevVZ7Gf6RN1To31p6T0vI611z6z3tqw6w4YuAwVNLpFdFLXwyva611df8ARV1H
+WPqyepdf6R1puU6g9KNhdUGh3qCwD27yf0XG2z2P31/6NG+tXRsjrfQ7+n41jKr3OrsqdaN1ZdVY
+y9rLmj/Bv9PY5JTwPSj1ir62YGd1jPtsz6sO7qXVmT+ixsUsLacJlP8AN12P9luR7Gen+j9P/TWZ
+mP8AW36wWdH6j9mtuF2Xc/P6jlBxAxqLTXRjYmI95/R23WHZ7Pfs/R4/0LLaups/xadVu9bKf1xz
+eodRre3qz/RD2W7yHCir31PpxWtbXTs/0df6P0P5lal/1Aw/+bX7Aw8g4/q21XZeYWB9lrq3Nsdu
+Eta36H6L/B0pKeM6n9bev9U6ZgdKwr7mMAx8TK6gyWWX5j2tc+pl/wBP06vp2bf0l/07P0P88VvU
+ck/VT62fWW+97reo2jApYHEM2t2Y3qsZO3c6u7/MqXV9R+qT8e76uU9Fx2HD6Xlm3JFj9p2ub78l
+7vp3Xbv/AAX/AIL+bwHf4q+tWYz8GzqdTsHD9T9l0Oa4ibHF7nZejdj7Gu/SPr9az/R/ov0SSnQ+
+rWW7oXX8npGVe5nT6ej42Yyp7ia6vQa2vLfW0/Q9R7rLrdn84tj6hZ/V+q9Ht6t1N5Lc/JtuwqSA
+PSx59Oqr2hv5zH/SXJfXnouTVV0bBuz7OofWTPtsxBkhrag7GuP6Wq2ur3fZ6LbWbN7/APuT/gv0
+dfpeDh0YOFRhY42041baqx/JYNjfyJKTpJJJKf/W9VSSSSUpJJJJSkkkklKSSSSUpJJJJSkkkklP
+KdE+r3Usj6y5X1o6+1rMhu7G6ViNIeKKAXM9Yvbu/TXs3f8Ab13+k9Knq0kklKSSSSU//9kAOEJJ
+TQQGAAAAAAAHAAYAAAABAQD//gAnRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcKggNC4w
+AP/uAA5BZG9iZQBkQAAAAAH/2wCEAAICAgICAgICAgIDAgICAwQDAgIDBAUEBAQEBAUGBQUFBQUF
+BgYHBwgHBwYJCQo=
+Cg==
+CQkMDAwMDAwMDAwMDAwMDAwBAwMDBQQFCQYGCQ0K
+CQo=
+DQ8ODg4ODw8MDAwMDA8PDAwMDAwMDwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCADI
+AMgDAREAAhEBAxEB/90ABAAZ/8QBogAAAAcBAQEBAQAAAAAAAAAABAUDAgYBAAcICQo=
+CwEAAgIDAQEBAQEAAAAAAAAAAQACAwQFBgcICQo=
+CxAAAgEDAwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLx
+JUM0U5KismNzwjVEJ5OjszYXVGR0w9LiCCaDCQo=
+GBmElEVGpLRW01UoGvLj88TU5PRldYWVpbXF1eX1ZnaGlqa2xtbm9jdHV2d3h5ent8fX5/c4SFho
+eIiYqLjI2Oj4KTlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+hEAAgIBAgMFBQQFBgQIAwNtAQAC
+EQMEIRIxQQVRE2EiBnGBkTKhsfAUwdHhI0IVUmJy8TMkNEOCFpJTJaJjssIHc9I14kSDF1STCAkK
+GBkmNkUaJ2R0VTfyo7PDKCnT4/OElKS0xNTk9GV1hZWltcXV5fVGVmZ2hpamtsbW5vZHV2d3h5en
+t8fX5/c4SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6/9oADAMBAAIRAxEA
+PwD7+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq//9D7+Yq7
+FXYq7FWmIUFiQANyT0AxV8b+fv8AnPv/AJxW/LrWrry9q/5mRavq9hKYdQttAsrvVkgkXqrz2sTw
+1HQgOSO+K09V/KD/AJyU/JL890uV/K/z/YeYdQskEl9oTrLZ6jCh/bazukimK9uSqV98Ve6Yq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/9H7+Yq7FXYq7FX4yf8APz3/AJyq1ry3Jb/8
+46/l9q0ulXmp2KX/AOZ+sWjtHcLZ3Ira6YjrQp66D1JipqU4p9l2xSA/DNVVFCqoVV2VQKADwAxS
+n3lfzP5j8k+YtH82+UdauvL3mbQLhbrRtas3KTQSqex7qw2ZTVWBKsCCcVf1X/8AOJP/ADkDaf8A
+OSH5L6B58eOG08z2jvpHnjS4T8FvqtqF9VkHURzoyzID0VwOoOLF9NYq7FWNebfOPlbyF5d1Tzb5
+z16y8s+WtFiM+p6zqEqwwRINhVm6knZVFSTsATir480P/n49/wA4k675kXy5H+YdxpnrSrBa69qe
+l3tnpsrseK/6TLEBGpP7UoRffFX3Fb3EF3BDdWsyXNtcxrLb3ETB45I3HJXRlJBBBqCOuKq2KuxV
+2KuxV2KuxV2KuxV2KuxV2KuxV//S+/mKuxV2KuxV/IR/zkt5rvvO3/OQv50+ZL+dp5bvzhqttAzG
+vG3sZ2s7eMeyRQKo+WLIPEcVdir9i/8An0F5svYfOH5z+Qy/LTL/AEjTfMMcZ/YuLWd7SRh/rpMg
+P+qMUF+7WKHYq/nn/wCfqH506z5p/OGy/Ja0u5IfKP5bWdrfanYI/wC7utZ1GEXAmkA6+hbyIqA1
+oXc9TikPyxIBqDuD1B98Uv37/wCfUf526t5v8geb/wAnfMWovf3P5ZSW155RkmLPIujX5kU23M1q
+ttPGQgPRXVR8Kiigv1rxQ7FXYq7FXYq7FXYq7FXYq7FXYq7FX//T+/mKuxV2KuxV/IJ/zkj5WvfJ
+n/OQX50+XL+FoJrLzjq08SOKFoL24a8t3Hs8UysPY4sg8VxV2Kv2I/59BeVb2bzp+c/nnhTTNO0X
+TdAWU/tXF1cPdso8eKQK
+T/rDFBfu7ih2Kv5dP+fiehXuh/8AOXn5oveI4i1+PSNW02VgQJLeXTreGqk9QskDp8xiyD4lxV+w
+f/PoHy7qU3n385vNqxMNGsdB03RpLj9k3dzcvchB3JWOCg==
+nw5DxxQX7xYodirsVdirsVdirsVdirsVdirsVdir/9T7+Yq7FXYq7FX4p/8AP0L/AJxc1nVryD/n
+I/yJpUupC1sotP8AzS021RpJkhthxtdUCAkssafupqCqqEf7KuQpD8RFYMoZSGVtww3BHscUpx5f
+0DXPNmu6T5Y8saTc695j165Sz0bRbJDJcXM7mioij7yTso3JABOKv6rP+cQP+ce4P+ccPyV0PyTd
+NDcebdTkfWfPmoQUKS6pdKvOJG/aS3RUhQ9wvLblixfUeKuxV8Df85x/84bJ/wA5OeXtJ8weU7y2
+0b81vJkMsOiXN4WW01Kxkb1HsLl1DGOj/HFJxPFiQRxYkKQX40aF/wA+8v8AnLfWvMcfl64/K8+X
+Y/WEd15j1TUbEabAlaNKZbeeZ5FHWkaMx8MVt/QT/wA4xf8AOPXlz/nGr8rdN/L/AES4/Supyyvq
+Pm7zIyem+o6lMAJJeO/GNFVY41rsiitWqSofQ+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//9X7+Yq7
+FXYq6uKvlD82f+c1f+cZvyjuL7RfN35j2Wpa7bKVu/K+hxSavditQY5VtVeOMnoVldcVp+QP5jfm
+1/z7R8/eYrrXX/JL8w/L11eymW9uPLJg0m2mdjUv9SW/MKE9+CL9+Kd31d/zjF/zkL/z7c/LCR38
+h21z+WXmS8X0LjzH5xsLye/kRuqfpIm7jiQ91V0U9xir9X/LXmvyx5y0uHW/KPmLTfM+j3ABh1TS
+rqK7gaorT1IWZa07VxQ/PP8A5y//AOfhemf845+b5Pyw8oeTR5x8/wBpZ299rNxqU72mmWEd2vqQ
+IfTVpZ5GSjELxUA7vWoCkB+ZHmH/AJ+df85YeZbuf9C+Y9A8pwyE+np+i6Nb3DIv/GS++tufnTFa
+edf9D9/85di5Zj+duoCdTVrc6fpVAfAx/U9vuxTT2LyH/wA/SP8AnJnyxext5tby9+ZWliizWl/Y
+JplzQdSlzp6xqD/rRN8sVp+x3/OMn/OZP5Vf85OWU1p5ekn8s+e9Ng9fWvIGqMv1tIxQGe1lX4Lm
+EE05LRh+2i1FVjT64BB3GKuxV2KuxV2KuxV2KuxV2KuxV2KuxV//1vv5irsVaY8QSdgOpOKv59/+
+c6P+c9/MXnrX9c/KL8ltfm0L8vNGlk0/zN5v06RorvXrmM8ZoredKNFaIwKVQgzbmvp0DKQH5VWG
+n3l/d2umaTYT6hqF9KIrLTbOF5p55G6JHFErO7HwAJxS9h1P/nGz/nIXRtKj1zVfyP8AO9npUqeo
+t42i3bAIRWroiM67b/EoxW3jLo8M01vMjRXFuxS4t5FKSRsOquhoVI8CMVZr+X35l/mD+VGtxeYv
+y2846p5M1ZGVpJ9MnMUc/E7LcQGsU6/5MiMMVfqb+T//ADnJ+R35xapoui/85nflN5Sv/Mlui2el
+/m9JpEFzalQaquoQvG8lsCT9qMtECalYxU4op+1Pk3yl+XGi6ZZXfkDy15c0vR7uBJNPu9As7SG3
+mgcVR45LZAo=
+6sNwQSDihiX5o/8AOPv5N/nHpF7pH5g/l9o+ti8QqurC3SDUYH7SQXsIWeNgdwQ1D0II2xV/Ml/z
+lZ/zjprH/OMv5r33ka6updW8t6lANV8jeYZVCg==
+93pzsU4yhdhNA4MclAAdnAAYDFkHinkjzr5m/Lfzd5e8+eTNSk0nzP5WvEvtIvYyR8abNG4H2o5U
+JSRTsysQcVf15fk3+ZWl/nD+VvkX8zdHVYrPzlpEGoNbKeXoTsONzbknqYZleM+64sXpeKuxV2Ku
+xV2KuxV2KuxV2KuxV2Kv/9f7+Yq7FXxB/wA/Bvzmu/yc/wCcbvM0uiXb2Xmnz9PF5T8vXUVPUhN8
+rtdzrXoUtY5eJG4YqcVD+XdFVFVEFEQBUXwA6DFk/f3/AJ9a/wDOPGkeXPy5k/P7X9OiuvN3n2S4
+tvJ9zMnJ9P0a2ka3doSfsvdSo5ZgKmMIK0LVUF+tQxQ+dPzr/wCcVPyO/P2zuE/MDyTavrkikW3n
+LTQLHWIGpRWF3EA0gA/YlDp/k4q/CD/nKD/n33+af5AJf+a/LTS/mZ+V9vWSbX7KHjqWmR7f8dGz
+SvwjvNDVKCriPFkC+AgQyhlYFWFVYdCD4Yq/Z7/n0j5x/NK91z8wfJMlze6l+Tuh6XHdwJcFntdM
+1qadeEFo7VCevEZHkiU0+EPQE1ZQX7k4ofkh/wA/dfKFpfflN+WnnoW6/pLy15pbSjdgfF9V1W0k
+d4yfD1bWM4pD8CDil/Sd/wA+t9Yn1P8A5xS020mkaRfL/mnXNPtgTXjG0yXYUe1bg4oL9GMUOxV2
+KuxV2KuxV2KuxV2KuxV2Kv8A/9D7+Yq7FX4f/wDP4LzHcm//ACL8oK5FmsOt63PH/NMDa20RP+qr
+SU/1sUh+KszFYZWHVUY1+g4pf2F/84+6Pa6B+RX5N6PZoEt7DyVoUaKBQVNhCzH6SScWL1/FXYqt
+dEkVkdQ6OCrowqCD1BB6jFXxT5n/AOfeX/OJ3mvzTdebL/8ALZrG71CdrnUNL0rUr7T9Ollc1dvq
+ltMkcfI9RGFHtim31V5I8heTPy28u2PlLyF5a0/yn5b06ptdI02FYYgxpydqbu7U+J2JZu5OKGXY
+q/M//n65LGn/ADjBp8bkc5vPGjCIHrVYbtjT6BikP5ysUv6Rv+fWFkbX/nFW2uGFBqfm7XblT4hZ
+I4P1xYoL9H8UOxV2KuxV2KuxV2KuxV2KuxV2Kv8A/9H7+Yq7FX4S/wDP4HT5o/OX5G6sVItrjRdc
+tFftzhuLSQj7pBiyD8cJE9SN17upX7xir+u//nFvzPbecf8AnHP8k/MNrKsyXfk3SYJXXoJrS2S1
+nU+6yRMp9xixL3rFXYq7FXYq7FXYq/Iv/n715gjtfyr/ACn8riQCfXPNs+oejXcxadYyIzU8A90g
++nFIfgaffYdzil/VD/zgH5Yl8q/84kfk5aXMHoXWradc63OniNVvZ7yI/wDIqVMUF9i4odirsVdi
+rsVdirsVdirsVdirsVf/0vv5irsVfln/AM/YvIVz5i/Ifyt53s7Yzyfl15nhk1CRRvHY6rGbORj7
+euYK
+4pD+ebFL+hX/AJ9RfmnH5n/JXzD+V95cKdW/LHWZJLGBn+NtL1hnuomCnei3HrqadNvHFBfqhih2
+KsZg86eT7rVn0C282aNc66jFH0WK/t3uwy9VMCuXqKdKYqybFXYq7FX89v8Az9p86w6z+eHkXyVb
+TGRfI/lU3F/F2judYuDJT5+jbxn6RikPy2sNMu9a1DT9F09DLf61dQafYRCpLT3UiwxCg8WcYpf2
+ZeRvLFt5J8l+UfJtmVa18qaNY6RA6jiGWyt0gDAe/CuLFlOKuxV2KuxV2KuxV2KuxV2KuxV2Kv8A
+/9P7+Yq+C/8AnKL/AJz9/LL/AJxw1l/JNvpF1+Yf5jRwpNfeXLCZLa209ZVDxfXrt1k4M6kMsaI7
+U3IUEEqafCPnr/n5/wCTPzc/Ljzp+Wf5i/kRqFrpPnPSrjTZ7vSdbhuzC8i/up1jntrY8opArr8X
+UYrT8elDBVDHkwA5N0qe5pil9U/84a/n0P8AnHf89fLnnDUp5I/JmtI2g+fo0UtTTbplIueIBJNt
+MqS7Cg==
+lQyj7WKl+5Xmz/n5P/ziT5ZspbjT/Pl550u0X93pmg6TeySOew9W5it4R9MmKKfl/wD85I/8/L/z
+L/Nqx1Hyf+V2nzflR5KvlaG91NJxJr99Awo=
+MjXEVEtFbuISXpt6lKjFNPgP8tfy88+fmd520jyr+V+h3uted72YS6e2nlo5bZlNfrk10Cv1dIz8
+TSswp48qAqv7A/IOkeYNA8j+T9D816z/AIi8z6PothZeYde3/wBMvYLdI7ifcAn1HBap3PffFiy3
+FWjir+Rv/nKv8xG/NT/nIv8AN3zokyz2N15gn0/RpFNVNjpQGn2xU+DJAG+nFkHov/OA/wCWp/M3
+/nKX8trSe1F1pHk6eXzZrlRVFj0tOVtyH+VdtCMVL+i/83/+ckPyW/IW48uWv5r+eLfypcea2m/Q
+0T29zcs0dvxEs0i2sUpjjQuoLvRanr1osXs1hf2WqWVnqWnXUd7p+owR3VhewsHimhmUPHIjDYqy
+kEEdRiqLxV4d/wA5GfnZon/OP35Rea/zM1dUup9KhW38vaQzBTf6pcn07S2XvQueTkbhFZu2Kvxu
+/wCffX/OTn5v+cP+cqH0P8wvP+r+atN/NPT9Ve70m+uXksbbULWJr+GSzt2JS3VUikjCRhRxIBrQ
+YpL+gLFDsVdirsVQpvrMXY083cIv2iNwtj6i+sYg3EyCOvLjXatKVxVEg1xVvFX/1Pv2cVfi/wDn
+p/z6185/mD+aHnj8wPJv5uaWlp521a51qXTfMNpcm4t57uQyPCLi3ZxJGpNEJQELRd6VxSC+VvNH
+/PrX/nKTQkaXRE8qedkViBFpuqm1mI8eN/Fbp/w+KbfLf5if84v/APOQX5TaTe+YPzB/KfW/Lvl7
+T3jS/wDMJWG6sYTK4jQyXFrLMihnYKCSBUgd8VeEYq9E/K38qPPv50ebIfI/5b6LHr/me4t5buLT
+ZLy1sqww09Vw93LEp4g1IUlqVNKA4q/T78pf+fSfnPUp7bUPzr8/2PlrTaK83lvyuDe3z7gtG95c
+IkMW2xKJJ7eOKLfsJ+T35EflV+Q/l7/Dn5YeUrXy9bTcTqWo7zX986/t3d3KWllPWgZuK9FCjbFD
+1/FXYq+f/wDnKf8AM5fye/5x+/NLz6jhdQ0zRZbXQ15cWbUdQIs7TifESzK23YHFX8jCKURVLFyo
+ALnqduv04sn7u/8APpD8qW03yd+Yn5y6haGO582X0flzy3cN1Nhpp9S7dR4SXLhSaf7qxQXxv+a/
+6S/5zO/5z9n8kw3M0/lhfMn+F7NQ5aO28v8Al/k2pSxb/D6xhneo/adcUv6RtP0+y0mwsdL022Sy
+07TbeK0sLOIcY4oIVCRxqOwVQAMWKMxV+DH/AD9C/NTT/wAw/wA1vyv/ACG0jzTY2Og+XHjv/N+s
+yTL9SstR1SQW8ctzICQPqdqHkYdvUp1xSHrHmD/nGby1+Tkmhf8AOYH/ADiCh/OW88s6VaWXl78v
+NKEd7ptzM9n+irzVzLaSieUrEXlkt4xyMxLVCg==
+GXFFv0K/5xi/M38zvza/Kux83/m1+Wsv5WebJr66tToEqzRevbwMBFdpBcgTQrJUgLJU/DyBKsMV
+L6FxV5z+bmp+e9G/LPztqf5Yadp+rfmFZ6VM/k/TdUlWC0mvyOMSyO7xruTsGZQTQEgGuKvB/wDn
+EPzf/wA5R+afK3mp/wDnKHyVZeUdX0y/hj8r3sMcNtPfW7Rs1w01vBPPGgibiFYFeVTt8NSq/Mn8
+o/NOs/8AORf/AD8/vPzB8s3dwfLXlG71Fl1G2kf0hoGjWT6ZCCQQPTvLhlbj0Jevvikv3ruLm2so
+JLm7uI7W2i3lnmcIijxLMQBv44oVkdZFV0YOjgMjqagg7ggjrXFX/9X7+Yq7FXYqkPmjyzoXnPy7
+rflPzPpsOseXvMVlNp+s6ZcLyjmt50KOhHyOxG4O43xV/KR/zlP/AM46a/8A84z/AJqal5Jv/Wvv
+K2o89Q/L/wAxyDa+0xmoqu3T17ckRyjxo/2XXFk8Q8o+bPMXkPzRoHnXyjqcmjeZvK97HqGianF1
+jmiO1R+0jglXU7MpKnY4q/qz/wCcWv8AnIvy5/zkt+V2m+dtKEVh5hseNh568sq1X07U0UF1AJqY
+ZR+8hY9UP8wYBYvpHrirsVdir8Vf+fuX5rrHYflp+SWnz/vL2aTzd5mRWG0VvztdPjcD+eRpX3/k
+GKQ/E2w0+/1a/sNI0u3a71TVrmGx0y1QVaW5uHWKGMe7OwGKX9XumaJpn/OKv/OJkum20sduv5Te
+RLu5ubtD8M2pxWslxPMCdyZrtmb/AGWLF+Sv/PtrSLfyp5U/5yW/5yb1q5QX3kHyzc6dpN3cqH/0
+t7Z9TvJSzVqzNHAtD15N44pKP/IL/n4v5/8Ay+/Jf8yPMH5t+YJPzU89ajrsFr+VWg3vpQzetLbN
+NqM11JAiFLKBni4gCg==
+8iY46DdFafTn/OIn51fmb/zmv+T3/ORvkP8ANjW7XR5EtYtL0zzroVt9QltIdatrrkvprIAfqxhD
+KeQLK1GNfixQX5tf84Uf84seVf8AnI384POXlXzLreoS+QfINnJfXWraNxtH1Nze/VrVQ0iymFLh
+FeXb4wBTlXfFkXuv/OTFrqfl7/nIf8pv+cOv+cWr3VPyv0TyneWRWPRtSu4zJ5g14peXGo3cvrc5
+mtrUJIfUY/tgCg==
+GmKvsD/n4v8A85Mfmn/zj/pf5O+WPyr82fo7zf5ge8vtd1JrK1uZbu205IIo0aKaN0UXE8xLBFBP
+HiCBigB5B/zkJ/z9D8x+TL/Q/KX5TaHoWseYvL9taP8Amd5jv1ln01tTWFGvdM05I5I2KRS843nL
+ncUQNTkVaYT/AM/Ivzr1380Lb/nHr8nPLkZtL3zvpGlecPMPl2GZif0jraxwaVZTEUqI2kkbcbko
+1NsVDHv+cxfMf/OZ/wCSOg+XfI175uvvLn5KeW9M0zyh5e826ZqNsLzzNOumgXU95LzN8Wcxygo=
+cVREAryJ5lUPNfyK/wCcc/8AnIL8qfy90j/nLHTvzNsvyh/LiCwi1/XY4ri7GqX+jWlxyitXsUgM
+M312gWFJH4n1FLUxS8c/P780/wA2Pz70U/m/+ZvngWWl+aNcl0/8sPyXtZpZF+qW7lLi5is4yI1i
+t3Ig9eVTJPNyVBxVuKof0L/84c+SfOX5ef8AONX5TeU/P0lwfNOn6S81/aXTtJNZx3dxLc29m5fc
+G3hlSIr+yV4jYDFi/wD/1vv5irsVdirsVfOH/OUX/OOfln/nJb8rtR8kawY9P1+zLX/kjzOV5Sab
+qSKQjmm5ilH7uVP2lP8AMqkK
+v5T/ADr5M8zfl15t8weRvOWlyaL5o8r3j2OsadJ+xIm4dG6PHIpDo42ZSCOuLJ7R/wA4t/8AORnm
+L/nGf80tP87aYJtQ8s6gEsPP3llGoL/TS1SUB2E8BJkhbxqhPF2xUv6tPKHmzy7578r6D5y8p6pD
+rXlvzLZRaho2pwGqSwTLyU+II6Mp3UgggEEYsWR4q7FX4k/85S/8+/8A/nJL88vz687fmTp3mPyd
+caB5gmt4vL/1y8u7aaz060gSGCCSFbWUcl4lmKsQzMW2rim3q/8Azi7/AM+zNO/KTzpoP5mfmr5y
+t/OfmXyvci98u+WtIgeHS7e7Qfurmeaf97cNESWReCKGAY8qYrb6Y/5+AyzQf84ffnc8DFXfTLGK
+Qjr6cup2iSD6VYg4qH44+VvNT+Qf+fafn21hNL385/zSPl+IioItLS3tbi5Ne4ZLNk+TYr1eIfkr
+/wA486t58/LD87fzw1nTpv8AAf5UeWdRl0x6Mq6nrvo0hhVgQTHac/XlKmlQiH7TUUvuX/nEjzFb
+/lB/z7z/AOclfzTtZ4n13V9U1DS7QBqSJcyWlpplkGpvUSXZkA8DXFHV9Ff8+mPy5k8s/kb5q8/X
+ScZ/zG8wGOwYjc2GiobSM1PYztPipfFv5V/mD5M0r/n4L+d/51fmt5ih0Xy9+W2oebdUSa4rJJNN
+DKNEsrW3iHxySenLSNFBPwjsCcV6PmD/AJyz/wCckdQ/5yh/NZfO0eiy6FoOk2aaJ5L0It610tqs
+7yCSbht688klSqVA+FQWpUqQiPza/wCca9S/J+5/5x38pebkls/Ov5uWian5sspWpHp0eoalFZ2t
+lQdJIYSWmP8AvxivRQSq+g9V1zyrqv8Az8wvdU886hp/lnyN+WfmuSGS41CRYrO00/yXpbLaKS/i
+9opVRUsxoASd1HRiX/OZn/OUWl/85b/mp5G8seWoZdG/LHyxqf6L0bUr5vQmvX1W4ggudSmiaggQ
+IlIw3xBas/EtxVSA+9v+c/PzV/LbVf8AnE/XvIH5O+cNK8w2HkrzP5V8sebbDRrgXUdhaBJZ7OB5
+EqhDNZqAVYiqlTuCMUB5B/ziD+T3/OLn5M/l/wCTf+co/wA8/wAz9D1PzLeWcd95c8sXk8M8Whzs
+7+msVjA8091dqpDbx/umJogYc8VJfqz/AM4//wDOQfk3/nI7ytrHnTyHpWuWPl3TNYn0i1v9as/q
+YvzAiO1xa/G/OL4+NTQhgVIBGKH/1/v5irsVdirsVaO+KvzJ/wCfiv8AziOv5yeTn/NryHpgk/NP
+yJZsdQsbdR6muaPFV5LcgU5T24q8JO5HKP8AaWikP5zwQyhl3BAIOKX6w/8APsz/AJyofyH5rj/5
+x/8AO+pcfJnne7aTyHfXDfBputS1ZrSp2WK9P2R0E1P9+E4qX9AoNcWLeKu6Yqlmpa1o+jQi41jV
+bPSYD0mvZ44E/wCCkZRir56/OnzH/wA49fmr+W3nL8rfOf5x+VNK0jzjYNYXtxBr+mx3MDclkjlj
+5zEco5EVgCKGlDirzL8rv+cK
+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
+tbmNori2lUPHJG4K
+sjq1QwYGhB2OKqdpZWen2ltYWFrDY2NlEkFnZW6LFFDFGAo=
+iRogCg==
+qqBQACgGKorFXYq7FXYq7FX/1/v5irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
+VdirsVdirsVdir//2Qo=

BIN
sincro/data_1600k.txt


BIN
sincro/header-logo.png


+ 3 - 0
sincro/htaccess.txt

@@ -0,0 +1,3 @@
+# We need to allow POST on .html files since we are uploading data using HTTP POST
+# If HTTP POST is disallowed, the test will not functioning properly.
+AddType application/x-httpd-php .php .htm .html

+ 4 - 0
sincro/import.php

@@ -0,0 +1,4 @@
+<?php
+require '../main/inc/global.inc.php';
+$csv = 'list.csv'; //a list of institutions as Name;IP;latitude:longitude\n
+

+ 628 - 0
sincro/index.aspx

@@ -0,0 +1,628 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="stylesheet" href="themes/base/ui.all.css"/>
+<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
+<script type="text/javascript" src="jquery.query-2.0.1.js"></script>
+<script type="text/javascript" src="ui.core.min.js"></script>
+<script type="text/javascript" src="ui.progressbar.min.js"></script>
+<script type="text/javascript" src="config.js"></script>
+<script type="text/javascript">
+<!-- 
+var start_time = 0;
+
+function Timer()
+{
+	this.startTime = 0;
+	this.endTime = 0;
+
+	Timer.prototype.Reset = function()
+	{
+		this.startTime = new Date().getTime();
+		this.endTime = 0;
+	}
+
+	Timer.prototype.Stop = function()
+	{
+		this.endTime = new Date().getTime();
+		return this.endTime - this.startTime;
+	}
+
+	Timer.prototype.Value = function()
+	{
+		var end = this.endTime;
+		if( end == 0 && this.startTime != 0 )
+			end = new Date().getTime();
+		return end - this.startTime;
+	}
+
+	this.Reset();
+}
+
+Number.prototype.timeString = function()
+{
+	if( this >= 1000 )
+		return roundNumber( this / 1000, 2 ).toString() + " s";
+	return this.toString() + " ms";
+}
+
+Number.prototype.speedString = function()
+{
+    if( this >= 1000 )
+        return roundNumber( this / 1000, 1 ).toString() + " Mbit/s";
+    return this.toString() + " kbit/s";
+}
+
+function WebClientRequest( method, url )
+{
+	this.timer = new Timer;
+	this.url = url;
+	this.data = "";
+	this.method = method;
+
+	this.GetResponse = function(readData) {
+	    var response = new WebClientResponse(this, readData);
+	    this.timer.Reset();
+	    $.ajax({
+	        url: this.url,
+	        cache: false,
+	        async: false,
+	        processData: false,
+	        data: this.data,
+	        type: this.method,
+	        dataType: "text",
+	        contentType: "text/plain; charset=x-user-defined",
+	        complete: response.InternalRequestCompleted(),
+	        beforeSend: function(xhr) {
+	            xhr.setRequestHeader("Accept-Encoding", "identity;q=1,gzip;q=0");
+	        },
+	        error: function(e) {
+	            if (e.status == 200)
+	                return; // We do get here in IE7 on Vista, even though the request performed well..
+	            if (e.status == 405)
+	                alert("Your web server does not allow HTTP POST to this HTML file.\nPlease review your configuration.");
+	        }
+	    });
+
+	    return response;
+	};
+}
+
+function WebClientResponse( request, readData )
+{
+	this.request = request;
+	this.readData = readData;
+	this.data = "";
+	this.status = "";
+	this.statusText = "";
+	this.contentLength = 0;
+	this.bytesTransferred = 0;
+	this.GetTime = function() { return this.request.timer.Value(); }
+	this.GetSpeed = function() { return roundNumber( ( this.bytesTransferred * 0.008 ) / ( this.GetTime() / 1000 ), 0 ); }
+
+	this.InternalRequestCompleted = function() {
+	    var response = this;
+	    return function(xhr) {
+	        response.status = xhr.status;
+	        response.statusText = xhr.statusText;
+	        var contentLengthHeader = xhr.getResponseHeader("Content-Length");
+
+	        if (null != contentLengthHeader && contentLengthHeader.length > 0)
+	            response.contentLength = parseInt(contentLengthHeader);
+	        else if (null != xhr.responseText)
+	            response.contentLength = xhr.responseText.length;
+	        else
+	            response.contentLength = 0;
+
+	        if (response.request.method == "POST")
+	            response.contentLength = request.data.length;
+	        if (response.request.method != "HEAD")
+	            response.bytesTransferred = response.contentLength;
+	        if (response.readData)
+	            response.data = xhr.responseText;
+	        response.request.timer.Stop();
+	    }
+	};
+}
+
+function WebClient()
+{
+	WebClient.prototype.Download = function( url, readData )
+	{
+	    if (url.indexOf("?") == -1)
+	        qs = '?sid=' + Math.random();
+	    else
+	        qs = '&sid=' + Math.random();
+
+	    return new WebClientRequest("GET", url + qs).GetResponse(readData);
+	};
+
+	WebClient.prototype.Upload = function(url, data) {
+	    if (url.indexOf("?") == -1)
+	        qs = '?sid=' + Math.random();
+	    else
+	        qs = '&sid=' + Math.random();
+
+	    var request = new WebClientRequest("POST", url + qs);
+	    request.data = data;
+	    return request.GetResponse();
+	};
+
+	WebClient.prototype.Ping = function( url )
+	{
+		return new WebClientRequest( "HEAD", url ).GetResponse();
+	};
+}
+
+Test.SmallFilePath = "data_100k.txt";
+Test.LargeFilePath = "data_1600k.txt";
+Test.Download = "DOWNLOAD";
+Test.Upload = "UPLOAD";
+
+function Test()
+{
+	this.timer = new Timer;
+	this.webClient = new WebClient;
+	this.progressCallback = function() {};
+	this.completionCallback = function() {};
+	this.progressValue = 0;
+	this.maxProgressValue = 0;
+	this.path = "";
+
+	this.last = null;
+	this.ping = null;
+
+	Test.prototype.Start = function()
+	{
+		var test = this;
+		setTimeout( function()
+		{
+			test.timer.Reset();
+			test.Run( function() 
+			{ 
+				test.progressValue++;
+				if( null != test.progressCallback )
+				{
+					test.progressCallback();
+				}
+			},
+			function()
+			{
+				test.timer.Stop();
+				if( null != test.completionCallback )
+					test.completionCallback();
+			} );
+		}, 10 );
+	}
+
+	Test.prototype.Run = function( updateProgress, completed ) {}
+
+	Test.prototype.MakeRequest = function() {
+	    if (this.path == null || this.path.length == 0)
+	        return;
+	    if (this.method == Test.Upload) {
+	        if (this.payload == null) {
+	            //var dl = this.webClient.Ping(this.path);
+	            //this.payload = this.GenerateData(dl.contentLength);
+	            this.payload = this.GenerateData(100000);
+	        }
+
+	        this.last = this.webClient.Upload(location.search, this.payload);
+	    }
+	    else if (this.method == Test.Download) {
+	        this.last = this.webClient.Download(this.path);
+	    }
+	    this.ping = this.webClient.Ping("?");
+	}
+
+	Test.prototype.GenerateData = function(length) {
+	    var data = "";
+	    while (data.length < length) {
+	        data = data + Math.random();
+	    }
+
+	    return data;
+	}
+			
+
+	Test.prototype.OnProgress = function( progressCallback )
+    {
+        this.progressCallback = progressCallback;
+		return this;
+	}
+
+	Test.prototype.OnComplete = function( completionCallback )
+	{
+		this.completionCallback = completionCallback;
+		return this;
+	}
+
+    Test.prototype.Path = function( path )
+    {
+        this.path = path;
+        return this;
+    }
+
+	Test.prototype.Method = function( method )
+	{
+		this.method = method;
+		return this;
+	}
+}
+
+AverageTest.prototype = new Test;
+function AverageTest() 
+{
+	this.iterations = 0;
+	this.iteration = 0;
+	this.totalBytes = 0;
+	this.totalSpeed = 0;
+	this.totalTime = 0;
+	this.totalPing = 0;
+
+	this.iterationCallback = function() {};
+
+	Test.apply( this, arguments );
+
+	AverageTest.prototype.Run = function( incrementProgress, completed )
+	{ 
+		this.maxProgressValue = this.iterations;
+		if( !this.IsCompleted() )
+		{
+			this.Iterate();
+			if( this.last == null )
+				return;
+			this.iteration++;
+			incrementProgress();
+			var test = this;
+			setTimeout( function() { test.Run( incrementProgress, completed ); }, 1 );
+		}
+		else
+			completed();
+	}
+
+	AverageTest.prototype.IsCompleted = function()
+	{
+		return this.iterations == this.iteration;
+	}
+
+	AverageTest.prototype.GetAverageTime = function()
+	{
+		return roundNumber( this.totalTime / this.iteration, 2 );
+	}
+
+	AverageTest.prototype.GetAveragePing = function()
+	{
+		return roundNumber( this.totalPing / this.iteration, 2 );
+	}
+
+	AverageTest.prototype.GetAverageSpeed = function()
+	{
+		return roundNumber( this.totalSpeed / this.iteration, 1 );
+	}
+
+	AverageTest.prototype.GetTotalTime = function()
+	{
+		return this.totalTime;
+	}
+
+	AverageTest.prototype.Iterate = function()
+	{
+		this.MakeRequest();
+		if( this.last != null )
+		{
+			this.totalBytes += this.last.contentLength;
+			this.totalSpeed += this.last.GetSpeed();
+			this.totalTime += this.last.GetTime();
+			this.totalPing += this.ping.GetTime();
+		}
+	}
+
+	AverageTest.prototype.Iterations = function( number )
+	{
+		this.iterations = number;
+		return this;
+	}
+
+	AverageTest.prototype.AfterIteration = function( iterationCallback )
+	{
+		this.iterationCallback = iterationCallback;
+		return this;
+	} 
+}
+
+
+function roundNumber(num, dec) 
+{
+  var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
+  return result;
+}
+
+function EndTest( upload, download )
+{
+	var totalTime = upload.GetTotalTime() + download.GetTotalTime();
+	var avgTime = roundNumber( ( upload.GetAveragePing() + download.GetAveragePing() ) / 2, 2 );
+
+	var tbl = $( "#tblSample" );
+    var rows = $( "tr", tbl );
+    row = $( "<tr/>" ).appendTo( tbl ).css( "background-color", "#cfcfcf" );
+ 
+	$( row ).append( "<td colspan=8>Total time " + totalTime.timeString() + ", average response time " + avgTime.timeString() + "</td>" );
+
+    $( "#startTestButton" ).removeAttr( "disabled" ).val( Strings.StartTest );
+	$( "#testInProgress" ).hide( "normal" );
+
+	var avgUlSpeed = upload.GetAverageSpeed();
+    var avgDlSpeed = download.GetAverageSpeed();
+
+    SetInfo( avgUlSpeed.speedString(), avgTime.timeString(), upload.method );
+    SetInfo( avgDlSpeed.speedString(), avgTime.timeString(), download.method );
+
+	var title = "";
+	var message = "";
+	if( avgUlSpeed < Settings.MinimumUlSpeed || isNaN( avgUlSpeed ) || 
+		avgDlSpeed < Settings.MinimumDlSpeed || isNaN( avgDlSpeed ) || 
+		avgTime > Settings.MaximumTime || isNaN( avgTime )  )
+	{
+		title = Strings.TestFailed.Title;
+		message = Strings.TestFailed.Message;
+	}
+	else
+	{
+        title = Strings.TestPassed.Title;
+        message = Strings.TestPassed.Message;
+	}
+	
+	var res = $( "#resultMessage" );
+	res.children( ".result-title" ).text( title );
+	res.children( ".result-message" ).text( message );
+	res.show( "fast" );
+}
+
+function StartTest( count )
+{
+    $( "#resultMessage" ).hide( "fast" );
+	$( "#startTestButton" ).attr( "disabled", "disabled" );
+	UpdateProgress( 0 );
+    $( "#testInProgress" ).show( "normal", function() { TestStarted( count ); } );  
+}
+
+function TestStarted( count )
+{
+	if( "" != $.query.get("details" ))
+		Settings.Debug = true;
+	if( Settings.Debug )
+        $( "#technicalDetails" ).show( "fast" );
+	var tbl = $( "#tblSample" );
+	$( "tr", tbl ).remove();
+
+	var upload = new AverageTest()
+		.Iterations( count / 2 )
+		.Path( Test.SmallFilePath )
+		.Method( Test.Upload )
+		.OnProgress( function() 
+			{
+				var progressPercentage = this.progressValue / ( this.maxProgressValue / 100 ) / 2;
+				UpdateProgress( progressPercentage );
+				AppendDetailsRow( this ); 
+			} );
+
+    var download = new AverageTest()
+        .Iterations( count / 2 )
+        .Path( Test.SmallFilePath )
+        .Method( Test.Download )
+        .OnProgress( function()
+            {
+				var progressPercentage = this.progressValue / (this.maxProgressValue / 100 ) / 2 + 50;
+				UpdateProgress( progressPercentage );
+				AppendDetailsRow( this ); 
+			} );
+    
+	download.OnComplete( function() { EndTest( upload, download ); } );
+	upload.OnComplete( function() { download.Start(); } ).Start();
+}
+
+function UpdateProgress( value )
+{
+	$( "#progressbar" ).children( ".ui-progressbar-value" ).css( "width", value + "%" );
+}
+
+function AppendDetailsRow( test )
+{
+	var tbl = $( "#tblSample" );
+    var rows = $( "tr", tbl );
+
+	row = $( "<tr/>" ).appendTo( tbl ).css( "background-color", ( test.iteration % 2 ) ? "#eeeeee" : "#ffffff" );
+
+	var speed = test.last.GetSpeed().speedString();
+	var time = test.last.GetTime().timeString();
+    var addCol = function( text ) { $("<td/>" ).append( text ).appendTo( row ); };
+    addCol( test.method + " " + test.iteration )
+    addCol( time );
+	addCol( test.ping.GetTime().timeString() );
+    addCol( window.location.host );
+    addCol( test.last.request.url );
+    addCol( test.last.contentLength );
+    addCol( test.last.status );
+    addCol( speed );
+    SetInfo( speed, test.ping.GetTime(), test.method );
+}
+
+var ulSpeed = $.query.get( "ul" );
+if( "" != ulSpeed )
+{
+    Settings.MinimumUlSpeed = parseInt( ulSpeed );
+}
+var dlSpeed = $.query.get( "dl" );
+if( "" != dlSpeed )
+{
+    Settings.MinimumDlSpeed = parseInt( dlSpeed );
+}
+var qsTime = $.query.get( "time" );
+if( "" != qsTime )
+{
+    Settings.MaximumTime = parseInt( qsTime );
+}
+
+function SetInfo( speedtext, timetext, testMethod )
+{
+    $( ( testMethod == Test.Download ) ? "#currentdlspeed" : "#currentulspeed" ).text( speedtext );
+	$( "#currenttime" ).text( timetext );
+}
+
+var count = $.query.get( "count" );
+if( count == "" || count > 100 )
+	count = Settings.RequestCount; 
+
+$( function()
+{
+    $( "#startTestButton" ).removeAttr( "disabled" ).val( Strings.StartTest ).click( function() { StartTest( count ) } );
+    $( "#requiredulspeed" ).text( Settings.MinimumUlSpeed.speedString() );
+    $( "#requireddlspeed" ).text( Settings.MinimumDlSpeed.speedString() );
+	$( "#requiredtime" ).text( Settings.MaximumTime.timeString() );
+	$( "#progressbar" ).progressbar();
+	
+	document.title = Strings.Title;
+	$( "#title" ).text( Strings.Title );
+	$( "#subtitle" ).text( Strings.SubTitle );
+	$( "#testInProgressLabel" ).text( Strings.TestInProgress ); 
+	$( "#logo" ).attr( "src", Settings.Logo );
+});
+-->
+</script>
+  <style type="text/css">
+    body,html,form, table, input, div, select
+    {
+      font-size:8pt;
+      font-family:verdana, arial, helvetica, sans-serif;
+    }
+    H3
+    {
+        font-family: Times New Roman;
+        font-size: large;
+    }
+    H4
+    {
+        font-family: Times New Roman;
+        font-size: 12pt;
+    }
+	THEAD
+	{
+		background-color: #D7E1F5;
+	}
+	#resultMessage H4
+	{
+		font-family: Arial, Helvetica, Sans Serif;
+		font-size: 9pt;
+		font-weight: bold;
+	}
+	#progressbar
+	{
+		margin-bottom: 30px;
+		margin-top: 30px;
+	}
+	#testInProgress
+	{
+		display: none;
+		margin-top: 30px;
+	}
+	#buttonPanel
+	{
+		float: right;
+	}
+    #resultMessage
+    {
+        display: none;
+        margin-left: auto;
+        margin-right: auto;
+        width: 400px;
+    }
+	#statusContainer
+	{
+		margin-top: 10px;
+		margin-bottom: 10px;
+		min-height: 50px;
+		position: relative;
+	}
+	#technicalDetails
+	{
+		display: none;
+		margin-top: 40px; 
+		margin-left: 50px; 
+		margin-right: 50px;
+	}
+	#mainContentFrame
+	{
+		width: 480px; 
+		margin-left: auto; 
+		margin-right: auto
+	}
+	#mainContentFrame .border
+	{
+		border: 20px solid #dedede; 
+		padding: 30px
+	}
+  </style>
+<title></title>
+</head>
+
+<body>
+  <div id="mainContentFrame">
+    <img id="logo"/>
+    <div class="border">
+        <div>
+            <h3 id="title"></h3>
+            <span id="subtitle"></span>
+        </div>
+
+		<div id="statusContainer">
+			<div id="resultMessage">
+				<h4 class="result-title"></h4>
+				<div class="result-message"></div>
+			</div>
+		
+			<div id="testInProgress">
+				<img src="loading.gif" width="16" height="16" align="absmiddle"/> <span id="testInProgressLabel"></span>
+			</div>
+		</div>
+
+		<div id="progressPanel">
+			<div id="progressbar"></div>
+		</div>
+
+		<div id="buttonPanel"> 
+            <form>
+                <input type="button" id="startTestButton"/>
+            </form>
+        </div>
+    </div>
+    </div>
+	<div id="technicalDetails">
+		Download speed: <span id="currentdlspeed"></span>
+        &nbsp;(required minimum: <span id="requireddlspeed"></span>)
+		<br/>
+		Upload speed: <span id="currentulspeed"></span>
+		&nbsp;(required minimum: <span id="requiredulspeed"></span>)
+		<br/>
+        Response time: <span id="currenttime"></span>
+        &nbsp;(required maximum: <span id="requiredtime"></span>)
+        <br/>
+    <table width="100%" border="0">
+		<thead>
+			<tr>
+				<td>Test</td>
+				<td>Transfer Time</td>
+				<td>Ping</td>
+				<td>Host</td>
+				<td>Path</td>
+				<td>Bytes</td>
+				<td>Status</td>
+				<td>Speed</td>
+			</tr>
+		</thead>
+		<tbody id="tblSample">
+		</tbody>
+    </table>
+  </div>
+</body>
+</html>

+ 245 - 0
sincro/index.php

@@ -0,0 +1,245 @@
+<?php
+/* For licensing terms, see /license.txt */
+/**
+ * Allows anyone to upload synchronization data
+ * @package chamilo.sincro
+ * @author Julio Montoya <gugli100@gmail.com>
+ * @author Yannick Warnier <yannick.warnier@beeznest.com>
+ */
+/**
+ * Initialization
+ */
+$language_file = 'admin';
+$cidReset = true;
+require_once '../main/inc/global.inc.php';
+$this_section = SECTION_GLOBAL;
+
+//api_protect_admin_script();
+//api_protect_global_admin_script();
+
+if (!api_get_multiple_access_url()) {
+	header('Location: ../index.php');
+	exit;
+}
+
+// Create the form
+//$form = new FormValidator('add_url',null,null,null,array('onLoad'=>'load();', 'onunload'=>'GUnload();'));
+//$form = new FormValidator('add_url');
+$form = new FormValidator('form_mapa', null, null, null, array('onsubmit'=>'showAddress(this.address.value, this.zoom.value=parseFloat(this.zoom.value)); return false'));
+$url_type = 3;
+error_log(__LINE__);
+if( $form->validate()) {
+error_log(__LINE__);
+	//$check = Security::check_token('post');
+	//if($check) {
+error_log(__LINE__);
+		$url_array = $form->getSubmitValues();
+		$url = Security::remove_XSS($url_array['url']);
+		$description = Security::remove_XSS($url_array['description']);
+		$active = 0;
+		$url_id = $url_array['id'];
+		$url_to_go='index.php';
+		if ($url_id!='') {
+error_log(__LINE__);
+			//we can't change the status of the url with id=1
+			if ($url_id==1) {
+				$active=1;
+                        }
+			//checking url
+			if (substr($url,-1)=='/') {
+                            $url.='/';
+                        }
+			UrlManager::udpate($url_id, $url, $description, $active, $url_array['url_type'], $url_array);
+/*
+			// URL Images
+			$url_images_dir = api_get_path(SYS_PATH).'custompages/url-images/';
+			$image_fields = array("url_image_1", "url_image_2", "url_image_3");
+			foreach ($image_fields as $image_field) {
+				if ($_FILES[$image_field]['error'] == 0) {
+					// Hardcoded: only PNG files allowed
+					if (end(explode('.', $_FILES[$image_field]['name'])) == 'png') {
+						move_uploaded_file($_FILES[$image_field]['tmp_name'], $url_images_dir.$url_id.'_'.$image_field.'.png');
+					}
+					// else fail silently
+				}
+				// else fail silently
+			}
+*/
+			$url_to_go='index.php';
+			$message=get_lang('URLEdited');
+		} else {
+error_log(__LINE__);
+			$num = UrlManager::url_exist($url);
+			if ($num == 0) {
+				//checking url
+				if (substr($url,-1)=='/') {
+                                    $url .= '/';
+                                }
+error_log(__LINE__);
+				UrlManager::add($url, $description, $active, $url_type, $url_array);
+				$message = get_lang('URLAdded');
+				$url_to_go='index.php';
+			} else {
+				$url_to_go='index.php';
+				$message = get_lang('URLAlreadyAdded');
+			}
+			// URL Images
+			$url .= (substr($url,-1)=='/') ? '' : '/';
+			$url_id = UrlManager::get_url_id($url);
+/*
+			$url_images_dir = api_get_path(SYS_PATH).'custompages/url-images/';
+			$image_fields = array("url_image_1", "url_image_2", "url_image_3");
+			foreach ($image_fields as $image_field) {
+				if ($_FILES[$image_field]['error'] == 0) {
+					// Hardcoded: only PNG files allowed
+					if (end(explode('.', $_FILES[$image_field]['name'])) == 'png') {
+						move_uploaded_file($_FILES[$image_field]['tmp_name'], $url_images_dir.$url_id.'_'.$image_field.'.png');
+					}
+					// else fail silently
+				}
+				// else fail silently
+			}
+*/
+		}
+error_log(__LINE__);
+		Security::clear_token();
+		$tok = Security::get_token();
+		header('Location: '.$url_to_go.'?action=show_message&message='.urlencode($message));//.'&sec_token='.$tok);
+		exit();
+//	}
+} else {
+error_log(__LINE__);
+/*
+	if(isset($_POST['submit'])) {
+		Security::clear_token();
+	}
+	$token = Security::get_token();
+	$form->addElement('hidden','sec_token');
+	$form->setConstants(array('sec_token' => $token));
+*/
+}
+
+//$form->addRule('url', get_lang('ThisFieldIsRequired'), 'required');
+//$form->addRule('url', '', 'maxlength',254);
+$form->addElement('text', 'name', get_lang('InstitutionName'));
+$form->addElement('text', 'url', get_lang('IPAddress'));
+//$form->addElement('text', 'ip', get_lang('IPAddress'));
+$form->addElement('hidden', 'latitude', get_lang('Latitude'), array('id' => 'latitude'));
+$form->addElement('hidden', 'longitude', get_lang('Longitude'), array('id' => 'longitude'));
+$form->addElement('hidden', 'zoom', 15);
+$html = '
+<div style="width: 350px; border-width: 1px; border-style: solid; border-color: #979797; padding:8px 8px 8px 8px;">
+<div id="map" style="width: 350px; height: 350px"></div></div>
+';
+$form->addElement('html',$html);
+$form->addElement('hidden', 'dwn_speed', get_lang('DownloadSpeed'), array('id' => 'dwn_speed_input'));
+$form->addElement('hidden', 'up_speed', get_lang('UploadSpeed'), array('id' => 'up_speed_input'));
+$form->addElement('hidden', 'delay', get_lang('ConnectionDelay'), array('id' => 'delay_input'));
+$form->addElement('text', 'admin_mail', get_lang('AdministratorEmail'));
+$form->addElement('text', 'admin_name', get_lang('AdministratorFullname'));
+$form->addElement('text', 'admin_phone', get_lang('AdministratorPhone'));
+$form->addElement('textarea','description',get_lang('Note'));
+
+//$form->addRule('checkbox', get_lang('ThisFieldIsRequired'), 'required');
+
+//$defaults['url']='http://';
+$defaults['url'] = $_SERVER['REMOTE_ADDR'];
+//$defaults['admin_mail'] = api_get_setting('emailAdministrator');
+//$defaults['admin_name'] = api_get_setting('administratorSurname').', '.api_get_setting('administratorName');
+//$defaults['admin_phone'] = api_get_setting('administratorTelephone');
+$form->setDefaults($defaults);
+
+$submit_name = get_lang('SentSincroClientData');
+if (isset($_GET['url_id'])) {
+	$url_id = Database::escape_string($_GET['url_id']);
+	$num_url_id = UrlManager::url_id_exist($url_id);
+	if($num_url_id != 1) {
+		header('Location: access_urls.php');
+		exit();
+	}
+	$url_data = UrlManager::get_url_data_from_id($url_id);
+	$form->addElement('hidden','id',$url_data['id']);
+	$form->setDefaults($url_data);
+	$submit_name = get_lang('AddUrl');
+}
+
+if (!$_configuration['multiple_access_urls'])
+	header('Location: index.php');
+
+$tool_name = get_lang('SpeedTest');
+//$interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAdmin'));
+//$interbreadcrumb[] = array ("url" => 'access_urls.php', "name" => get_lang('MultipleAccessURLs'));
+/**
+ * View
+ */
+//<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
+//<script type="text/javascript" src="ui.core.min.js"></script>
+//<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAGAEGVZIXwwutieHF4QOL4RRpYoRN0FKJQ7RZd_AzeNEq2PLjZhR3W4-qrIA2KyJ0hRw-barmpbORVQ" type="text/javascript"></script>
+$htmlHeadXtra[] = <<<EOB
+<link rel="stylesheet" href="css/style.css" type="text/css" />
+<script type="text/javascript" src="jquery.query-2.0.1.js"></script>
+<script type="text/javascript" src="ui.progressbar.min.js"></script>
+<script type="text/javascript" src="config.js"></script>
+<script type="text/javascript" src="motor.js"></script>
+<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyC7n899gO-g5r7r2cxx_E3fU8Xi7T33BLo" type="text/javascript"></script>
+<script>
+                var map      = null;
+                var geocoder = null;
+$(window).load(function () {
+   if (GBrowserIsCompatible()) {                                                   // Abre LLAVE 2.
+        map = new GMap2(document.getElementById("map"));
+        map.setCenter(new GLatLng(-10.9755,-74.9757), 6);
+        map.addControl(new GSmallMapControl());
+        map.addControl(new GMapTypeControl());
+        geocoder = new GClientGeocoder();
+        //---------------------------------//
+        //   MARCADOR AL HACER CLICK
+                GEvent.addListener(map, "click",
+                        function(marker, point) {
+                                if (marker) {
+                        null;
+                        } else {
+                                map.clearOverlays();
+                                        var marcador = new GMarker(point);
+                                        map.addOverlay(marcador);
+					$('#latitude').val(point.y);
+					$('#longitude').val(point.x);
+                        }
+                        }
+                        );
+        //---------------------------------//
+        //   FIN MARCADOR AL HACER CLICK
+                //---------------------------------//
+      } // Cierra LLAVE 1.
+});  
+</script>
+EOB;
+
+Display :: display_header($tool_name);
+
+if (isset ($_GET['action'])) {
+	switch ($_GET['action']) {
+		case 'show_message' :
+			Display :: display_normal_message(stripslashes($_GET['message']));
+			break;
+	}
+}
+
+// URL Images
+/*
+$form->addElement('file','url_image_1','URL Image 1 (PNG)');
+$form->addElement('file','url_image_2','URL Image 2 (PNG)');
+$form->addElement('file','url_image_3','URL Image 3 (PNG)');
+*/
+// Submit button
+$form->addElement('style_submit_button', 'submit', $submit_name, array('class'=>"add hidden", 'id' => 'submit_url_button'));
+echo '<div class="normal-message">'.get_lang('SpeedTestIntroSection').'</div>';
+echo '<div id="pagesincro">';
+echo '<div class="form-column">';
+$form->display();
+echo '</div>';
+echo '<div class="anim-column" style="float: right;">';
+include 'body.php';
+echo '</div>';
+echo '</div>';
+Display :: display_footer();

Разлика између датотеке није приказан због своје велике величине
+ 11 - 0
sincro/jquery-1.3.1.min.js


+ 211 - 0
sincro/jquery.query-2.0.1.js

@@ -0,0 +1,211 @@
+/**
+ * jQuery.query - Query String Modification and Creation for jQuery
+ * Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
+ * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
+ * Date: 2008/05/28
+ *
+ * @author Blair Mitchelmore
+ * @version 2.0.1
+ *
+ **/
+new function(settings) { 
+  // Various Settings
+  var $separator = settings.separator || '&';
+  var $spaces = settings.spaces === false ? false : true;
+  var $suffix = settings.suffix === false ? '' : '[]';
+  var $prefix = settings.prefix === false ? false : true;
+  var $hash = $prefix ? settings.hash === true ? "#" : "?" : "";
+  
+  jQuery.query = new function() {
+    var is = function(o, t) {
+      return o != undefined && o !== null && (!!t ? o.constructor == t : true);
+    };
+    var parse = function(path) {
+      var m, rx = /\[([^[]*)\]/g, match = /^(\S+?)(\[\S*\])?$/.exec(path), base = match[1], tokens = [];
+      while (m = rx.exec(match[2])) tokens.push(m[1]);
+      return [base, tokens];
+    };
+    var set = function(target, tokens, value) {
+      var o, token = tokens.shift();
+      if (typeof target != 'object') target = null;
+      if (token === "") {
+        if (!target) target = [];
+        if (is(target, Array)) {
+          target.push(tokens.length == 0 ? value : set(null, tokens.slice(0), value));
+        } else if (is(target, Object)) {
+          var i = 0;
+          while (target[i++] != null);
+          target[--i] = tokens.length == 0 ? value : set(target[i], tokens.slice(0), value);
+        } else {
+          target = [];
+          target.push(tokens.length == 0 ? value : set(null, tokens.slice(0), value));
+        }
+      } else if (token && token.match(/^\s*[0-9]+\s*$/)) {
+        var index = parseInt(token, 10);
+        if (!target) target = [];
+        target[index] = tokens.length == 0 ? value : set(target[index], tokens.slice(0), value);
+      } else if (token) {
+        var index = token.replace(/^\s*|\s*$/g, "");
+        if (!target) target = {};
+        if (is(target, Array)) {
+          var temp = {};
+          for (var i = 0; i < target.length; ++i) {
+            temp[i] = target[i];
+          }
+          target = temp;
+        }
+        target[index] = tokens.length == 0 ? value : set(target[index], tokens.slice(0), value);
+      } else {
+        return value;
+      }
+      return target;
+    };
+    
+    var queryObject = function(a) {
+      var self = this;
+      self.keys = {};
+      
+      if (a.queryObject) {
+        jQuery.each(a.get(), function(key, val) {
+          self.SET(key, val);
+        });
+      } else {
+        jQuery.each(arguments, function() {
+          var q = "" + this;
+          q = q.replace(/^[?#]/,''); // remove any leading ? || #
+          q = q.replace(/[;&]$/,''); // remove any trailing & || ;
+          if ($spaces) q = q.replace(/[+]/g,' '); // replace +'s with spaces
+          
+          jQuery.each(q.split(/[&;]/), function(){
+            var key = this.split('=')[0];
+            var val = this.split('=')[1];
+            
+            if (!key) return;
+            
+            if (/^[+-]?[0-9]+\.[0-9]*$/.test(val)) // simple float regex
+              val = parseFloat(val);
+            else if (/^[+-]?[0-9]+$/.test(val)) // simple int regex
+              val = parseInt(val, 10);
+            
+            val = (!val && val !== 0) ? true : val;
+            
+            if (val !== false && val !== true && typeof val != 'number')
+              val = decodeURIComponent(val);
+            
+            self.SET(key, val);
+          });
+        });
+      }
+      return self;
+    };
+    
+    queryObject.prototype = {
+      queryObject: true,
+      has: function(key, type) {
+        var value = this.get(key);
+        return is(value, type);
+      },
+      GET: function(key) {
+        if (!is(key)) return this.keys;
+        var parsed = parse(key), base = parsed[0], tokens = parsed[1];
+        var target = this.keys[base];
+        while (target != null && tokens.length != 0) {
+          target = target[tokens.shift()];
+        }
+        return typeof target == 'number' ? target : target || "";
+      },
+      get: function(key) {
+        var target = this.GET(key);
+        if (is(target, Object))
+          return jQuery.extend(true, {}, target);
+        else if (is(target, Array))
+          return target.slice(0);
+        return target;
+      },
+      SET: function(key, val) {
+        var value = !is(val) ? null : val;
+        var parsed = parse(key), base = parsed[0], tokens = parsed[1];
+        var target = this.keys[base];
+        this.keys[base] = set(target, tokens.slice(0), value);
+        return this;
+      },
+      set: function(key, val) {
+        return this.copy().SET(key, val);
+      },
+      REMOVE: function(key) {
+        return this.SET(key, null).COMPACT();
+      },
+      remove: function(key) {
+        return this.copy().REMOVE(key);
+      },
+      EMPTY: function() {
+        var self = this;
+        jQuery.each(self.keys, function(key, value) {
+          delete self.keys[key];
+        });
+        return self;
+      },
+      empty: function() {
+        return this.copy().EMPTY();
+      },
+      copy: function() {
+        return new queryObject(this);
+      },
+      COMPACT: function() {
+        function build(orig) {
+          var obj = typeof orig == "object" ? is(orig, Array) ? [] : {} : orig;
+          if (typeof orig == 'object') {
+            function add(o, key, value) {
+              if (is(o, Array))
+                o.push(value);
+              else
+                o[key] = value;
+            }
+            jQuery.each(orig, function(key, value) {
+              if (!is(value)) return true;
+              add(obj, key, build(value));
+            });
+          }
+          return obj;
+        }
+        this.keys = build(this.keys);
+        return this;
+      },
+      compact: function() {
+        return this.copy().COMPACT();
+      },
+      toString: function() {
+        var i = 0, queryString = [], chunks = [], self = this;
+        var addFields = function(arr, key, value) {
+          if (!is(value) || value === false) return;
+          var o = [key];
+          if (value !== true) {
+            o.push("=");
+            o.push(encodeURIComponent(value));
+          }
+          arr.push(o.join(""));
+        };
+        var build = function(obj, base) {
+          var newKey = function(key) {
+            return !base || base == "" ? [key].join("") : [base, "[", key, "]"].join("");
+          };
+          jQuery.each(obj, function(key, value) {
+            if (typeof value == 'object') 
+              build(value, newKey(key));
+            else
+              addFields(chunks, newKey(key), value);
+          });
+        };
+        
+        build(this.keys);
+        
+        if (chunks.length > 0) queryString.push($hash);
+        queryString.push(chunks.join($separator));
+        
+        return queryString.join("");
+      }
+    };
+    
+    return new queryObject(location.search, location.hash);
+  };
+}(jQuery.query || {}); // Pass in jQuery.query as settings object

BIN
sincro/loading.gif


+ 53 - 0
sincro/mapagoogle.html

@@ -0,0 +1,53 @@
+<html>
+<head>
+<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyCxElj7e8OT-90nnhNPZk6dSyBXf5T3q-s"
+      type="text/javascript"></script>
+<script src="jquery-1.8.3.min.js" type="text/javascript" ></script>
+<script type="text/javascript">
+		var map      = null;
+		var geocoder = null;
+$(window).load(function () {
+   if (GBrowserIsCompatible()) {						   // Abre LLAVE 2.
+	map = new GMap2(document.getElementById("map"));
+	map.setCenter(new GLatLng(-10.9755,-74.9757), 6);
+	map.addControl(new GSmallMapControl());
+	map.addControl(new GMapTypeControl());
+	geocoder = new GClientGeocoder();
+        //---------------------------------//
+        //   MARCADOR AL HACER CLICK
+		GEvent.addListener(map, "click",
+			function(marker, point) {
+ 		 		if (marker) {
+               		null;
+              		} else {
+          			map.clearOverlays();
+					var marcador = new GMarker(point);
+					map.addOverlay(marcador);
+								
+					var latitude=document.getElementById("latitud");
+					var longitude=document.getElementById("longitud");
+							while(latitude.firstChild) {
+              			latitude.removeChild(latitude.firstChild);
+            				}
+            				latitude.appendChild(document.createTextNode(point.y));
+            				while(longitude.firstChild) {
+                			longitude.removeChild(longitude.firstChild);
+            				}
+            				longitude.appendChild(document.createTextNode(point.x)); 					
+					}
+  			}
+			);
+        //---------------------------------//
+        //   FIN MARCADOR AL HACER CLICK
+		//---------------------------------//
+      } // Cierra LLAVE 1.
+});  
+</script>
+</head>
+<body >
+<div style="width: 350px; border-width: 1px; border-style: solid; border-color: #979797; padding:8px 8px 8px 8px;">
+<div id="map" style="width: 350px; height: 350px"></div></div>
+<div>Latitud:<span id="latitud"></span> </div>
+<div>Longitud:<span id="longitud"></span> </div>
+      </body>
+     </html>

+ 21 - 0
sincro/mapagoogle.js

@@ -0,0 +1,21 @@
+var map      = null; var geocoder = null;
+function $(window).load( function ()  {
+  if (GBrowserIsCompatible()) {
+    map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(-10.9755,-74.9757), 6); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); geocoder = new GClientGeocoder();
+    GEvent.addListener(map, "click",
+      function(marker, point) {
+        if (marker) {
+          null;
+        } else {
+          map.clearOverlays();
+          var marcador = new GMarker(point);
+          map.addOverlay(marcador);
+          document.form_mapa.coordenadas.value = point.y+","+point.x;
+          var latitude=document.getElementById("latitude"); var longitude=document.getElementById("longitude");
+          while(latitude.firstChild) { latitude.removeChild(latitude.firstChild); }
+          latitude.appendChild(document.createTextNode(point.y));
+          while(longitude.firstChild) { longitude.removeChild(longitude.firstChild); }
+          longitude.appendChild(document.createTextNode(point.x));
+} }); } // Cierra LLAVE 1.  
+}   // Cierra LLAVE 2. 
+);

+ 485 - 0
sincro/motor.js

@@ -0,0 +1,485 @@
+<!-- 
+var start_time = 0;
+
+function Timer()
+{
+	this.startTime = 0;
+	this.endTime = 0;
+
+	Timer.prototype.Reset = function()
+	{
+		this.startTime = new Date().getTime();
+		this.endTime = 0;
+	}
+
+	Timer.prototype.Stop = function()
+	{
+		this.endTime = new Date().getTime();
+		return this.endTime - this.startTime;
+	}
+
+	Timer.prototype.Value = function()
+	{
+		var end = this.endTime;
+		if( end == 0 && this.startTime != 0 )
+			end = new Date().getTime();
+		return end - this.startTime;
+	}
+
+	this.Reset();
+}
+
+Number.prototype.timeString = function()
+{
+	if( this >= 1000 )
+		return roundNumber( this / 1000, 2 ).toString() + " s";
+	return this.toString() + " ms";
+}
+
+Number.prototype.speedString = function()
+{
+    //if( this >= 1000 )
+    //    return roundNumber( this / 1000, 1 ).toString() + " Mbit/s";
+    return this.toString() + " kbit/s";
+}
+
+function WebClientRequest( method, url )
+{
+	this.timer = new Timer;
+	this.url = url;
+	this.data = "";
+	this.method = method;
+
+	this.GetResponse = function( readData )
+	{
+		var response = new WebClientResponse( this, readData );
+		this.timer.Reset();
+		$.ajax( {
+			url: this.url,
+			cache: false,
+			async: false,
+			processData: false,
+			data: this.data,
+			type: this.method,
+			dataType: "text",
+			contentType: "text/plain; charset=x-user-defined",
+			complete: response.InternalRequestCompleted(),
+			error: function( e ) 
+			{
+				if( e.status == 200 )
+					return; // We do get here in IE7 on Vista, even though the request performed well..
+				if( e.status == 405 )
+					alert( "Su servidor no permite el uso de HTTP POST hacia este archivo HTML.\nPor favor, revise su configuración." );
+			} 
+		} );
+
+		return response;
+	};
+}
+
+function WebClientResponse( request, readData )
+{
+	this.request = request;
+	this.readData = readData;
+	this.data = "";
+	this.status = "";
+	this.statusText = "";
+	this.contentLength = 0;
+	this.bytesTransferred = 0;
+	this.GetTime = function() { return this.request.timer.Value(); }
+	this.GetSpeed = function() { return roundNumber( ( this.bytesTransferred * 0.008 ) / ( this.GetTime() / 1000 ), 0 ); }
+
+	this.InternalRequestCompleted = function() 
+	{
+		var response = this;
+		return function( xhr )
+		{
+			response.status = xhr.status;
+			response.statusText = xhr.statusText;
+			var contentLengthHeader = xhr.getResponseHeader( "Content-Length" );
+			
+			if( null != contentLengthHeader && contentLengthHeader.length > 0 )
+				response.contentLength = parseInt( contentLengthHeader );
+			else if( null != xhr.responseText )
+				response.contentLength = xhr.responseText.length;
+			else
+				response.contentLength = 0;
+			
+			if( response.request.method == "POST" )
+				response.contentLength = request.data.length;
+			if( response.request.method != "HEAD" )
+				response.bytesTransferred = response.contentLength;
+			if( response.readData )
+				response.data = xhr.responseText;
+			response.request.timer.Stop();
+		}
+    };
+}
+
+function WebClient()
+{
+	WebClient.prototype.Download = function( url, readData )
+	{
+		return new WebClientRequest( "GET", url ).GetResponse( readData );
+	};
+
+	WebClient.prototype.Upload = function( url, data )
+	{
+        if( url.indexOf( "?" ) == -1 )
+            qs = '?sid=' + Math.random();
+        else
+            qs = '&sid=' + Math.random();
+
+		var request = new WebClientRequest( "POST", url + qs );
+		request.data = data;
+		return request.GetResponse();
+	};
+
+	WebClient.prototype.Ping = function( url )
+	{
+		return new WebClientRequest( "HEAD", url ).GetResponse();
+	};
+}
+
+Test.SmallFilePath = "data_100k.txt";
+Test.LargeFilePath = "data_1600k.txt";
+Test.Download = "DOWNLOAD";
+Test.Upload = "UPLOAD";
+
+function Test()
+{
+	this.timer = new Timer;
+	this.webClient = new WebClient;
+	this.progressCallback = function() {};
+	this.completionCallback = function() {};
+	this.progressValue = 0;
+	this.maxProgressValue = 0;
+	this.path = "";
+
+	this.last = null;
+	this.ping = null;
+
+	Test.prototype.Start = function()
+	{
+		var test = this;
+		setTimeout( function()
+		{
+			test.timer.Reset();
+			test.Run( function() 
+			{ 
+				test.progressValue++;
+				if( null != test.progressCallback )
+				{
+					test.progressCallback();
+				}
+			},
+			function()
+			{
+				test.timer.Stop();
+				if( null != test.completionCallback )
+					test.completionCallback();
+			} );
+		}, 10 );
+	}
+
+	Test.prototype.Run = function( updateProgress, completed ) {}
+
+	Test.prototype.MakeRequest = function()
+	{
+		if( this.path == null || this.path.length == 0 )
+			return;
+		if( this.method == Test.Upload )
+		{
+			if( this.payload == null ) 
+			{
+				var dl = this.webClient.Ping( this.path );
+				this.payload = this.GenerateData( dl.contentLength );
+			}
+
+			this.last = this.webClient.Upload( location.search, this.payload );
+		}
+		else if( this.method == Test.Download )
+		{
+			this.last = this.webClient.Download( this.path );
+		}
+        this.ping = this.webClient.Ping( "?" );
+	}
+
+	Test.prototype.GenerateData = function( length )
+	{
+		var data = "";
+		while( data.length < length )
+		{
+			data = data + Math.random();
+		}
+		return data;
+	}
+			
+
+	Test.prototype.OnProgress = function( progressCallback )
+    {
+        this.progressCallback = progressCallback;
+		return this;
+	}
+
+	Test.prototype.OnComplete = function( completionCallback )
+	{
+		this.completionCallback = completionCallback;
+		return this;
+	}
+
+    Test.prototype.Path = function( path )
+    {
+        this.path = path;
+        return this;
+    }
+
+	Test.prototype.Method = function( method )
+	{
+		this.method = method;
+		return this;
+	}
+}
+
+AverageTest.prototype = new Test;
+function AverageTest() 
+{
+	this.iterations = 0;
+	this.iteration = 0;
+	this.totalBytes = 0;
+	this.totalSpeed = 0;
+	this.totalTime = 0;
+	this.totalPing = 0;
+
+	this.iterationCallback = function() {};
+
+	Test.apply( this, arguments );
+
+	AverageTest.prototype.Run = function( incrementProgress, completed )
+	{ 
+		this.maxProgressValue = this.iterations;
+		if( !this.IsCompleted() )
+		{
+			this.Iterate();
+			if( this.last == null )
+				return;
+			this.iteration++;
+			incrementProgress();
+			var test = this;
+			setTimeout( function() { test.Run( incrementProgress, completed ); }, 1 );
+		}
+		else
+			completed();
+	}
+
+	AverageTest.prototype.IsCompleted = function()
+	{
+		return this.iterations == this.iteration;
+	}
+
+	AverageTest.prototype.GetAverageTime = function()
+	{
+		return roundNumber( this.totalTime / this.iteration, 2 );
+	}
+
+	AverageTest.prototype.GetAveragePing = function()
+	{
+		return roundNumber( this.totalPing / this.iteration, 2 );
+	}
+
+	AverageTest.prototype.GetAverageSpeed = function()
+	{
+		return roundNumber( this.totalSpeed / this.iteration, 1 );
+	}
+
+	AverageTest.prototype.GetTotalTime = function()
+	{
+		return this.totalTime;
+	}
+
+	AverageTest.prototype.Iterate = function()
+	{
+		this.MakeRequest();
+		if( this.last != null )
+		{
+			this.totalBytes += this.last.contentLength;
+			this.totalSpeed += this.last.GetSpeed();
+			this.totalTime += this.last.GetTime();
+			this.totalPing += this.ping.GetTime();
+		}
+	}
+
+	AverageTest.prototype.Iterations = function( number )
+	{
+		this.iterations = number;
+		return this;
+	}
+
+	AverageTest.prototype.AfterIteration = function( iterationCallback )
+	{
+		this.iterationCallback = iterationCallback;
+		return this;
+	} 
+}
+
+
+function roundNumber(num, dec) 
+{
+  var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
+  return result;
+}
+
+function EndTest( upload, download )
+{
+    var totalTime = upload.GetTotalTime() + download.GetTotalTime();
+    var avgTime = roundNumber( ( upload.GetAveragePing() + download.GetAveragePing() ) / 2, 2 );
+    var tbl = $( "#tblSample" );
+    var rows = $( "tr", tbl );
+    row = $( "<tr/>" ).appendTo( tbl ).css( "background-color", "#cfcfcf" );
+ 
+    $( row ).append( "<td colspan=8>Total time " + totalTime.timeString() + ", average response time " + avgTime.timeString() + "</td>" );
+
+    $( "#startTestButton" ).removeAttr( "disabled" ).val( Strings.StartTest );
+    $( "#testInProgress" ).hide( "normal" );
+
+    var avgUlSpeed = upload.GetAverageSpeed();
+    var avgDlSpeed = download.GetAverageSpeed();
+    $('#dwn_speed_input').val(avgDlSpeed);
+    $('#up_speed_input').val(avgUlSpeed);
+    $('#submit_url_button').removeClass('hidden');
+
+    SetInfo( avgUlSpeed.speedString(), avgTime.timeString(), upload.method );
+    SetInfo( avgDlSpeed.speedString(), avgTime.timeString(), download.method );
+
+    var title = "";
+    var message = "";
+    if( avgUlSpeed < Settings.MinimumUlSpeed || isNaN( avgUlSpeed ) || 
+        avgDlSpeed < Settings.MinimumDlSpeed || isNaN( avgDlSpeed ) || 
+        avgTime > Settings.MaximumTime || isNaN( avgTime )  )
+    {
+        title = Strings.TestFailed.Title;
+        message = Strings.TestFailed.Message;
+    }
+    else
+    {
+        title = Strings.TestPassed.Title;
+        message = Strings.TestPassed.Message;
+    }
+	
+    var res = $( "#resultMessage" );
+    res.children( ".result-title" ).text( title );
+    res.children( ".result-message" ).text( message );
+    res.show( "fast" );
+}
+
+function StartTest( count )
+{
+    $( "#resultMessage" ).hide( "fast" );
+	$( "#startTestButton" ).attr( "disabled", "disabled" );
+	UpdateProgress( 0 );
+    $( "#testInProgress" ).show( "normal", function() { TestStarted( count ); } );  
+}
+
+function TestStarted( count )
+{
+	if( "" != $.query.get("details" ))
+		Settings.Debug = true;
+	if( Settings.Debug )
+        $( "#technicalDetails" ).show( "fast" );
+	var tbl = $( "#tblSample" );
+	$( "tr", tbl ).remove();
+
+	var upload = new AverageTest()
+		.Iterations( count / 2 )
+		.Path( Test.SmallFilePath )
+		.Method( Test.Upload )
+		.OnProgress( function() 
+			{
+				var progressPercentage = this.progressValue / ( this.maxProgressValue / 100 ) / 2;
+				UpdateProgress( progressPercentage );
+				AppendDetailsRow( this ); 
+			} );
+
+    var download = new AverageTest()
+        .Iterations( count / 2 )
+        .Path( Test.SmallFilePath )
+        .Method( Test.Download )
+        .OnProgress( function()
+            {
+				var progressPercentage = this.progressValue / (this.maxProgressValue / 100 ) / 2 + 50;
+				UpdateProgress( progressPercentage );
+				AppendDetailsRow( this ); 
+			} );
+    
+	download.OnComplete( function() { EndTest( upload, download ); } );
+	upload.OnComplete( function() { download.Start(); } ).Start();
+}
+
+function UpdateProgress( value )
+{
+	$( "#progressbar" ).children( ".ui-progressbar-value" ).css( "width", value + "%" );
+}
+
+function AppendDetailsRow( test )
+{
+	var tbl = $( "#tblSample" );
+    var rows = $( "tr", tbl );
+
+	row = $( "<tr/>" ).appendTo( tbl ).css( "background-color", ( test.iteration % 2 ) ? "#eeeeee" : "#ffffff" );
+
+	var speed = test.last.GetSpeed().speedString();
+	var time = test.last.GetTime().timeString();
+    var addCol = function( text ) { $("<td/>" ).append( text ).appendTo( row ); };
+    addCol( test.method + " " + test.iteration )
+    addCol( time );
+	addCol( test.ping.GetTime().timeString() );
+    addCol( window.location.host );
+    addCol( test.last.request.url );
+    addCol( test.last.contentLength );
+    addCol( test.last.status );
+    addCol( speed );
+    SetInfo( speed, test.ping.GetTime(), test.method );
+}
+
+var ulSpeed = $.query.get( "ul" );
+if( "" != ulSpeed )
+{
+    Settings.MinimumUlSpeed = parseInt( ulSpeed );
+}
+var dlSpeed = $.query.get( "dl" );
+if( "" != dlSpeed )
+{
+    Settings.MinimumDlSpeed = parseInt( dlSpeed );
+}
+var qsTime = $.query.get( "time" );
+if( "" != qsTime )
+{
+    Settings.MaximumTime = parseInt( qsTime );
+}
+
+function SetInfo( speedtext, timetext, testMethod )
+{
+    $( ( testMethod == Test.Download ) ? "#currentdlspeed" : "#currentulspeed" ).text( speedtext );
+	$( "#currenttime" ).text( timetext );
+        $( "#delay_input" ).val(timetext);
+}
+
+var count = $.query.get( "count" );
+if( count == "" || count > 100 )
+	count = Settings.RequestCount; 
+
+$( function()
+{
+    $( "#startTestButton" ).removeAttr( "disabled" ).val( Strings.StartTest ).click( function() { StartTest( count ) } );
+    $( "#requiredulspeed" ).text( Settings.MinimumUlSpeed.speedString() );
+    $( "#requireddlspeed" ).text( Settings.MinimumDlSpeed.speedString() );
+	$( "#requiredtime" ).text( Settings.MaximumTime.timeString() );
+	$( "#progressbar" ).progressbar();
+	
+	document.title = Strings.Title;
+	$( "#title" ).text( Strings.Title );
+	$( "#subtitle" ).text( Strings.SubTitle );
+	$( "#testInProgressLabel" ).text( Strings.TestInProgress ); 
+	$( "#logo" ).attr( "src", Settings.Logo );
+});
+-->

BIN
sincro/themes/base/images/222222_256x240_icons_icons.png


BIN
sincro/themes/base/images/2e83ff_256x240_icons_icons.png


BIN
sincro/themes/base/images/454545_256x240_icons_icons.png


BIN
sincro/themes/base/images/888888_256x240_icons_icons.png


BIN
sincro/themes/base/images/cccccc_40x100_textures_03_highlight_soft_75.png


BIN
sincro/themes/base/images/cd0a0a_256x240_icons_icons.png


BIN
sincro/themes/base/images/dadada_40x100_textures_02_glass_75.png


BIN
sincro/themes/base/images/e6e6e6_40x100_textures_02_glass_75.png


BIN
sincro/themes/base/images/fbf9ee_40x100_textures_02_glass_55.png


BIN
sincro/themes/base/images/fef1ec_40x100_textures_05_inset_soft_95.png


BIN
sincro/themes/base/images/ffffff_40x100_textures_02_glass_65.png


BIN
sincro/themes/base/images/ffffff_40x100_textures_02_glass_75.png


+ 9 - 0
sincro/themes/base/ui.accordion.css

@@ -0,0 +1,9 @@
+/* Accordion
+----------------------------------*/
+.ui-accordion-group {margin-bottom: 1px;}
+.ui-accordion-header { cursor: pointer; position: relative;  }
+.ui-accordion-selected .ui-accordion-header { border-bottom: 0; }
+.ui-accordion .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
+.ui-accordion-content-wrap { border-top: 0; margin-top: -1px; position: relative; top: 1px; }
+.ui-accordion-content { padding: 1em 2.2em; }

+ 3 - 0
sincro/themes/base/ui.all.css

@@ -0,0 +1,3 @@
+@import "ui.core.css";
+@import "ui.theme.css";
+@import "ui.allplugins.css";

+ 4 - 0
sincro/themes/base/ui.all.css~

@@ -0,0 +1,4 @@
+@import "ui.core.css";
+@import "ui.theme.css";
+@import "ui.allplugins.css";
+

+ 7 - 0
sincro/themes/base/ui.allplugins.css

@@ -0,0 +1,7 @@
+@import url("ui.accordion.css");
+@import url("ui.datepicker.css");
+@import url("ui.dialog.css");
+@import url("ui.progressbar.css");
+@import url("ui.resizable.css");
+@import url("ui.slider.css");
+@import url("ui.tabs.css");

+ 37 - 0
sincro/themes/base/ui.core.css

@@ -0,0 +1,37 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+*/
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

+ 60 - 0
sincro/themes/base/ui.datepicker.css

@@ -0,0 +1,60 @@
+/* Datepicker
+----------------------------------*/
+.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+.ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker-prev, .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker-prev-hover, .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker-prev { left:2px; }
+.ui-datepicker-next { right:2px; }
+.ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker-title select.ui-datepicker-year { float: right; }
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold;  }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}

+ 13 - 0
sincro/themes/base/ui.dialog.css

@@ -0,0 +1,13 @@
+/* Dialog
+----------------------------------*/
+.ui-dialog { position: relative; padding: .2em; width: 300px; }
+.ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative;  }
+.ui-dialog-title { float: left; margin: .1em 0 .2em; } 
+.ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog-titlebar-close:hover, .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; }
+.ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }

+ 4 - 0
sincro/themes/base/ui.progressbar.css

@@ -0,0 +1,4 @@
+/* Progressbar
+----------------------------------*/
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar-value {margin: -1px; height:100%; }

+ 13 - 0
sincro/themes/base/ui.resizable.css

@@ -0,0 +1,13 @@
+/* Resizable
+----------------------------------*/
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}

+ 13 - 0
sincro/themes/base/ui.slider.css

@@ -0,0 +1,13 @@
+/* Slider
+----------------------------------*/
+.ui-slider { position: relative; text-align: left; }
+.ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider-range { position: absolute; z-index: 1; font-size: 1%; display: block; border: 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { position: relative; top: 0; height: 100%; }
+
+.ui-slider-vertical { width: .8em; height: 100%; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; height: auto; width: 100%; }

+ 9 - 0
sincro/themes/base/ui.tabs.css

@@ -0,0 +1,9 @@
+/* Tabs
+----------------------------------*/
+.ui-tabs {padding: .2em;}
+.ui-tabs-nav { padding: .2em .2em 0 .2em;  position: relative; }
+.ui-tabs-nav li { float: left; border-bottom: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
+.ui-tabs-nav li a { display:block; text-decoration: none; padding: .5em 1em; }
+.ui-tabs-nav li.ui-tabs-selected {  padding-bottom: .1em; border-bottom: 0; }
+.ui-tabs-panel { padding: 1em 1.4em;  display: block; border: 0; background: none; }
+.ui-tabs-hide { display: none !important; }

+ 240 - 0
sincro/themes/base/ui.theme.css

@@ -0,0 +1,240 @@
+/*
+* jQuery UI CSS Framework
+* Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
+* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
+* To view and modify this theme, visit http://themeroller.com/{themeurl}
+*/
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
+.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/cccccc_40x100_textures_03_highlight_soft_75.png)/*{bgImgUrlHeader}*/ 0/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
+.ui-widget-header a { color: #222222/*{fcHeader}*/; }
+.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ffffff_40x100_textures_02_glass_75.png)/*{bgImgUrlContent}*/ 0/*{bgContentXPos}*/ 0/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
+.ui-widget-content a { color: #222222/*{fcContent}*/; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/e6e6e6_40x100_textures_02_glass_75.png)/*{bgImgUrlDefault}*/ 0/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; outline: none; }
+.ui-state-default a { color: #555555/*{fcDefault}*/; text-decoration: none; outline: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/dadada_40x100_textures_02_glass_75.png)/*{bgImgUrlHover}*/ 0/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; outline: none; }
+.ui-state-hover a { color: #212121/*{fcHover}*/; text-decoration: none; outline: none; }
+.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ffffff_40x100_textures_02_glass_65.png)/*{bgImgUrlActive}*/ 0/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; outline: none; }
+.ui-state-active a { color: #212121/*{fcActive}*/; outline: none; text-decoration: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/fbf9ee_40x100_textures_02_glass_55.png)/*{bgImgUrlHighlight}*/ 0/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
+.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/fef1ec_40x100_textures_05_inset_soft_95.png)/*{bgImgUrlError}*/ 0/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/222222_256x240_icons_icons.png)/*{iconsContent}*/; }
+.ui-widget-content .ui-icon {background-image: url(images/222222_256x240_icons_icons.png)/*{iconsContent}*/; }
+.ui-widget-header .ui-icon {background-image: url(images/222222_256x240_icons_icons.png)/*{iconsHeader}*/; }
+.ui-state-default .ui-icon { background-image: url(images/888888_256x240_icons_icons.png)/*{iconsDefault}*/; }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/454545_256x240_icons_icons.png)/*{iconsHover}*/; }
+.ui-state-active .ui-icon {background-image: url(images/454545_256x240_icons_icons.png)/*{iconsActive}*/; }
+.ui-state-highlight .ui-icon {background-image: url(images/2e83ff_256x240_icons_icons.png)/*{iconsHighlight}*/; }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/cd0a0a_256x240_icons_icons.png)/*{iconsError}*/; }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-top { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-right {  -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-left { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; }
+.ui-corner-all { -moz-border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; }
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ none/*{bgImgUrlOverlay}*/ 0/*{bgOverlayXPos}*/ 0/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
+.ui-widget-shadow { margin: -4px/*{offsetTopShadow}*/ 0 0 -4px/*{offsetLeftShadow}*/; padding: 4px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ none/*{bgImgUrlShadow}*/ 0/*{bgShadowXPos}*/ 0/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .35;filter:Alpha(Opacity=35)/*{opacityShadow}*/; -moz-border-radius: 4px/*{cornerRadiusShadow}*/; -webkit-border-radius: 4px/*{cornerRadiusShadow}*/; }

Разлика између датотеке није приказан због своје велике величине
+ 8 - 0
sincro/ui.core.min.js


+ 12 - 0
sincro/ui.progressbar.min.js

@@ -0,0 +1,12 @@
+/*
+ * jQuery UI Progressbar 1.6rc5
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Progressbar
+ *
+ * Depends:
+ *   ui.core.js
+ */
(function(a){a.widget("ui.progressbar",{_init:function(){var b=this,c=this.options;this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('<div class="ui-progressbar-value ui-widget-header ui-corner-left"></div>').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){arguments.length&&this._setData("value",b);return this._value()},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.6rc5",defaults:{value:0}})})(jQuery);

+ 10 - 0
sincro/web.config

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <system.webServer>
+        <defaultDocument>
+            <files>
+                <add value="index.aspx" />
+            </files>
+        </defaultDocument>
+    </system.webServer>
+</configuration>

Неке датотеке нису приказане због велике количине промена