NEWS
Lichtsteuerung (langsam dimmen lassen) [gelöst]
-
@azmo
Punkt 1. Hast recht, hab das runden nicht gesehen.In Punkt 2. hab ich dir doch die Lösung geschrieben?
Hab das gerade mit Blockly gebaut und es sieht schrecklich aus -
@ticaki sagte in Lichtsteuerung (langsam dimmen lassen):
@azmo
Punkt 1. Hast recht, hab das runden nicht gesehen.In Punkt 2. hab ich dir doch die Lösung geschrieben?
Hab das gerade mit Blockly gebaut und es sieht schrecklich ausOhgott, danke aber das ist ja dann richtig schrecklich.
Ich finde das unglaublich ärgerlich, dass das nicht so einfach geht...
Kann man das statt des zickigen Intervalls vielleicht mit Schleifen lösen? Da war aber auch etwas mit dem Timing was ich gelesen hatte meine ich... Wird da nicht immer alles gleichzeitig gemacht oder sowas komisches?grübel
-
@azmo sagte:
Wird da nicht immer alles gleichzeitig gemacht oder sowas komisches?
Ja, quasi gleichzeitig.
-
Ich hab doch ne Idee. Dazu mußt du aber alle Variablen in der Funktion übergeben, zum stoppen eine Funktion aufrufen und für jede Lampe die du hinzufügst beide Funktionen um einen Eintrag erweitern. i ist ein Zähler den du beim aufruf setzten mußt, m,j,k sind deine verwendeten Variablen. Für 3 Lampen sieht es dann so aus.
etwas tun ist deine aktuelle Funktion mit entsprechenden Parametern, das hier könnte gehen. Bin mir aber nicht sicher.
Schleifen gehe nicht, da du diese nicht pausieren kannst. Aufrufe vorwegnehmen geht auch nicht, da die Verzögerung soweit ich sehe nicht mit Variablen gesetzt werden kann.
-
@ticaki sagte in Lichtsteuerung (langsam dimmen lassen):
Ich hab doch ne Idee. Dazu mußt du aber alle Variablen in der Funktion übergeben, zum stoppen eine Funktion aufrufen und für jede Lampe die du hinzufügst beide Funktionen um einen Eintrag erweitern. i ist ein Zähler den du beim aufruf setzten mußt, m,j,k sind deine verwendeten Variablen. Für 3 Lampen sieht es dann so aus.
etwas tun ist deine aktuelle Funktion mit entsprechenden Parametern, das hier könnte gehen. Bin mir aber nicht sicher.
Schleifen gehe nicht, da du diese nicht pausieren kannst. Aufrufe vorwegnehmen geht auch nicht, da die Verzögerung soweit ich sehe nicht mit Variablen gesetzt werden kann.
Hey, das sieht interessant aus!
Danke, das probiere ich heute Abend aus wenn ich mich dransetzen kann. Gute Idee.EDIT:
Ich vermute da könnte man i ja auch jeweils +1 bzw -1 setzen wenn ein Intervall gestartet bzw. gestoppt wird... Interessant. Das müsste im Idealfall dann variabel sein damit ich nicht doch für jede Lampe/jeden Parameter einen Intervall basteln bzw. im Vorfeld eine Zahl festlegen muss... Hm. -
Ich habe mit Tradfri (und dem Tradfri-Adapter) auch lange an einem Sonnenuntergang gebastelt.
Das dumme bei Tradfri ist, dass zum einen die transition time nicht beliebig hoch sein darf, und wenn noch weitere Paramter wie Helligkeit, Farbe, Sättigung) übergeben werden sollen nur dann vernünftig abgearbeitet werden, wenn die transition time = 0 ist.
Ich musste also auch mit möglichst vielen kleinsten Schritten arbeiten, damit es halbwegs weich ist.
-
@azmo sagte in Lichtsteuerung (langsam dimmen lassen):
Ich vermute da fehlt noch das i-1 wenn ein Intervall gestoppt wurde...
Soweit wie du hab ich nicht nicht durchdacht. Ob i automatisch gesetzt werden kann, weiß ich nicht.
Mit Javascript ohne Blockly muß man sich auf jeden Fall nicht so einen abbrechen
-
Mit Javascript ohne Blockly muß man sich auf jeden Fall nicht so einen abbrechen
Den Eindruck habe ich auch.
Mir missfällt noch immer, dass nicht einfach innerhalb der Funktion alles lokal bleiben kann und diese so einfach mehrfach mit verschiedenen Parametern ausgeführt werden kann. Das wäre so schön übersichtlich. Verstehe ich richtig, dass es am Intervall liegt, der global ausgeführt und so mehrfach neu gestartet wird bzw wo laufende Intervalle neue variablen bekommen durch den start eines neuen?
Müsste es dann nicht möglich sein, WENN ich eine art sleep/pause für eine Sekunde einbaue (gibt es doch sicher einen Weg?), eine Schleife sozusagen händisch via Funktion nachzubauen und so ohne den für mich so eigentlich nutzlosen Intervall das ganze ausführen zu lassen? Eine pause, sollte sie kompliziert zu basteln sein wie ich vermute (habe etwas recherchiert) sollte sich doch notfalls via Blockly JS Funktion einbauen lassen?Naja ich schlafe mal eine Nacht drüber... Das muss doch gehen!
-
@azmo
Ich klappere das mal ab:Blockly soll einfach sein, globale Variablen sind einfach, da man in einem Blockly von überall alles ändern kann.
Verstehe ich richtig, dass es am Intervall liegt, der global ausgeführt und so mehrfach neu gestartet wird bzw wo laufende Intervalle neue variablen bekommen durch den start eines neuen?
Es geht darum einen Interval von ausserhalb des Intervals zu beenden. Wenn du einen Funktion ausrufst und ihre als Parameter den Namen des Intervals übergibst solltest du den Interval von innerhalb des Intervals beenden können. Wenn du aber für Lampe X 2 * die Funktion aufrufst hast du keine Möglichkeit den 1. Interval zu beenden.
Ich kenne mich mit async und await nicht wirklich aus.
Blockly JS Funktion muß ich mir mal ansehen.
EDIT: Oha
Ich könnte dir heute Abend 2-3 Funktionen zusammenstellen die den Verwaltungskram machen, dann könntest du bei deinem ursprünglichen Plan bleiben.Funktionen:
- Speichere aktuellen Interval für ID
- Beende Interval für ID
-
Das wäre ja total cool!
Schön, dass es noch Hoffnung gibt. Ich forsche heute nach Feierabend auch noch einmal weiter nach.Danke!
-
Das hier sollte funktionieren. Hab es aber nicht getestet.
Der Intervall muß Intervall heißen. Da ich nicht weiß was alles im XML Code ist, hab ich den JS Code für die Funktionen auch gepostet
Code saveInterval:
if (database === undefined) database = {}; database[id] = Intervall; return database;
Code clearInterval()
if (database === undefined) return {}; if (database[id] === undefined) return database; if (database[id]) { clearInterval(database[id]); database[id] = null; } return database;
Obj-Id ist die Lampe die du schaltest oder eine andere eindeutige Zeichenkette
-
@azmo
Ich habe gerade das hier mit einem Array "timers" getestet: -
Hi.
Danke für die Antworten, ich habe mich leider erst heute dransetzen können.
Momentan teste ich die Idee von @ticaki .
Ich habe versucht, den Code soweit zu verstehen, komme jedoch nicht so recht weiter. Anscheinend wird der Intervall irgendwie umbenannt, dynamisch nach obj-id?
Die Frage ist nur: wie führe ich dann meine Aktionen darin aus? Muss ich die JS Funktionen erweitern oder bin ich auf dem richtigen Weg? (siehe Screenshot).Ich bin gerade ein wenig ratlos... Vermutlich mache ich etwas offensichtliches falsch.
Wie man sieht, wird die Debug Info korrekt ausgegeben, der Intervall scheint aber nicht zu starten bzw. nur einmal zu laufen. Was ist verkehrt?
EDIT:
Die Schleife scheint zu laufen, aber irgendwie alle Minute. Hier der Log, diese Ausgaben wurde ohne weitere Schalteraktion erzeugt:10.4.2020, 11:53:01.009 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object] DimmAktuell: 100 10.4.2020, 11:54:01.009 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object] DimmAktuell: 100 10.4.2020, 11:55:01.012 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object] DimmAktuell: 100
Irgendwie ist er von 1 (realer Wert des Objekts zu Beginn, jetzt ist der reale Wert 3,4) auf 100 gesprungen.
Wenn ich den Script neu starte und den Schalter wieder betätige (vorher Zielwert auf 50 gesetzt):10.4.2020, 11:58:43.428 [info ]: javascript.0 (1293) Start javascript script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest 10.4.2020, 11:58:43.435 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: registered 1 subscription and 1 schedule 10.4.2020, 11:58:52.494 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: test 10.4.2020, 11:58:53.497 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object] DimmAktuell: 3 10.4.2020, 11:59:01.010 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object] DimmAktuell: 100 10.4.2020, 12:00:01.011 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object] DimmAktuell: 100 10.4.2020, 12:01:01.007 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: database: [object Object] DimmAktuell: 100
-
Ja ist nicht ganz richtig. Die Funktion clearInterval ist das selbe wie stoppe zyklische Ausführung. Benutze es dort wo du den Interval beenden willst.
Du mußt nicht in Code arbeiten. Ich erstelle ein Objekt in dem ich zu jedem Datenpunkt, den du übermittels die Referenz auf den Interval abspeichere. Womit das hier nicht klar kommt, ist wenn du 2 Intervals auf dem selben Datenpunkt zur gleichen Zeit startest.
Habs mittlerweile auch getestet und es funktioniert.
!
-
@ticaki
Ah danke!Damit scheint es zu funktionieren. Den Verdacht hatte ich auch...
Er dimmt jetzt korrekt hoch bzw. runter.
Wenn er es erreicht, wird gestoppt wie geplant.Aber: Wenn ich im angefügten Script den Schalter umlege:
dann springt das Licht in der Farbe von 0 auf 100 und es passiert folgendes:
10.4.2020, 12:26:32.138 [info ]: javascript.0 (1293) Start javascript script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest 10.4.2020, 12:26:32.144 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: registered 1 subscription and 0 schedules 10.4.2020, 12:26:33.994 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: test 10.4.2020, 12:26:34.997 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 100 10.4.2020, 12:26:34.998 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden 10.4.2020, 12:26:34.999 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 100 10.4.2020, 12:26:35.997 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 99.5 10.4.2020, 12:26:35.999 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 100 10.4.2020, 12:26:36.998 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 99.5 10.4.2020, 12:26:37.000 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 100 10.4.2020, 12:26:37.999 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 99.5 10.4.2020, 12:26:38.001 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 100 10.4.2020, 12:26:38.999 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 99.5 10.4.2020, 12:26:39.003 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 100 10.4.2020, 12:26:40.000 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 99.5 10.4.2020, 12:26:40.002 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 100 10.4.2020, 12:26:41.000 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 99.5 10.4.2020, 12:26:41.002 [info ]: javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 100 10.4.2020, 12:26:41.180 [info ]: javascript.0 (1293) Stop script script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest
Jetzt bin ich verwirrt, bestimmt etwas offensichtliches.
Die Werte scheinen zu konkurrieren? Einer hoch, einer runter? Es liegt also vermutlich an den Variablen DimmAktuell und Dimmziel? Sind die nicht in der Funktion lokal? Oder auch global? Argh! -
@azmo
Das ist nicht dein FehlerBlocky definiert ALLE Variablen global. Um dein Problem zu beheben übergebe Dimmaktuell (Auf gleiche Schreibweise achten ich habs falsch denke ich) der Funktion:
Damit wird innerhalb der Funktion Dimmaktuell lokal und nicht jeder Interval überschreibt die. Deshalb hatte ich obj-id, j, k angegeben. Alle Variablen die du verwendest müssen als Parameter rein kommen.
-
@ticaki
Mann bist du schnell mit den Antworten!
Jetzt scheint es zu klappen.Ne Moment. Er dimmt jetzt korrekt die Zielwerte an. Aber seltsamerweise:
12:38:38.917 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 3 12:38:39.898 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 97.5 12:38:39.917 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 2.5 12:38:40.899 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 98 12:38:40.917 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 2 12:38:41.899 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 98.5 12:38:41.917 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 1.5 12:38:42.898 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.colorTemperature DimmAktuell: 99 12:38:42.916 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 1 12:38:42.918 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden 12:38:43.919 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 1 12:38:43.920 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden 12:38:44.919 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 1 12:38:44.920 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden 12:38:45.919 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 1 12:38:45.920 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden 12:38:46.918 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 1 12:38:46.919 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden 12:38:47.919 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 1 12:38:47.921 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden 12:38:48.920 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 1 12:38:48.921 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden 12:38:49.921 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: obj-id: tradfri.0.L-65546.lightbulb.brightness DimmAktuell: 1 12:38:49.922 info javascript.0 (1293) script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest: Intervall Beenden 12:38:50.526 info javascript.0 (1293) Stop script script.js.Zeitsteuerung.Lichtsteuerung_Dimmertest
-
@azmo
Ich hab nix zu tunAußerdem pingt mein Handy wenn es ein Posting gibt.
Zeig mir mal das Script. -
@ticaki
Na dann danke dass du uns deine Zeit schenkstvar obj_id, Dimmziel, DimmAktuell, database, id, Intervall; /** * Beschreibe diese Funktion … */ function Dimmer2(obj_id, Dimmziel, DimmAktuell) { DimmAktuell = Math.round(getState(obj_id).val); database = saveInterval_Intervall_(database, obj_id); Intervall = setInterval(function () { console.log((['obj-id: ',obj_id,'\n','DimmAktuell: ',DimmAktuell].join(''))); setStateDelayed(obj_id, DimmAktuell, false, parseInt(0, 10), false); if (DimmAktuell < Dimmziel) { DimmAktuell = DimmAktuell + 0.5; } else if (DimmAktuell > Dimmziel) { DimmAktuell = DimmAktuell - 0.5; } else { setStateDelayed(obj_id, Dimmziel, false, parseInt(0, 10), false); database = clearInterval_Intervall_(database, obj_id); console.log(('Ende: ' + String(obj_id))); } }, 1000); } /** * Beschreibe diese Funktion … */ function saveInterval_Intervall_(database, id) { if (database === undefined) database = {}; database[id] = Intervall; return database; } /** * Beschreibe diese Funktion … */ function clearInterval_Intervall_(database, id) { if (database === undefined) return {}; if (database[id] === undefined) return database; if (database[id]) { clearInterval(database[id]); database[id] = null; } return database; } on({id: '0_userdata.0.Eigene_Datenpunkte.Testschalter', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.log('test'); Dimmer2('tradfri.0.L-65546.lightbulb.colorTemperature', 90, null); Dimmer2('tradfri.0.L-65546.lightbulb.brightness', 5, null); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ3ZhcmlhYmxlcyUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyJTNEV19wJTJDJTVCb3QlNUUoYWpJeTBOYW01JTdEJTIyJTNFb2JqLWlkJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjIlMjIlMjBpZCUzRCUyMnB3VyU1RG1tfjE2QUp3dmFCJTJGak1wcCUyMiUzRURpbW16aWVsJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjIlMjIlMjBpZCUzRCUyMiUyRjNhakUzVi0lN0NuQlIxISUzQkdiSzFhJTIyJTNFRGltbUFrdHVlbGwlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyb19qTjFhJTVEOEVqOS5VJTIzRW9PMCl6JTIyJTNFZGF0YWJhc2UlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyLnFRMjdnJTQwYyU3QiUyQ3ZwJTIzLlJ2QVolMjN5JTIyJTNFaWQlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMnVuZGVmaW5lZCUyMiUyMGlkJTNEJTIySW50ZXJ2YWxsJTIyJTNFSW50ZXJ2YWxsJTNDJTJGdmFyaWFibGUlM0UlM0MlMkZ2YXJpYWJsZXMlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2RlZm5vcmV0dXJuJTIyJTIwaWQlM0QlMjJNNiU3QzhPNHhyMiU1RSU3Q3NFQ3oqfmUlMkJEJTIyJTIweCUzRCUyMi04MzclMjIlMjB5JTNEJTIyLTQxMzglMjIlM0UlM0NtdXRhdGlvbiUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJvYmotaWQlMjIlMjB2YXJpZCUzRCUyMiUzRFdfcCUyQyU1Qm90JTVFKGFqSXkwTmFtNSU3RCUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJEaW1temllbCUyMiUyMHZhcmlkJTNEJTIycHdXJTVEbW1+MTZBSnd2YUIlMkZqTXBwJTIyJTNFJTNDJTJGYXJnJTNFJTNDYXJnJTIwbmFtZSUzRCUyMkRpbW1Ba3R1ZWxsJTIyJTIwdmFyaWQlM0QlMjIlMkYzYWpFM1YtJTdDbkJSMSElM0JHYksxYSUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRURpbW1lcjIlM0MlMkZmaWVsZCUzRSUzQ2NvbW1lbnQlMjBwaW5uZWQlM0QlMjJmYWxzZSUyMiUyMGglM0QlMjI4MCUyMiUyMHclM0QlMjIxNjAlMjIlM0VCZXNjaHJlaWJlJTIwZGllc2UlMjBGdW5rdGlvbiUyMCVFMiU4MCVBNiUzQyUyRmNvbW1lbnQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBQ0slMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJhWiU0MDdHJTVCUSUzRmYpMU0lN0JLSiUzRHMzdyUzQSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTJGM2FqRTNWLSU3Q25CUjEhJTNCR2JLMWElMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VEaW1tQWt0dWVsbCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX3JvdW5kJTIyJTIwaWQlM0QlMjJfJTNBWDJtS21xJTI1RCUyRiU2MDElM0QlMkNKQTYlMjVKJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VST1VORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTlVNJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJ6KkNJd1RzOXV1SEclNUQlMkMtVnZCSDAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UzLjElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZV92YXIlMjIlMjBpZCUzRCUyMlQlN0RfaCU1QkpJN3M0SUolMjQlNUVjVmhxJTNCbiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJzJTNCJTdCcHI5TCU1QnklMkMtJTNCeFQlM0R5TkI5MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnlkMyUyM0I5YlpFJTJDUyUzRDhGOTRBYkolN0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUzRFdfcCUyQyU1Qm90JTVFKGFqSXkwTmFtNSU3RCUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRW9iai1pZCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiUyQkgodGZKJTNGKkglN0NIaFdySlpCTyU3QyU3RCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyb19qTjFhJTVEOEVqOS5VJTIzRW9PMCl6JTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFZGF0YWJhc2UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsY3VzdG9tcmV0dXJuJTIyJTIwaWQlM0QlMjJaa3QlNjAlMkJWZWElNURIfn5jazVfRHRlRiUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMnNhdmVJbnRlcnZhbChJbnRlcnZhbGwpJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMmRhdGFiYXNlJTIyJTNFJTNDJTJGYXJnJTNFJTNDYXJnJTIwbmFtZSUzRCUyMmlkJTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyZ2RfKDZwJTI0cWZPUiU0MClHKCUzQSklMkZvYyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyb19qTjFhJTVEOEVqOS5VJTIzRW9PMCl6JTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFZGF0YWJhc2UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyMSUzRGJsRi1BUSUyNU9NNGJoSiU2MHclNUViZCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNEV19wJTJDJTVCb3QlNUUoYWpJeTBOYW01JTdEJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFb2JqLWlkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lb3V0c19zZXRpbnRlcnZhbCUyMiUyMGlkJTNEJTIyT3J+OEYlM0JwcyElM0ZfUWslNUU5UGNZdkIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFSW50ZXJ2YWxsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJJTlRFUlZBTCUyMiUzRTEwMDAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VtcyUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjIlNUJOKUhuVHhMOWkhOSU3REctJTNBVVVHJTJDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0Vsb2clM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTIzMmYlM0ZtVnlvSl9uLjhRTVdHJTI1WSU1RCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0V0ZXN0JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2pvaW4lMjIlMjBpZCUzRCUyMnN1dSUzQSpRSENHJTYwN1ApJTdCYzAlN0MqcjMlMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyNSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMmkyQjFNaGFWKCU1QiU1RV8xWCg0JTYwOG8lMkMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFb2JqLWlkJTNBJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMikoLnQ3Mnk0SiUzQW8lMjV1VjlYJTVEJTdEUyUyNCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNEV19wJTJDJTVCb3QlNUUoYWpJeTBOYW01JTdEJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFb2JqLWlkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfbmV3bGluZSUyMiUyMGlkJTNEJTIyb0NvX0lDJTJDdWZkMypxNWF+VzRyeiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlR5cGUlMjIlM0UlNUNuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMyUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMipyNERsJTJGJTNBQkNaei4lMjNEN1BvaHYzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRURpbW1Ba3R1ZWxsJTNBJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQURENCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMm8lN0JSaWMlM0ZpeXBRY0VhRFklMkJuYyU1RFclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyRjNhakUzVi0lN0NuQlIxISUzQkdiSzFhJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFRGltbUFrdHVlbGwlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xfZXglMjIlMjBpZCUzRCUyMiU3RGdvciU3QjFkJTNGYVIzNWdFdjN0b3hEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVFlQRSUyMiUzRWZhbHNlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMiUzRmh4OXYlN0QlM0ZXVmw1VyUyQ1MlM0JKJTI1UWVGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFT2JqZWN0JTIwSUQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlNmUSU3QndlcWRCJTNBc1clMjREY2MlNDBVdVUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUzRFdfcCUyQyU1Qm90JTVFKGFqSXkwTmFtNSU3RCUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRW9iai1pZCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMmM4RiUyNSElNUQlNjBaMVRkQjJWJTdCYyU1QiUyNCU3REklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyZSUyM0RULX4pX3FxVFklNjBaZkNjanVkJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMkYzYWpFM1YtJTdDbkJSMSElM0JHYksxYSUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRURpbW1Ba3R1ZWxsJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU0MCUyM0Q3SUQteiU2MG0lN0NwKV9VQ0QlM0JObiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjIlM0RwWCUyNGhTYyU2MHglM0IlMkMlM0RSJTdEOSU1QiU3RDRidSUyMiUzRSUzQ211dGF0aW9uJTIwZWxzZWlmJTNEJTIyMSUyMiUyMGVsc2UlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjI2VCUyQ2olMkN+ZnZjSW0lM0QlM0RYUi1QRkRNJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnMlM0R5em5WJTNBRjNyaCU3QmolMkIhNSUyNXUqISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTJGM2FqRTNWLSU3Q25CUjEhJTNCR2JLMWElMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VEaW1tQWt0dWVsbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIoISUyQzVQRyUyMzAydCU3QjQlMkZNViUyNFprTDYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnB3VyU1RG1tfjE2QUp3dmFCJTJGak1wcCUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRURpbW16aWVsJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlMkNMNS4oLXVqSUc5RDFFQUV0ekRHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMkYzYWpFM1YtJTdDbkJSMSElM0JHYksxYSUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRURpbW1Ba3R1ZWxsJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyJTdCNm4lMjRwb1dDdDklM0ZUNHcxRkhQUWclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFERCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyM2FLZ0NuZ1J0USU1QkJtJTdCUlIqMVAlNUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJ6NXdjLVooUlUlMjRvJTIzWHc3UUVCNVMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyRjNhakUzVi0lN0NuQlIxISUzQkdiSzFhJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFRGltbUFrdHVlbGwlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMkZ1QSUyQkdrbWc5LmtUNiU2MEVTLmh+eSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAuNSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJGUGFsZyUyRmVsKiU3Qy51ITFCSGMlMjVVTiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJ4cSUzRlkhYiUyNSUyQ2gpbChOdDUtQzNJTCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTJGM2FqRTNWLSU3Q25CUjEhJTNCR2JLMWElMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VEaW1tQWt0dWVsbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJqdDQhJTI1U2klN0M0fiU1RSU1QiU3RCU1RSlDT1UlMkZEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJwd1clNURtbX4xNkFKd3ZhQiUyRmpNcHAlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VEaW1temllbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8xJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyZ3ZqeiU2MEdQKElDeiUyRiUzRm0tdDNiNHYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyRjNhakUzVi0lN0NuQlIxISUzQkdiSzFhJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFRGltbUFrdHVlbGwlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjJBcyU2MENRWkEubWREJTNBJTYwJTdDTXZGIVhHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VNSU5VUyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyM2FLZ0NuZ1J0USU1QkJtJTdCUlIqMVAlNUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIxcSU1QiglMjMtMSUzRiUyRiUyNHRVS2d5MzVzR0YlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyRjNhakUzVi0lN0NuQlIxISUzQkdiSzFhJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFRGltbUFrdHVlbGwlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJYSm0lM0Q1YUlNLSU3QkklM0JkWCliJTJGJTYwSGYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwLjUlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkVMU0UlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sX2V4JTIyJTIwaWQlM0QlMjJGRUE4aHklMkZJSikxelIlM0YlNUJWMEYlMjRCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVFlQRSUyMiUzRWZhbHNlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMiUzRmh4OXYlN0QlM0ZXVmw1VyUyQ1MlM0JKJTI1UWVGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFT2JqZWN0JTIwSUQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMiUyRmduUkslN0RKMUhNJTJCUC44WW4lM0ElNjAlN0Q1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlM0RXX3AlMkMlNUJvdCU1RShhakl5ME5hbTUlN0QlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VvYmotaWQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJjOEYlMjUhJTVEJTYwWjFUZEIyViU3QmMlNUIlMjQlN0RJJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMkwlNURHZUhlb05lMkRjJTVCaDBFblYlNDB5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJwd1clNURtbX4xNkFKd3ZhQiUyRmpNcHAlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VEaW1temllbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjI2dFpEQm0lN0IlNUQlMkMlN0NmU1klN0MlMjVQKmFfNyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU1RHRZdklhdF9UNlg0ZE1hJTNGNWZCZiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyb19qTjFhJTVEOEVqOS5VJTIzRW9PMCl6JTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFZGF0YWJhc2UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsY3VzdG9tcmV0dXJuJTIyJTIwaWQlM0QlMjJvTSU1RFdsWSU3QmVXTyFmJTVELUZrSCU1RVd4JTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyY2xlYXJJbnRlcnZhbChJbnRlcnZhbGwpJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMmRhdGFiYXNlJTIyJTNFJTNDJTJGYXJnJTNFJTNDYXJnJTIwbmFtZSUzRCUyMmlkJTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyRkxXeDc1JTdEJTJDaiU1RWd3MCU0MCUzQk1WJTI1JTNBdiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyb19qTjFhJTVEOEVqOS5VJTIzRW9PMCl6JTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFZGF0YWJhc2UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTQwJTJDVS5QeDh4d1IlN0NObEklMkJxZSUyNEZDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlM0RXX3AlMkMlNUJvdCU1RShhakl5ME5hbTUlN0QlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VvYmotaWQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJyRU4lN0IlMkIlMkMhQVVZJTJCdW9FTmVPJTdDJTdCSyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNldmVyaXR5JTIyJTNFbG9nJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiU0MDYlN0JXKU0lNDBoJTJDbiUyNVFJQ2VveSU3QmVuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRUludGVydmFsbCUyMEJlZW5kZW4lM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIyfnclN0MuMW9mJTdEZnFhcCUyRlMlM0QlMkMwRHcwJTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjIlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjI3V28lMjVyR0tBJTQwSnRLJTNGNnItOWJZKCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VFbmRlJTNBJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlMlMkM3QyUyQzJfJTNGU1N+V0k2TGlMRlNNJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlM0RXX3AlMkMlNUJvdCU1RShhakl5ME5hbTUlN0QlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VvYmotaWQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9leHQlMjIlMjBpZCUzRCUyMlpJdkt4alo0X2FzLlN4bGxBZCU3RG4lMjIlMjB4JTNEJTIyLTEzOCUyMiUyMHklM0QlMjItMzg2MiUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VuZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMkNoZHpnISU3QmxQUiU1QkZEVFlnJTVCMEYlMjQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0UwX3VzZXJkYXRhLjAuRWlnZW5lX0RhdGVucHVua3RlLlRlc3RzY2hhbHRlciUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMldQOSUyNGt1IW5sV1d1ZiUyRlEyKVolM0JwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0Vsb2clM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyRiU1QiU3RCU0ME9pU3l6JTNCbSklMkZybTYlMkIlM0Z6JTI0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfY2FsbG5vcmV0dXJuJTIyJTIwaWQlM0QlMjJWODEuYXp6JTYwXylldn5LJTNGNnNGR1glMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjJEaW1tZXIyJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMm9iai1pZCUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJEaW1temllbCUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJEaW1tQWt0dWVsbCUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyR0U5VypsKDU1R29yMmt1KklwJTVEJTdCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFdHJhZGZyaS4wLkwtNjU1NDYubGlnaHRidWxiLmNvbG9yVGVtcGVyYXR1cmUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMnp0ckFsSiUyQlAlM0FrTTlmTyU1RGVWN0xLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFOTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsbm9yZXR1cm4lMjIlMjBpZCUzRCUyMmowc2pqZEwhUm0lMjVpSiUyMzRzJTJDUCUzQkYlMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjJEaW1tZXIyJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMm9iai1pZCUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJEaW1temllbCUyMiUzRSUzQyUyRmFyZyUzRSUzQ2FyZyUyMG5hbWUlM0QlMjJEaW1tQWt0dWVsbCUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyWiUyNUZsJTI0cyElN0NsTnglMjR2eEoyNnZGeiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRXRyYWRmcmkuMC5MLTY1NTQ2LmxpZ2h0YnVsYi5icmlnaHRuZXNzJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJOUSUzQSU1RGg1LUR2NX5tJTJDJTdDTHolMjVoR0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U1JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfZGVmY3VzdG9tcmV0dXJuJTIyJTIwaWQlM0QlMjJ6JTJDOEdqUUxFNTF2eFZUdCU1RUYqUXIlMjIlMjB4JTNEJTIyLTEzNyUyMiUyMHklM0QlMjItMzI4OCUyMiUzRSUzQ211dGF0aW9uJTIwc3RhdGVtZW50cyUzRCUyMmZhbHNlJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMmRhdGFiYXNlJTIyJTIwdmFyaWQlM0QlMjJvX2pOMWElNUQ4RWo5LlUlMjNFb08wKXolMjIlM0UlM0MlMkZhcmclM0UlM0NhcmclMjBuYW1lJTNEJTIyaWQlMjIlMjB2YXJpZCUzRCUyMi5xUTI3ZyU0MGMlN0IlMkN2cCUyMy5SdkFaJTIzeSUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXNhdmVJbnRlcnZhbChJbnRlcnZhbGwpJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTQ1JJUFQlMjIlM0VhV1lnS0dSaGRHRmlZWE5sSUQwOVBTQjFibVJsWm1sdVpXUXBJR1JoZEdGaVlYTmxJRDBnZTMwN0RRcGtZWFJoWW1GelpWdHBaRjBnUFNCSmJuUmxjblpoYkd3N0RRcHlaWFIxY200Z1pHRjBZV0poYzJVNyUzQyUyRmZpZWxkJTNFJTNDY29tbWVudCUyMHBpbm5lZCUzRCUyMmZhbHNlJTIyJTIwaCUzRCUyMjgwJTIyJTIwdyUzRCUyMjE2MCUyMiUzRUJlc2NocmVpYmUlMjBkaWVzZSUyMEZ1bmt0aW9uJTIwJUUyJTgwJUE2JTNDJTJGY29tbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19kZWZjdXN0b21yZXR1cm4lMjIlMjBpZCUzRCUyMiU3Q2s2VnFZUTZzRmMlNUVNLUklNUUuJTYwOTYlMjIlMjB4JTNEJTIyLTEzOCUyMiUyMHklM0QlMjItMzI2MyUyMiUzRSUzQ211dGF0aW9uJTIwc3RhdGVtZW50cyUzRCUyMmZhbHNlJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMmRhdGFiYXNlJTIyJTIwdmFyaWQlM0QlMjJvX2pOMWElNUQ4RWo5LlUlMjNFb08wKXolMjIlM0UlM0MlMkZhcmclM0UlM0NhcmclMjBuYW1lJTNEJTIyaWQlMjIlMjB2YXJpZCUzRCUyMi5xUTI3ZyU0MGMlN0IlMkN2cCUyMy5SdkFaJTIzeSUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRWNsZWFySW50ZXJ2YWwoSW50ZXJ2YWxsKSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NSSVBUJTIyJTNFYVdZZ0tHUmhkR0ZpWVhObElEMDlQU0IxYm1SbFptbHVaV1FwSUhKbGRIVnliaUI3ZlRzTkNtbG1JQ2hrWVhSaFltRnpaVnRwWkYwZ1BUMDlJSFZ1WkdWbWFXNWxaQ2tnY21WMGRYSnVJR1JoZEdGaVlYTmxPdzBLYVdZZ0tHUmhkR0ZpWVhObFcybGtYU2tnZXcwS0lDQWdJR05zWldGeVNXNTBaWEoyWVd3b1pHRjBZV0poYzJWYmFXUmRLVHNOQ2lBZ0lDQmtZWFJoWW1GelpWdHBaRjBnUFNCdWRXeHNPdzBLZlEwS2NtVjBkWEp1SUdSaGRHRmlZWE5sT3clM0QlM0QlM0MlMkZmaWVsZCUzRSUzQ2NvbW1lbnQlMjBwaW5uZWQlM0QlMjJmYWxzZSUyMiUyMGglM0QlMjI4MCUyMiUyMHclM0QlMjIxNjAlMjIlM0VCZXNjaHJlaWJlJTIwZGllc2UlMjBGdW5rdGlvbiUyMCVFMiU4MCVBNiUzQyUyRmNvbW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnhtbCUzRQ==
-
Tausche den Code innerhalb von saveInterval gegen diesen hier:
if (database === undefined) database = {}; if (database[id] !== undefined && database[id]) clearInterval(database[id]); database[id] = Intervall; return database;
Damit wird bei mehrfach Aufrufen der alte gelöscht.
Das hier ist von mehr Erfolg gesegnet als das was ich versuche
Ich möchte die Ausgabe des Float-Adapters mit der Script-Engine in ein png umwandeln.