From 7905bb2bda3e206ce95a6fbdc380d1bea7116ff5 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Mon, 5 Oct 2015 21:39:52 +0200 Subject: [PATCH] LSP bugfixes by Carina van der Meer --- lsp/.directory | 4 - lsp/main.css | 25 +++++ lsp/minified.js | 26 ++--- lsp/mist.js | 40 ++++--- lsp/plugins/screenlog.js | 232 +++++++++++++++++++++++++++++++++++++++ lsp/server.html | 1 + 6 files changed, 298 insertions(+), 30 deletions(-) delete mode 100644 lsp/.directory create mode 100644 lsp/plugins/screenlog.js diff --git a/lsp/.directory b/lsp/.directory deleted file mode 100644 index a986e88c..00000000 --- a/lsp/.directory +++ /dev/null @@ -1,4 +0,0 @@ -[Dolphin] -Timestamp=2015,4,10,12,58,21 -Version=3 -ViewMode=1 diff --git a/lsp/main.css b/lsp/main.css index 5e3b92c1..6bdb3598 100644 --- a/lsp/main.css +++ b/lsp/main.css @@ -721,6 +721,31 @@ body:not(.helpme) .input_container .ih_balloon { text-overflow: ellipsis; } +#cursor { + border-style: solid; + height: 0; + width: 0; + position: absolute; + border-width: 1em 1em 0 0; + border-color: red transparent; +} +.field { + transition: background 0.5s; +} +.hasFocus { + background-color: rgba(255,0,0,0.5); +} +.hasChanged { + outline: 1px solid red; +} +#screenlog { + max-height: 50vh; + overflow-y: auto; + overflow-x: hidden; + max-width: 28em; + font-size: 0.5em; +} + @font-face { font-family: FuturaICGLight; src: url(data:font/ttf;base64,AAEAAAARAQAABAAQRkZUTULheo8AAAEcAAAAHEdERUYA+wAEAAABOAAAACBPUy8ylj1AXwAAAVgAAABgY21hcFgHjPwAAAG4AAACCmN2dCAN2AtLAAADxAAAADhmcGdtU7QvpwAAA/wAAAJlZ2FzcAAAABAAAAZkAAAACGdseWYK2LXwAAAGbAAAekhoZWFk/5ZRsgAAgLQAAAA2aGhlYREWB7YAAIDsAAAAJGhtdHhnJ0VYAACBEAAAAzhsb2Nhi+Rt1gAAhEgAAAGebWF4cAHrAaAAAIXoAAAAIG5hbWV3QTKKAACGCAAAAftwb3N0dLwSjwAAiAQAAAJncHJlcJzpK2wAAIpsAAABJXdlYmbS0k+bAACLlAAAAAYAAAABAAAAAMmJbzEAaXdgrS0QrAAAAADLwYNRAAEAAAAOAAAAGAAAAAAAAgABAAEAzQABAAQAAAACAAAABAQ2AZAABQAEBZkFMwAAASUFmQUzAAADoABmAhIAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWx0cwDAACDgAAZm/mYAAAgzAkQAAAABAAAAAAPGBggAAAAgAAEAAAADAAAAAwAAABwAAQAAAAABBAADAAEAAAAcAAQA6AAAADYAIAAEABYAfgCjAKUArgCxALQAtgC7AM8A1gDcAO8A/AD/AVMBeCAKIBQgGiAeICIgJiAvIF8hIuAA//8AAAAgAKAApQCnALAAtAC2ALoAvwDRANgA3wDxAP8BUgF4IAAgECAYIBwgIiAmIC8gXyEi4AD////j/8L/wf/A/7//vf+8/7n/tv+1/7T/sv+x/6//Xf854LLgreCq4KngpuCj4JvgbN+qIM0AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAent9f4aLkJOSlJaVl5mbmpydn56goaKko6WnpquqrK0Ab2RlZ8hykW5pzHFoAHyMAHAAAGYAAAAAAABqcwCYqXVjbAAAAABrdMlidnmKr7DAwcXGwsOoAK6xAAAAAAAAAADExwB4gHeBfoOEhYKIiQCHjo+NAAAAAAAAAAAAAAAAAAAAA8YGCAChAJcAjwCUAIcAmwClAOgAqADsAJ0ApACoAK0AsQC4ALwAlgCfAKoAegB9AEkAcABtsAAssAATS7BMUFiwSnZZsAAjPxiwBitYPVlLsExQWH1ZINSwARMuGC2wASwg2rAMKy2wAixLUlhFI1khLbADLGkYILBAUFghsEBZLbAELLAGK1ghIyF6WN0bzVkbS1JYWP0b7VkbIyGwBStYsEZ2WVjdG81ZWVkYLbAFLA1cWi2wBiyxIgGIUFiwIIhcXBuwAFktsAcssSQBiFBYsECIXFwbsABZLbAILBIRIDkvLbAJLCB9sAYrWMQbzVkgsAMlSSMgsAQmSrAAUFiKZYphILAAUFg4GyEhWRuKimEgsABSWDgbISFZWRgtsAossAYrWCEQGxAhWS2wCywg0rAMKy2wDCwgL7AHK1xYICBHI0ZhaiBYIGRiOBshIVkbIVktsA0sEhEgIDkvIIogR4pGYSOKIIojSrAAUFgjsABSWLBAOBshWRsjsABQWLBAZTgbIVlZLbAOLLAGK1g91hghIRsg1opLUlggiiNJILAAVVg4GyEhWRshIVlZLbAPLCMg1iAvsAcrXFgjIFhLUxshsAFZWIqwBCZJI4ojIIpJiiNhOBshISEhWRshISEhIVktsBAsINqwEistsBEsINKwEistsBIsIC+wBytcWCAgRyNGYWqKIEcjRiNhamAgWCBkYjgbISFZGyEhWS2wEywgiiCKhyCwAyVKZCOKB7AgUFg8G8BZLbAULLMAQAFAQkIBS7gQAGMAS7gQAGMgiiCKVVggiiCKUlgjYiCwACNCG2IgsAEjQlkgsEBSWLIAIABDY0KyASABQ2NCsCBjsBllHCFZGyEhWS2wFSywAUNjI7AAQ2MjLQAAAAABAAH//wAPAAIAXP/0ATsGCAALAA8ANwCyCAAAK7ECCumyDQIAKwGwEC+wANaxBgzpsQYM6bMMBgAIK7EPFOmxEQErALENAhESsAw5MDE3NDc2FxYVFgcGJyYTETMRXGY4Ih8BZjgiHyCSZmYIBSUhMGYJBSYhAREEwfs/AAAAAAIAZgQXAd0GBwADAAcAKACyAAIAK7AEM7QDCgAJBCuwBjIBsAgvsAfWtAYUABIEK7EJASsAMDETMwMjEzMDI2aLHVbTjBxWBgf+EAHw/hAAAgBmAAoEnAYLABsAHwFOALIHAgArsggLDDMzM7IfAQArsgMQHjMzM7EJCOmyBgoNMjIysAAvsxQXGBskFzOxAQPpswIRHB0kFzKyAAEKK7NAABkJK7IVFhoyMjIBsCAvsBrWsRkN6bAZELEHASuxCA7psgcICiuzQAcECSuzFggHCCuxFQ3pshUWCiuzQBUTCSuwCBCxCwErsQwO6bEhASuwNhq6PxL1IgAVKwq6PyD1dAAVKwqwGhCzAhoHEyuzAxoHEyuzBhoHEyuwGRCzCRkIEyuwFhCzChYLEyuwFRCzDRUMEyuzEBUMEyuzERUMEyuzFBUMEyuwFhCzFxYLEyuwGRCzGBkIEyuwGhCzGxoHEyuwGRCzHBkIEyuwFhCzHRYLEyuzHhYLEyuwGRCzHxkIEysDQBACAwYJCg0QERQXGBscHR4fLi4uLi4uLi4uLi4uLi4uLrBAGgAwMRM1MxMjNTMTMwMzEzMDMxUjAzMVIwMjEyEDIxM3MxMjZuc91u5JoU3+RaJJwds7zedYm1j+/1WeWbn6PfoB0aEBYpYBof5fAZ3+Y53+pan+QQHH/jkBx6UBWgADAGD/CwQZBtYALwA4AEAAPAABsEEvsAfWsg8qNTIyMrE5FOmyER0oMjIysDkQsT0BK7EjEOmxQgErsT05ERKwGDmwIxGxIBc5OQAwMRM3FxYXFh8BESckNz4BPwE1MxUXFhcWFwcnJicmJxEXBBcWFRQHBg8BFSM1JyYnJhMWFxYfAREHBgE3PgEnJi8BYKQGF0VNSxlH/twFA8KUFIMVQVVaPYkQFjYoNV8BBBQBk3ZoDYgRkneF6gUyHVQRELYBTxtJawQHsxEBcy8Zcz1FCwQCbyKK9o7SEwPKygMINzxuUhUhOh8L/ggvf/ESFLqKbwoC4doBDGl0A6xEMB40CgHBB0z7eQgVsVepTQkAAAUAbP/sBUAGMAAPAB8AIwAzAEMAlACyMAAAK7AjM7E4B+myIQIAK7IEAgArsRwH6bRAKDAEDSuxQAfptBQMMAQNK7EUB+kBsEQvsADWtBAUACEEK7AQELEYASu0CBQAIQQrsAgQsSQBK7Q0FAAhBCuwNBCxPAErtCwUACEEK7FFASuxGBARErEgIzk5sTw0ERKxISI5OQCxQDgRErAkObEcFBESsAA5MDETNDc2NzYXFgcGBwYHBicmNxQXFhcWNzYnJicmBwYHBhMBFwkBNDc2NzYXFgcGBwYHBicmNxQXFhcWNzYnJicmBwYHBmxJT3eDUkkBAUdPfoFQRnUjK1BSLSYBASUsUkkuJwsDfFX8ewHcSU93g1JJAQFHT3+BT0Z1IytPUi4lAQEkLFNJLScEo5Z1gAIDg3aemHN+AgGCdZ9sTFsBAVtMa2tJWgEBWE37GQX3Kfn7AZOWdYACA4R2nphzfgIBgnWfbEtbAgFbTWtrSFoBAVhNAAAAAwBb/+UFfgYiAB4AKgA3AFsAshcAACuyGwAAK7EjBOmyCwIAK7E1BukBsDgvsADWsR8O6bAfELExASuxDg7psTkBK7ExHxEStwcLEQMjJywuJBc5sA4RsCY5ALE1IxEStQMRFRgnLiQXOTAxEyYlNycmJyY3NDYzMhYXFg8BATcXBwEjJwcGJyYnJjcWFxYzMj8BAQcOARMGHwE3Nic0JyYHDgFbBQEcdSFAFyEBvI2PugQFvlgBP7B2vQEC1adT4721e4ChDMsZHol6iv6jfVlr9gQ1UGhmAQESmkJbAY3+uk0sVzNGU4e6sYWgk0X+XsVj4/6v0kGxBQV1eL7WOgdmcgHGVDutAwhFSWxQTl4LDZMFA2AAAAEAWgQYAOYGCAADACIAsgACACu0AwoACQQrAbAEL7AD1rQCFAASBCuxBQErADAxEzMDI1qMHFYGCP4QAAEAYv7OAbIG/AAVABMAAbAWL7AA1rELDumxFwErADAxEzQTEj8BFwcGAwIHFBcSHwEHJyYDJmIkK0whlCg9KR8BHCRGHIseVSsbAs32AQUBL7RRQV2R/p3+8IWt2f7bxk1JQbkBb/AAAQBt/tMBvAcCABUAEwABsBYvsBHWsQYO6bEXASsAMDETNxcWExIVFAcCDwEnNzYTNjU0AwInbZIjTSojIypNH4oaRCYeIis7BsBCUrL+0P8A+vL8/s6gQUlNygEi46R+ARUBY5EAAAABAGwEcgKfBpAADgArALAKL7AMM7QECgAIBCsBsA8vsADWtAcMAAgEK7EQASsAsQQKERKwCzkwMRM3FycXBzcXBxcHJwcnN2wjyQlwDMclzoFec3ZZgAWYbErWAtVLbTmnRbKxRacAAAEAYP//BDoD2AALAEoAsgoAACuyAwEAK7QBAAoDDSuwBzOxAQPpsAUyAbAML7AK1rACMrEJDemwBDKyCQoKK7NACQcJK7IKCQors0AKAAkrsQ0BKwAwMRM1IREzESEVIREjEWABoKEBmf5hmwGbogGb/mGe/mQBnAAAAAABAGD/NgFjAPkAAwAdALADL7QBCgAKBCsBsAQvsADWsQIM6bEFASsAMDEXExcDYI51tqQBnS/+bAAAAAABAGABuwH8AlQAAwAiALAAL7EBBOmxAQTpAbAEL7EAASu0AwwACgQrsQUBKwAwMRM1IRVgAZwBu5mZAAABAF///wERALAABwAxALIGAAArsQIJ6bIGAAArsQIJ6QGwCC+wANaxBBHpsQQR6bEJASsAsQIGERKwADkwMTc0FxYHFCciX1pZAVxWVlsBAVhZAQABAE3+4gSLBrAAAwAAFwEXAU0Dtoj8PuAHkD34bwAAAAIAa//jBMMGIQAPAB8AOACyDAAAK7EUA+myBAIAK7EcA+kBsCAvsADWsRAR6bAQELEYASuxCBHpsSEBKwCxHBQRErAAOTAxExA3EjckExYDAgcGBwQDJhMGFxYXFjc2JyYnJgcGBwZrk5/rAQijkwMDjZ79/wCfjrEDVWa8wWlZAQFYacCuaFsDCAEq7AD/BAX++ez+xf7O4/4CAQEE6AE++rTWAwTVtf36rtIDA86yAAAAAAEByAAAA3AGCAAFACEAsgQAACuyAQIAK7EABOkBsAYvsATWsQMQ6bEHASsAMDEBNyERIxEByGABSK0FcZf5+AVxAAAAAQCnAAAElQYmABgAOwCyAAAAK7EWA+myEAIAK7EGA+myBhAKK7NABgwJKwGwGS+wA9axFw7psBMysRoBK7EXAxESsBg5ADAxMwE2Jy4BJyYHBg8BIzc2JBcWAAcGBwEhFacC4mIDA6GEg1ZPFAStBRcBCcLFAR0HBWP92QKFA2RzgH2rBgVVToMaKb/1AQH+77+0df10oAABAM7/1gR2BhgALwB2ALIrAAArsQYI6bIGKwors0AGAAkrsh8CACuxFgPpshYfCiuzQBYbCSu0Dg0rHw0rsQ4D6QGwMC+wG9axGhDpsBoQsQkBK7EoEOmwEyDWEbEiEOmxMQErsRobERKxAwE5ObATEbIODSQ5OTkAsQ4NERKwJDkwMRMzFxYXFhcWNicuAS8BNTc2NzYnLgEnJgYPASM3PgEXHgEHBgcWFxYXFgAnJicmJ86sAQReVWV9twIDknBAPG1DSAMDiXJnlwcDrQYZ8Ka49wQFwW8zNQME/uTCsoOJDAGEImZGQQIEu358pwICogIDQEh6bYwFBXpiHSukzAUF863hdERTWIq+/u4BAWZspwACAGMAAATaBlkACAALAEcAsgcAACuyAQIAK7QACQcBDSuwAjOxAAPpsAQyAbAML7AK1rAHMrECC+mwBTKyAgoKK7NAAgQJK7ENASsAsQEJERKwCzkwMTcBETMVIxUjNSUhEWMDvrm1rf4YAej+BVv7RqX6/qECuQABAJj/4QSqBggAHQB6ALIbAAArsQQJ6bIOAgArsRED6bQUChsODSuxFATpsBIyAbAeL7AH1rEYEOmxHwErsDYauj0d7P8AFSsKsA4usBIusA4QsREO+Q6wEhCxDQ75ALANLgGzDQ4REi4uLi6wQBoBsRgHERKxDxA5OQCxCgQRErEAATk5MDE/ARcWFxY2NzYmJyYPARMhFSEDNjMyFxYXFgAjICeYiRd9vaTnAQHaq1qLN94CYv4XZjAn6ZGJAQH+tuT+57D6XyGuBQXioqPiBAFFGwLao/64CKOY4+H+u/MAAAACAJ//8ASlBf4AEAAgAEYAsg4AACuxFQPpsgcBACuxHQjpAbAhL7AA1rERC+mwERCxGQErsQsL6bEiASuxGRERErIDBAU5OTkAsR0VERKxERk5OTAxEyY3ARcBNjc2FxYXFgAnJgA3FBcWFxY3NjU0JyYnJgcGnwOZAeB9/qtCPMWSjgUH/snW0v7WpVNcoqhjWVZfpKFiWQHxqdICklv+LBUDCpaTztT+yQEBASzJimFpAwNvY5GNYWwDA3JmAAABAGL/6QToBggABQAaALIFAAArsgMCACuxAgPpAbAGL7EHASsAMDE3ASE1IQFiA2H8wgRj+/U3BTKf+eEAAAAAAwDH/+EEdwYhABMAIwAzAH8AshEAACuxGAPpsgcCACuxMAPptCggEQcNK7EoBOkBsDQvsADWsRQR6bAUELAkINYRsQQL6bAEL7EkC+mwFBCxHAErsQ4Q6bAsINYRsQoO6bE1ASuxLCQRErIHAgw5OTkAsSAYERKxFBw5ObAoEbECDDk5sDASsgokLDk5OTAxEzY3JicmJDMyFhUUBxYXFgAnJgA3FBcWNzY3NjU0JyYHBgcGExQXFjc2NzY1NCcmBwYHBscF2rQBAQEBs7H8tdYFBP7jwr/+5rVNVY6KT0lNVY2KUEkhRUyAekhBRU1/ekhBAar+fXzZrvn5rtt+ffq9/vICAQELv3pVXgQDXVJ2elVeBANcUgJUb0tVBANSSmptTVMDA1FKAAAAAgCN/98EtAYeAA8AHwBLALIJAAArsgMCACuxHAPpAbAgL7AA1rEQEemwEBCxGAErsQYR6bEhASuxEAARErAPObAYEbIJCgs5OTkAsRwJERKzCw4QFSQXOTAxEyYAFxYAFxYHAScBBgcGADcUFxYXFjc2NTQnJicmBwaNCQFB39kBNAMDov4TgQFpPUDO/tGoWGKnpWRbVl+lq2VbBAPcAUECAf7K2ajf/VhfAfIVBAwBJ+ORYnADA3NolI9ibQMDcWYAAAIAZP//AUgD/gANABwAQQCyCwAAK7EDCumyEQEAK7EZCukBsB0vsADWsA4ysQcM6bAVMrEHDOmxHgErALEDCxESsQAHOTmxERkRErAVOTAxNzQ2FxYXFhUUBwYnLgERNDYXFhcWFRQHBicmJyZkPTc1IBsdITY1Oz03NSAbHSE2NR8bcTBFAQEjIS0wISQBAUQDRy9FAQEjHzAvICQBASMfAAAAAgBg/sIBuAP/AAMAEQAwALIHAQArsQ8K6QGwEi+wBNaxCwzpsRMBK7ELBBESsQECOTkAsQcPERKxBAs5OTAxGwEXAxM0NhcWFxYVFAcGJy4BYLWb6w89NzUgGx0hNjU7/vQCCzX9+ATLL0QBASMhLS8hJAEBRAAAAQBiAEEEPwQjAAYAABM1ARUJARViA9n9FQLvAfSGAamu/rz+va0AAAIAZgEhBDIC8wADAAcAGgCwAC+xAQTpsAQvsQUE6QGwCC+xCQErADAxEzUhFQE1IRVmA8z8NAPMASGWlgE7l5cAAAAAAQBfAEEEOwQhAAYAADc1CQE1ARVfAu79FgPYQa0BQwFDrf5ZhgAAAAIAWf/ZAzMGFgApADYAjQCyMwAAK7EtCumyBQIAK7ElCOm0GhAzBQ0rsRoD6bIQGgors0AQFQkrAbA3L7Ad1rENC+mwACDWEbEpDumwDRCxKgErsTAM6bAwELEiASuxCA7psTgBK7ENHRESsCc5sTAqERKyHyALOTk5sCIRsQoUOTkAsS0zERKxKjA5ObElEBESswgAHyAkFzkwMRM1NDc2MzYWFRAPAQYHBhYXFjY/ATMVFAcGJy4BNzYlNzY1LgEHDgEfARM0Njc2FhUUBgcGJyZZbWmRnNfkt4ECAV5CQF4KCJ9sZn2HxAMEAQaRhwF7VlN5BQZIOjY3Pjs1NyAeBFGIh11ZAdWY/vRMPStzQmQBAVBAMTF+WlYBAcKG3VkyLppWfAEBdU9m+/wuQwEBRDAuRAEBJCEAAAACAEr/7gYVBfEAOgBGAJYAsjgAACu0LwcAEwQrsAsvsBAztCIHABMEK7A9MrBDL7QYBwATBCuwKS+0AwcAIAQrAbBHL7AA1rQsFAASBCuwLBCxFAErsTsT6bA7ELElASu0BxQAEgQrsUgBK7ElOxESQAkDDQsbKS8zOEEkFzmwBxGwNDkAsSILERKwDzmwQxG2GyANJSwzNCQXObAYErEcHTk5MDETEgAhIBcWAwYHBiMiJwcGBwYnJic0NzY3Mh8BPwEDBhUUMzISNTQnJiMgABEQACEgNzY3MwYHBiEgACUUMzI3NjU0IyIHBkoBAb4BOgEg1N8BAZOXyoIZP056elJOAaSUm4EhFSuyoggqgNq+rPf+9P6EAYQBFAEbp0UoijtZ1/6t/sD+OgHYjmhdU3xnYmAC9AE8AcGnsf716bW6qkdaAQFlYITCkIMBYTqBBP2mGxxGAVW68ZGD/oX+9v7p/nCWQFd2VcsBxnOsvauLtq+pAAAAAgAqAAAFpgZJAAYACQAsALIAAAArsAIzsgECACu0BQcAAQ0rsQUD6QGwCi+xCwErALEBBxESsAk5MDEzCQEjAyEDEyEDKgLMArC8sf1guf4CEv8GSfm3Abf+SQJYAmwAAwCFAAAECgYIAAwAFQAeAGQAsgwAACuxDQPpsgICACuxHgPptBYVDAINK7EWBekBsB8vsADWsQ0O6bAWMrANELEZASuxBAvpsxIEGQgrsQgQ6bEgASuxEhkRErAGOQCxFQ0RErAIObAWEbAGObAeErAEOTAxMxEhIBEUBwQRFAcGIyczMjc2NRAhIzUzIBE0NSYhI4UBDwHqjQEZuJT0oMmaXnL+aZyNAR4E/uaNBgj+bsF5bP7a5W5XoTtIlAEcjgETBQXoAAABAGP/8gU4BhkAIgA9ALIgAAArsRcJ6bIDAgArsQ4I6QGwIy+wANaxFAvpsSQBKwCxFyARErAcObAOEbIAChs5OTmwAxKwCTkwMRMQACUyMxYXFhcVJiEiIwYHBhcUFRYAFzIzIDcVBiMiIyAAYwG5AT4QEH5gbHS3/vQJCf+uqwEEAVr5CwsBB7TK+QIB/sL+MwMBAUIBzQkBHCBT08gEvrn6BgX6/pgGu8+QAc8AAAIAdgAABOwGCAAMABgAOACyAAAAK7ENA+myAQIAK7EYA+kBsBkvsADWsQ0U6bANELESASuxCAvpsRoBKwCxGA0RErAIOTAxMxEhIBcWExQVEAcGISczNjc2NTQ1AgArAXYBdQFD2uED5+X+uc3f/bCrBf6i/dcGCNPa/qoEBP663tmhAbax+gcHAQYBUAAAAAEAlAAAA7EGCAALAEcAsgAAACuxCQPpsgECACuxBAPptAUIAAENK7EFCOkBsAwvsADWsQkL6bAEMrIJAAors0AJCwkrsAIys0AJBwkrsQ0BKwAwMTMRIRUhESEVIREhFZQDHf2UAln9oAJvBgih/jmb/ZyhAAAAAAEAlAAAA00GCAAJAEAAsgAAACuyAQIAK7EEA+m0BQgAAQ0rsQUI6QGwCi+wANaxCQvpsAQysgkACiuzQAkDCSuzQAkHCSuxCwErADAxMxEhFSERIRUhEZQCuf34AfH+CAYIof45m/z7AAAAAAEAWv/oBlAGIwAqAGUAsiYAACuxFwjpsgICACuxDAjptB0eJgINK7EdBOkBsCsvsCrWsRAQ6bAQELEbASuxIBPpshsgCiuzQBsdCSuxLAErsRsQERKyBwQkOTk5sCARsAY5ALEMHhESswYHECokFzkwMRIAJTYzIBMHJwIhIiMGBwYRFBUSAAUyMzI3Nj8BITchBwIHBiMiJyQnJhFaAcoBOxEQAZjvdxji/uIICf+xsAEBZQECBgWip8cIAv43AgKDAgTu0PsPD/655+sEQwHVCgH+r3AdAQYIvbz/AAIB/v7+jgdvgrk5l3D+zceuAQ3j6AFBAAAAAQBmAAAE0QYIAAsAPwCyAAAAK7AHM7IBAgArsAUztAMKAAENK7EDA+kBsAwvsADWsQsR6bACMrALELEIASuwBDKxBwvpsQ0BKwAwMTMRMxEhETMRIxEhEWapAxWtqfzvBgj9iQJ3+fgC7/0RAAAAAAEApwAAAVgGCAADACEAsgMAACuyAAIAKwGwBC+wA9axAhHpsQIR6bEFASsAMDETMxEjp7GwBgj5+AAAAAEANP9fAqIGCAATAC4AsgQAACuxEQjpsgAAACuyCQIAKwGwFC+wCNaxCxHpsRUBKwCxCQQRErABOTAxFzcXFjMyNzYREzMRFAcGIyIjJic0Wx9SPgwLnAOuUF2tBQVvdS+AGD0BFAEHBPD7E7p4igNUAAAAAQCNAAAEugYIAAsAMACyAAAAK7AHM7IBAgArsAQzAbAML7AA1rELEumwAjKxDQErALEBABESsQMJOTkwMTMRMxEBMwkBIwEHEY24ApHV/TAC39v9kCoGCP1mApr9LPzMArkX/V4AAAABAI0AAALZBggABQAsALIAAAArsQMD6bIBAgArAbAGL7AA1rEDEOmyAwAKK7NAAwUJK7EHASsAMDEzETMRIRWNrQGfBgj6maEAAAAAAQAx/9UG/AZeAAkAfwCyAAAAK7MEBQcJJBczsgECACuwAzMBsAovsADWsQkQ6bAJELEFASuxBBHpsQsBK7A2Gro+1PPRABUrCrAAELABwA6wCRCwCMC6wQ70bwAVKwoOsAUQsAbABbAEELADwAMAsQYILi4BswEDBgguLi4usEAaALEBABESsAI5MDEzCQMjAwkBAzEBOgImAjsBMLDA/gX+Gc0GXvr8BQT5ogQV+8AETPvfAAAAAAEAY/+vBcEGSQAHADgAsgAAACuwBTOyAwIAK7ABMwGwCC+wANaxBxHpsAcQsQIBK7EFEOmxCQErALEDABESsQIGOTkwMTMRAREzEQERYwSwrvtTBkn7BgS5+acE6/tmAAIAYP/dBqIGGgAWAC0ARACyEQAAK7EdA+myAwIAK7ErA+kBsC4vsBXWsRkL6bAZELEjASuxCwvpsS8BK7EjGRESsQ8FOTkAsSsdERKxCxU5OTAxExIAJTIzIBcWExQVEAcGISIjJCcmETQ3FBUQFxYFMjMgNzYRNDUCJyYhIiMGAGABAdUBRwECAUbt7gHs7v64AQL+t+vpqra5AQQBAgEEvLkDvLb+/ggJ//6ZAwEBRwHRAejp/rgEBP686+0B7esBRQMDBAT+/7q9Ab68AQAFBgEIubMH/pAAAAACAGIAAAOJBggADAAVAEoAsgAAACuyAgIAK7EVA+m0Cw0AAg0rsQsD6QGwFi+wANaxDAvpsA0ysAwQsRIBK7EGEOmxFwErsRIMERKwCjkAsRUNERKwBjkwMTMRITIXFhUUBwYHIxETMzI3NjUQISNiASPfiZyPgcapBKl9Tlr+uYcGCGJw3tF3bQH9XgNFQEqGARIAAwBZ/9oGpwYgAB0AOAA5AFcAshgAACuwETOxJAPpsjkAACuyAwIAK7EzA+kBsDovsBzWsR4Q6bAeELEtASuxCxDpsTsBK7EtHhESswUSGBAkFzkAsSQYERKwEzmwMxGyEAscOTk5MDETEgAlMjMgFxYTFBUUBwYPARcjJwcGByIjICcmETQzFhcWFxYzMj8BATMBNzY1ECcmISIjBAcGFRQBWQQB0gFGBAQBROvtBDMwTDHq24I0ytcBAv6+7eqrBJaS1D89oZUh/pTVAQose7u4/v8EBP78ubQEvwMDAUgB0wLk6P65AwOTioZQNPWNH3kC7usBQQbjsq4uDVsVAXz+6TeX3gEFvbsBvbn7B/zVAAAAAgBgAAAD2wYIABEAGgBdALIAAAArsA0zsgICACuxGgPptBASAAINK7EQBekBsBsvsADWsREL6bASMrARELEXASuxCBDpsRwBK7EXERESsQ8MOTmwCBGwDjkAsRIQERKxCww5ObAaEbAGOTAxMxEhMhcWFRQVBgcGBwEjAQcREzMyNzY1ECUjYAEl34OSBW9mrgHqz/4uMARvhmBp/smHBghgbdMICcNtYw79SgKpAf1YAzhIUIUBEQEAAAABAF7/4QQZBiYAMgBaALIvAAArsQQJ6bIVAgArsSAD6QGwMy+wEdaxJAvpsCQQsQoBK7ErEOmxNAErsSQRERKwATmwChGzDxcbJyQXObArErEaKDk5ALEgBBEStQABERobKyQXOTAxEzcXFhcyMzY3Nic0NSYvASQ1NDc2NzIzMh8BBycmIyIjBgcGFRQXBQQTFhUUBwYnIiYnXp0TU9ABAnxeXQEEnvP+2H58qwUF45MRhSVWhAcIZkhMqwECAQQRAYaSyan7KwF3LDPmAwFWVnYDArhIconypXNvA9UZWTJ1BUBBYJBOdnj++hAQsoiUAcOlAAAAAAEAXAAAA+sGCAAHADoAsgYAACuyAQIAK7EAA+mwAzIBsAgvsAbWsQUQ6bIFBgors0AFAwkrsgYFCiuzQAYACSuxCQErADAxEzUhFSERIxFcA4/+iasFZ6Gh+pkFZwAAAAEAXP/fBKoGCAAWADcAshIAACuxBgnpsgACACuwCjMBsBcvsBbWsQIL6bACELEJASuxDBLpsRgBK7EJAhESsBA5ADAxEzMRFBcWIDc2NREzERAHBiEiIyQnJhFcrEBZAcJWPLWJlP76Bwf+6It4Bgj8XdxumJtt4QOc/DH+/qWzBbieAQUAAAABADz/pwUXBggABQAhALIFAAArsgACACuwAzMBsAYvsQcBKwCxAAURErACOTAxEzMJATMBPLkBrwG2vf2NBgj7bgSS+Z8AAAABAEL/swjGBk0ACQAqALIHAAArsAkzsgACACuxAwUzMwGwCi+xCwErALEABxESsgIECDk5OTAxEzMJAzMJAkK8AYkB+AHsAZ69/aX+FP4IBgj7gQTE+zwEf/mvBMz7MAABADgAAASFBggACwAmALIAAAArsAgzsgICACuwBTMBsAwvsQ0BKwCxAgARErEECjk5MDEzCQEzCQEzCQEjCQE4Acr+bbwBOAE7wP5pAb7A/p7+oQMdAuv9ugJG/RX84wJ0/YwAAQA4AAAEzgYIAAgAMACyBwAAK7IAAgArsAMzAbAJL7AH1rEGEOmxCgErsQYHERKwAjkAsQAHERKwAjkwMRMzCQEzAREjETjBAYkBjMD+CK0GCP1SAq78mv1eAp8AAAAAAQBiAAAEvQYIAAcAHgCyAAAAK7EFA+myAwIAK7ECA+kBsAgvsQkBKwAwMTMBITUhASEVYgNC/SgD8fy2AzcFZ6H6maEAAAAAAQBk/moB7AakAAcANwCyBAIAK7EBCOmwAC+xBQTpAbAIL7AB1rQCDAALBCuwBzKxBQvptAMMAAsEK7AGMrEJASsAMDETESEVIxEzFWQBhNre/moIOpv4+pkAAAABAF//kASVBnAAAwAAEzcBB1+CA7SDBi5C+WFBAAAAAAEAVv5qAd8GpAAHAEAAsgMCACuxBAjpsAcvsQAE6QGwCC+wA9awADK0BQwACwQrsAUQsQEL6bABL7AFELQDDAALBCuwAy+xCQErADAxFzMRIzUhESFW4NwBhf53/QcGm/fGAAABAGIEpgLYBggABQAtALIBAgArtAUKAAwEK7ADMgGwBi+wANa0AgwABwQrsQcBKwCxAQURErAEOTAxEwkBBycHYgE7ATtvzM0E/wEJ/vNVqakAAAABABH+owWU/uwAAwAdALADL7QABwATBCu0AAcAEwQrAbAEL7EFASsAMDETIRUhEQWD+n3+7EkAAAEAZgR7Af0GBAADACAAsAMvtAEKAAsEKwGwBC+wANa0AgwACwQrsQUBKwAwMRM3EwdmpPNfBbZO/rQ9AAIAPv/jA/kD2wAUACoAVQCyDAAAK7IRAAArsRsE6bIJAQArsgQBACuxJwXpAbArL7AA1rEXDumwFxCxHwErsQgMMjKxCw3psSwBK7EfFxESsQQROTkAsScbERKyAA0IOTk5MDETNDc2MzIzFhc1MxEjNQYHIiMiJyY3FBUUFxYzMjc2NTQ1JicmIyIjBgcGPnh8xgkJzIGioIPQBAO8hIGlVVyMkVpSA1JVjwkJglZTAd7UkpcHm438OoOeApmX3ggHiWl0cGaOBQWXY2gFaWMAAAAAAgCK/+EEUwabABQAKgBeALIAAAArshEAACuxGwjpsgUBACuxJwTpsAEvAbArL7AA1rEDDumyExUXMjIysAMQsR8BK7ELC+mxLAErsQMAERKwKjmwHxGzBw8bJSQXOQCxJxsRErILEwM5OTkwMTMRMxE2NzIzMhcWFRQHBiMiIyYnFQMUFRQXFjMyNzY1NCcmJyYjIiMGBwaKpIHTCQnHfXuDhLwHB8uFClRbkpZcUgEHVVuOAQKLWlUGm/yhpwaXktjQmp0FnYMB7QUFkGZxdWiJCwuSYWcBbWYAAAEAWv/qA4sD4QAhAD0Ash4AACuxGATpsgQBACuxDQXpAbAiL7AA1rETC+mxIwErALEYHhESsBw5sA0RsgAJGzk5ObAEErAIOTAxEzQ3NjcyMzIXFSYnJiMGBwYVFBUeARcWMzI/ARUGIyInJlqKjOIJCJ2CL2hWPZBkYgGwhgsLr20giq3WkpIB5tKRkgZX20wwJwFsao8DA43PBwGGKd5plpMAAgAz/+ED4QabABQAKgBYALIMAAArshEAACuxFwPpsgQBACuxJQbpsAkvAbArL7AA1rEpDumwKRCxDAErsggdHzIyMrELDemxLAErsQwpERKzBBEXIyQXOQCxJRcRErIADQg5OTkwMRM0NzYzMjMWFxEzESM1BgciIyInJhcWMzIzNjc2NTQ1JicmIyIjBgcGFRQzdnzBBwjLgKGdgdIEA7mBffJUjgECm1dMA1JXjQMCi1dRAd7Tk5kFnANf+WWHowOblydsAXBhkAUGkWJpAW9mjpUAAAAAAgBe/+ED9QPfAB4AKABOALIbAAArsRAI6bIEAQArsSUI6bQfCxsEDSuxHwfpAbApL7AA1rEMC+mwHzKyDAAKK7NADAoJK7EqASsAsQsQERKxExQ5ObAfEbAAOTAxEzQ3NjMyMxYEHwEhFRQXFjMyPwEXBwYHBiMiIyYnJhMhLgEnIiMiBwZeeIDQBQa0AQMIBf0TX1tzqFoshiZAgGljBATSgn2xAjkOmGkHCGZQVgHf1JGbBPCvdyh1WVOEQlA+aTsvBZeRAT5pigVCRwAAAAEAbwAAAlwGsAAaAFcAshkAACuyDwIAK7EHA+myFAEAK7ABM7EXCOmwADIBsBsvsBnWsAIysRgL6bATMrIYGQors0AYFgkrsAoyshkYCiuzQBkACSuxHAErALEPFBESsAs5MDETNTMRNDc2MzIfARUmJyYjIgcGFxEzFSMRIxFvU2lFciwqIxk4DwwhFU0B7++oAymaAaXBUjUIBrAWBQEHG4P+XZ381wMpAAACADT95QPxA9sAJQA7AHIAsiMAACuxLAjpsgkBACuyBAEAK7E4BumwES+xGgTpshoRCiuzQBoVCSsBsDwvsADWsBUysSgL6bAWMrAoELEeASuxCDIyMrELC+mxPQErsSgAERKwFDmwHhG0BA8hLDYkFzkAsTgRERKyAAgfOTk5MDETNDc2MzIzFhc1MxEUBwYjIiMmJyYnMxYXFjMyMyQRNQYjIiMmAjcUFRQXFjMyMzY3NjU0JyYjIiMGBwY0iILBCAi9gKV4f+cDA9B+dAukBVdUcwUGATaJvgYGyvenUFmLAwSXV05TWZQCAYNZVQHg2JSPB5iK/AfUhY8BgXjCglNPCAFKsZ8FASHmBwaMZ3EDa2OWk2ZsAWpkAAEAZgAAA2oGmwAVAEcAsgAAACuwDDOyBwEAK7ESBumwAS8BsBYvsADWsRUO6bACMrAVELENASuxDBDpsRcBK7ENFRESsQcQOTkAsQcSERKwAzkwMTMRMxE2NzYzMhcWGQEjETQjIiMGExFmpCw+TWdpUImswAID8AEGm/y2QCMrM1n+1P3ZAmXlA/7Q/ekAAAIAnAAAAYgFpQAOABIAQQCyDwAAK7IQAQArsAsvsQQK6QGwEy+wANaxBwzpsQcM6bMSBwAIK7EPC+mwDy+xEgvpsRQBK7ESDxESsAQ5ADAxEzQ3NjMyFhUUBwYHIicmExEzEZwmITAwRSMhMDAiJiWpBS04Ih49ODcgGwEdH/sHA8b8OgAAAAACAJ794gGJBZkAEAAUAD4AshIBACuwDS+xBArpAbAVL7AA1rEJDOmxCQzpsxQJAAgrsREL6bARL7EUC+mxFgErsRQRERKxBA05OQAwMRM0NzYzMjMyFhUUBwYjIicmExEzEZ4lIC4BAjBFIyEwMCImJakFIjgiHT04NyAbHB/49QXk+hwAAAAAAQCUAAADowabAAsAMACyAAAAK7AHM7IEAQArsAEvAbAML7AA1rEDDemwCjKxDQErALEEABESsQMJOTkwMTMRMxEBMwkBIwEHEZSdAVHT/ncB19T+jSUGm/u1AXb+Vv3kAasj/ngAAAABALIAAAFaBpsAAwAfALIAAAArsAEvAbAEL7AA1rEDC+mxAwvpsQUBKwAwMTMRMxGyqAab+WUAAAEAZAAABVgD5AAoAGwAsgAAACuxFB8zM7IBAQArsgUBACuwDzOxIwTpsBoyAbApL7AA1rEoC+mwAjKwKBCxIAErsR8L6bAfELEVASuxFAvpsSoBK7EgKBESsAc5sB8RsA05sBUSsA85ALEjABESsA05sAERsAM5MDEzETMVNjMyMzIXFhcWFzYzMhcWFREjETQnJiMiIwYZASMRECMiBwYVEWSoVpQBAUhMHiskCFy/dVtsqSApaAUFwaiucTcqA8ZxjCQOLycQm0lW6v2lAjqCPk4H/tH97gI2ARNsU3f97QAAAAEAYwAAA2QD4wAZAEcAsgAAACuwDjOyAQEAK7IJAQArsRQI6QGwGi+wANaxGQvpsAIysBkQsQ8BK7EOC+mxGwErsQ8ZERKwCTkAsQEUERKwAzkwMTMRMxU2NzY3NjMyFxYVESMRECciIyIHBhURY6kUFTAkTk56WWyowgUFbD07A8Z1GRYxECJOYOH9rAJCAQAHVVGE/eEAAgBk/9kEWQPWABAAJABGALIOAAArsRME6bIEAQArsR8I6QGwJS+wANaxIwvpsCMQsRkBK7EKC+mxJgErsRkjERKxBA45OQCxHxMRErIKACM5OTkwMRM0NzYzMjMWFxYVFAcGIyIABRY3MjM2NzY3NDU2JyYnIgcGFRRkmpnNAQLPkpGJj+TQ/tcBDmKLBASKYF4EAVxglZNiYgHS05mYAZaVzdqSmAEnKmcBAWhljgYGjmhsAWtqkZQAAAACAIb94ARHA+AAFgAsAFgAshEAACuxHQTpsgEBACuyBwEAK7EpCOmwAC8BsC0vsADWsRYL6bICFxkyMjKwFhCxIwErsQ0L6bEuASuxIxYRErMHER0pJBc5ALEpHRESsg0VAzk5OTAxExEzFTY3NjMyFxYXFBUUBwYjIicmJxEDFBUUFxYzMjM2NzY1NCcmJyYjIgcGhqhzrRoZwoJ9BXSA1R0eoHUIWVyNBgaLV0oBB0xWko5aUv3gBeaQlBMDl5HOCAnLjp8CEYj9ZgQIBgaPaW4EdmWEDQ2PXGRoYgAAAAIAW/3gBBwD3wAYAC4AVwCyEwAAK7EhBOmyCQEAK7IEAQArsSsI6bALLwGwLy+wF9axGwvpsBsQsQwBK7IIJScyMjKxCwvpsTABK7EMGxESsgQTKzk5OQCxKyERErINFwg5OTkwMRM2NzYzMhcWFzUzEScRBgcGBwYjIicmNTQ3BhUUFxYXMjMyNzY1NDUmJyYjIgcGWwV9gsMZGa5yqKguSlJKHRzXgXSoAUtWjQUFjF9XBFJajpJWTAHqzpCXAxSSkPoaAgKaNyswCAOfkMsJEg0NhGV2A25pjgcGkWFoZlsAAAEAhQAAApQD4wATADkAsgAAACuyAQEAK7IHAQArsQwG6QGwFC+wANaxEwvpsAIysRUBKwCxDAARErAKObABEbEDCTk5MDEzETMVNjc2MzIXByYjIgcGBwYVEYWoTWUREVNATzgvCgxOKiMDxmJzCgIumDECDllMaf3QAAABAGf/4QMDA98AOwBdALI4AAArsQcE6bIaAQArsSUI6QGwPC+wFtaxKQ3psCkQsQsBK7EzEOmxPQErsSkWERKxEQE5ObALEbQHEB8uOCQXObAzErEeLzk5ALElBxEStQABFh4fMyQXOTAxPwEWFxYXFjMyNzY3NDU0LwEmJyYnJjU0NzY3MhcWFwcmJyYnJiMiBwYHFBcWHwEWFx4BFRQGBwYjIicmZ5AFJDA0Hx89KCwDf3QmGEAZJ0NPiIBMKhKJAxgfHBIZLyEoAQcMWWxVIzc4ZlRETo1kItY/Ei9BEQokKEcDA181NREPJiU8SGRRYAFXLy1ICR8mCwgaHjMUFCsiMCYYJnVBWp0lHlseAAEAYAAAAhgFHgALAE4AsgoAACuyAQEAK7AFM7EABumwBzKyAQAKK7NAAQMJKwGwDC+wCtawAjKxCQvpsAQysgkKCiuzQAkHCSuyCgkKK7NACgAJK7ENASsAMDETNTMRMxEzFSMRIxFgY6qrq6oDMpQBWP6olPzOAzIAAAABAGL/4gNaA8YAFQA3ALITAAArsQYE6bIAAQArsAszAbAWL7AV1rECDumwAhCxCgErsQ0O6bEXASuxCgIRErATOQAwMRMzERQXFjMyNzY1ETMRFAcGByIjIBFipScvhoUvH6REWdoEBP6IA8b9+axEVWVEnAIH/ezWbIsDAcMAAAEAPP+0A+wDxgAFACEAsgUAACuyAAEAK7ADMwGwBi+xBwErALEABRESsAI5MDETMwkBMwE8vQEcAR26/icDxv12Aor77gAAAAEAQf+3BjwEBQAJACoAsgkAACuwBzOyAAEAK7EDBTMzAbAKL7ELASsAsQAJERKyAgQIOTk5MDETMwkDMwkCQbYBDgEzASQBJrr+Hf7Z/tUDxv10Asv9MwKO+/ICwv09AAEAPgAABDADxgALACYAsgAAACuwCDOyAgEAK7AFMwGwDC+xDQErALECABESsQQKOTkwMTMJATMbATMJASMJAT4Bl/6lyfn40f6hAYrJ/tX+zgH+Acj+tQFL/jf+AwGD/n0AAAABADz95QQ+A8YABwAUALIAAQArsAMzAbAIL7EJASsAMDETMwkBMwEjATy/AVABObr9OrsBMgPG/VECr/ofAnYAAQBaAAAEXgPGAAcAHgCyAAAAK7EFBOmyAwEAK7ECCOkBsAgvsQkBKwAwMTcBITUhASEHWgK4/csDgf1HApYBAQMpnPzRlwAAAQBk/moCPQakACwAUACyDQIAK7EKCOmyBwIAK7AkL7EhCOkBsC0vsCjWsAUysR0Q6bARMrIdKAors0AdIwkrsAsysS4BK7EdKBESsBY5ALENIRESsgYdKDk5OTAxEzU2NzY1ETQ3NjsBFSMiBwYVERQHBgcWFxYXFhcRFBcWNzMVIyInJjURNCcmZE0qH2AqX1pNJw4UOB9EByMqEDUBEw4oTVpfKmAgKAJFihdFM14BnMtaJ5wPFTv+QHNzQDsDKDAibXn+PzsVEAGbJlnLAZ9ZN0YAAAAAAQBa/eIA7gYJAAMAHACyAQIAKwGwBC+wANaxAxTpsQMU6bEFASsAMDETETMRWpT94ggn99kAAAABAGT+agI+BqQAKwBLALIAAgArsQEI6bAWL7EXCOkBsCwvsBvWsCYysREQ6bAGMrIbEQors0AbFgkrsAAysS0BK7ERGxESsCI5ALEAFxESsgYRJzk5OTAxEzUzMhcWFREUFxYXBwYHBgcRFAcGKwE1MzI2NRE0NzY3NjcmJyY1ETQnJgdkW14rYB4rTQFOJx8BXypeW0woITcRKiMGRR83Ew4pBgicJ1nM/mRgMUUXihtHOFj+Yc9VJpsjPAHBdnAiMCgDOUJwdgHAOxUQAQAAAQBKBQwC/wYIABkANgCyDQIAK7ADM7ARL7AZM7QIBwAgBCsBsBovsRsBKwCxCBERErEAFDk5sA0RswYFDhUkFzkwMRM3Njc2HwEWNzI3Nj8BFwcGJyIvASYHBg8BShVBYkI8dSwXDg0ZJBBfDUZuQENeMSEuIw4FNzGaBgQnTR0BBxBRIyshsAEuQiIGCF0iAAAAAAIAV/3iAUIEEgALAA8AMgCwCS+xAwrpAbAQL7AA1rEGDOmxBgzpswwGAAgrsQ8U6bERASuxDwwRErEJAzk5ADAxEzQ2MzIWFRQGIyImExEzEVdEMTBGRDIxRCySA5wxRUYwMURE+ncEwPtAAAIAXgBZA48GCAAdACQAcgCyBAIAK7AbL7AYM7EhCOmwDzKyGyEKK7NAGxoJK7AJL7AiL7AOM7EDBukBsCUvsADWsR4L6bAeELEaASuxAyEyMrEZFOmxBQ4yMrEmASsAsSEbERKwFDmwCRGxEx45ObEDIhESsQcIOTmwBBGwBjkwMRMmEjc1MxUWFxUnJicmJxE+AT8BFQYHBgcVIzUmAjcUFhcRDgFeA/G+kmmAESNGBGs3bSolPDtBO5K78KiQc3iLAy/CAR0d3dgJTdgWLigDKf1ACT0zLtwsGBkI5+cdARTHgMQaAr4kvgAAAQBr/+IEvQYlAE0AtgCyRAAAK7BNM7E6CemyFAIAK7EgCem0CwxEFA0rsCwzsQsF6bAuMgGwTi+wEdaxJhLpshEmCiuzQBELCSuwJhCxCAErsTMR6bIzCAors0AzLgkrsDMQsRwBK7EaDemxTwErsSYRERKzBg8NTSQXObAIEbBLObAzErQoLDdISSQXObAcEbMUIDpEJBc5sBoSsD85ALE6RBESsQBLOTmwCxGzBjE/QCQXObEgDBESshAbHDk5OTAxNzY3Njc2NzYnNCchNTMmJyY3NgAzMhcWFxYVFwcSJyYjIgcGBwYVFBc0FzAXIRUjFBcUFRYVFAcXFjMyNjc2NxcGBwYjIicmJzImIyIHawcqOS5KUDkBCf77ziwtVgQHAQyxGxvPbUUQrgPKISNiT1UQBXAlIAEf7wEESJF0KCZOKiICiyNXXF9EbDMzCZw4dEBADjBBGioHZloZOYxTU7hstAD/BBqeYjl/KgEYOwk7Pl4bHqWpCkc+igMFBQMjHWt2NCojOy4OVV9GTSUSEjN8AAAAAQA4AAAEzgYIABgAdACyDwAAK7IAAgArsAMztBESDwANK7AKM7ERBumwDDK0FhcPAA0rsAUzsRYE6bAHMgGwGS+wD9awEzKxDhDpsAkysg4PCiuzQA4HCSuwCzKyDw4KK7NADxYJK7ARMrEaASuxDg8RErACOQCxABcRErACOTAxEzMJATMBIRUhBxUhFSERIxEhNSE1JyE1ITjBAYkBjMD+agEy/ncLAZT+bK3+dQGLDf6CASgGCP1SAq79RJcTk5X+hgF6lZAWlwAAAgBT/nIDawYdADMAPwBaALIIAgArsRED6bIRCAors0ARDgkrsCAvsSkD6bIpIAors0ApJQkrAbBAL7A61rAOMrEYEOmwDTKxQQErsRg6ERK0CwwZGx0kFzkAsREpERKzAho3PSQXOTAxEzY3JicmNzY3NhcWHwEjJyYjIgcGHwEEAwYHFhcWBwYnJicmPQEzFxY3Njc2JyYnJi8BJDcGFjMyNjU0JiMiBlMJxqQIB3VvoKRnXwsDpAgkoccSEc9fATYKCcypCAd+c6inYVOhBBDDvQ8HNCZBHRx9/vmzBYJkXIODXFqCAj/9YF6woWtkAwNvZqEjLMy4p0QfZv706F9gyqxkXAQEdWR+NzLFBwW5T0EsIAwMLHn0Yo+HXlyFewAAAAIAawUfAt0GAAAOABwAQwCwDC+wGTOxBArpsBMysQQK6QGwHS+wANaxCAzpsAgQsQ8BK7EWDOmxHgErsQgAERKxBAw5OQCxBAwRErEPFjk5MDETNjc2MzIXFgcGBwYjIiYlNDc2FzIWFRQGIyInJmsBIx4sLyEjAQEkHiwvRAGUIx8uLkJCLi4fIwWUNB4aHCE3NB4aPjE1IB0BOzU1PB0eAAAAAwBkAAUGTgXvAA8AHwA+AJIAsAwvtBQHABMEK7AvL7QkBwATBCuyLyQKK7NALyoJK7AcL7QEBwATBCsBsD8vsADWtBAUABIEK7AQELEgASu0MxQAEgQrsDMQsSoBK7QpFAASBCuwKRCxGAErtAgUABIEK7FAASuxKjMRErQMFBwENSQXObApEbA4ObAYErA5OQCxLxQRErUIEAAYPjwkFzkwMRMQNzYhIBcWERAHBiEgJyYTEBcWISA3NhEQJyYhIAcGASY3NhcWFxYfASMnJicmBwYHBhUQITI2NzMGBwYnJGS90wFlAWbRvr7R/pr+m9O9Uqi8AT8BP7upqbv+wf7BvKgBFwFkcL6HX2gTBVoGFU5IW6FTRQE9X58VWRtrb5b+jQL6ATXT7e3U/sz+zdXt7dQBNP7tvtPTvgETARS+09O+/ubGipgFBD9FeCMbVzMuAwR7aab+c5BolllcCBcAAAADAGwCFwNGBhQAAwAUACMAcwCyCAIAK7QhBwATBCuwAC+0AQcAIAQrsBEvtBkHACAEKwGwJC+wBNawADK0FRQAIQQrshUECiuzQBUDCSuwFRCxCgErsQ4dMjK0DBQAIQQrsSUBKwCxGRERErEODTk5sCERsgQPCjk5ObAIErELDDk5MDETNSEVATQ3NhcWFzUzESM1BgcGJyY3BhcWFzI3NicmJyYHDgFsAtr9Jllgn5pgeXhinJFkYHoEREZpbEM/AQE+RHVifgIXcXECfp9tdgMEdWX9L2J0AwF0cKZtU1cBVU9vc0lTBQSYAAIAWwCYBFUEHwAGAA0AABM1ARUNARUTNQEVDQEVWwHE/sEBOHkBxP7AATgB894BTtvl3+gBW94BTtvl3+gAAAABAFwAAAZnApMABQAwALIEAAArsAAvtAEHACAEKwGwBi+wBNa0AxQATwQrsgQDCiuzQAQACSuxBwErADAxEzUhESMRXAYLfwIcd/1tAhwAAAEAYAG7AfwCVAADAAATNSEVYAGcAbuZmQAAAAAEAFcACgZABfUADwAfAD4ARQC8ALAML7QUBwATBCuwPS+0QAcAEwQrsj1ACiuzQD0gCSuwMzKwPy+0IQcAEwQrsBwvtAQHABMEKwGwRi+wANa0EBQAEgQrsBAQsSABK7Q+FAASBCuwPzKwPhCxNgErtC8UABIEK7QxFAASBCuwLxCxGAErtAgUABIEK7FHASuxNj4RErQMFBwEJiQXObAvEbMpKEJDJBc5sRgxERKyJCUzOTk5ALE9FBESsSk3OTmwQBG1CBAYACgmJBc5MDETEDc2ISAXFhEQBwYhICcmExAXFiEgNzYRECcmISAHBgERISAXFgcWFxYXFhUUBhUUFxQXIyI1JicmJyYHIxkBEzMyJyYjV73TAWUBZdK9vdL+m/6b071RqbwBPwE/u6mpu/7B/sG8qQFyAUwBPhAKoTECFw8bAhIVXh4BAw08JGbyAf7yBQXjAv8BNdTt7dT+y/7N1e3t1AE0/u2+09O+ARMBFL7T0779GwOO7ptGHQERHDVFEEESPjYBIlWWFGchFAH+ZgNB/qetrAAAAgBfBEcCEwX8AA8AHgBOALAML7QUBwATBCuwGy+0BAcAEwQrAbAfL7AA1rQQFAASBCuwEBCxGAErtAgUABIEK7EgASuxGBARErEMBDk5ALEbFBESsgAQGDk5OTAxEzQ3NjMyFxYHFAcGIyInJjcUFxYXFjc2NTQmJyYHBl83PWdnPDcBNjxnZz03TCAmQUUoJkZBRSokBSJZPEVFPVhZPkREPlU3JysDAy4oOzhSAwMuKAAAAgBeAAADogRTAAMADwBkALIAAAArsQEH6bAEL7ALM7EFB+mwCTKyBAUKK7NABA4JK7IFBAors0AFBwkrAbAQL7AO1rAGMrQNFABBBCuwCDKyDQ4KK7NADQMJK7AKMrIODQors0AOAAkrsAQysREBKwAwMTM1IRUBNSERMxEhFSERIxFeA0T8vAFjfQFk/px9fX0Ccn0BZP6cff6eAWIAAAEAWQR/AfAGCAADACIAsgECACu0AwoACwQrAbAEL7AA1rQCDAALBCuxBQErADAxGwEXAVn0o/7JBLwBTE7+xQABAGL+wQQtBggAEgBQALIEAgArsQsH6bAGMrILBAors0ALCQkrsAwyAbATL7AN1rEMFOmwDBC0AAwACAQrsAAvsAwQsQkBK7EIFOmyCAkKK7NACAUJK7EUASsAMDETNjc2MyEVIwMjESMRIxEnJicmYgF4ivUB03MBi5+KMppjdQQYyYififlCBr35QwN7BhVrgAAAAwBeAhcDVgYVAAwAEAAbAGwAsgMCACu0GgcAIAQrsA0vtA4HACAEK7AKL7QUBwAgBCsBsBwvsADWtBEUAEEEK7ARELEXASu0BhQAQQQrsR0BK7ERABESsQ0OOTmwFxGyAwoZOTk5sAYSsQ8QOTkAsRoUERKyBhEAOTk5MDETNDYzMhYVFAcGIyImEzUhFQEUFjc+ATc2JiIGXueam9xnbKqc3w4C2v2WmGtojwMDkN6SBJKe5eCcoW5x3f4hcXECe2yeAQGaa3CioAAAAgBmAJgEYAQfAAYADQAAEzUBFQE1JTc1ARUBNSVmAcP+RAE69QHE/kIBOgNE2/6y3v6l6N/l2/6y3v6l6N8AAAIAVv3gAzAEFwApADUAewCyAAAAK7AlL7EFCOmwGi+xEAPpshoQCiuzQBoVCSuwMy+xLQrpAbA2L7AN1rEdC+mwACDWEbEBDumwHRCxKgErsTAM6bAwELEIASuxIg7psTcBK7EdDRESsAM5sTAqERKyCgsfOTk5sAgRsRYgOTkAsQAFERKwIjkwMRczBwYWFxY2NzYvASQnJjY3NhcWHQEjJy4BBw4BFRYfARYRFAYnJicmNRM0NjMyFhUUBiMiJlajCAd8U1Z7AQOJk/78BgPFiH1lbJ8HCl8/Ql8Bg7bl1p2RaW3mRDIwRUQxMUVaZU91AQF6VpwuMVffhsICAVZafjIyQFABAWVCcSw/Tv74mNgCAVlchwSFMEVFMDFFRAAAAAADACoAAAWmCAgABgAJAA0ALACyAAAAK7ACM7IBAgArtAUHAAENK7EFA+kBsA4vsQ8BKwCxAQcRErAJOTAxMwkBIwMhAxMhCwE3EwcqAswCsLyx/WC5/gIS/5uk818GSfm3Abf+SQJYAmwC9k7+tD0AAwAqAAAFpggMAAYACQANACwAsgAAACuwAjOyAQIAK7QFBwABDSuxBQPpAbAOL7EPASsAsQEHERKwCTkwMTMJASMDIQMTIQsBExcBKgLMArC8sf1guf4CEv+49aL+yQZJ+bcBt/5JAlgCbAH8AUxO/sUAAAADACoAAAWmB9EABgAMAA8ALACyAAAAK7ACM7IBAgArtAUNAAENK7EFA+kBsBAvsREBKwCxAQ0RErAPOTAxMwkBIwMhAxMJAQcnBwMhAyoCzAKwvLH9YLntATsBO2/MzF4CEv8GSfm3Abf+SQbIAQn+81WpqfvpAmwAAAAAAwAqAAAFpgd5AAYAIAAjAEMAsgAAACuwAjOyAQIAK7QFIQABDSuxBQPpsBgvsCAztA8HACAEKwGwJC+xJQErALEBIRESsCM5sQ8YERKxBxs5OTAxMwkBIwMhAxM3Njc2HwEWMzI3Nj8BFwcGIyIvASYHBg8BAyEDKgLMArC8sf1gub8VQWJCPHUsFw4NGSQQXw1GbkBDXjEhLiMOIwIS/wZJ+bcBt/5JBqcxmgcEKEwdCBBQIysgsC9BIgUIXiL71wJsAAQALwAFBawHYAAGABUAGAAnAGUAsgECACuwBS+xFgPpsBMvsCQzsQsK6bAdMgGwKC+wB9axDwzpsA8QsRkBK7EhDOmxKQErsQ8HERKyCxMWOTk5sBkRsQEYOTmwIRKxBBc5OQCxARYRErAYObELExESsRkhOTkwMTcJASMDIQMTNjc2MzIXFgcGBwYjIiYTIQMTNDc2MzIXFhUUBiMiJyYvAswCsb2x/WC58AEjHiwvISMBASQeLC9EEAIS/3EjHy4uISFCLi4fIwUGSfm3Abf+SQbvNB4aHSA3NB4aPvufAmwCJjUfHR0eNTU8HB4AAAQAKgAABaYIMwAGAAkAGQApAG8AsgAAACuwAjOyAQIAK7QFBwABDSuxBQPpsBYvtB4HABMEK7AmL7QOBwATBCsBsCovsArWtBoUABIEK7AaELEiASu0EhQAEgQrsSsBK7EiGhESswkBFg4kFzkAsQEHERKwCTmxJh4RErESIjk5MDEzCQEjAyEDEyELATQ3NjMyFxYVFAcGIyInJjcUFxYXFjc2NTQnJicmBwYqAswCsLyx/WC5/gIS/8I2PWdnPDc3PGdnPTdMISZARSkmJCNBRSkkBkn5twG3/kkCWAJsApRZPUVFPVlZPkREPlU3JysCAy4oOzgpKAMDLigAAAACAGb//QiBBggADwASAF8AsgsAACuwADOxCgPpsgECACuxBAPptA4QCwENK7EOA+m0BQgLAQ0rsQUI6QGwEy+wEdawDDKxCBLpsAQysggRCiuzQAgHCSuxFAErsQgRERKwATkAsQQFERKwEjkwMTMBIRUhESEVIREhFQURIQkBIRFmBSUC9v2UAlj9oAJw/OP9YP6TAfICEgYIn/43m/2coQMBuv5JAlgCbAAAAgBi/k0FTQYiABYAGgBCALIYAAArshQAACuxDwPpsgMCACuxCQjpAbAbL7AA1rEMEOmxHAErALEPFBESsRASOTmwCRGxBxE5ObADErAGOTAxEwIAJTYWFxUmBQQAExYAFwQ3FQYnIAABExcDYgEBwgFEk9t4wf7j/v7+ngQEAV/9ARjC0vz+vf4sAh7DmOoC/gFEAdcJBEJV19MGB/6A/vz//pMICcrRkgEB0/zRAS8//tQAAgCUAAADsQgIAAsADwBHALIAAAArsQkD6bIBAgArsQQD6bQFCAABDSuxBQjpAbAQL7AA1rEJC+mwBDKyCQAKK7NACQsJK7ACMrNACQcJK7ERASsAMDEzESEVIREhFSERIRUBNxMHlAMd/ZQCWf2gAm/96aT0XwYIof45m/2coQe6Tv60PQAAAAIAeQAAA5YIBQALAA8ARwCyAAAAK7EJA+myAQIAK7EEA+m0BQgAAQ0rsQUI6QGwEC+wANaxCQvpsAQysgkACiuzQAkLCSuwAjKzQAkHCSuxEQErADAxMxEhFSERIRUhESEVARMXAXkDHf2UAlj9oAJw/eT0o/7JBgih/jmb/ZyhBrkBTE7+xQACAJQAAAOxB90ACwARAE8AsgAAACuxCQPpsgECACuxBAPptAUIAAENK7EFCOkBsBIvsADWsQkL6bAEMrIJAAors0AJCwkrsAIys0AJBwkrsRMBK7EJABESsAw5ADAxMxEhFSERIRUhESEVCQIHJweUAx39lAJZ/aACb/1ZATsBO2/MzQYIof45m/2coQbTAQr+8lSpqQAAAAMAlAAAA7EHYAALABoAKQBzALIAAAArsQkD6bIBAgArsQQD6bQFCAABDSuxBQjpsBgvsCYzsRAK6bAfMgGwKi+wANaxCQvpsAQysgkACiuzQAkLCSuwAjKzQAkHCSuzDAkACCuxFAzpsAkQsRsBK7EjDOmxKwErsRQJERKxEBg5OQAwMTMRIRUhESEVIREhFQE2NzYzMhcWBwYHBiMiJiU0NzYzMhcWFRQGIyInJpQDHf2UAln9oAJv/WIBIx4sLyEjAQEkHiwvRAGUIx8uLiEhQi4uHyMGCKH+OZv9nKEG9DQeGh0gNzQeGj4xNR8dHR41NTwcHgAAAgBOAAAB5ggIAAMABwAlALIHAAArsgQCACsBsAgvsAfWsQYR6bEJASuxBgcRErABOQAwMRM3Ew8BMxEjTqT0X+CxsAe6Tv60PXf5+AAAAAACAE0AAAHkCAwAAwAHACcAsgcAACuyBAIAKwGwCC+wB9axBhHpsQkBK7EGBxESsQMBOTkAMDEbARcBBzMRI031ov7JBrGwBsABTE7+xXv5+AAAAAAC/8kAAAI/B90ABQAJACcAsgkAACuyBgIAKwGwCi+wCdaxCBHpsQsBK7EICRESsQQBOTkAMDEDCQEHJwcXMxEjNwE7ATtuzcxvsbAG0wEK/vJUqalz+fgAA//SAAACRQdgAA4AEgAiAFoAshIAACuyDwIAK7AML7AfM7EECumwFzIBsCMvsBLWsRER6bMIERIIK7EADOmwAC+xCAzpsBEQsRMBK7EbDOmxJAErsRIAERKxBAw5OQCxBAwRErETGzk5MDEDNjc2MzIXFgcGBwYjIiYXMxEjEzQ3NjMyFxYVFAcGIyInJi4BJB4sLyEiAQEjHiwvRNaxsL0jHy4uICIiIS0uHyMG9DQeGh0gNzQeGj62+fgG7zUfHR0eNTUeHhweAAAAAgBI/68FpQeCAAcAIQBZALIAAAArsAUzsgMCACuwATOwGS+wITO0EAcAIAQrAbAiL7AA1rEHEemwBxCxAgErsQUQ6bEjASuxAgcRErEIFjk5ALEDABESsQIGOTmxEBkRErEIHDk5MDEzEQERMxEBERM3Njc2HwEWMzI3Nj8BFwcGIyIvASYHBg8BSASwrftUxBVBYkI8dSwXDg0ZJBBfDUZuQENeMSEuIw4GSfsGBLn5pwTr+2YGsDKaBgQnTR0IEFAjKyCwL0EiBQheIgAAAAMAYP/dBqIICAAOAB0AIQA6ALIMAAArsRID6bIEAgArsRoD6QGwIi+wANaxDwvpsA8QsRYBK7EIC+mxIwErsRYPERKxHiA5OQAwMRMSNzYlJBcWExIHBiUkABMCAAUENzYDAicmBQYHBgE3EwdgAevqAUcBSO7uAQPv7v61/rf+KqwDAXIBBAEGvb0EBLy7/vP/s7QByKTzXwMBAUfp6AEB6Or+uP637u4BAQHaAUn++v6GAQG/wAEHAQi6uQcHuLgDuE7+tD0AAwBg/90GoggMAA4AHQAhADoAsgwAACuxEgPpsgQCACuxGgPpAbAiL7AA1rEPC+mwDxCxFgErsQgL6bEjASuxFg8RErEeIDk5ADAxExI3NiUkFxYTEgcGJSQAEwIABQQ3NgMCJyYFBgcGARMXAWAB6+oBRwFI7u4BA+/u/rX+t/4qrAMBcgEEAQa9vQQEvLv+8/+ztAHS9aP+yAMBAUfp6AEB6Or+uP637u4BAQHaAUn++v6GAQG/wAEHAQi6uQcHuLgCvgFMTv7FAAAAAwBg/90GogfdAA4AHQAjADoAsgwAACuxEgPpsgQCACuxGgPpAbAkL7AA1rEPC+mwDxCxFgErsQgL6bElASuxFg8RErEeIDk5ADAxExI3NiUkFxYTEgcGJSQAEwIABQQ3NgMCJyYFBgcGCQIHJwdgAevqAUcBSO7uAQPv7v61/rf+KqwDAXIBBAEGvb0EBLy7/vP/s7QBQwE7ATtvzM0DAQFH6egBAejq/rj+t+7uAQEB2gFJ/vr+hgEBv8ABBwEIurkHB7i4AtEBCv7yVKmpAAMAUf/dBpIHgAAOABwANgBRALILAAArsRID6bIEAgArsRoD6bAuL7A2M7QlBwAgBCsBsDcvsADWsQ8L6bAPELEWASuxBwvpsTgBK7EWDxESsR0rOTkAsSUuERKxHTE5OTAxExI3NiQXFhMSBwYlJCcmEwIABQQ3NgMCJyYFBgABNzY3Nh8BFjcyNzY/ARcHBiMiLwEmBwYPAVEB6uoCkO3uAQPv7v62/rfs66wDAXIBBQEGvL0EA7y7/vP//pgBLBVBYUI9dSwWDg4ZJA9fDUZtQEReMSEuIg8DAQFH6egC6Or+uP637u4BAe3tAUn++v6GAQG/wAEHAQi6uQcH/pACrTGaBgQnTR0BCBBQIysgsC9BIgYIXSIAAAAABABV/90GlgdiAA4AHAAsADsAZQCyDAAAK7ESA+myBAIAK7EaA+mwKS+wODOxIQrpsDEyAbA8L7AA1rEPC+mwDxCxHQErsSUM6bAlELEtASuxNQzpsDUQsRYBK7EIC+mxPQErsSUdERKxISk5OQCxISkRErA1OTAxExI3NiUkFxYTEgcGJSQAEwIABQQ3NgMCJyYFBgABNjc2MzIXFgcGBwYjIicmJTQ3NhcyFxYVFAYjIicmVQHq6gFHAUju7gED7+7+tf63/iqsAwFyAQQBBr29BAS8u/70//6YAUwBJB4sLyAjAQEjHi0vISIBkyQfLS4hIUIuLh4jAwEBR+noAQHo6v64/rfu7gEBAdoBSf76/oYBAb/AAQcBCLq5Bwf+kAL0NB4aHCA3NB4aHh8xNSAdAR0eNTU8HR4AAAMAYP+HBqIGYQAWAB4AJgBtALINAAArsSED6bIRAAArsgMCACuxHAPpsgcCACsBsCcvsADWsRcL6bAXELEkASuxCgvpsSgBK7EkFxESQAkGBQ8RCBMZGh8kFzmwChGwBzkAsSENERKwDzmwHBG0EwgaGSYkFzmwAxKwBTkwMRMSACU2FzcXBwQTEgAlJicHJzY3JicmNwIXASYHBgABFhcEAAMCJ2ABAdUBR+jDiFaRASoDAf4l/rXcvYxNRkWRUVWrA+4C15vA//6ZATeUpwEGAXkDBNwDAQFHAdEBAXvBKs7u/ob+t/4kAQFzyjdkZHGkqb3+z8IEDWIEBf6P/NRWAQEBfwEHASK9AAACAFz/3wSqCAgAFAAYADkAshAAACuxBgnpsgACACuwCjMBsBkvsBTWsQIL6bACELEJASuxDBLpsRoBK7EJAhESsRUXOTkAMDETMxEUFxYgNzY1ETMREAcGJSQnJhEBNxMHXKxAWQHCVjy1iZj+8P7oi3gBW6T0XwYI/F3cbpibbeEDnPwx/v6luAUFuJ4BBQV7Tv60PQAAAAIAXP/fBKoIDAAUABgAOQCyEAAAK7EGCemyAAIAK7AKMwGwGS+wFNaxAgvpsAIQsQkBK7EMEumxGgErsQkCERKxFRc5OQAwMRMzERQXFiA3NjURMxEQBwYlJCcmEQETFwFcrEBZAcJWPLWJmP7w/uiLeAFm9aL+yQYI/F3cbpibbeEDnPwx/v6luAUFuJ4BBQSBAUxO/sUAAgBc/98EqgfdABQAGgA5ALIQAAArsQYJ6bIAAgArsAozAbAbL7AU1rECC+mwAhCxCQErsQwS6bEcASuxCQIRErEVFzk5ADAxEzMRFBcWIDc2NREzERAHBiUkJyYREwkBBycHXKxAWQHCVjy1iZj+8P7oi3j6ATsBO2/MzQYI/F3cbpibbeEDnPwx/v6luAUFuJ4BBQSUAQr+8lSpqQAAAAMARf/fBJIHXQAVACUANABqALIRAAArsQYJ6bIAAgArsAszsCIvsDEzsRoK6bAqMgGwNS+wFdaxAhDpsAIQsRYBK7EeDOmwHhCxJgErsS4M6bAuELEKASuxDRLpsTYBK7EeFhESsRoiOTmwJhGwBjkAsRoiERKwLjkwMRMzERQXFjMyNzYnETMREAcGJSQnJhEBNjc2MzIXFgcGBwYjIicmJTQ3NhcyFxYVFAYjIicmRaxAWeDhVzwBtYiY/u/+6It4AQ8BJB4sLyAjAQEjHi0vISIBkyQfLS4hIUIuLh4jBgj8XdxumJtt4QOc/DH+/qW4BQW4ngEFBLI0HhocITc0HhofHzE1IB0BHR41NTwdHgAAAAEAVf/iBBkGKgAvAIsAsi4AACuyFgAAK7EXBemyBwIAK7EoB+myIAEAK7EfBemzASAfCCuxAAXpAbAwL7Au1rACMrEtDemwLRCxAAzpsAAvsC0QsRsBK7ESDemzDBIbCCuxJBTpsCQvsQwU6bIkDAors0AkFgkrsTEBK7EbABESsgcQHzk5OQCxIB8RErAQObAoEbAMOTAxEzUzERA3NjMyFx4BFRQHBgcEExYHBic1Fjc2JzQnJgc1Fjc2JzQnJiMiBwYVESMRVVCbXnpsXEliGihVASEEA8aosYt3gAFzb55bRlYBKz5xaT00mwLqjwEDARFiOy8mr2JCO1s3iv7F8pyGBo0FbXWnn2hjA40EOEZtSDlSSUCT+3sC6gAAAAMATP/jBAYF+QAQACAAJABbALIKAAArsg0AACuxFQTpsgcBACuyBAEAK7EdBekBsCUvsADWsREO6bARELEGASuxChkyMrEIDumxJgErsQYRERKyFSEjOTk5sAgRsBg5ALEdFRESsQsGOTkwMRM0NzYXFhc1MxEjNQYHBicmNwYXFjMyNzYnJicmBwYHBhM3EwdMd4HTzIGioIPQwYaBpQVaXIyRWlUDA1JanIJWU4yk9F8B3tSSngcHm438OoOeAgOcl96TbnRwapSXY28HBWljAy9P/rQ+AAMAPv/jA/kF/AAQACAAJABdALIKAAArsg0AACuxFQTpsgcBACuyBAEAK7EdBekBsCUvsADWsREO6bARELEGASuxChkyMrEIDumxJgErsQYRERKyFSEjOTk5sAgRsBg5ALEdFRESsgALBjk5OTAxEzQ3NhcWFzUzESM1BgcGJyY3BhcWMzI3NicmJyYHBgcGGwEXAT54gdPMgaKgg9DBhoGlBVpcjJFaVQMDUlqcglZTrvWi/skB3tSSngcHm438OoOeAgOcl96TbnRwapSXY28HBWljAjUBTE7+xQADAD7/4wP5Bc4AEAAgACYAYACyCgAAK7INAAArsRUE6bIHAQArsgQBACuxHQXpAbAnL7AA1rERDumwERCxBgErsQoZMjKxCA7psSgBK7EGERESsxUhIiQkFzmwCBGxGCM5OQCxHRURErIACwY5OTkwMRM0NzYXFhc1MxEjNQYHBicmNwYXFjMyNzYnJicmBwYHBhMJAQcnBz54gdPMgaKgg9DBhoGlBVpcjJFaVQMDUlqcglZTKgE7ATxvzcwB3tSSngcHm438OoOeAgOcl96TbnRwapSXY28HBWljAkkBCv7yVaqqAAAAAwA+/+MD+QVoABAAIAA6AG0AsgoAACuyDQAAK7EVBOmyBwEAK7IEAQArsR0F6bAyL7A6M7QpBwAgBCsBsDsvsADWsREO6bARELEGASuxChkyMrEIDumxPAErsQYRERKzFSEuMiQXObAIEbEYLzk5ALEdChESsgAGCzk5OTAxEzQ3NhcWFzUzESM1BgcGJyY3BhcWMzI3NicmJyYHBgcGAzc2NzYfARYzMjc2PwEXBwYjIi8BJgcGDwE+eIHTzIGioIPQwYaBpQVaXIyRWlUDA1JanIJWUwIVQWJCPHUsFw4NGSQQXw1GbkBDXjEhLiMOAd7Ukp4HB5uN/DqDngIDnJfek250cGqUl2NvBwVpYwIbMpoGBCdNHQgQUSMrIbAvQSIFCF4hAAAEAHb/4wQxBVEAEAAgADAAQACKALIKAAArsg0AACuxFQTpsgcBACuyBAEAK7EdBemwLS+wPTOxJQrpsDUyAbBBL7AA1rERDumwERCxIQErsSkM6bApELEGASuxChkyMrEIDumzOQgGCCuxMQzpsDEvsTkM6bFCASuxKSERErElLTk5sDERsBU5sDkSsBg5ALEdChESsgAGCzk5OTAxEzQ3NhcWFzUzESM1BgcGJyY3BhcWMzI3NicmJyYHBgcGEzY3NjMyFxYHBgcGIyInJiU0NzYzMhcWFRQHBiMiJyZ2eIHTzIGioIPQwYaBpQVaXIyRWlUDA1JanIJWUygBIx4sLyEjAQEkHiwvIiIBlCMfLi4hISEhLi4fIwHe1JKeBwebjfw6g54CA5yX3pNudHBqlJdjbwcFaWMCaTQfGh0gNzQeGh4fMTUgHR4dNTUfHh0eAAAABABM/+MEBgYpABAAIAAwAEAAlwCyCgAAK7INAAArsRUE6bIlAgArtD0HABMEK7IHAQArsgQBACuxHQXptC01HSUNK7QtBwATBCsBsEEvsADWsREO6bARELEhASu0MRQAEgQrsDEQsTkBK7QpFAASBCuwKRCxBgErsQoZMjKxCA7psUIBK7E5MRESshUtJTk5OQCxHQoRErEGCzk5sT01ERKyKTEhOTk5MDETNDc2FxYXNTMRIzUGBwYnJjcGFxYzMjc2JyYnJgcGBwYTNDc2MzIXFhUUBwYjIicmNxQXFhcWNzYnNCcmJyYHBkx3gdPMgaKgg9DBhoGlBVpcjJFaVQMDUlqcglZTjTc9Z2c8Nzc8Z2c9N0wgJkFFKSYBIyNBRSokAd7Ukp4HB5uN/DqDngIDnJfek250cGqUl2NvBwVpYwLTWT1FRT1ZWT5ERD5VNycrAgMuKDs4KSgDAy4oAAMAPv/aBvAD2AAoADcAPgCEALIiAAArsiUAACuwHjOxLQTpsBUysgQBACuwCzOxNAXpsDwytDgQJQsNK7E4B+myOBAKK7NAOAgJKwGwPy+wANaxKQ7psCkQsSIBK7EGMDIysSEN6bEIEDIysUABK7EiKRESsC05ALE4JREStQAYGSAjMCQXObA0EbAGObAEErAJOTAxEzQ3NhcWFzUzFTYXFgQfASEVFBcWFzI/ARcHBgcGJyYnFSM1BgcGJyY3BhcWMzI2NTQnJgciBwYFIS4BJyYGPniB08yBony3tAEDCAX9E19bc6haLIYmQIBsaLR9oIPQwYaBpQVaXIyLr1FZnoFXUwMjAjkOmGlwqwHX1JKeBweajVh0BAPwsHYpdVhTAYVBTz9pOzECBHRZhJ4CA5uX35NvdMe0k11mAWtkMGmJBQWNAAACAGD+OgOSA+EAGQAdAD0AshYAACuxEATpsgMBACuxCgXpAbAeL7AA1rENC+mxHwErALEQFhESsREUOTmwChGxBhM5ObADErAFOTAxEyYANzYXFSYnJiMOARceARcWPwEVBiMiJyYBExcDYAEBF+Kliy9oVj6RxgEBsIe/cyGLrdaTjwEZw5jqAePWASIGBFvbTDAnAdiTjc8HCY4p3mmWkv1kAS9A/tUAAAAAAwBe/+ED9QX5ABsAIwAnAEgAshgAACuxDwjpsgQBACuxIQjptBwKGAQNK7EcB+kBsCgvsADWsQsL6bAcMrILAAors0ALCQkrsSkBKwCxCg8RErESEzk5MDETJjc2FxYXFh8BIRUUFxYzMj8BFwcGBwYnJicmEyEmJyYnJgYTNxMHXgF5g9i0gYIIBf0TX1tzqFoshiZAgG1n0oJ8sAI5DkxMaXCqYKTzXwHb1pOfBAR4eK93KHVZU4RCUD5pOzECBZePAUBpRUQGBY4C70/+tD4AAAADAF7/4QP1BfwAGwAjACcASACyGAAAK7EPCOmyBAEAK7EhCOm0HAoYBA0rsRwH6QGwKC+wANaxCwvpsBwysgsACiuzQAsJCSuxKQErALEKDxESsRITOTkwMRMmNzYXFhcWHwEhFRQXFjMyPwEXBwYHBicmJyYTISYnJicmBhsBFwFeAXmD2LSBgggF/RNfW3OoWiyGJkCAbWfSgnywAjkOTExpcKqN9aP+yQHb1pOfBAR4eK93KHVZU4RCUD5pOzECBZePAUBpRUQGBY4B9QFMTv7FAAMAXv/hA/UFzgAbACMAKQBIALIYAAArsQ8I6bIEAQArsSEI6bQcChgEDSuxHAfpAbAqL7AA1rELC+mwHDKyCwAKK7NACwkJK7ErASsAsQoPERKxEhM5OTAxEyY3NhcWFxYfASEVFBcWMzI/ARcHBgcGJyYnJhMhJicmJyYGAwkBBycHXgF5g9i0gYIIBf0TX1tzqFoshiZAgG1n0oJ8sAI5DkxMaXCqAwE7ATtvzM0B29aTnwQEeHivdyh1WVOEQlA+aTsxAgWXjwFAaUVEBgWOAgkBCv7yVaqqAAAEAF7/4QP1BU0AGwAjADMAQwCDALIYAAArsQ8I6bIEAQArsSEI6bQcChgEDSuxHAfpsDAvsEAzsSgK6bA4MgGwRC+wANaxCwvpsBwysgsACiuzQAsJCSuwCxCxJAErsSwM6bAsELE0ASuxPAzpsUUBK7EsJBESsSgwOTmwNBGwDzmwPBKxEh05OQCxCg8RErESEzk5MDETJjc2FxYXFh8BIRUUFxYzMj8BFwcGBwYnJicmEyEmJyYnJgYDNjc2MzIXFgcGBwYjIicmJTQ3NjMyFxYVFAcGIyInJl4BeYPYtIGCCAX9E19bc6haLIYmQIBtZ9KCfLACOQ5MTGlwqgcBIx4tLyAjAQEkHiwvIiIBlCMfLi4hISEhLi4fIwHb1pOfBAR4eK93KHVZU4RCUD5pOzECBZePAUBpRUQGBY4CJjQeGh0gNzQeGh4fMTUgHR4dNTUfHh0eAAIAUwAAAesF+QADAAcAIACyBAAAKwGwCC+wBNaxBwvpsQkBK7EHBBESsAE5ADAxEzcTBwMRMxFTpPRf1KkFqk/+tD77kQPD/D0AAAACAF4AAAH1BggAAwAHAC8AsgQAACuyAQIAKwGwCC+wBNaxBwvpsQkBK7EHBBESsAE5ALEBBBESsQMFOTkwMRsBFwETETMRXvWi/skEqAS8AUxO/sX7gQPD/D0AAAL/6wAAAmEFzgAFAAkAIgCyBgAAKwGwCi+wBtaxCQvpsQsBK7EJBhESsQQBOTkAMDEDCQEHJwcTERcRFQE7ATtuzcxkqATEAQr+8lWqqvuVA8MF/EIAAAAD/9EAAAJDBVcADgASACAAXACyDwAAK7AML7AdM7EECumwFzIBsCEvsADWsQgM6bAIELEPASuxEgvpsxMSDwgrsRoM6bEiASuxCAARErEEDDk5sRoSERKxFx05OQCxDA8RErAQObAEEbAaOTAxAzY3NjMyFxYHBgcGIyImExEzEQM0NzYzMhYVFAYjIicmLwEkHiwvICMBASMeLS9D8agGJB8tLkJCLi4eIwTrNB4aHSA3NB4aPftMA8P8PQTmNR8dOzU1PBweAAIAYwAAA2QFbQAXADEAdACyAAAAK7AOM7IBAQArsgkBACuxEgjpsCkvsDEztCAHACAEKwGwMi+wANaxFwvpsAIysBcQsQ8BK7EOC+mxMwErsRcAERKxGDE5ObAPEbQJHR8rLSQXObAOErElJjk5ALEBEhESsAM5sSApERKxGCw5OTAxMxEzFTY3Njc2MzIXFhURIxEQJyYHBhURAzc2NzYfARY3Mjc2PwEXBwYnIi8BJgcGDwFjqRQVMCROTnpZbKjCc0A7hhVBYkI8dSwXDg0ZJBBfDUZuQENeMSEuIw4DxnUZFjEQIk5g4f2sAkIBAAcEWVGE/eEEnDGaBgQnTR0BBxBRIyshsAEuQiIGCF0iAAAAAAMAZP/ZBFkF+QANABwAIAA9ALILAAArsREE6bIEAQArsRkI6QGwIS+wANaxDgvpsA4QsRUBK7EHC+mxIgErsRUOERKzCxkdHyQXOQAwMRM0NzYXFgAHBgcGIyIANx4BNzY3Njc2JyYjIgcGEzcTB2Sbms7PASQBAYiP5ND+2KcBypCKYF4EBGBflZNjYm+k818B0tOZmQEB/tTP2JGYASjRktICAWhljpZsbWtrA0VP/rQ+AAMAZP/ZBFkF/AANABwAIAA9ALILAAArsREE6bIEAQArsRkI6QGwIS+wANaxDgvpsA4QsRUBK7EHC+mxIgErsRUOERKzCxkdHyQXOQAwMRM0NzYXFgAHBgcGIyIANx4BNzY3Njc2JyYjIgcGGwEXAWSbms7PASQBAYiP5ND+2KcBypCKYF4EBGBflZNjYqH1o/7JAdLTmZkBAf7Uz9iRmAEo0ZLSAgFoZY6WbG1rawJLAUxO/sUAAAADAGT/2QRZBc4ADQAcACIAPQCyCwAAK7ERBOmyBAEAK7EZCOkBsCMvsADWsQ4L6bAOELEVASuxBwvpsSQBK7EVDhESswsZHR8kFzkAMDETNDc2FxYABwYHBiMiADceATc2NzY3NicmIyIHBhMJAQcnB2Sbms7PASQBAYiP5ND+2KcBypCKYF4EBGBflZNjYioBOwE7b8zNAdLTmZkBAf7Uz9iRmAEo0ZLSAgFoZY6WbG1rawJfAQr+8lWqqgAAAAADAGT/2QRZBWgADQAcADYAWwCyCwAAK7ERBOmyBAEAK7EZCOmwLi+wNjO0JQcAIAQrAbA3L7AA1rEOC+mwDhCxFQErsQcL6bE4ASuxFQ4RErQLGR0qLiQXObAHEbArOQCxJS4RErEdMTk5MDETNDc2FxYABwYHBiMiADceATc2NzY3NicmIyIHBhM3Njc2HwEWMzI3Nj8BFwcGIyIvASYHBg8BZJuazs8BJAEBiI/k0P7YpwHKkIpgXgQEYF+Vk2NiDRVBYkI8dSwWDg4ZJBBfDUZuQERdMSEuIw4B0tOZmQEB/tTP2JGYASjRktICAWhljpZsbWtrAjEymgYEJ00dCBBRIyshsC9BIgUIXiEAAAQAZP/ZBFkFUQANABwALAA8AG0AsgsAACuxEQTpsgQBACuxGQjpsCkvsDkzsSEK6bAxMgGwPS+wANaxDgvpsA4QsR0BK7ElDOmwJRCxLQErsTUM6bA1ELEVASuxBwvpsT4BK7ElHRESsSEpOTmwLRGxCxk5OQCxISkRErA1OTAxEzQ3NhcWAAcGBwYjIgA3HgE3Njc2NzYnJiMiBwYTNjc2MzIXFgcGBwYjIicmJTQ3NjMyFxYVFAcGIyInJmSbms7PASQBAYiP5ND+2KcBypCKYF4EBGBflZNjYh8BJB4sLyAjAQEjHi0vISIBkyQfLS4hISEhLi4eIwHS05mZAQH+1M/YkZgBKNGS0gIBaGWOlmxta2sCfzQfGh0gNzQeGh4fMTUgHR4dNTUfHh0eAAADAGsAkgQXA4IAAwAPABsAMQCwDS+xBwrpsAAvsQEH6bAZL7ETCukBsBwvsATWsBAytAoTAB4EK7AWMrEdASsAMDETNSEVBTQ2MzIWFRQGIyImETQ2MzIWFRQGIyImawOs/cA/Kyo+PykrPz8rKj4/KSs/Acx9fdIrPj4rKj4+AkoqPj4qKz4+AAAAAAMAZP+HBFkEDgAVAB0AJgB4ALIPAAArsSAE6bITAAArsgMBACuxGwjpsgcBACsBsCcvsADWsRYL6bAWELEjASuxCwvpsSgBK7EWABESsRIUOTmwIxG2BQMRDxkeJSQXObALErIGBwk5OTkAsSAPERKxERQ5ObAbEbQJABgeJSQXObADErAFOTAxEzQAMzIXNxcGBxYHBgcGIyInByc3JjcUFwEmJyIGExY3PgE3NicGZAE0z5N/cGcbYYYBAYmO5IpzeFlznqhbAbFRZJPFt0xZir4EA0h0AdLTATFWjkMheJPF2JGYRZdLkZrVh2cCITUB1v41KwEDy46DYpEAAAACAGL/4gNaBfkAEwAXAEEAshEAACuxBgTpsgABACuwCzMBsBgvsBPWsQIO6bACELEKASuxDQ7psRkBK7EKAhESshQVFzk5ObANEbAWOQAwMRMzERQXFjMyNzY1ETMRFAcGBwQREzcTB2KlJy+GhS8fpERZ2v6AvqT0XwPG/fmsRFVlRJwCB/3s1myLAwUByAQFT/60PgAAAAIAYv/iA1oF/AATABcAQQCyEQAAK7EGBOmyAAEAK7ALMwGwGC+wE9axAg7psAIQsQoBK7ENDumxGQErsQoCERKyFBUXOTk5sA0RsBY5ADAxEzMRFBcWMzI3NjURMxEUBwYHBBEbARcBYqUnL4aFLx+kRFna/oD39aP+yQPG/fmsRFVlRJwCB/3s1myLAwUByAMLAUxO/sUAAgBi/+IDWgXOABMAGQBJALIRAAArsQYE6bIAAQArsAszAbAaL7AT1rECDumwAhCxCgErsQ0O6bEbASuxAhMRErAUObAKEbIVGBk5OTmwDRKxFhc5OQAwMRMzERQXFjMyNzY1ETMRFAcGBwQREwkBBycHYqUnL4aFLx+kRFna/oBoATsBO27NzAPG/fmsRFVlRJwCB/3s1myLAwUByAMfAQr+8lWqqgAAAwBi/+IDWgVRABMAIwAzAHAAshEAACuxBgTpsgABACuwCzOwIC+wMDOxGArpsCgyAbA0L7AT1rECDumwFCDWEbEcDOmwAhCxCgErsQ0O6bANELAsINYRsSQM6bAkL7EsDOmxNQErsRwUERKxGCA5ObAkEbAGOQCxGCARErAsOTAxEzMRFBcWMzI3NjURMxEUBwYHBBETNjc2MzIXFgcGBwYjIicmJTQ3NjMyFxYVFAcGIyInJmKlJy+GhS8fpERZ2v6ATgEkHiwvICMBASMeLS8hIgGTJB8tLiEhISEuLh4jA8b9+axEVWVEnAIH/ezWbIsDBQHIAz80HxodIDc0HhoeHzE1IB0eHTU1Hx4dHgADADz95QQ+BVQABwAXACcAVgCyAAEAK7ADM7AUL7AkM7EMCumwHDIBsCgvsAjWsRAM6bAQELEYASuxIAzpsSkBK7EQCBESswUHDBQkFzmwGBGwAjmwIBKwAzkAsQwUERKxGCA5OTAxEzMJATMBIwEDNjc2MzIXFgcGBwYjIicmJTQ3NhcyFxYVFAcGIyInJjy/AVABObr9OrsBMqIBJB4sLyAjAQEjHiwvIiIBlCMfLi4gIiIhLS4fIwPG/VECr/ofAnYEjTQeGhwgNzQeGh4fMTUgHQEdHjU1Hh4dHgAAAAIAYP/dCRcGGgAaACYAgQCyEwAAK7EQA+myGAAAK7EeA+myCAIAK7ELA+myAwIAK7EkA+m0DA8YAw0rsQwI6QGwJy+wANaxGwvpsBsQsRQBK7EHITIysRAL6bALMrIQFAors0AQEgkrsAkys0AQDgkrsSgBK7EUGxESsAM5ALEPEBESsBQ5sQsMERKwBzkwMRMSACEyFxYXESEVIREhFSERIRUhEQYHBickABMCAAUEAAMCAAUGAGABAdcBRb6ppHIDHf2UAlj9oAJw/Odxpau8/rf+KqwDAXIBBAEGAXoEBP6J/vP//pkDAQFHAdJTUpIBJaH+OZv9nKEBF5JUVgIBAdoBSf76/oYBAQF/AQcBCAFyBgf+kAADAE3/2Qc1A98AIAAtADQAjACyHgAAK7AaM7EkBOmwETKyAwEAK7AHM7ErCOmwMjK0LgweBw0rsS4H6QGwNS+wANaxIQvpsCEQsSgBK7ENEOmwLjKyDSgKK7NADQsJK7E2ASuxKCERErEeKzk5sA0RsQUcOTkAsSQeERKwIzmwDBGzFBUcJSQXObAuErAAObArEbAFObADErAzOTAxEzQAFwQXNgUWBB8BIRUUFxYzMj8BFwcGBwYnJicGISIANx4BNzY3Njc2JiMiBgUhLgEnJgZNATTOAQKUgwEJtAEDCAX9E19bc6haLIYmQIBtZ/uEkf7n0P7XqAHKj4pgXgQEvpaTxQNcAjkOmGlwqwHS0wEyAQHW5QUE8K93KHVZU4RCUD5pOzECBdDdASfSktMDAWhljpbZ1hlpigUFjgAAAAMAOAAABM4HYAAIABgAJwBrALIHAAArsgACACuwAzOwFS+wJDOxDQrpsB0yAbAoL7AH1rEGEOmzEQYHCCuxCQzpsAkvsREM6bAGELEZASuxIQzpsSkBK7EHCRESsQ0VOTmxBhERErACOQCxAAcRErACObENFRESsCE5MDETMwkBMwERIxEDNjc2MzIXFgcGBwYjIicmJTQ3NjMyFxYVFAYjIicmOMEBiQGMwP4IrdQBJB4sLyAjAQEjHi0vISIBkyQfLS4hIUIuLh4jBgj9UgKu/Jr9XgKfBFU0HhodIDc0HhofHzE1Hx0dHjU1PBweAAEAYAG7AfwCVAADAAATNSEVYAGcAbuZmQAAAAABAGABuwH8AlQAAwAAEzUhFWABnAG7mZkAAAAAAQBgAbsB/AJUAAMAABM1IRVgAZwBu5mZAAAAAAEAWgG3BVwCVAADABcAsAMvsQAI6bEACOkBsAQvsQUBKwAwMRMhFSFaBQL6/wJUnQAAAAABAFsBtweKAlQAAwAXALAAL7EBCOmxAQjpAbAEL7EFASsAMDETNSEXWwctAgG3nZ0AAAAAAQBoA8kBwQYIAAMAIgCyAQIAK7QDCgAIBCsBsAQvsADWtAIMAAwEK7EFASsAMDEbARcDaOlwwQQDAgUq/esAAAEAaAPKAcAGCAADACIAsgECACu0AwoACAQrAbAEL7AA1rQCDAAMBCuxBQErADAxGwEXA2jAmOkD9AIUOf37AAABAGj+fAHAALoAAwAgALADL7QBCgAIBCsBsAQvsADWtAIMAAwEK7EFASsAMDEbARcDaMCY6f6mAhQ5/fsAAAAAAgBnA8UDFQYIAAMABwAoALIBAgArsAUztAMKAAgEK7AHMgGwCC+xCQErALEBAxESsQQGOTkwMRsBFwM3ExcDZ+lwwb3pcMEEAwIFKv3sNAIFKv3sAAAAAAIAZAPBAxEF/wADAAcAHACwAy+wBzO0AQoACAQrsAUyAbAIL7EJASsAMDEbARcDNxMXA2TAmOnmwJjpA+sCFDn9+yoCFDn9+wAAAAACAGT+fAMRALoAAwAHABwAsAMvsAcztAEKAAgEK7AFMgGwCC+xCQErADAxGwEXAzcTFwNkwJjp5sCY6f6mAhQ5/fsqAhQ5/fsAAAAAAQBeAgYCbQQUAA8AMQCwDC+0BAoACAQrtAQKAAgEKwGwEC+wANa0CAwACAQrsREBK7EIABESsQQMOTkAMDETJjc2MzIXFhcWBwYjIicmXgRTTG1pSVEEBFNMbWlKUQMFgEtEQEZ5gEtEQEYAAwBW//sEqwDqAAsAFwAjAEUAsgkAACuxFSEzM7EDCumxDxsyMrIJAAArsQMK6QGwJC+wANaxBgzpsAYQsQwBK7ESDOmwEhCxGAErsR4M6bElASsAMDE3NDYzMhYVFAYjIiYlNDYzMhYVFAYjIiYlNDYzMhYVFAYjIiZWRjIxRkYxMUcBs0YyMUZGMTFHAbNGMTFHRjIxRnMxRkYxMUdGMjFGRjExR0YyMUZGMTFHRgACAGMDFQV+BgsABwAUAHgAsgECACuxCQwzM7QABwATBCuwAzKyAAEKK7NAAAYJK7IIDhEyMjIBsBUvsAbWtAUUABIEK7IFBgors0AFAwkrsgYFCiuzQAYACSuwBRCxCAErtBQUABIEK7AUELEPASu0DhQAEgQrsRYBK7EPFBESsQoMOTkAMDETNSEVIxEjEQETMxsBMxEjEQMjAxFjAiHsSwFqBXTt9WxJ+kLxBcw/P/1JArf9SQLy/WkClv0PAp/9YgKg/V8AAAEAAAAAA8MDwwADADUAsgAAACu0AQoABwQrsgAAACu0AQoABwQrAbAEL7AA1rQDDAAHBCu0AwwABwQrsQUBKwAwMTERIREDwwPD/D0AAAAAAQAAAAEAAP8cmJlfDzz1AB8IAAAAAADLwYNRAAAAAMvBg1H/yf3gCRcIMwAAAAgAAgAAAAAAAAABAAAIM/28AAAJhf/J/6YJFwABAAAAAAAAAAAAAAAAAAAAzggAAAAAAAAACAAAAAGjAAABlABcAjcAZgTyAGYEcwBgBbQAbAXNAFsBMQBaAgQAYgIcAG0C7QBsBI8AYAHBAGACWgBgAWYAXwTlAE0FOQBrBTkByAU5AKcFOQDOBTkAYwU5AJgFOQCfBTkAYgU5AMcFOQCNAbAAZAIbAGAEjwBiBI8AZgSYAF8DkABZBlwASgXOACoEQQCFBY8AYwUyAHYD2ACUA3UAlAawAFoFMgBmAeoApwM1ADQE4wCNAwsAjQcDADEGHABjBvYAYAPmAGIG9gBZBCUAYAR5AF4EOwBcBQ8AXAU6ADwI6wBCBLoAOAT5ADgFBwBiAj4AZATkAF8CPwBWAzUAYgU6ABECYQBmBHsAPgSJAIoD7gBaBG4AMwQ8AF4CrwBvBHsANAPJAGYCGwCcAhMAngPJAJQB6QCyBbIAZAPDAGMEswBkBHsAhgSJAFsCvQCFA2AAZwJ3AGADtgBiBCYAPAZ4AEEEVwA+BHQAPAS5AFoCkgBkAUAAWgKaAGQDOgBKAz0AAAGhAFcD7gBeBQ8AawUIADgDwgBTAzUAawalAGQDmQBsBKsAWwbHAFwCWgBgBp0AVwJwAF8D9wBeAkwAWQSJAGIDrQBeBLgAZgOQAFYFyQAqBecAKgXnACoF7AAqBdYALwXXACoI0QBmBZ0AYgQqAJQD2gB5BCoAlAQeAJQB9wBOAgMATQID/8kCA//SBhYASAb1AGAG9QBgBukAYAbyAFEG+QBVBvYAYATxAFwFCABcBP0AXAUKAEUEbgBVBHUATARvAD4EhAA+BG8APgSEAHYEfQBMBzoAPgPmAGAETABeBFIAXgRSAF4ETABeAh0AUwIkAF4CHv/rAiL/0QO+AGMEswBkBL4AZAS6AGQEqwBkBMIAZARzAGsEswBkA8QAYgO8AGIDvABiA7cAYgSTADwJhQBgB5sATQUVADgEGQAACDMAAAQZAAAIMwAAArsAAAIMAAABXQAAAV0AAAEGAAABowAAAHQAAAJaAGACWgBgAloAYAWrAFoH4ABbAiIAaAIbAGgCGwBoA1gAZwN1AGQDdQBkAtkAXgUIAFYBowAAAgwAAAXXAGMDwwAAAAAAAAAAAAAAAAA8AGQBQAHIAoYDEgMwA2QDmAPMBAoEKARGBHAEgATaBPwFSAXSBg4GgAbgBwAHlgf4CEoIhgiaCLwI0AluCioKWgq+CxYLXguaC9AMTAyEDKIM3A0QDTYNkg3CDjAOeg8ED2IP3hAOEFIQdhCmENgRCBEsEVoRahGcEcYR4hIAEmoS2BMqE5YT/hRUFOIVKhVuFbIV5hYCFnQWwBceF44YABg+GMYZBBlEGWgZmBnKGeoaDhp6GpYa/htIG0gbfhv0HMAdJh24HgoevB8yH1Ifeh+IIFYgsCEAISAhaiHQIfAigiK6IvQjMiOUJAwkjCTiJTwlgCXEJhAmjCa0Jt4nCidwJ9goPCiiKQopmCo2KrwrCCtUK6QsLiy+LSotmC4MLqAvSi/6MJ4w9DFeMcgyNjLiMwgzNjNiM8Y0UDSqNQY1ZjXuNoY2zDdMN5g35Dg4OMA5MDm8Olw61DrUOtQ61DrUOtQ61DrUOtQ61DrUOtQ64jrwOv47GDsyO1I7cjuSO7475DwKPEA8mDyYPJg8/D0kAAAAAQAAAM4ATgAFAAAAAAACAAEAAgAWAAABAAFOAAAAAAAAAAwAlgABAAAAAAABAAoAFgABAAAAAAACAAQAKwABAAAAAAADACcAgAABAAAAAAAEAA8AyAABAAAAAAAFACABGgABAAAAAAAGAA0BVwADAAEECQABABQAAAADAAEECQACAAgAIQADAAEECQADAE4AMAADAAEECQAEAB4AqAADAAEECQAFAEAA2AADAAEECQAGABoBOwBGAHUAdAB1AHIAYQAgAEkAQwBHAABGdXR1cmEgSUNHAABCAG8AbwBrAABCb29rAABBAGwAdABzAHkAcwAgAEYAbwBuAHQAbwBnAHIAYQBwAGgAZQByACAANAAuADEAIABGAHUAdAB1AHIAYQAgAEkAQwBHACAAQgBvAG8AawAAQWx0c3lzIEZvbnRvZ3JhcGhlciA0LjEgRnV0dXJhIElDRyBCb29rAABGAHUAdAB1AHIAYQAgAEkAQwBHACAAQgBvAG8AawAARnV0dXJhIElDRyBCb29rAABBAGwAdABzAHkAcwAgAEYAbwBuAHQAbwBnAHIAYQBwAGgAZQByACAANAAuADEAIAAyADUALwAwADEALwA5ADYAAEFsdHN5cyBGb250b2dyYXBoZXIgNC4xIDI1LzAxLzk2AABGAHUAdAB1AHIAYQBJAEMARwBCAG8AbwBrAABGdXR1cmFJQ0dCb29rAAAAAgAAAAAAAP8oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOAAABAgEDAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQEEAKMAhACFAJYAhgCOAIsAnQCpAKQBBQCKAIMAkwCNAIgAngCqAKIArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgBmANMA0ADRAK8AZwCRANYA1ADVAGgAiQBqAGkAawBtAGwAbgCgAG8AcQBwAHIAcwB1AHQAdgB3AHgAegB5AHsAfQB8ALgAoQB/AH4AgACBALoAsACxALsBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETALIAswC2ALcAxAC0ALUAxQCHAKsBFAEVAIwBFgZnbHlwaDEGZ2x5cGgyB3VuaTAwQTAHdW5pMDBBRAd1bmkyMDAwB3VuaTIwMDEHdW5pMjAwMgd1bmkyMDAzB3VuaTIwMDQHdW5pMjAwNQd1bmkyMDA2B3VuaTIwMDcHdW5pMjAwOAd1bmkyMDA5B3VuaTIwMEEHdW5pMjAxMAd1bmkyMDExCmZpZ3VyZWRhc2gHdW5pMjAyRgd1bmkyMDVGB3VuaUUwMDAAuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYALADIEWwAytEsAggRbIDuQIrsAMrRLAHIEWyCC0CK7ADK0SwBiBFsgdTAiuwAytEsAUgRbIG5QIrsAMrRLAEIEWyBUQCK7ADK0SwCSBFugADAREAAiuwAytEsAogRbIJEgIrsAMrRAGwCyBFsAMrRLAMIEWyCxICK7EDRnYrRLANIEWyDBgCK7EDRnYrRLAOIEWyDWQCK7EDRnYrRLAPIEWyDj0CK7EDRnYrRLAQIEWyDzACK7EDRnYrRLARIEWyECMCK7EDRnYrRLASIEWyESICK7EDRnYrRLATIEWyEiECK7EDRnYrRLAUIEWyEykCK7EDRnYrRFmwFCsAAAAAAU+b0tEAAA==) format('truetype'); diff --git a/lsp/minified.js b/lsp/minified.js index b0986dd0..51d43a79 100644 --- a/lsp/minified.js +++ b/lsp/minified.js @@ -63,8 +63,8 @@ d?5:10;e=e*n*Math.pow(1024,b);null!=a.minTickSize&&e");switch(n){case "week":c.append(UI.format.addUnit(d.week,"wks, ")).append(UI.format.addUnit(d.day,"days"));break;case "day":c.append(UI.format.addUnit(d.day,"days, ")).append(UI.format.addUnit(d.hr,"hrs"));break;default:c.append([("0"+d.hr).slice(-2),("0"+d.min).slice(-2),("0"+d.sec).slice(-2)+(d.ms?"."+d.ms:"")].join(":"))}return c[0].innerHTML},number:function(a){if(isNaN(Number(a))|| 0==a)return a;var c=Math.pow(10,3-Math.floor(Math.log(a)/Math.LN10)-1),a=Math.round(a*c)/c;if(1E4");if("undefined"==typeof a.online)return c.text("Unknown, checking.."),"undefined"!=typeof a.error&&c.text(a.error),c;switch(a.online){case -1:c.text("Enabling");break;case 0:c.text("Unavailable").addClass("red");break;case 1:c.text("Active").addClass("green"); -break;case 2:c.text("Standby").addClass("orange");break;default:c.text(a.online)}"undefined"!=typeof a.error&&c.text(a.error);return c},capital:function(a){return a.charAt(0).toUpperCase()+a.substring(1)},addUnit:function(a,c){var b=$("").html(a);b.append($("").addClass("unit").html(c));return b[0].innerHTML},bytes:function(a,c){var b="bytes KiB MiB GiB TiB PiB".split(" ");if(0==a)unit=b[0];else{var d=Math.floor(Math.log(Math.abs(a))/Math.log(1024));0>d?unit=b[0]:(a/=Math.pow(1024,d), -unit=b[d])}return UI.format.addUnit(UI.format.number(a),unit+(c?"/s":""))}},navto:function(a,c){var b=location.hash,d=b.split("@");d[0]=[mist.user.name,mist.user.host].join("&");d[1]=[a,c].join("&");location.hash=d.join("@");location.hash==b&&$(window).trigger("hashchange")},showTab:function(a,c){var b=UI.elements.main;if(mist.user.loggedin&&!("ui_settings"in mist.data))b.html("Loading.."),mist.send(function(){UI.showTab(a,c)},{ui_settings:!0});else{var d=UI.elements.menu.css("visibility","visible").find(".button").filter(function(){if($(this).find(".plain").text()== +break;case 2:c.text("Standby").addClass("orange");break;default:c.text(a.online)}"error"in a&&c.text(a.error);return c},capital:function(a){return a.charAt(0).toUpperCase()+a.substring(1)},addUnit:function(a,c){var b=$("").html(a);b.append($("").addClass("unit").html(c));return b[0].innerHTML},bytes:function(a,c){var b="bytes KiB MiB GiB TiB PiB".split(" ");if(0==a)unit=b[0];else{var d=Math.floor(Math.log(Math.abs(a))/Math.log(1024));0>d?unit=b[0]:(a/=Math.pow(1024,d),unit=b[d])}return UI.format.addUnit(UI.format.number(a), +unit+(c?"/s":""))}},navto:function(a,c){var b=location.hash,d=b.split("@");d[0]=[mist.user.name,mist.user.host].join("&");d[1]=[a,c].join("&");location.hash=d.join("@");location.hash==b&&$(window).trigger("hashchange")},showTab:function(a,c){var b=UI.elements.main;if(mist.user.loggedin&&!("ui_settings"in mist.data))b.html("Loading.."),mist.send(function(){UI.showTab(a,c)},{ui_settings:!0});else{var d=UI.elements.menu.css("visibility","visible").find(".button").filter(function(){if($(this).find(".plain").text()== a)return!0});0").text(a));switch(a){case "Login":if(mist.user.loggedin){UI.navto("Overview");break}UI.elements.menu.css("visibility","hidden");UI.elements.connection.status.text("Disconnected").removeClass("green").addClass("red");b.append(UI.buildUI([{type:"help",help:"Please provide your account details.
You were asked to set these when MistController was started for the first time. If you did not yet set any account details, log in with your desired credentials to create a new account."}, {label:"Host",help:"Url location of the MistServer API. Generally located at http://MistServerIP:4242/api","default":"http://localhost:4242/api",pointer:{main:mist.user,index:"host"}},{label:"Username",help:"Please enter your username here.",validate:["required"],pointer:{main:mist.user,index:"name"}},{label:"Password",type:"password",help:"Please enter your password here.",validate:["required"],pointer:{main:mist.user,index:"password"}},{type:"buttons",buttons:[{label:"Login",type:"save","function":function(){mist.send(function(){UI.navto("Overview")})}}]}])); break;case "Create a new account":UI.elements.menu.css("visibility","hidden");b.append($("

").text("No account has been created yet in the MistServer at ").append($("").text(mist.user.host)).append("."));b.append(UI.buildUI([{type:"buttons",buttons:[{label:"Select other host",type:"cancel",css:{"float":"left"},"function":function(){UI.navto("Login")}}]},{type:"custom",custom:$("
")},{label:"Desired username",type:"str",validate:["required"],help:"Enter your desired username. In the future, you will need this to access the Management Interface.", @@ -86,13 +86,13 @@ var l=function(){function a(b){var c=mist.data.capabilities.connectors[b.connect var m={},t=[];for(q in mist.data.capabilities.connectors)t.push([q,q]);var Q=$("");b.append(UI.buildUI([{label:"Protocol",type:"select",select:t,"function":function(){Q.html(P($(this).getval()))}}])).append(Q)}break;case "Streams":if(!("capabilities"in mist.data)){b.html("Loading..");mist.send(function(){UI.navto(a)},{capabilities:!0});break}h=$("").append($("").append("").attr("colspan",6).text("Loading.."));p=$("").html($("").html($("").html($("").data("index", -d).html($("").data("index",d).html($("
").text("Stream name").attr("data-sort-type", "string").addClass("sorting-asc")).append($("").text("Source").attr("data-sort-type","string")).append($("").text("Status").attr("data-sort-type","int")).append($("").css("text-align","right").text("Connections").attr("data-sort-type","int")).append($("")).append($("")))).append(h);b.append(UI.buildUI([{type:"help",help:"Here you can create, edit or delete new and existing streams. Immidiately go to the stream preview or view the information available about the stream with the info button."}])).append($("").css("text-align","right").html($("").addClass("description").text("Loading..")),f=0;if(typeof mist.data.totals!="undefined"&&typeof mist.data.totals[d]!="undefined"){f=mist.data.totals[d].all_protocols.clients;f=f.length?f[f.length-1][1]:0}g.html(UI.format.number(f));if(f==0&&e.online==1)e.online=2;f=$("").css("text-align","right").css("white-space","nowrap");e.ischild||f.html($("
").html(i).attr("title",d).addClass("overflow_ellipsis")).append($("").text(e.source).attr("title",e.source).addClass("description").addClass("overflow_ellipsis").css("max-width","20em")).append($("").data("sort-value",e.online).html(j)).append(g).append($("").html(k)).append(f));a++}},{totals:a,active_streams:true})},x=$.extend(!0,{},mist.data.streams),R=function(a,b){var c=$.extend({},b);delete c.meta;delete c.error;c.online=2;c.name=a;c.ischild=true;return c};if(mist.data.LTS){var A= -0,E=0;for(i in mist.data.streams)p=mist.data.capabilities.inputs.Folder||mist.data.capabilities.inputs["Folder.exe"],mist.inputMatch(p.source_match,mist.data.streams[i].source)&&(x[i].source+="*",mist.send(function(a,b){var c=b.stream,d;for(d in a.browse.files)for(var e in mist.data.capabilities.inputs)if(!(e.indexOf("Buffer")>=0||e.indexOf("Folder")>=0)&&mist.inputMatch(mist.data.capabilities.inputs[e].source_match,"/"+a.browse.files[d])){var g=c+"+"+a.browse.files[d];x[g]=R(g,mist.data.streams[c]); -x[g].source=mist.data.streams[c].source+a.browse.files[d]}a.browse.files.length?x[c].filesfound=true:mist.data.streams[c].filesfound=false;E++;if(A==E){mist.send(function(){D()},{active_streams:true});UI.interval.set(function(){D()},3E4)}},{browse:mist.data.streams[i].source},{stream:i}),A++);0==A&&(mist.send(function(){D()},{active_streams:!0}),UI.interval.set(function(){D()},3E4))}else mist.send(function(){D()},{active_streams:!0}),UI.interval.set(function(){D()},1E4);break;case "Edit Stream":if("undefined"== -typeof mist.data.capabilities){mist.send(function(){UI.navto(a,c)},{capabilities:!0});b.append("Loading..");break}k=!1;""!=c&&(k=!0);k?(p=c,m=mist.data.streams[p],b.find("h2").append(' "'+p+'"')):(b.html($("

").text("New Stream")),m={});i=[];for(q in mist.data.capabilities.inputs)i.push(mist.data.capabilities.inputs[q].source_match);var F=$("
");b.append(UI.buildUI([{label:"Stream name",type:"str",validate:["required","streamname"],pointer:{main:m,index:"name"},help:"Set the name this stream will be recognised by for players and/or stream pushing."}, -{label:"Source",type:"browse",validate:["required"],filetypes:i,pointer:{main:m,index:"source"},help:'Set the stream source.
VoD:You can browse to the file or folder as a source or simply enter the path to the file.
Live:You\'ll need to enter "push://IP" with the IP of the machine pushing towards MistServer.
You can use "push://" to accept any source.
(Pro only)Use "push://(IP)@password" to set a password protection for pushes.
If you\'re unsure how to set the source properly, please view our Live pushing guide at the tools section.', +b[c],e;e=d in mist.data.streams?mist.data.streams[d]:x[d];var g=$("

").css("text-align","right").html($("").addClass("description").text("Loading..")),f=0;if(typeof mist.data.totals!="undefined"&&typeof mist.data.totals[d]!="undefined"){var i=mist.data.totals[d].all_protocols.clients,f=0;if(i.length){for(a in i)f=f+i[a][1];f=Math.round(f/i.length)}}g.html(UI.format.number(f));if(f==0&&e.online==1)e.online=2;f=$("").css("text-align","right").css("white-space","nowrap");(!("ischild"in e)|| +!e.ischild)&&f.html($("
").html(i).attr("title",d).addClass("overflow_ellipsis")).append($("").text(e.source).attr("title",e.source).addClass("description").addClass("overflow_ellipsis").css("max-width","20em")).append($("").data("sort-value",e.online).html(j)).append(g).append($("").html(k)).append(f)); +a++}},{totals:a,active_streams:true})},x=$.extend(!0,{},mist.data.streams),R=function(a,b){var c=$.extend({},b);delete c.meta;delete c.error;c.online=2;c.name=a;c.ischild=true;return c};if(mist.data.LTS){var A=0,E=0;for(i in mist.data.streams)p=mist.data.capabilities.inputs.Folder||mist.data.capabilities.inputs["Folder.exe"],mist.inputMatch(p.source_match,mist.data.streams[i].source)&&(x[i].source+="*",mist.send(function(a,b){var c=b.stream,d;for(d in a.browse.files)for(var e in mist.data.capabilities.inputs)if(!(e.indexOf("Buffer")>= +0||e.indexOf("Folder")>=0)&&mist.inputMatch(mist.data.capabilities.inputs[e].source_match,"/"+a.browse.files[d])){var g=c+"+"+a.browse.files[d];x[g]=R(g,mist.data.streams[c]);x[g].source=mist.data.streams[c].source+a.browse.files[d]}a.browse.files.length?x[c].filesfound=true:mist.data.streams[c].filesfound=false;E++;if(A==E){mist.send(function(){D()},{active_streams:true});UI.interval.set(function(){D()},1E4)}},{browse:mist.data.streams[i].source},{stream:i}),A++);0==A&&(mist.send(function(){D()}, +{active_streams:!0}),UI.interval.set(function(){D()},3E4))}else mist.send(function(){D()},{active_streams:!0}),UI.interval.set(function(){D()},1E4);break;case "Edit Stream":if("undefined"==typeof mist.data.capabilities){mist.send(function(){UI.navto(a,c)},{capabilities:!0});b.append("Loading..");break}k=!1;""!=c&&(k=!0);k?(p=c,m=mist.data.streams[p],b.find("h2").append(' "'+p+'"')):(b.html($("

").text("New Stream")),m={});i=[];for(q in mist.data.capabilities.inputs)i.push(mist.data.capabilities.inputs[q].source_match); +var F=$("
");b.append(UI.buildUI([{label:"Stream name",type:"str",validate:["required","streamname"],pointer:{main:m,index:"name"},help:"Set the name this stream will be recognised by for players and/or stream pushing."},{label:"Source",type:"browse",validate:["required"],filetypes:i,pointer:{main:m,index:"source"},help:'Set the stream source.
VoD:You can browse to the file or folder as a source or simply enter the path to the file.
Live:You\'ll need to enter "push://IP" with the IP of the machine pushing towards MistServer.
You can use "push://" to accept any source.
(Pro only)Use "push://(IP)@password" to set a password protection for pushes.
If you\'re unsure how to set the source properly, please view our Live pushing guide at the tools section.', "function":function(){var a=$(this).val();if(a!=""){var b=null,c;for(c in mist.data.capabilities.inputs)if(typeof mist.data.capabilities.inputs[c].source_match!="undefined"&&mist.inputMatch(mist.data.capabilities.inputs[c].source_match,a)){b=c;break}if(b===null)F.html($("

").text("Unrecognized input").addClass("red")).append($("").text("Please edit the stream source.").addClass("red"));else{a=mist.data.capabilities.inputs[b];F.html($("

").text(a.name+" Input options"));a=mist.convertBuildOptions(a, m);F.append(UI.buildUI(a))}}}},$("
"),{type:"custom",custom:F},$("
"),$("

").text("Encryption"),{type:"help",help:"To enable encryption, the licence acquisition url must be entered, as well as either the content key or the key ID and seed.
Unsure how you should fill in your encryption or missing your preferred encryption? Please contact us."},{label:"License acquisition url",type:"str",LTSonly:!0,pointer:{main:m,index:"la_url"}},$("
"),{label:"Content key",type:"str",LTSonly:!0,pointer:{main:m, index:"contentkey"}},{type:"text",text:" - or - "},{label:"Key ID",type:"str",LTSonly:!0,pointer:{main:m,index:"keyid"}},{label:"Key seed",type:"str",LTSonly:!0,pointer:{main:m,index:"keyseed"}},{type:"buttons",buttons:[{type:"cancel",label:"Cancel","function":function(){UI.navto("Streams")}},{type:"save",label:"Save","function":function(){if(!mist.data.streams)mist.data.streams={};mist.data.streams[m.name]=m;c!=m.name&&delete mist.data.streams[c];var a={};if(mist.data.LTS){a.addstream={};a.addstream[m.name]= @@ -146,10 +146,10 @@ validate:["required"],pointer:{main:m,index:"name"},value:mist.user.name},{type: {type:"buttons",buttons:[{type:"save",label:"Send","function":function(a){$(a).text("Sending..");$.ajax({type:"POST",url:"http://mistserver.org/contact_us?skin=plain",data:m,success:function(a){a=$("").html(a);a.find("script").remove();b.html(a[0].innerHTML)}})}}]}]));break;case "Disconnect":mist.user.password="";delete mist.user.authstring;delete mist.user.loggedin;UI.navto("Login");break;default:b.append($("

").text("This tab does not exist."))}}}},mist={data:{},user:{name:"",password:"", host:"http://"+(location.hostname?location.hostname:"localhost")+":4242/api"},send:function(a,c,b){var c=c||{},b=b||{},b=$.extend(!0,{timeout:30,sendData:c},b),d={authorize:{password:mist.user.authstring?MD5(MD5(mist.user.password)+mist.user.authstring):"",username:mist.user.name}};$.extend(!0,d,c);log("Send",$.extend(!0,{},c));d={url:mist.user.host,type:"POST",data:{command:JSON.stringify(d)},dataType:"jsonp",crossDomain:!0,timeout:1E3*b.timeout,async:!0,error:function(d,g){delete mist.user.loggedin; if(!b.hide){switch(g){case "timeout":g=$("").text("The connection timed out. ");break;case "abort":g=$("").text("The connection was aborted. ");break;default:g=$("").text(g+". ").css("text-transform","capitalize")}$("#message").addClass("red").text("An error occurred while attempting to communicate with MistServer:").append($("
")).append(g).append($("").text("Send server request again").click(function(){mist.send(a,c,b)}))}UI.navto("Login")},success:function(d){log("Receive",$.extend(!0, -{},d),"as reply to",b.sendData);delete mist.user.loggedin;switch(d.authorize.status){case "OK":d.config&&(mist.data.config=d.config);d.capabilities&&(mist.data.capabilities=d.capabilities);d.ui_settings&&(mist.data.ui_settings=d.ui_settings);d.LTS&&(mist.data.LTS=d.LTS);d.active_streams&&(mist.data.active_streams=d.active_streams);d.browse&&(mist.data.browse=d.browse);d.log&&(mist.data.log=d.log);d.streams&&!d.streams["incomplete list"]&&(mist.data.streams=d.streams);d.totals&&(mist.data.totals=d.totals); -mist.user.loggedin=!0;UI.elements.connection.status.text("Connected").removeClass("red").addClass("green");UI.elements.connection.user_and_host.text(mist.user.name+" @ "+mist.user.host);UI.elements.connection.msg.removeClass("red").text("Last communication with the server at "+UI.format.time((new Date).getTime()/1E3));d.LTS&&UI.elements.menu.find(".LTSonly").removeClass("LTSonly");if(d.log){var g=d.log[d.log.length-1];UI.elements.connection.msg.append($("
")).append("Last log entry: "+UI.format.time(g[0])+ -" ["+g[1]+"] "+g[2])}if("totals"in d)if(g=function(a,b,c){var d;d=function(){for(var a in c.fields)e[c.fields[a]].push([f,0])};var e={},g;for(g in c.fields)e[c.fields[g]]=[];var k=0,f;if(c.data){if(c.end-c.start<600){f=(c.end-600)*1E3;d();f=c.start*1E3;d()}else f=c.start*1E3;for(g in c.data){if(g==0){f=c.start*1E3;var j=0}else{f=f+c.interval[j][1]*1E3;c.interval[j][0]--;if(c.interval[j][0]<=0){j++;j5){d();f=mist.data.config.time*1E3;d()}}else{f=(mist.data.config.time-600)*1E3;d();f=mist.data.config.time*1E3;d()}d=e;stream=a?a.join(" "):"all_streams";protocol=b?b.join("_"):"all_protocols";stream in mist.data.totals||(mist.data.totals[stream]={});protocol in mist.data.totals[stream]||(mist.data.totals[stream][protocol]={});$.extend(mist.data.totals[stream][protocol],d)},mist.data.totals={},"fields"in d.totals)g(c.totals.streams,c.totals.protocols, +{},d),"as reply to",b.sendData);delete mist.user.loggedin;switch(d.authorize.status){case "OK":"config"in d&&(mist.data.config=d.config);"capabilities"in d&&(mist.data.capabilities=d.capabilities);"ui_settings"in d&&(mist.data.ui_settings=d.ui_settings);"LTS"in d&&(mist.data.LTS=d.LTS);"active_streams"in d&&(mist.data.active_streams=d.active_streams);"browse"in d&&(mist.data.browse=d.browse);"log"in d&&(mist.data.log=d.log);"streams"in d&&(d.streams&&"incomplete_list"in d.streams&&delete d.streams.incomplete_list, +mist.data.streams=d.streams);d.totals&&(mist.data.totals=d.totals);mist.user.loggedin=!0;UI.elements.connection.status.text("Connected").removeClass("red").addClass("green");UI.elements.connection.user_and_host.text(mist.user.name+" @ "+mist.user.host);UI.elements.connection.msg.removeClass("red").text("Last communication with the server at "+UI.format.time((new Date).getTime()/1E3));d.LTS&&UI.elements.menu.find(".LTSonly").removeClass("LTSonly");if(d.log){var g=d.log[d.log.length-1];UI.elements.connection.msg.append($("
")).append("Last log entry: "+ +UI.format.time(g[0])+" ["+g[1]+"] "+g[2])}if("totals"in d)if(g=function(a,b,c){var d;d=function(){for(var a in c.fields)e[c.fields[a]].push([f,0])};var e={},g;for(g in c.fields)e[c.fields[g]]=[];var k=0,f;if(c.data){if(c.end-c.start<600){f=(c.end-600)*1E3;d();f=c.start*1E3;d()}else f=c.start*1E3;for(g in c.data){if(g==0){f=c.start*1E3;var j=0}else{f=f+c.interval[j][1]*1E3;c.interval[j][0]--;if(c.interval[j][0]<=0){j++;j5){d();f=mist.data.config.time*1E3;d()}}else{f=(mist.data.config.time-600)*1E3;d();f=mist.data.config.time*1E3;d()}d=e;stream=a?a.join(" "):"all_streams";protocol=b?b.join("_"):"all_protocols";stream in mist.data.totals||(mist.data.totals[stream]={});protocol in mist.data.totals[stream]||(mist.data.totals[stream][protocol]={});$.extend(mist.data.totals[stream][protocol],d)},mist.data.totals={},"fields"in d.totals)g(c.totals.streams,c.totals.protocols, d.totals);else for(var e in d.totals)g(c.totals[e].streams,c.totals[e].protocols,d.totals[e]);a&&a(d,b);break;case "CHALL":d.authorize.challenge==mist.user.authstring?(""!=mist.user.password&&UI.elements.connection.msg.text("The credentials you provided are incorrect.").addClass("red"),UI.navto("Login")):""==mist.user.password?UI.navto("Login"):(mist.user.authstring=d.authorize.challenge,mist.send(a,c,b));break;case "NOACC":UI.navto("Create a new account");break;case "ACC_MADE":delete c.authorize; mist.send(a,c,b);break;default:UI.navto("Login")}}};b.hide||UI.elements.connection.msg.removeClass("red").text("Data sent, waiting for a reply..").append($("
")).append($("
").text("Cancel request").click(function(){g.abort()}));var g=$.ajax(d)},inputMatch:function(a,c){if("undefined"==typeof a)return!1;var b=a.replace(/[^\w\s]/g,"\\$&"),b=b.replace(/\\\?/g,".").replace(/\\\*/g,"(?:.)*");return RegExp("^"+b+"$","i").test(c)},convertBuildOptions:function(a,c){var b=[],d=["required","optional"]; "desc"in a&&b.push({type:"help",help:a.desc});for(var g in d)if(a[d[g]]){b.push($("

").text(UI.format.capital(d[g])+" parameters"));for(var j in a[d[g]]){var n=a[d[g]][j],e={label:UI.format.capital(n.name),pointer:{main:c,index:j},validate:[]};"required"==d[g]&&!("default"in n)&&e.validate.push("required");"default"in n&&(e.placeholder=n["default"]);"help"in n&&(e.help=n.help);"unit"in n&&(e.unit=n.unit);switch(n.type){case "int":e.type="int";break;case "uint":e.type="int";e.min=0;break;case "debug":e.type= diff --git a/lsp/mist.js b/lsp/mist.js index 541f08ea..de5fb329 100644 --- a/lsp/mist.js +++ b/lsp/mist.js @@ -1661,7 +1661,7 @@ var UI = { case 2: $s.text('Standby').addClass('orange'); break; default: $s.text(item.online); } - if (typeof item.error != 'undefined') { + if ('error' in item) { $s.text(item.error); } return $s; @@ -2340,20 +2340,29 @@ var UI = { streams.sort(); for (var s in streams) { var streamname = streams[s]; - var stream = allstreams[streamname]; + var stream; + if (streamname in mist.data.streams) { stream = mist.data.streams[streamname]; } + else { stream = allstreams[streamname]; } var $viewers = $('

').css('text-align','right').html($('').addClass('description').text('Loading..')); var v = 0; if ((typeof mist.data.totals != 'undefined') && (typeof mist.data.totals[streamname] != 'undefined')) { var data = mist.data.totals[streamname].all_protocols.clients; - var v = (data.length ? data[data.length-1][1] : 0); + var v = 0; + //get the average value + if (data.length) { + for (var i in data) { + v += data[i][1]; + } + v = Math.round(v / data.length); + } } $viewers.html(UI.format.number(v)); if ((v == 0) && (stream.online == 1)) { stream.online = 2; } var $buttons = $('').css('text-align','right').css('white-space','nowrap'); - if (!stream.ischild) { + if ((!('ischild' in stream)) || (!stream.ischild)) { $buttons.html( $('