Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Beta Test js-controller 3.0.x auf GitHub

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

Beta Test js-controller 3.0.x auf GitHub

Geplant Angeheftet Gesperrt Verschoben Tester
js-controller
416 Beiträge 39 Kommentatoren 70.2k Aufrufe 38 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • K Kueppert

    Hi in die Runde,
    habe heute morgen einen neuen Fehler mit dem Yeelight-Adapter. Hab keine Ahnung, ob es mit dem JS-Controller zusammen hängt, daher erst mal hier die Frage:

    yeelight-2.0	2020-04-13 08:04:12.428	info	(18850) Terminated (NO_ERROR): Without reason
    yeelight-2.0	2020-04-13 08:04:12.427	info	(18850) terminating
    yeelight-2.0	2020-04-13 08:04:12.419	info	(18850) cleaned everything up...
    yeelight-2.0	2020-04-13 08:04:12.417	error	at processImmediate (internal/timers.js:456:21)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5303:34)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at Adapter.emit (events.js:315:20)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at Adapter.<anonymous> (/opt/iobroker/node_modules/iobroker.yeelight-2/main.js:44:21)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at uploadState (/opt/iobroker/node_modules/iobroker.yeelight-2/main.js:116:37)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at Yeelight.turnOn (/opt/iobroker/node_modules/iobroker.yeelight-2/yeelight-wifi/build/Yeelight.js:530:19)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at Yeelight.sendRequest (/opt/iobroker/node_modules/iobroker.yeelight-2/yeelight-wifi/build/Yeelight.js:211:14)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at new Promise (<anonymous>)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at /opt/iobroker/node_modules/iobroker.yeelight-2/yeelight-wifi/build/Yeelight.js:216:23
    yeelight-2.0	2020-04-13 08:04:12.417	error	at module.exports.internals.Any.root.validate (/opt/iobroker/node_modules/joi/lib/index.js:139:23)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at internals.Array._validateWithOptions (/opt/iobroker/node_modules/joi/lib/types/any/index.js:672:20)
    yeelight-2.0	2020-04-13 08:04:12.417	error	at /opt/iobroker/node_modules/iobroker.yeelight-2/yeelight-wifi/build/Yeelight.js:232:27
    yeelight-2.0	2020-04-13 08:04:12.417	error	at Socket.Writable.write (_stream_writable.js:288:11)
    yeelight-2.0	2020-04-13 08:04:12.417	error	(18850) Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed
    yeelight-2.0	2020-04-13 08:04:12.415	error	(18850) uncaught exception: Cannot call write after a stream was destroyed
    

    Installiert ist Version 1.0.3 des Adapters.
    Ein Reinstall via Katze (einfach mal zum Testen) brachte leider auch keine Besserung.

    apollon77A Offline
    apollon77A Offline
    apollon77
    schrieb am zuletzt editiert von
    #174

    @Kueppert sieht nach Adapter aus. Da wird versucht in eine bereits geschlossene Verbindung zu schreiben. Am besten GitHub issue beim Adapter anlegen

    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
    K 1 Antwort Letzte Antwort
    1
    • apollon77A apollon77

      @BBTown Naja der Fehler wiederholt sich und der Adapter beendet sich von selbst und wird neu gestartet

      BBTownB Offline
      BBTownB Offline
      BBTown
      schrieb am zuletzt editiert von
      #175

      @apollon77
      Moin ... also bezüglich meiner Sonos-Adapter Probleme, gab es heute Nacht eine "spontane Selbstheilung" ... was auch immer das Problem war, diese haben sich in Luft aufgelöst ....:face_with_rolling_eyes: :thinking_face:

      ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

      apollon77A 1 Antwort Letzte Antwort
      0
      • ChaotC Offline
        ChaotC Offline
        Chaot
        schrieb am zuletzt editiert von
        #176

        Ich habe mehrere Warnmeldungen:
        Bei ODL:

        odl.0	2020-04-13 09:19:51.377	warn	(25330) Got no data for DEZ3192
        odl.0	2020-04-13 09:19:51.376	warn	(25330) SyntaxError: Unexpected token < in JSON at position 0
        odl.0	2020-04-13 09:19:51.376	warn	(25330) Error parsing response from server!
        

        Bei sourceanalytics:

        sourceanalytix.0	2020-04-13 09:19:50.716	warn	(25736) This object will not be created in future versions. Please report this to the developer.
        sourceanalytix.0	2020-04-13 09:19:50.715	warn	(25736) Object sonoff__0__Stecker3__ENERGY_Power.2020.costs.weeks.53 is invalid: obj.common.name has an invalid type! Expected "string" or "object", received "number"
        sourceanalytix.0	2020-04-13 09:19:50.654	warn	(25736) This object will not be created in future versions. Please report this to the developer.
        sourceanalytix.0	2020-04-13 09:19:50.654	warn	(25736) Object sonoff__0__Stecker3__ENERGY_Power.2020.meterReadings.weeks.53 is invalid: obj.common.name has an invalid type! Expected "string" or "object", received "number"
        sourceanalytix.0	2020-04-13 09:19:50.565	warn	(25736) This object will not be created in future versions. Please report this to the developer.
        sourceanalytix.0	2020-04-13 09:19:50.565	warn	(25736) Object sonoff__0__Stecker3__ENERGY_Power.2020.consumed.weeks.53 is invalid: obj.common.name has an invalid type! Expected "string" or "object", received "number"
        sourceanalytix.0	2020-04-13 09:19:50.487	warn	(25736) This object will not be created in future versions. Please report this to the developer.
        ...gekürzt ...
        

        Bei WLED:

        wled.0	2020-04-13 09:22:17.401	warn	(25893) This value will not be set in future versions. Please report this to the developer.
        wled.0	2020-04-13 09:22:17.401	warn	(25893) State value to set is invalid for wled.0.cc50e304f753.seg.0.col.0: The state is missing the required property val!
        wled.0	2020-04-13 09:22:17.394	warn	(25893) This value will not be set in future versions. Please report this to the developer.
        wled.0	2020-04-13 09:22:17.392	warn	(25893) State value to set is invalid for wled.0.cc50e304f753.seg.0.ix: The state is missing the required property val!
        

        Alle Adapter sind auf grün und alles scheint zu laufen.

        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

        foxriver76F 1 Antwort Letzte Antwort
        0
        • apollon77A apollon77

          @Kueppert sieht nach Adapter aus. Da wird versucht in eine bereits geschlossene Verbindung zu schreiben. Am besten GitHub issue beim Adapter anlegen

          K Offline
          K Offline
          Kueppert
          schrieb am zuletzt editiert von
          #177

          @apollon77 erledigt ;)
          https://github.com/iobroker-community-adapters/ioBroker.yeelight-2/issues/57

          UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

          1 Antwort Letzte Antwort
          0
          • ChaotC Chaot

            Ich habe mehrere Warnmeldungen:
            Bei ODL:

            odl.0	2020-04-13 09:19:51.377	warn	(25330) Got no data for DEZ3192
            odl.0	2020-04-13 09:19:51.376	warn	(25330) SyntaxError: Unexpected token < in JSON at position 0
            odl.0	2020-04-13 09:19:51.376	warn	(25330) Error parsing response from server!
            

            Bei sourceanalytics:

            sourceanalytix.0	2020-04-13 09:19:50.716	warn	(25736) This object will not be created in future versions. Please report this to the developer.
            sourceanalytix.0	2020-04-13 09:19:50.715	warn	(25736) Object sonoff__0__Stecker3__ENERGY_Power.2020.costs.weeks.53 is invalid: obj.common.name has an invalid type! Expected "string" or "object", received "number"
            sourceanalytix.0	2020-04-13 09:19:50.654	warn	(25736) This object will not be created in future versions. Please report this to the developer.
            sourceanalytix.0	2020-04-13 09:19:50.654	warn	(25736) Object sonoff__0__Stecker3__ENERGY_Power.2020.meterReadings.weeks.53 is invalid: obj.common.name has an invalid type! Expected "string" or "object", received "number"
            sourceanalytix.0	2020-04-13 09:19:50.565	warn	(25736) This object will not be created in future versions. Please report this to the developer.
            sourceanalytix.0	2020-04-13 09:19:50.565	warn	(25736) Object sonoff__0__Stecker3__ENERGY_Power.2020.consumed.weeks.53 is invalid: obj.common.name has an invalid type! Expected "string" or "object", received "number"
            sourceanalytix.0	2020-04-13 09:19:50.487	warn	(25736) This object will not be created in future versions. Please report this to the developer.
            ...gekürzt ...
            

            Bei WLED:

            wled.0	2020-04-13 09:22:17.401	warn	(25893) This value will not be set in future versions. Please report this to the developer.
            wled.0	2020-04-13 09:22:17.401	warn	(25893) State value to set is invalid for wled.0.cc50e304f753.seg.0.col.0: The state is missing the required property val!
            wled.0	2020-04-13 09:22:17.394	warn	(25893) This value will not be set in future versions. Please report this to the developer.
            wled.0	2020-04-13 09:22:17.392	warn	(25893) State value to set is invalid for wled.0.cc50e304f753.seg.0.ix: The state is missing the required property val!
            

            Alle Adapter sind auf grün und alles scheint zu laufen.

            foxriver76F Offline
            foxriver76F Offline
            foxriver76
            Developer
            schrieb am zuletzt editiert von
            #178

            @Chaot ersteres scheint API kaputtes JSON zu liefern, bei anderen beiden bitte Adapter Issues wenn noch nicht geschehen.

            Videotutorials & mehr

            Hier könnt ihr mich unterstützen.

            1 Antwort Letzte Antwort
            1
            • BBTownB BBTown

              @apollon77
              Moin ... also bezüglich meiner Sonos-Adapter Probleme, gab es heute Nacht eine "spontane Selbstheilung" ... was auch immer das Problem war, diese haben sich in Luft aufgelöst ....:face_with_rolling_eyes: :thinking_face:

              apollon77A Offline
              apollon77A Offline
              apollon77
              schrieb am zuletzt editiert von
              #179

              @BBTown Solche Fehler mag ich am liebsten (wenn Sie dann weg bleiben) ;-)

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              Homer.J.H 1 Antwort Letzte Antwort
              0
              • apollon77A apollon77
                Aktuelle Test Version 3.0.6
                Veröffentlichungsdatum 08.04.2020
                Github Link npm install ioBroker/ioBroker.js-controller

                Hallo in die Tester-Runde,

                wie im neuen Release-Cycle für den js-controller geplant starten wir heute den Beta Test des neuen js-controller 3.0 (Releasename "Elena"). Wie auch bei den letzten beiden Versionen starten wir die erste Teststufe direkt von GitHub. Also bitte nur mitmachen wenn Ihr wisst was das heisst :-) Aber auch der Weg zurück ist unten beschrieben.

                Nach dem frühzeitigen aus für Node.js 8 bereits letzten November setzt diese neue Version nun Node.js 10.x voraus und funktioniert ebenso mit Node.js 12.x und, nach aktuellem Stand, auch mit der Ende April kommenden Node.js 14.x. Wir werden mit diesem Release auch die empfohlene Node.js Version für ioBroker auf 12.x anheben.

                Diese Version bringt einige Features mit, ist aber ebenso der Beginn um "unter der Haube" einiges zu vereinheitlichen und Wildwuchs in der Umsetzung einiger Adapter etwas einzugrenzen. Es gibt allerdings auch neue Features mit die die Adapter-Entwicklung vereinfachen und Hürden abbauen. Aus diesem Grund ist auch die Liste der Themen welche vor allem für Entwickler relevant sind diesmal recht lang.
                Allerdings werden Aktionen von Adaptern die eigentlich den Regeln widersprechen jetzt über Logging sichtbar gemacht. Bitte unterstützt hier und legt bei den relevanten Adaptern Issues an das diese Dinge gefixt werden können. Für den js-controller 3.1 (ca. September 2020) ist es geplant einige dieser "verbotenen Aktionen" auch wirklich zu verhindern. Details sehen wir dann.

                Der js-controller hat jetzt standardmässig Sentry als Fehler-Reporting eingebaut und aktiviert. Wenn also der js-controller mit einer Fehlermeldung abstürzt (und nur dann!) werden die Fehlerdetails anonymisiert an einen von uns selbst in Deutschland betriebenen Sentry-Server gemeldet. IPs o.ä. personalisierte Daten werden nicht gespeichert. Dieses Fehler-Reporting hilft uns bei Crashes schneller und genauer zu sehen was los ist und solche Fehler noch schneller beheben zu können. Bitte legt für Crashed die Ihr seht bitte trotzdem weiterhin GitHub-Issues an und unterstützt uns indem Ihr das Fehler-Reporting aktiviert lasst. Weitere Details und wie es deaktivierbar ist findet Ihr unter https://github.com/ioBroker/ioBroker.js-controller/blob/master/README.md#error-reporting-via-iobroker-sentry

                Darüber hinaus gibt es natürlich viele Optimierungen und Fixes. Mehr dazu weiter unten und im Changelog. Ich hoffe auch diesmal auf Eure tatkräftige Unterstützung, sodass der Latest-Release dann genau so reibungslos verläuft wie bei der 2.2!

                Ich bedenke mich diesmal besonders bei @foxriver76, @AlCalzone und natürlich @Bluefox für die aktive Mitarbeit an dieser Version!

                Der js-controller 3.0 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen :-)


                Installation


                VOR der Installation
                Wie bei jedem Test dieser Art: Bitte macht ein Backup! iobroker backup bzw kopieren des iobroker-data Verzeichnisses reichen an sich aus. Bitte nicht das node_modules Verzeichnis einfach kopieren, da sonst symbolische Links kaputt gehen können, was zu größeren Problemen danach führt. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

                Windows

                Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden, darf der js-controller nicht mit npm aktualisiert werden. Es wird eine neue Version des Windows Installers geben, die das Update des js-controllers mit wenigen Mausklicks ermöglicht. Wir updaten dazu hier im Thread.

                Linux

                Für den Beta-Test muss der js-controller direkt per npm installiert werden. Dazu bitte den ioBroker auf dem Server beenden und dann in einer Shell UNBEDINGT in das ioBroker Verzeichnis wechseln. Dann mittels npm install ioBroker/ioBroker.js-controller den Controller manuell aktualisieren. Bevor ihr loslegt, lest aber bitte erst noch die folgenden Hinweise! Der zweite Post in diesem Thread ist für eine FAQ reserviert. Bitte schaut auch dort gern einmal rein.

                Achtung: Slave-Systeme zuerst!
                Bei einem Multi-Host-System, welches auf js-controller 2.2 läuft ist es beim Update auf Version 3.0 empfohlen, zuerst die Slave-Systeme zu aktualisieren. Der Master wird als letztes aktualisiert!

                Bei Updates von Master/Slave-Systemen mit js-controller 1.5 oder früher auf die 3.0 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Die Slaves bleiben nach dem Update offline und werden erst wieder funktionieren wenn auch der Master auf die 3.0 aktualisiert wurde!

                Nötige Adapter-Aktualisierungen

                • Pushover funktioniert in Version 1.1.x. Wer Version 1.2.x drauf hat könnte Probleme bekommen und sollte bitte 1.3.0 vom GitHub versuchen ob die Probleme damit behoben werden.
                • tr-064 in Version 4.0.0 ist nötig
                • tr-064-community wird nun offiziell nicht mehr funktionieren.
                • Die soef Adapter "firetv" und "wifilight" funktionieren nicht mehr und haben Updates bekommen: Bitte wifilight 1.1.0 bzw firetv 1.0.0 nutzen. Falls jemand "wifilight-community" oder "firetv-community" nutzt bitte wieder zurück auf die anderen wechseln.
                • Der soef Adapter "Lightify" funktioniert ebenso nicht mehr. Da Lightify als Platform allerdings in ein paar Monaten nicht mehr weiter betrieben wird haben wir entscheiden hier keinen Aufwand mehr reinzustecken. Am besten die Geräte über zigbee direkt anbinden.

                Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Hier ist beispielsweise radar2 schon bekannt. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

                Fehler
                Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x hat, alternativ weiterhin manuell via curl -sL https://iobroker.net/fix.sh | bash -) nutzen und die Installation wiederholen.

                Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels sudo -H -u iobroker npm install ioBroker/ioBroker.js-controller versuchen. Bitte berichtet solche Fälle hier im Thread.

                Nach der Installation
                Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

                Wenn alles klappt merkt Ihr außer der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt. Die großen Änderungen sind alle "Unter der Haube" versteckt.

                Falls im Log Warn-Meldungen auftauchen mit dem Hinweis diese an den Entwickler zu senden, dann bitte schauen welcher Adapter es ist und entsprechend dort Issues bitte anlegen!


                Was hat sich geändert, was besonders ansehen/testen?


                Neben einiger weiterer Bugfixes gibt es folgende Änderungen und Fixes zu erwähnen:

                • Der neue js-controller kann erkennen wenn es ein Node.js Update gab durch welches ggf, Adapter nicht mehr funktionieren und sollte diese automatisch reparieren (rebuilden). Wer also überlegt in dem Zuge des Tests seine Node.js Version anzuheben bitte mal explizit NICHT die übliche Anleitung nach dem Node-js update mit dem Rebuild befolgen sondern ioBroker einfach nach dem Node.js Update starten. Interessant ist ob sich alles selbst "heilt" :-)
                • Der js-controller prüft jetzt vor jedem Start eines Adapters wieviel RAM noch frei ist und warnt im Log falls dies zu wenig ist. Die Limits sind 100MB (Warnung) bzw. 50MB (Fehler) und dies soll verhindern das mehr Adapter-Prozesse genutzt werden als RAM verfügbar ist. Hier sind wir gespannt auf Eure berichte.
                • Logfiles sollten jetzt wirklich nach dem täglichen rotieren auf Linux-Systemen als .gz Dateien abgelegt werden.

                Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


                3.0.6 (2020-04-07) Release Elena

                BREAKING CHANGES

                • Nodejs 8.x will be no longer officially supported! Supported are nodejs 10.x, 12.x and (most likely) 14.x

                Features

                • (Apollon77) Enable zip Archive setting that it is on by default again. All Logs on Linux will be packaged to .gz on rotation. This can be deactivated by configuration (see Documentation)
                • (Apollon77) Introduce CLI command "iobroker rebuild <adaptername>" or "iobroker rebuild self" (for controller) to execute an npm install/rebuild for the specified adapter
                • (Apollon77) Detect the need for a rebuild because of a nodejs update by checking adapter crash error message and execute the "iobroker rebuild" command for the affected adapter up to 3 times.
                • (foxriver76) Add ability to define separate read and write id for aliases, introduce Adapter feature flag ALIAS_SEPARATE_READ_WRITE_ID for this (see Documentation)
                • (foxriver76) Make file write intervals of objects and state file dbs configurable (see Documentation)
                • (foxriver76) Check available RAM of the system before a new adapter process is started. If it is below 50/100MB log an error/warn and make it configurable via iobroker.json (see Documentation)
                • (Apollon77) Add plugin system for js-controller and adapters (see Documentation)
                • (Apollon77) Add and automatically enable Sentry as plugin for js-controller (see infos in README.md), can be disable per host via system.host.name.plugins.sentry.enabled (see Documentation)
                • (AlCalzone) add iobroker extend object command

                Optimizations and Fixes

                • (bluefox) Show options for start/stop/restart if more than one instance exists for the adapter
                • (AlCalzone) Validate arguments for iobroker del ... CLI command
                • (bluefox) Log js-controller version by start of adapter too
                • (Stabilostick) Set default certificate validity to 12 months, according to new Apple rules! Existing certificates will be recreated on controller installation if no custom certificate is used
                • (bluefox) Also initialize objects with local redis connection details if setup command is called with "useRedis" parameter
                • (foxriver76) Increase timeout of hostinfo command to prevent errors on systems with low CPU
                • (foxriver76) The end of schedule adapters is no longer logged as error
                • (foxriver76) Allow CLI commands to check status of an adapter instance
                • (foxriver76) Enhancements and fixes for iobroker list files command, allow to specify exact meta folder name as parameter and not only the adapter
                • (foxriver76) Add forced repository update to help, add logging to show that it is used
                • (foxriver76) Also delete uploaded vis widgets on adapter deletion
                • (foxriver76) Restart referenced restart-adapters after uninstall also
                • (foxriver76) Prevent dot as last char of an object or state id
                • (foxriver76) Improve performance on filter actions (getObjectView) when redis is used as objects database
                • (Apollon77) Optimize sigKill handling to prevent restart loops for edge cases and slow system
                • (Apollon77) Optimize errormessage for invalid protocol on database connection and make easier understandable
                • (Apollon77) Also catch unhandled promise rejections in adapters and handle like exceptions to allow error detection and automatic restart
                • (foxriver76) Also remove objects from Enums on object deletion
                • (foxriver76) Fix adapter exiting with wrong exit codes
                • (bluefox) Fix restart CLI command
                • (foxriver) Update cache manifest correctly on visdebug and fix process exit on non existing vis dir
                • (foxriver76) No longer require restart of instance after alias object changes and other alias optimizations
                • (foxriver76) Make sure files in internal file storage are always stored with correct path and also automatically fix existing entries
                • (foxriver76) fix crash of redis setState when undefined is passed and refuse undefined as value in general
                • (Apollon77) Make sure objects update from/ts/user when extending objects in all cases
                • (AlCalzone) optimize performance when objects are duplicated and checked internally
                • (Apollon77) prevent crash if udp membership can not be added (Sentry fix)
                • (Apollon77) change object type for compact groups to "folder"

                Developer relevant DEPRECATIONS/WARNINGS

                • (foxriver76) Do not allow access to adapter.states and adapter.objects anymore and add warning logs to deprecate the usage. js-controller 3.1+ will remove these methods. Please adjust your adapters
                • (foxriver76) Verify that a proper object of type "meta" exists when files are accessed in the internal ioBroker storage and output deprecation logging, these actions will be declined in js-controller 3.1+
                • (AlCalzone) Validate the object argument to set[Foreign]State[Changed] and log warnings, such invalid set commands will be declined with js-controller 3.1
                • (Apollon77) Move deprecation of getMessage to next controller version (3.1+)
                • (foxriver76/Apollon77) Validate that id in several state and object methods is of type string and log warnings
                • (foxriver76) Add basic checking for obj.common properties including logging. Please check logs and fix them, such invalid objects will be declined with js-controller 3.1

                Developer relevant new Features

                • (bluefox/foxriver76) Automatically encrypt all config attributes that are listed in common.encryptedNative in io-package, introduce ADAPTER_AUTO_DECRYPT (see Documentation) Admin support missing as of now!
                • (bluefox) Introduce new dependency field for io-package called common.globalDependencies to check for global dependencies (see Documentation). Admin support missing as of now!
                • (AlCalzone) Add command iobroker debug adapter to start Node.js debug sessions for an adapter

                Developer relevant Optimizations and Fixes

                • (Apollon77) Make sure that all places in adapters for states and objects that can return "really async" (e.g. because of DB communication) ALWAYS return async! (else callback !--count constructs can fail)
                • (foxriver76) Also set default values of instanceObjects defined in io-package.json
                • (bluefox) Improve extension mode for web extensions
                • (foxriver76) Optimize extendObjects function of adapter.js (use from and ack)
                • (foxriver76) Use from and ack when creating instanceObjects on installation of an instance
                • (Apollon77) Fix potential crash where name is no string in some File object operations
                • (foxriver76) Fix this.stop being undefined on daemon adapters
                • (foxriver76) Also respect def values of io-package.json on automatic object recreation due to instance start
                • (foxriver76) Respect state.from if provided on setState
                • (Apollon77) Enhance checks for getObjectsView response
                • general dependency updates
                • code style optimizations

                Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


                Wie Fehler melden?


                Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

                Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

                Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!

                FAQ

                FAQ1: Ich sehe Einträge wie "will not read this file (socketio.png) in future versions: socketio.admin is not an object of type "meta"" im Logfile Was soll ich tun?

                Wenn der Name mit ".admin" lautet (wie hier "socketio.admin") dann bitte einfach ein "iobroker upload socketio" (in dem Fall) machen. Es kan sein das früher mal Admin Files nocht korrekt angelegt wurden oder auch Dinge nocht ganz vollständig gelöscht wurden. Das Upload geht auch wenn Ihr den Adapter gar nicht mehr installiert habt. Danach sollte aber die Meldung weg sein.

                ? Offline
                ? Offline
                Ein ehemaliger Benutzer
                schrieb am zuletzt editiert von
                #180

                @apollon77

                übrigens, wer Octoprint und Adapter nutzt, der Fork von @reloxx13 funktioniert mit Node 12 und js-controller 3.0.x einwandfrei :-)

                ist von letztem Jahr März ..

                https://github.com/reloxx13/ioBroker.octoprint

                1 Antwort Letzte Antwort
                1
                • apollon77A apollon77

                  @BBTown Solche Fehler mag ich am liebsten (wenn Sie dann weg bleiben) ;-)

                  Homer.J.H Offline
                  Homer.J.H Offline
                  Homer.J.
                  schrieb am zuletzt editiert von
                  #181

                  Hi @apollon77 hab seid dem ich auf die 3.0.7 bin bei manchen scripten Fehler.
                  Ich hab keine Ahnung ob es hiervon kommt deshalb hier meine Frage.

                  2020-04-13 11:29:28.435  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:29.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:30.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:31.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:32.436  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:33.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:34.436  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:35.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:36.438  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:37.439  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:38.439  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:39.440  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:40.440  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:41.442  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:42.442  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:43.442  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:44.441  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:45.442  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:46.443  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:47.443  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:48.444  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:49.444  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:50.444  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:51.445  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:52.445  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:53.447  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:54.448  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:55.449  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:56.450  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:57.451  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:58.452  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  2020-04-13 11:29:59.453  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                  
                  apollon77A 1 Antwort Letzte Antwort
                  0
                  • Homer.J.H Homer.J.

                    Hi @apollon77 hab seid dem ich auf die 3.0.7 bin bei manchen scripten Fehler.
                    Ich hab keine Ahnung ob es hiervon kommt deshalb hier meine Frage.

                    2020-04-13 11:29:28.435  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:29.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:30.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:31.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:32.436  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:33.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:34.436  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:35.437  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:36.438  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:37.439  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:38.439  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:39.440  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:40.440  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:41.442  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:42.442  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:43.442  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:44.441  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:45.442  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:46.443  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:47.443  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:48.444  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:49.444  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:50.444  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:51.445  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:52.445  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:53.447  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:54.448  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:55.449  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:56.450  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:57.451  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:58.452  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    2020-04-13 11:29:59.453  - error: javascript.0 (31801) script.js.common.Steuerung.02_Geschirrspüler: setForeignState: undefined is not a valid state value
                    
                    apollon77A Offline
                    apollon77A Offline
                    apollon77
                    schrieb am zuletzt editiert von
                    #182

                    @Homer-J Dann schau doch mal was Du hier in Deinem Skript an Wert setzen willst ... scheinbar willst Du "undefined" setzen was formal seit jeher ein nicht erlaubter wert ist! Sonst zeig doch mal das genannte Skript

                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                    Homer.J.H 1 Antwort Letzte Antwort
                    0
                    • apollon77A apollon77

                      @Homer-J Dann schau doch mal was Du hier in Deinem Skript an Wert setzen willst ... scheinbar willst Du "undefined" setzen was formal seit jeher ein nicht erlaubter wert ist! Sonst zeig doch mal das genannte Skript

                      Homer.J.H Offline
                      Homer.J.H Offline
                      Homer.J.
                      schrieb am zuletzt editiert von Homer.J.
                      #183

                      @apollon77 hier mal das Script für den Spüler. Beim Waschmaschine ist es genau so. Hat sich Erledigt hab die Datenpunkte neu angelegt.

                      var Meldetext, AUS_Zaehler, Intervall, Waschdauer, Sekunde, timeout, Minute, timeout2;
                      
                      /**
                       * Beschreibe diese Funktion …
                       */
                      function etwas_tun(Meldetext) {
                        sendTo("pushover", "send", {
                           message: Meldetext,
                           sound: "",
                           title: '+++ Geschirrspüler +++'
                        });
                      }
                      
                      
                      createState("Vis.Geschirrspüler.Aktiv", function () {
                        createState("Vis.Geschirrspüler.Aktiv.Zeit_Minuten", function () {
                          createState("Vis.Geschirrspüler.Aktiv.Zeit_Sekunden", function () {
                          });
                        });
                      });
                      // Geschirrspüler_Script
                      setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, false);
                      on({id: 'hm-rpc.2.0001D3C99CB161.6.POWER', change: "any"}, function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        if (getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == false && getState("hm-rpc.2.0001D3C99CB161.6.POWER").val > 10) {
                          setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Minuten"/*Vis.Geschirrspüler.Aktiv.Zeit_Minuten*/, 0);
                          (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                          Intervall = setInterval(function () {
                            Sekunde = (typeof Sekunde == 'number' ? Sekunde : 0) + 1;
                            if (Sekunde > 59) {
                              Minute = (typeof Minute == 'number' ? Minute : 0) + 1;
                              Sekunde = 0;
                            }
                            setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Minuten"/*Vis.Geschirrspüler.Aktiv.Zeit_Minuten*/, Minute);
                            setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Sekunden"/*Vis.Geschirrspüler.Aktiv.Zeit_Sekunden*/, Sekunde);
                          }, 1000);
                          setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, true);
                          setState("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 1);
                          Waschdauer = (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds());
                          etwas_tun('Der Geschirrspüler wurde angeschalten');
                          setState("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 35);
                          setStateDelayed("javascript.0.Alexa.Sprachausgabe"/*Alexa.Sprachausgabe*/, 'Der Geschirrspüler wurde angeschalten', 1000, false);
                          setStateDelayed("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 40, 10000, false);
                        } else if (getState("hm-rpc.2.0001D3C99CB161.6.POWER").val > 10 && getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == true && AUS_Zaehler > 0) {
                          AUS_Zaehler = AUS_Zaehler - 1;
                        } else if (getState("hm-rpc.2.0001D3C99CB161.6.POWER").val < 1 && getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == true) {
                          AUS_Zaehler = (typeof AUS_Zaehler == 'number' ? AUS_Zaehler : 0) + 1;
                        }
                        if (AUS_Zaehler == 7) {
                          etwas_tun('Der Geschirrspüler ist fertig');
                          Waschdauer = (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds()) - Waschdauer;
                          (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                          timeout = setTimeout(function () {
                            (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})();
                            timeout2 = setTimeout(function () {
                              etwas_tun(['Der Spülvorgang dauerte *',Math.round(Waschdauer / 60),' Minuten* und hat *',getState("sourceanalytix.0.hm-rpc__2__0001D3C99CB161__6__ENERGY_COUNTER.2020.consumed.01_current_day").val,' kWh* Energie für (*',getState("sourceanalytix.0.hm-rpc__2__0001D3C99CB161__6__ENERGY_COUNTER.2020.costs.01_current_day").val,' €*) verbraucht.'].join(''));
                            }, 240000);
                            AUS_Zaehler = 0;
                            setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, false);
                            setState("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 35);
                            setStateDelayed("javascript.0.Alexa.Sprachausgabe"/*Alexa.Sprachausgabe*/, 'Der Geschirrspüler ist fertig.', 1000, false);
                            setStateDelayed("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 40, 10000, false);
                            setStateDelayed("hm-rpc.2.0001D3C99CB161.3.STATE"/*Steckdose Geschirrspüler.STATE*/, false, 300000, false);
                            setStateDelayed("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 0, 300000, false);
                            setState("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 2);
                            (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                            Minute = 0;
                            Sekunde = 0;
                            console.log('Der Geschirrspüler ist jetzt fertig schalte Strom ab');
                          }, 300000);
                        }
                      });
                      
                      //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ3ZhcmlhYmxlcyUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyZnItTnNKbiUyQnhEMCU2MEl3QUZxJTQwJTI1LiUyMiUzRU1lbGRldGV4dCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ1bmRlZmluZWQlMjIlMjBpZCUzRCUyMkludGVydmFsbCUyMiUzRUludGVydmFsbCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjJPQyUzQWJXaCU1QmUyLWJLJTVFVVpnWEJyZCUyMiUzRVdhc2NoZGF1ZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTNFU2VrdW5kZSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIydW5kZWZpbmVkJTIyJTIwaWQlM0QlMjJ0aW1lb3V0JTIyJTNFdGltZW91dCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjJUenlkNXFZOXElNUJlbyolM0Y0JTJDTS5BJTJCJTIyJTNFTWludXRlJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ1bmRlZmluZWQlMjIlMjBpZCUzRCUyMnRpbWVvdXQyJTIyJTNFdGltZW91dDIlM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNyZWF0ZSUyMiUyMGlkJTNEJTIyIXRONCElM0FndE0lNUUlN0RlayUzQiU3Q20lM0RuSG8lMjIlMjBjb2xsYXBzZWQlM0QlMjJ0cnVlJTIyJTIweCUzRCUyMjEzJTIyJTIweSUzRCUyMjEzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRVZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY3JlYXRlJTIyJTIwaWQlM0QlMjJtJTI1TVhKY3phKnkwJTNCSk5hSiUzRHUlM0IlMjUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXYuWmVpdF9NaW51dGVuJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY3JlYXRlJTIyJTIwaWQlM0QlMjJyYnZQUSlJdFBpMDVLJTYwJTNETEcyRyU2MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VWaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3Rpdi5aZWl0X1Nla3VuZGVuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMmhCJTI1cF9zbyUzRDQlNjBFR3pYJTNCMTAlM0F3ciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VHZXNjaGlycnNwJUMzJUJDbGVyX1NjcmlwdCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMktiLnVQZHJ+Z1MlN0MlM0Q3TmclMkIlM0FIJTNGYSUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIydnFCeSUzRjguMWZpRE5Eb0xyVCUzQkd+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyJTJCQTd3bHV0UU84Z0JmcW9zYy55MyUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VhbnklM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJMJTVCaSUzRHAlN0IlN0NpaS1haSolMkZZQVolNDA4cyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJiUCU2MCopMCUzQk0lMkJnOU8lM0FnJTNGJTVEUGQqZiUyMiUzRSUzQ211dGF0aW9uJTIwZWxzZWlmJTNEJTIyMiUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJGJTNBKXFZSHNJJTdEZHVnRiUzQiUzQlRqbSUyQ0ElMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyJTJCJTVEJTVFRCU1QiU3QnpjT2R+KWQlMjU4QyUyNSUzQVM5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyRTQlM0JxLldJKSUzQVJGOCUyQylQJTNCNEdhTSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJCbFAlNUIlNjBYSypkZlY2JTdCcSU1RCUyQ3VTdU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMkg1JTI1XyUyRmEhbyUzQihjZDJmfnQhJTJCJTVFUSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmElM0F5OTE2VyFTJTI1SCU3Q3BiNXFRbCUzQUolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VobS1ycGMuMi4wMDAxRDNDOTlDQjE2MS42LlBPV0VSJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJGYSklM0ZfQXF+VShIOSglNUJEN0JhQTIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlEwJTJGRipVbCUyNGppaGhTSmopJTVFWiU3Q2clMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3Rpdi5aZWl0X01pbnV0ZW4lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTdDVlA5US14VTg0NCUzRmglN0NyMCU1RDlNQyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJpbnRlcnZhbCUyMiUyMGlkJTNEJTIyMUglN0Q3SyUyM2NMcTQlM0ZkNzI2aCpYSUMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFSW50ZXJ2YWxsJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfc2V0aW50ZXJ2YWwlMjIlMjBpZCUzRCUyMiUyM1p3bmt5bGV+RXlFNlY0NzclN0RGJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRUludGVydmFsbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIySU5URVJWQUwlMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9jaGFuZ2UlMjIlMjBpZCUzRCUyMjE0NCU1RFZTSlBqOHAlNUUlM0JqQWpsMnFUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJVeCUyQiUyQyUzQTUlM0YlMkZRc1N5JTJCZ35UJTNGJTNGWm8lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VTZWt1bmRlJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxUQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyQyElM0JJUFhRJTdEMGl3b0QlNUV1TEl2NyUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJaSSUzQXQxV3Ihck1TJTYwbCU1RXQoNDNxJTVCJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIybTM0bzIlMjNUZVZpJTNEVW91WCUyRnglMjVMOSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIlNURyR2kxZWolNUJiaVVHM1VYOFFueiUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyOCpmJTJGVkttalFfcmNNanAlMjVIdCU1RCUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTU5JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2NoYW5nZSUyMiUyMGlkJTNEJTIya20ubFdpMXMlNUJkTCUyRjNzbSElMkNQWiUzQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMmtlKlclN0JhJTdDanghbHB0dDFMeUZWaSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU1RCUyRllhU3klM0QlMkJkejVjISUzRGV3LXQqSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIydHgySC4hJTI1WCU1RCU1RVIlNjB0UGlHeXBpJTNEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiFlJTNBU194LWlNVE13aVQlNjB6SVIlMkNpJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXYuWmVpdF9NaW51dGVuJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTI0NEZZRSU1RCUyQyUzREFSTCUzQU9NSWsxJTNCJTNCdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJfWHZmS0h+RTFvYSU3QldlUlM4JTI0JTNGciUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2LlplaXRfU2VrdW5kZW4lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJoQ2lKNC5uaSolMkZEUyUzQnpaJTdCWVdtaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlh4alJHLXd4JTdCR2lzJTdDUCU3RGolMjV3aSU3QiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyOCU1RGolNUROUHkwcHpnXyU0MGZ5NyUyM3B1OSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUzREs1ZThTJTdEcG0oJTJCYSUyNDRzJTQweiUyQyUyQyUyRiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2X1N0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU2MGVZQWUlN0MlM0RQIVpTY2NYKU44UFZ5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJTQ2IlMjMlM0Y4RlFxVUJtLmI5MUcqOWolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lX2dldCUyMiUyMGlkJTNEJTIybCU1RFktSzMtWXE5SWVUcSUzQjZlSiUzQkQlMjIlM0UlM0NtdXRhdGlvbiUyMGZvcm1hdCUzRCUyMmZhbHNlJTIyJTIwbGFuZ3VhZ2UlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1BUSU9OJTIyJTNFc2lkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfY2FsbG5vcmV0dXJuJTIyJTIwaWQlM0QlMjIyZFclMkJEN1hjUHpqcCUyM3JqV2MlNUIlMkNJJTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyZXR3YXMlMjB0dW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyTWVsZGV0ZXh0JTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTIzZVYxazRibDMlMkYqdCUzRE9xJTNBRHJydyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VEZXIlMjBHZXNjaGlycnNwJUMzJUJDbGVyJTIwd3VyZGUlMjBhbmdlc2NoYWx0ZW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyc2EuJTI1QXg1STZDYUUyRSUzRGwlNjAoX3IlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJVM053dWglM0JtIUE0MSUyRkslMkY3ckspciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTM1JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlU4JTJGbyUyMzhqTGFUb1RpJTNGQ2clMkJqJTdEViUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQWxleGEuU3ByYWNoYXVzZ2FiZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRXNlYyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ0xFQVJfUlVOTklORyUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMm9nJTdDJTNCUX5YJTI1eW14dCU1RSU3RFRqVCUzREUoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRURlciUyMEdlc2NoaXJyc3AlQzMlQkNsZXIlMjB3dXJkZSUyMGFuZ2VzY2hhbHRlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJWMkYlNURtJTdDJTNBWUhtTWMhJTIzMDAlNjBMJTJGJTNBJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNMRUFSX1JVTk5JTkclMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyISU1QlowVVolNDAlN0QwIShrQzclMjMlM0ZvJTVCa1olMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U0MCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJ4UX5BeGpwJTVFeCU3RHhJYyU3RCUzRiUyQ35iZDMlMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIybSUzQUYlNUJBJTJDQyU1RDIzJTdCdFZHLiU1QjlvZ3glMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUdUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJ+OWhtLmJuN0p1UiU2MDlUJTVFNTdyJTdDISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkpmbFYlNUVydjFfM3kpJTJDRiUzRmpZfjNSJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyV1pxZXFycWJ4JTNEekItJTQwRCl+bF8hJTIyJTIwaW5saW5lJTNEJTIyZmFsc2UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMjIlMjMlMkMyJTdCVXpLVVhLYy1iJTNCYVhJJTVEZCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlglN0M3SUVxJTJCJTIzZVE2VSU1REslNDBRWkRMXyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjI4OCU1Qng5VFF0VCU2MGhrYWdYJTNGdXglM0I2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiUzQjVUMndqaGdSa0k0YSUzRGZQJTNEdHhBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlglN0M1JTNCV0tfNiUyQmIqWDdkV1RoZFlGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJKaHZZJTIzbTJlKSU3QmlaZyolN0RVKVU3JTNEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJxZDJqY1pTWC5qJTYwbWFrcy0wWEdHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyLVklN0RabWYlNUUlMjNobSUyQ1d5TDYpS2NkLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTUlOVVMlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU1RX5wfiUyM1UhUiUyQmVhSmphV342VSlkJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyYyUyRmIlM0J0ZWg3Qi50ZmF2VyUyMzNLeDIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNSU1REpPJTNEbktGJTNGczJiWU8lNUJ5ZXhULiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRUFVUyUyMFphZWhsZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMkYlNDBkU3daJTdCSHBiS2s2eTNfcSUzRmp6JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU3Q0Z+JTNENHNnNk9jYjc0ciU1REQwODVXJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyaUhwRX4lM0R1VWlDMEhZWkUwaXhmdiUyMiUyMGlubGluZSUzRCUyMmZhbHNlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VBTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJ+JTNEJTYwQUtrVilwLkxSSyU3Qy0peW0lMjMwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTdCYk1QM1JjdCU1RHN+JTVFT3hCJTVFS1lKQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMll+TE0lMkMzYSU3RDIlMkI4dUJlJTI0Y3MlNUIobyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiFjQVIlNDBrYWdrZG4lMkZkdSFsZzUlM0ZyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyOVRnZ0RmcWxUaiUzRjRPTyUzRCU0MCU2MH5lTyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJTMVIha1M5LSUzRmtRayUyQktTXzVRcyUyMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8yJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9jaGFuZ2UlMjIlMjBpZCUzRCUyMlQudW41JTNELnJkTGwlNDB3b0duKjRvSiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1JTVESk8lM0RuS0YlM0ZzMmJZTyU1QnlleFQuJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFQVVTJTIwWmFlaGxlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUzRmMlM0RwWExPYzYxdjNBSlAuKGQlM0FrJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMk1hJTNCJTNGJTVFWDUhcnQuV3J0VCUzRHFFdiUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIySiEwY3ZURyUyM2htJTJCLnZwT21QJTJCRGglMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIlMjVBYk1PJTNGSjJEJTVCZi1yQ0VXeXElM0RPJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnU1RlpOc3lwZ3MlM0FwUFVZc1YxJTNEZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1JTVESk8lM0RuS0YlM0ZzMmJZTyU1QnlleFQuJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFQVVTJTIwWmFlaGxlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIydWFIUCU1QlAzd3QtIWglNDBNIVVFJTVEZVglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U3JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyNU03ZUpvbEYzUlBLR3MtWSUyRlI1eSUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMmV0d2FzJTIwdHVuJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMk1lbGRldGV4dCUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMndWJTJGQXcycS0lMkNsJTVEY2gwY3olM0FpRyU3QiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VEZXIlMjBHZXNjaGlycnNwJUMzJUJDbGVyJTIwaXN0JTIwZmVydGlnJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMkM3JTIzTSEpTUJObFhXRmRSeXUoMSUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyT0MlM0FiV2glNUJlMi1iSyU1RVVaZ1hCcmQlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VXYXNjaGRhdWVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyZndhMGR2bG4xbV90JTI1eTRkJTVEJTNEKnYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJXOGclM0IlMjN0RnolMjVWOEt4JTQwIW1qdXFqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZV9nZXQlMjIlMjBpZCUzRCUyMiUyNSUzQiU0MGI4S05USFJlbiU1QkxQMEZ2SyUyQyUyMiUzRSUzQ211dGF0aW9uJTIwZm9ybWF0JTNEJTIyZmFsc2UlMjIlMjBsYW5ndWFnZSUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUFRJT04lMjIlM0VzaWQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlNDBsIWgxbE9NcFhsbzhOJTdEeSUzQSU3QiU1RCUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlhPcG0pQSU0ME8lMjVURiUzQShTQXk3KEklN0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJ0aW1lb3V0JTIyJTIwaWQlM0QlMjI4JTQwRzJ2ZnROUSUzQmJnJTJDJTdEX28uJTdDLV8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFdGltZW91dCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMiUzQlJldE0lNUQxTk1ucShnTTIlM0YqNnZPJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFNSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRW1pbiUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFydGltZW91dCUyMiUyMGlkJTNEJTIySk92RzQwJTQwUiU1RCUyNXRfJTNGJTVCNFEzJTNERiUyNCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0MiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMmYlNjB+S25JSSUzRCUzQnIlNUQlMjMoJTJGJTNBaiUyQyUyQk1FJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQyJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VtaW4lM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyNkoyayUzRCUyNCU1RUJLTXlFfiUzQm9CKkZZJTVEJTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyZXR3YXMlMjB0dW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyTWVsZGV0ZXh0JTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9qb2luJTIyJTIwaWQlM0QlMjJTVX5TbWclNUQlN0NQSldOJTVFWWhUJTYwJTJGVUglMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjI3JTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyWSgqWEptXyEha3AuV0J1ZTQ5T3YlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwU3AlQzMlQkNsdm9yZ2FuZyUyMGRhdWVydGUlMjAqJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfcm91bmQlMjIlMjBpZCUzRCUyMmc2UCU3QkklM0ExRyUzRm80c01iTyU0MCFWcHAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRVJPVU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJOVU0lMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUzRk5mJTJDN0UwNEljaSUyNSlfX05OJTdDRzMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UzLjElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyJTdCJTIzNThGJTJCZWwlMkJuYTdWOFlyJTdCZHAlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRURJVklERSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyaUw5OSU3REU4ZUklNUItZkNzJTNEZkkxM0UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJmSUZsUUhfVExGfjIlNUJGcHpXeVMlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMnQlNDAoRkpJKVp2S0R5JTNCcyUzQiU1RCUzRG9EJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNjAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJWJTJDYlolNjAyMCU3Q3YlMkJVU3ZZVUNIOSUyRiU1RSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTYwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyRCFHakxybSU0MHdKU0xIVFIxRCU1RE1mJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyME1pbnV0ZW4qJTIwdW5kJTIwaGF0JTIwKiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDMlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMnlEcGZjViUyNERjSk9DVVQ5JTYwWk1BLiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXNvdXJjZWFuYWx5dGl4LjAuaG0tcnBjX18yX18wMDAxRDNDOTlDQjE2MV9fNl9fRU5FUkdZX0NPVU5URVIuMjAyMC5jb25zdW1lZC4wMV9jdXJyZW50X2RheSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJ+YWolMjNacDdRNSU1QnRrUHUyWiUyQkU5JTVFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyMGtXaColMjBFbmVyZ2llJTIwZiVDMyVCQ3IlMjAoKiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMilfNS4lNUVFRC1WWVh+REJLc3NRWUclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0Vzb3VyY2VhbmFseXRpeC4wLmhtLXJwY19fMl9fMDAwMUQzQzk5Q0IxNjFfXzZfX0VORVJHWV9DT1VOVEVSLjIwMjAuY29zdHMuMDFfY3VycmVudF9kYXklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ2JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyNGslMjUueSUyQlBCJTJCRyUzRE1+dVJ2eSU3Q0MlNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTIwJUUyJTgyJUFDKiklMjB2ZXJicmF1Y2h0LiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJIdmQydkwpcHRjNCUyRnNmam9QM0t4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJZeiU2MClyeiUyQy5lc3g4JTQwbEMlMkJkbW0lNUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMnNqMFpBRyUzREVMUS0lN0NYZVdtdEVnMyUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyZVglN0NCZiU3Qm9XJTJCJTI1QkFXLlklM0Epa2JLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiU1RCUyMzdZZUclM0ZJVEYhJTdEKjlkOG1yNUglMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJPeUhmLVQ4OSU1QjJhbkJqT2NYbHVZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMzUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyV21+QihFVUlEJTdDTjR4M0NjcEolM0I0JTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbGV4YS5TcHJhY2hhdXNnYWJlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTJDJTVCJTYwfkRudVklN0RGM2slNjBJUUwuJTI1SU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwR2VzY2hpcnJzcCVDMyVCQ2xlciUyMGlzdCUyMGZlcnRpZy4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyTnElN0JqJTNCJTI1c2trJTdCb2VHUl9KKTlVZSUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5FY2hvLURldmljZXMuRzAwMFJBMDc4NDE3MTJOMS5Db21tYW5kcy5zcGVhay12b2x1bWUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRTEwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjUpWmclM0RtQWxVJTJCbyUyQ2drJTNBJTQwSU9oJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyJTdDelYlM0JCRSUyNWpISiU1RCU3Q2c0bzglN0IlNUJRcCUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VobS1ycGMuMi4wMDAxRDNDOTlDQjE2MS4zLlNUQVRFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyfnFtOSU2MCU3Qkt6JTNCJTYwcSgzRi5MaWFzSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIuM34lMkI1KG0lM0RrQyFjSSUzRCUyNVBaRlMlMkIlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2X1N0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMklPKTUwUX5tMVIlM0ZrflhLa1JmSjclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUyM05XSiU0MGQoTXNQZiU1RGgpcylzeC4xJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXZfU3RhdGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyS2xlIVdFJTIzU35VM3hhSGhnMyUyQkglMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFyaW50ZXJ2YWwlMjIlMjBpZCUzRCUyMiUyMyElNUVFcDlGaU83NjIlMjNsJTdDZV8lMkZRTiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VJbnRlcnZhbGwlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlNUUlM0QlMkNMJTI1JTJDV2hrV1VCbUlaSV9BJTNEdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyITVYTyU3QiUyNSU3Qm4zJTNCZzVIRGdSVWtnZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyQlVJbWJISTFOQmlDZiUyQmNCc2ktbCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyYlAlNUJSMjRoJTJDdUxRRCU1QmYzQjFaNkglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJ+TmFDJTVFRG15eSU3Q3hEdlMlNUIlNUQ0aCFoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0Vsb2clM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyKCpNSW90dUx+aTklNUVhfnUlN0N+NUglN0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwR2VzY2hpcnJzcCVDMyVCQ2xlciUyMGlzdCUyMGpldHp0JTIwZmVydGlnJTIwc2NoYWx0ZSUyMFN0cm9tJTIwYWIlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2RlZm5vcmV0dXJuJTIyJTIwaWQlM0QlMjIhKCU0MG4tJTNBJTJCIVBqSiU1RSU1RXFINiU3Q1YlNURKJTIyJTIweCUzRCUyMjc4OCUyMiUyMHklM0QlMjIxMyUyMiUzRSUzQ211dGF0aW9uJTNFJTNDYXJnJTIwbmFtZSUzRCUyMk1lbGRldGV4dCUyMiUyMHZhcmlkJTNEJTIyZnItTnNKbiUyQnhEMCU2MEl3QUZxJTQwJTI1LiUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRWV0d2FzJTIwdHVuJTNDJTJGZmllbGQlM0UlM0Njb21tZW50JTIwcGlubmVkJTNEJTIyZmFsc2UlMjIlMjBoJTNEJTIyODAlMjIlMjB3JTNEJTIyMTYwJTIyJTNFQmVzY2hyZWliZSUyMGRpZXNlJTIwRnVua3Rpb24lMjAlRTIlODAlQTYlM0MlMkZjb21tZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQUNLJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHVzaG92ZXIlMjIlMjBpZCUzRCUyMjRwUW51Q1BRbyUzRndIazdzTiUzQSU0MF92JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIySU5TVEFOQ0UlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNPVU5EJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJQUklPUklUWSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkxPRyUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTUVTU0FHRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJDVGJJV3NWRzVCKnBwYiU1RHdMJTJGY0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFdGV4dCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTYwUXhoYmdNcVZXV01vRyUzQlclNUJZdWYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmZyLU5zSm4lMkJ4RDAlNjBJd0FGcSU0MCUyNS4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VNZWxkZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJUSVRMRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiUyNS1oKCU1RWpwb3JWJTNGJTVFJTVEJTVFa0tVNmpnJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyQiUyQiUyQiUyMEdlc2NoaXJyc3AlQzMlQkNsZXIlMjAlMkIlMkIlMkIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
                      
                      apollon77A 1 Antwort Letzte Antwort
                      0
                      • Homer.J.H Homer.J.

                        @apollon77 hier mal das Script für den Spüler. Beim Waschmaschine ist es genau so. Hat sich Erledigt hab die Datenpunkte neu angelegt.

                        var Meldetext, AUS_Zaehler, Intervall, Waschdauer, Sekunde, timeout, Minute, timeout2;
                        
                        /**
                         * Beschreibe diese Funktion …
                         */
                        function etwas_tun(Meldetext) {
                          sendTo("pushover", "send", {
                             message: Meldetext,
                             sound: "",
                             title: '+++ Geschirrspüler +++'
                          });
                        }
                        
                        
                        createState("Vis.Geschirrspüler.Aktiv", function () {
                          createState("Vis.Geschirrspüler.Aktiv.Zeit_Minuten", function () {
                            createState("Vis.Geschirrspüler.Aktiv.Zeit_Sekunden", function () {
                            });
                          });
                        });
                        // Geschirrspüler_Script
                        setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, false);
                        on({id: 'hm-rpc.2.0001D3C99CB161.6.POWER', change: "any"}, function (obj) {
                          var value = obj.state.val;
                          var oldValue = obj.oldState.val;
                          if (getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == false && getState("hm-rpc.2.0001D3C99CB161.6.POWER").val > 10) {
                            setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Minuten"/*Vis.Geschirrspüler.Aktiv.Zeit_Minuten*/, 0);
                            (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                            Intervall = setInterval(function () {
                              Sekunde = (typeof Sekunde == 'number' ? Sekunde : 0) + 1;
                              if (Sekunde > 59) {
                                Minute = (typeof Minute == 'number' ? Minute : 0) + 1;
                                Sekunde = 0;
                              }
                              setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Minuten"/*Vis.Geschirrspüler.Aktiv.Zeit_Minuten*/, Minute);
                              setState("javascript.0.Vis.Geschirrspüler.Aktiv.Zeit_Sekunden"/*Vis.Geschirrspüler.Aktiv.Zeit_Sekunden*/, Sekunde);
                            }, 1000);
                            setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, true);
                            setState("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 1);
                            Waschdauer = (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds());
                            etwas_tun('Der Geschirrspüler wurde angeschalten');
                            setState("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 35);
                            setStateDelayed("javascript.0.Alexa.Sprachausgabe"/*Alexa.Sprachausgabe*/, 'Der Geschirrspüler wurde angeschalten', 1000, false);
                            setStateDelayed("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 40, 10000, false);
                          } else if (getState("hm-rpc.2.0001D3C99CB161.6.POWER").val > 10 && getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == true && AUS_Zaehler > 0) {
                            AUS_Zaehler = AUS_Zaehler - 1;
                          } else if (getState("hm-rpc.2.0001D3C99CB161.6.POWER").val < 1 && getState("javascript.0.Vis.Geschirrspüler.Aktiv").val == true) {
                            AUS_Zaehler = (typeof AUS_Zaehler == 'number' ? AUS_Zaehler : 0) + 1;
                          }
                          if (AUS_Zaehler == 7) {
                            etwas_tun('Der Geschirrspüler ist fertig');
                            Waschdauer = (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds()) - Waschdauer;
                            (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                            timeout = setTimeout(function () {
                              (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})();
                              timeout2 = setTimeout(function () {
                                etwas_tun(['Der Spülvorgang dauerte *',Math.round(Waschdauer / 60),' Minuten* und hat *',getState("sourceanalytix.0.hm-rpc__2__0001D3C99CB161__6__ENERGY_COUNTER.2020.consumed.01_current_day").val,' kWh* Energie für (*',getState("sourceanalytix.0.hm-rpc__2__0001D3C99CB161__6__ENERGY_COUNTER.2020.costs.01_current_day").val,' €*) verbraucht.'].join(''));
                              }, 240000);
                              AUS_Zaehler = 0;
                              setState("javascript.0.Vis.Geschirrspüler.Aktiv"/*Vis.Geschirrspüler.Aktiv*/, false);
                              setState("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 35);
                              setStateDelayed("javascript.0.Alexa.Sprachausgabe"/*Alexa.Sprachausgabe*/, 'Der Geschirrspüler ist fertig.', 1000, false);
                              setStateDelayed("alexa2.0.Echo-Devices.G000RA07841712N1.Commands.speak-volume"/*Volume to use for speak commands*/, 40, 10000, false);
                              setStateDelayed("hm-rpc.2.0001D3C99CB161.3.STATE"/*Steckdose Geschirrspüler.STATE*/, false, 300000, false);
                              setStateDelayed("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 0, 300000, false);
                              setState("javascript.0.Vis.Geschirrspüler.Aktiv_State"/*Vis.Geschirrspüler.Aktiv_State*/, 2);
                              (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                              Minute = 0;
                              Sekunde = 0;
                              console.log('Der Geschirrspüler ist jetzt fertig schalte Strom ab');
                            }, 300000);
                          }
                        });
                        
                        //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ3ZhcmlhYmxlcyUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyZnItTnNKbiUyQnhEMCU2MEl3QUZxJTQwJTI1LiUyMiUzRU1lbGRldGV4dCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ1bmRlZmluZWQlMjIlMjBpZCUzRCUyMkludGVydmFsbCUyMiUzRUludGVydmFsbCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjJPQyUzQWJXaCU1QmUyLWJLJTVFVVpnWEJyZCUyMiUzRVdhc2NoZGF1ZXIlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTNFU2VrdW5kZSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIydW5kZWZpbmVkJTIyJTIwaWQlM0QlMjJ0aW1lb3V0JTIyJTNFdGltZW91dCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIyJTIyJTIwaWQlM0QlMjJUenlkNXFZOXElNUJlbyolM0Y0JTJDTS5BJTJCJTIyJTNFTWludXRlJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMHR5cGUlM0QlMjJ1bmRlZmluZWQlMjIlMjBpZCUzRCUyMnRpbWVvdXQyJTIyJTNFdGltZW91dDIlM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNyZWF0ZSUyMiUyMGlkJTNEJTIyIXRONCElM0FndE0lNUUlN0RlayUzQiU3Q20lM0RuSG8lMjIlMjBjb2xsYXBzZWQlM0QlMjJ0cnVlJTIyJTIweCUzRCUyMjEzJTIyJTIweSUzRCUyMjEzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRVZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY3JlYXRlJTIyJTIwaWQlM0QlMjJtJTI1TVhKY3phKnkwJTNCSk5hSiUzRHUlM0IlMjUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXYuWmVpdF9NaW51dGVuJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY3JlYXRlJTIyJTIwaWQlM0QlMjJyYnZQUSlJdFBpMDVLJTYwJTNETEcyRyU2MCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VWaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3Rpdi5aZWl0X1Nla3VuZGVuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMmhCJTI1cF9zbyUzRDQlNjBFR3pYJTNCMTAlM0F3ciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VHZXNjaGlycnNwJUMzJUJDbGVyX1NjcmlwdCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMktiLnVQZHJ+Z1MlN0MlM0Q3TmclMkIlM0FIJTNGYSUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIydnFCeSUzRjguMWZpRE5Eb0xyVCUzQkd+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyJTJCQTd3bHV0UU84Z0JmcW9zYy55MyUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VhbnklM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJMJTVCaSUzRHAlN0IlN0NpaS1haSolMkZZQVolNDA4cyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJiUCU2MCopMCUzQk0lMkJnOU8lM0FnJTNGJTVEUGQqZiUyMiUzRSUzQ211dGF0aW9uJTIwZWxzZWlmJTNEJTIyMiUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJGJTNBKXFZSHNJJTdEZHVnRiUzQiUzQlRqbSUyQ0ElMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyJTJCJTVEJTVFRCU1QiU3QnpjT2R+KWQlMjU4QyUyNSUzQVM5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyRTQlM0JxLldJKSUzQVJGOCUyQylQJTNCNEdhTSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJCbFAlNUIlNjBYSypkZlY2JTdCcSU1RCUyQ3VTdU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMkg1JTI1XyUyRmEhbyUzQihjZDJmfnQhJTJCJTVFUSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMmElM0F5OTE2VyFTJTI1SCU3Q3BiNXFRbCUzQUolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VobS1ycGMuMi4wMDAxRDNDOTlDQjE2MS42LlBPV0VSJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJGYSklM0ZfQXF+VShIOSglNUJEN0JhQTIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlEwJTJGRipVbCUyNGppaGhTSmopJTVFWiU3Q2clMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3Rpdi5aZWl0X01pbnV0ZW4lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTdDVlA5US14VTg0NCUzRmglN0NyMCU1RDlNQyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJpbnRlcnZhbCUyMiUyMGlkJTNEJTIyMUglN0Q3SyUyM2NMcTQlM0ZkNzI2aCpYSUMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFSW50ZXJ2YWxsJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfc2V0aW50ZXJ2YWwlMjIlMjBpZCUzRCUyMiUyM1p3bmt5bGV+RXlFNlY0NzclN0RGJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRUludGVydmFsbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIySU5URVJWQUwlMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9jaGFuZ2UlMjIlMjBpZCUzRCUyMjE0NCU1RFZTSlBqOHAlNUUlM0JqQWpsMnFUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJVeCUyQiUyQyUzQTUlM0YlMkZRc1N5JTJCZ35UJTNGJTNGWm8lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VTZWt1bmRlJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxUQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyQyElM0JJUFhRJTdEMGl3b0QlNUV1TEl2NyUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJaSSUzQXQxV3Ihck1TJTYwbCU1RXQoNDNxJTVCJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIybTM0bzIlMjNUZVZpJTNEVW91WCUyRnglMjVMOSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjIlNURyR2kxZWolNUJiaVVHM1VYOFFueiUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyOCpmJTJGVkttalFfcmNNanAlMjVIdCU1RCUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTU5JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2NoYW5nZSUyMiUyMGlkJTNEJTIya20ubFdpMXMlNUJkTCUyRjNzbSElMkNQWiUzQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMmtlKlclN0JhJTdDanghbHB0dDFMeUZWaSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU1RCUyRllhU3klM0QlMkJkejVjISUzRGV3LXQqSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIydHgySC4hJTI1WCU1RCU1RVIlNjB0UGlHeXBpJTNEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiFlJTNBU194LWlNVE13aVQlNjB6SVIlMkNpJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXYuWmVpdF9NaW51dGVuJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTI0NEZZRSU1RCUyQyUzREFSTCUzQU9NSWsxJTNCJTNCdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJfWHZmS0h+RTFvYSU3QldlUlM4JTI0JTNGciUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2LlplaXRfU2VrdW5kZW4lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJoQ2lKNC5uaSolMkZEUyUzQnpaJTdCWVdtaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlh4alJHLXd4JTdCR2lzJTdDUCU3RGolMjV3aSU3QiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyOCU1RGolNUROUHkwcHpnXyU0MGZ5NyUyM3B1OSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUzREs1ZThTJTdEcG0oJTJCYSUyNDRzJTQweiUyQyUyQyUyRiUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2X1N0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU2MGVZQWUlN0MlM0RQIVpTY2NYKU44UFZ5JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJTQ2IlMjMlM0Y4RlFxVUJtLmI5MUcqOWolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lX2dldCUyMiUyMGlkJTNEJTIybCU1RFktSzMtWXE5SWVUcSUzQjZlSiUzQkQlMjIlM0UlM0NtdXRhdGlvbiUyMGZvcm1hdCUzRCUyMmZhbHNlJTIyJTIwbGFuZ3VhZ2UlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1BUSU9OJTIyJTNFc2lkJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfY2FsbG5vcmV0dXJuJTIyJTIwaWQlM0QlMjIyZFclMkJEN1hjUHpqcCUyM3JqV2MlNUIlMkNJJTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyZXR3YXMlMjB0dW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyTWVsZGV0ZXh0JTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTIzZVYxazRibDMlMkYqdCUzRE9xJTNBRHJydyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VEZXIlMjBHZXNjaGlycnNwJUMzJUJDbGVyJTIwd3VyZGUlMjBhbmdlc2NoYWx0ZW4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyc2EuJTI1QXg1STZDYUUyRSUzRGwlNjAoX3IlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJVM053dWglM0JtIUE0MSUyRkslMkY3ckspciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTM1JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMlU4JTJGbyUyMzhqTGFUb1RpJTNGQ2clMkJqJTdEViUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuQWxleGEuU3ByYWNoYXVzZ2FiZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRXNlYyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ0xFQVJfUlVOTklORyUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMm9nJTdDJTNCUX5YJTI1eW14dCU1RSU3RFRqVCUzREUoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRURlciUyMEdlc2NoaXJyc3AlQzMlQkNsZXIlMjB3dXJkZSUyMGFuZ2VzY2hhbHRlbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJWMkYlNURtJTdDJTNBWUhtTWMhJTIzMDAlNjBMJTJGJTNBJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZX01TJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNMRUFSX1JVTk5JTkclMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyISU1QlowVVolNDAlN0QwIShrQzclMjMlM0ZvJTVCa1olMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U0MCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJ4UX5BeGpwJTVFeCU3RHhJYyU3RCUzRiUyQ35iZDMlMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIybSUzQUYlNUJBJTJDQyU1RDIzJTdCdFZHLiU1QjlvZ3glMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUdUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJ+OWhtLmJuN0p1UiU2MDlUJTVFNTdyJTdDISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkpmbFYlNUVydjFfM3kpJTJDRiUzRmpZfjNSJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyV1pxZXFycWJ4JTNEekItJTQwRCl+bF8hJTIyJTIwaW5saW5lJTNEJTIyZmFsc2UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMjIlMjMlMkMyJTdCVXpLVVhLYy1iJTNCYVhJJTVEZCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFRVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlglN0M3SUVxJTJCJTIzZVE2VSU1REslNDBRWkRMXyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjI4OCU1Qng5VFF0VCU2MGhrYWdYJTNGdXglM0I2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiUzQjVUMndqaGdSa0k0YSUzRGZQJTNEdHhBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlglN0M1JTNCV0tfNiUyQmIqWDdkV1RoZFlGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJKaHZZJTIzbTJlKSU3QmlaZyolN0RVKVU3JTNEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJxZDJqY1pTWC5qJTYwbWFrcy0wWEdHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyLVklN0RabWYlNUUlMjNobSUyQ1d5TDYpS2NkLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTUlOVVMlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU1RX5wfiUyM1UhUiUyQmVhSmphV342VSlkJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyYyUyRmIlM0J0ZWg3Qi50ZmF2VyUyMzNLeDIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNSU1REpPJTNEbktGJTNGczJiWU8lNUJ5ZXhULiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRUFVUyUyMFphZWhsZXIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMkYlNDBkU3daJTdCSHBiS2s2eTNfcSUzRmp6JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU3Q0Z+JTNENHNnNk9jYjc0ciU1REQwODVXJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyaUhwRX4lM0R1VWlDMEhZWkUwaXhmdiUyMiUyMGlubGluZSUzRCUyMmZhbHNlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VBTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJ+JTNEJTYwQUtrVilwLkxSSyU3Qy0peW0lMjMwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTdCYk1QM1JjdCU1RHN+JTVFT3hCJTVFS1lKQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWhtLXJwYy4yLjAwMDFEM0M5OUNCMTYxLjYuUE9XRVIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMll+TE0lMkMzYSU3RDIlMkI4dUJlJTI0Y3MlNUIobyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiFjQVIlNDBrYWdrZG4lMkZkdSFsZzUlM0ZyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyOVRnZ0RmcWxUaiUzRjRPTyUzRCU0MCU2MH5lTyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5WaXMuR2VzY2hpcnJzcCVDMyVCQ2xlci5Ba3RpdiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJTMVIha1M5LSUzRmtRayUyQktTXzVRcyUyMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8yJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9jaGFuZ2UlMjIlMjBpZCUzRCUyMlQudW41JTNELnJkTGwlNDB3b0duKjRvSiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1JTVESk8lM0RuS0YlM0ZzMmJZTyU1QnlleFQuJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFQVVTJTIwWmFlaGxlciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyREVMVEElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUzRmMlM0RwWExPYzYxdjNBSlAuKGQlM0FrJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMk1hJTNCJTNGJTVFWDUhcnQuV3J0VCUzRHFFdiUyNSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIySiEwY3ZURyUyM2htJTJCLnZwT21QJTJCRGglMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIlMjVBYk1PJTNGSjJEJTVCZi1yQ0VXeXElM0RPJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnU1RlpOc3lwZ3MlM0FwUFVZc1YxJTNEZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTI1JTVESk8lM0RuS0YlM0ZzMmJZTyU1QnlleFQuJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFQVVTJTIwWmFlaGxlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIydWFIUCU1QlAzd3QtIWglNDBNIVVFJTVEZVglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U3JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyNU03ZUpvbEYzUlBLR3MtWSUyRlI1eSUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMmV0d2FzJTIwdHVuJTIyJTNFJTNDYXJnJTIwbmFtZSUzRCUyMk1lbGRldGV4dCUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVJHMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMndWJTJGQXcycS0lMkNsJTVEY2gwY3olM0FpRyU3QiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VEZXIlMjBHZXNjaGlycnNwJUMzJUJDbGVyJTIwaXN0JTIwZmVydGlnJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMkM3JTIzTSEpTUJObFhXRmRSeXUoMSUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyT0MlM0FiV2glNUJlMi1iSyU1RVVaZ1hCcmQlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VXYXNjaGRhdWVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyZndhMGR2bG4xbV90JTI1eTRkJTVEJTNEKnYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJXOGclM0IlMjN0RnolMjVWOEt4JTQwIW1qdXFqJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZV9nZXQlMjIlMjBpZCUzRCUyMiUyNSUzQiU0MGI4S05USFJlbiU1QkxQMEZ2SyUyQyUyMiUzRSUzQ211dGF0aW9uJTIwZm9ybWF0JTNEJTIyZmFsc2UlMjIlMjBsYW5ndWFnZSUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUFRJT04lMjIlM0VzaWQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlNDBsIWgxbE9NcFhsbzhOJTdEeSUzQSU3QiU1RCUyQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlhPcG0pQSU0ME8lMjVURiUzQShTQXk3KEklN0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJ0aW1lb3V0JTIyJTIwaWQlM0QlMjI4JTQwRzJ2ZnROUSUzQmJnJTJDJTdEX28uJTdDLV8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFdGltZW91dCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMiUzQlJldE0lNUQxTk1ucShnTTIlM0YqNnZPJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFNSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVU5JVCUyMiUzRW1pbiUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFydGltZW91dCUyMiUyMGlkJTNEJTIySk92RzQwJTQwUiU1RCUyNXRfJTNGJTVCNFEzJTNERiUyNCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0MiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMmYlNjB+S25JSSUzRCUzQnIlNUQlMjMoJTJGJTNBaiUyQyUyQk1FJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQyJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTQlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VtaW4lM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyNkoyayUzRCUyNCU1RUJLTXlFfiUzQm9CKkZZJTVEJTIyJTNFJTNDbXV0YXRpb24lMjBuYW1lJTNEJTIyZXR3YXMlMjB0dW4lMjIlM0UlM0NhcmclMjBuYW1lJTNEJTIyTWVsZGV0ZXh0JTIyJTNFJTNDJTJGYXJnJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBUkcwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9qb2luJTIyJTIwaWQlM0QlMjJTVX5TbWclNUQlN0NQSldOJTVFWWhUJTYwJTJGVUglMjIlMjBpbmxpbmUlM0QlMjJmYWxzZSUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjI3JTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyWSgqWEptXyEha3AuV0J1ZTQ5T3YlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwU3AlQzMlQkNsdm9yZ2FuZyUyMGRhdWVydGUlMjAqJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfcm91bmQlMjIlMjBpZCUzRCUyMmc2UCU3QkklM0ExRyUzRm80c01iTyU0MCFWcHAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRVJPVU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJOVU0lMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiUzRk5mJTJDN0UwNEljaSUyNSlfX05OJTdDRzMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UzLjElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyJTdCJTIzNThGJTJCZWwlMkJuYTdWOFlyJTdCZHAlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRURJVklERSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyaUw5OSU3REU4ZUklNUItZkNzJTNEZkkxM0UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJmSUZsUUhfVExGfjIlNUJGcHpXeVMlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9DJTNBYldoJTVCZTItYkslNUVVWmdYQnJkJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFV2FzY2hkYXVlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMnQlNDAoRkpJKVp2S0R5JTNCcyUzQiU1RCUzRG9EJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNjAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJWJTJDYlolNjAyMCU3Q3YlMkJVU3ZZVUNIOSUyRiU1RSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTYwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyRCFHakxybSU0MHdKU0xIVFIxRCU1RE1mJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyME1pbnV0ZW4qJTIwdW5kJTIwaGF0JTIwKiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDMlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMnlEcGZjViUyNERjSk9DVVQ5JTYwWk1BLiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXNvdXJjZWFuYWx5dGl4LjAuaG0tcnBjX18yX18wMDAxRDNDOTlDQjE2MV9fNl9fRU5FUkdZX0NPVU5URVIuMjAyMC5jb25zdW1lZC4wMV9jdXJyZW50X2RheSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJ+YWolMjNacDdRNSU1QnRrUHUyWiUyQkU5JTVFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyMGtXaColMjBFbmVyZ2llJTIwZiVDMyVCQ3IlMjAoKiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMilfNS4lNUVFRC1WWVh+REJLc3NRWUclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0Vzb3VyY2VhbmFseXRpeC4wLmhtLXJwY19fMl9fMDAwMUQzQzk5Q0IxNjFfXzZfX0VORVJHWV9DT1VOVEVSLjIwMjAuY29zdHMuMDFfY3VycmVudF9kYXklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ2JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyNGslMjUueSUyQlBCJTJCRyUzRE1+dVJ2eSU3Q0MlNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTIwJUUyJTgyJUFDKiklMjB2ZXJicmF1Y2h0LiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJIdmQydkwpcHRjNCUyRnNmam9QM0t4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjUlNURKTyUzRG5LRiUzRnMyYllPJTVCeWV4VC4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VBVVMlMjBaYWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJZeiU2MClyeiUyQy5lc3g4JTQwbEMlMkJkbW0lNUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMnNqMFpBRyUzREVMUS0lN0NYZVdtdEVnMyUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyZVglN0NCZiU3Qm9XJTJCJTI1QkFXLlklM0Epa2JLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiU1RCUyMzdZZUclM0ZJVEYhJTdEKjlkOG1yNUglMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWFsZXhhMi4wLkVjaG8tRGV2aWNlcy5HMDAwUkEwNzg0MTcxMk4xLkNvbW1hbmRzLnNwZWFrLXZvbHVtZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJPeUhmLVQ4OSU1QjJhbkJqT2NYbHVZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMzUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyV21+QihFVUlEJTdDTjR4M0NjcEolM0I0JTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMnRydWUlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWphdmFzY3JpcHQuMC5BbGV4YS5TcHJhY2hhdXNnYWJlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTJDJTVCJTYwfkRudVklN0RGM2slNjBJUUwuJTI1SU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwR2VzY2hpcnJzcCVDMyVCQ2xlciUyMGlzdCUyMGZlcnRpZy4lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyTnElN0JqJTNCJTI1c2trJTdCb2VHUl9KKTlVZSUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5FY2hvLURldmljZXMuRzAwMFJBMDc4NDE3MTJOMS5Db21tYW5kcy5zcGVhay12b2x1bWUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRTEwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMjUpWmclM0RtQWxVJTJCbyUyQ2drJTNBJTQwSU9oJTI1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNDAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyJTdDelYlM0JCRSUyNWpISiU1RCU3Q2c0bzglN0IlNUJRcCUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJ0cnVlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VobS1ycGMuMi4wMDAxRDNDOTlDQjE2MS4zLlNUQVRFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyfnFtOSU2MCU3Qkt6JTNCJTYwcSgzRi5MaWFzSCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIuM34lMkI1KG0lM0RrQyFjSSUzRCUyNVBaRlMlMkIlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFamF2YXNjcmlwdC4wLlZpcy5HZXNjaGlycnNwJUMzJUJDbGVyLkFrdGl2X1N0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVlfTVMlMjIlM0U1JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMklPKTUwUX5tMVIlM0ZrflhLa1JmSjclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiUyM05XSiU0MGQoTXNQZiU1RGgpcylzeC4xJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VqYXZhc2NyaXB0LjAuVmlzLkdlc2NoaXJyc3AlQzMlQkNsZXIuQWt0aXZfU3RhdGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyS2xlIVdFJTIzU35VM3hhSGhnMyUyQkglMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFyaW50ZXJ2YWwlMjIlMjBpZCUzRCUyMiUyMyElNUVFcDlGaU83NjIlMjNsJTdDZV8lMkZRTiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0VJbnRlcnZhbGwlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjIlNUUlM0QlMkNMJTI1JTJDV2hrV1VCbUlaSV9BJTNEdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVHp5ZDVxWTlxJTVCZW8qJTNGNCUyQ00uQSUyQiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRU1pbnV0ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyITVYTyU3QiUyNSU3Qm4zJTNCZzVIRGdSVWtnZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyQlVJbWJISTFOQmlDZiUyQmNCc2ktbCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyVXglMkIlMkMlM0E1JTNGJTJGUXNTeSUyQmd+VCUzRiUzRlpvJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFU2VrdW5kZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyYlAlNUJSMjRoJTJDdUxRRCU1QmYzQjFaNkglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJ+TmFDJTVFRG15eSU3Q3hEdlMlNUIlNUQ0aCFoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0Vsb2clM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyKCpNSW90dUx+aTklNUVhfnUlN0N+NUglN0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGVyJTIwR2VzY2hpcnJzcCVDMyVCQ2xlciUyMGlzdCUyMGpldHp0JTIwZmVydGlnJTIwc2NoYWx0ZSUyMFN0cm9tJTIwYWIlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2RlZm5vcmV0dXJuJTIyJTIwaWQlM0QlMjIhKCU0MG4tJTNBJTJCIVBqSiU1RSU1RXFINiU3Q1YlNURKJTIyJTIweCUzRCUyMjc4OCUyMiUyMHklM0QlMjIxMyUyMiUzRSUzQ211dGF0aW9uJTNFJTNDYXJnJTIwbmFtZSUzRCUyMk1lbGRldGV4dCUyMiUyMHZhcmlkJTNEJTIyZnItTnNKbiUyQnhEMCU2MEl3QUZxJTQwJTI1LiUyMiUzRSUzQyUyRmFyZyUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRWV0d2FzJTIwdHVuJTNDJTJGZmllbGQlM0UlM0Njb21tZW50JTIwcGlubmVkJTNEJTIyZmFsc2UlMjIlMjBoJTNEJTIyODAlMjIlMjB3JTNEJTIyMTYwJTIyJTNFQmVzY2hyZWliZSUyMGRpZXNlJTIwRnVua3Rpb24lMjAlRTIlODAlQTYlM0MlMkZjb21tZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQUNLJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHVzaG92ZXIlMjIlMjBpZCUzRCUyMjRwUW51Q1BRbyUzRndIazdzTiUzQSU0MF92JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIySU5TVEFOQ0UlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNPVU5EJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJQUklPUklUWSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkxPRyUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTUVTU0FHRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJDVGJJV3NWRzVCKnBwYiU1RHdMJTJGY0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFdGV4dCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTYwUXhoYmdNcVZXV01vRyUzQlclNUJZdWYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMmZyLU5zSm4lMkJ4RDAlNjBJd0FGcSU0MCUyNS4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VNZWxkZXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJUSVRMRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiUyNS1oKCU1RWpwb3JWJTNGJTVFJTVEJTVFa0tVNmpnJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyQiUyQiUyQiUyMEdlc2NoaXJyc3AlQzMlQkNsZXIlMjAlMkIlMkIlMkIlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
                        
                        apollon77A Offline
                        apollon77A Offline
                        apollon77
                        schrieb am zuletzt editiert von
                        #184

                        @Homer-J Neee sorry aber Blockly XML les ich net :-) Bitte das generierte Javascript posten oder das Bild :-) Bin nur handy gerade und auch sonst dauert Blockly import und gedöhns zu lang

                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                        1 Antwort Letzte Antwort
                        0
                        • apollon77A apollon77

                          @Dr-Bakterius sagte in Beta Test js-controller 3.0.x auf GitHub:

                          Der rflink-Adapter konnte keinen Serial-Port finden. Auch eine Neuinstallation des Adapters hat nicht geholfen. Dieses Problem konnte ich dann durch folgenden Befehl im iobroker-Verzeichnis lösen (hat halt dann rund 15 Minuten gedauert alle Adapter neu zu installieren):

                          Ja ich fürchte hier greif das Auto-Rebuild nicht weil das nicht verfügbare Serialport im ersten schritt für Admin abgefangen wird und somit keine Exception fliegt. Was hat das Log genau gesagt?

                          Dr. BakteriusD Online
                          Dr. BakteriusD Online
                          Dr. Bakterius
                          Most Active
                          schrieb am zuletzt editiert von
                          #185

                          @apollon77 sagte in Beta Test js-controller 3.0.x auf GitHub:

                          Ja ich fürchte hier greif das Auto-Rebuild nicht weil das nicht verfügbare Serialport im ersten schritt für Admin abgefangen wird und somit keine Exception fliegt. Was hat das Log genau gesagt?

                          Sorry, das ist weg. Hatte vor einem zweiten Versuch einen Snapshot wiederhergestellt und dann gleich das reinstall gefahren.

                          1 Antwort Letzte Antwort
                          0
                          • BBTownB BBTown

                            Sodele, ich habe die v3.0.6 auch einmal zusammen mit node.js v12.16.2 installiert.
                            Die Installation verlief fehlerfrei, alle Adapter sind grün! :+1:

                            In den Logs habe ich zum Einen die hier bereits erwähnte Warnung
                            adapter.objects.getObjectView is deprecated ...
                            Bei mir kommen diese wiederkehrend vom iot.0 und vom web.0 Adapter sowie einmalig vom admin.0

                            Vom broadlink2.0 Adapter erhalte ich wiederholt die Warnung:
                            State value to set is invalid for broadlink2.0.RMproWohnzimmer.Temperature: The state contains the forbidden properties user!

                            Beim Start des iot.0 Adapter kommen dann noch diese Meldungen:

                            
                            iot.0	2020-04-12 12:29:17.324	warn	(2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer!
                            iot.0	2020-04-12 12:29:17.281	warn	(2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer!
                            iot.0	2020-04-12 12:29:17.143	warn	(2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer!
                            iot.0	2020-04-12 12:29:16.779	warn	(2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer!
                            iot.0	2020-04-12 12:29:16.779	warn	(2413) adapter.objects.getObjectView is deprecated, and will be removed in the future. Please use adapter.getObjectView/Async. Report this to Developer!
                            iot.0	2020-04-12 12:29:16.771	warn	the module (for instance, using `npm rebuild` or `npm install`).
                            iot.0	2020-04-12 12:29:16.771	warn	NODE_MODULE_VERSION 72. Please try re-compiling or re-installing
                            iot.0	2020-04-12 12:29:16.771	warn	NODE_MODULE_VERSION 64. This version of Node.js requires
                            iot.0	2020-04-12 12:29:16.771	warn	was compiled against a different Node.js version using
                            iot.0	2020-04-12 12:29:16.771	warn	(2413) Cannot initialize getImage: Error: The module '/opt/iobroker/node_modules/canvas/build/Release/canvas.node'
                            

                            Ach ja, schöne Ostern an alle ;-)

                            Dr. BakteriusD Online
                            Dr. BakteriusD Online
                            Dr. Bakterius
                            Most Active
                            schrieb am zuletzt editiert von
                            #186

                            @BBTown sagte in Beta Test js-controller 3.0.x auf GitHub:

                            In den Logs habe ich zum Einen die hier bereits erwähnte Warnung
                            adapter.objects.getObjectView is deprecated ...
                            Bei mir kommen diese wiederkehrend vom iot.0 und vom web.0 Adapter sowie einmalig vom admin.0

                            Bei mir noch beim Info-Adapter und beim MaxCube-Adapter. Auf Github gibt es dazu schon entsprechende Issues.

                            1 Antwort Letzte Antwort
                            1
                            • apollon77A apollon77
                              Aktuelle Test Version 3.0.6
                              Veröffentlichungsdatum 08.04.2020
                              Github Link npm install ioBroker/ioBroker.js-controller

                              Hallo in die Tester-Runde,

                              wie im neuen Release-Cycle für den js-controller geplant starten wir heute den Beta Test des neuen js-controller 3.0 (Releasename "Elena"). Wie auch bei den letzten beiden Versionen starten wir die erste Teststufe direkt von GitHub. Also bitte nur mitmachen wenn Ihr wisst was das heisst :-) Aber auch der Weg zurück ist unten beschrieben.

                              Nach dem frühzeitigen aus für Node.js 8 bereits letzten November setzt diese neue Version nun Node.js 10.x voraus und funktioniert ebenso mit Node.js 12.x und, nach aktuellem Stand, auch mit der Ende April kommenden Node.js 14.x. Wir werden mit diesem Release auch die empfohlene Node.js Version für ioBroker auf 12.x anheben.

                              Diese Version bringt einige Features mit, ist aber ebenso der Beginn um "unter der Haube" einiges zu vereinheitlichen und Wildwuchs in der Umsetzung einiger Adapter etwas einzugrenzen. Es gibt allerdings auch neue Features mit die die Adapter-Entwicklung vereinfachen und Hürden abbauen. Aus diesem Grund ist auch die Liste der Themen welche vor allem für Entwickler relevant sind diesmal recht lang.
                              Allerdings werden Aktionen von Adaptern die eigentlich den Regeln widersprechen jetzt über Logging sichtbar gemacht. Bitte unterstützt hier und legt bei den relevanten Adaptern Issues an das diese Dinge gefixt werden können. Für den js-controller 3.1 (ca. September 2020) ist es geplant einige dieser "verbotenen Aktionen" auch wirklich zu verhindern. Details sehen wir dann.

                              Der js-controller hat jetzt standardmässig Sentry als Fehler-Reporting eingebaut und aktiviert. Wenn also der js-controller mit einer Fehlermeldung abstürzt (und nur dann!) werden die Fehlerdetails anonymisiert an einen von uns selbst in Deutschland betriebenen Sentry-Server gemeldet. IPs o.ä. personalisierte Daten werden nicht gespeichert. Dieses Fehler-Reporting hilft uns bei Crashes schneller und genauer zu sehen was los ist und solche Fehler noch schneller beheben zu können. Bitte legt für Crashed die Ihr seht bitte trotzdem weiterhin GitHub-Issues an und unterstützt uns indem Ihr das Fehler-Reporting aktiviert lasst. Weitere Details und wie es deaktivierbar ist findet Ihr unter https://github.com/ioBroker/ioBroker.js-controller/blob/master/README.md#error-reporting-via-iobroker-sentry

                              Darüber hinaus gibt es natürlich viele Optimierungen und Fixes. Mehr dazu weiter unten und im Changelog. Ich hoffe auch diesmal auf Eure tatkräftige Unterstützung, sodass der Latest-Release dann genau so reibungslos verläuft wie bei der 2.2!

                              Ich bedenke mich diesmal besonders bei @foxriver76, @AlCalzone und natürlich @Bluefox für die aktive Mitarbeit an dieser Version!

                              Der js-controller 3.0 ist generell kompatibel mit allen bestehenden ioBroker-Systemen. Ein Update von der 2.0/2.1/2.2 ist problemlos möglich. Nur die Node.js Version muss jetzt mindestens 10.x sein, wie oben bereits ausgeführt. Wer überlegt die Node.js Version anzuheben bitte weiter unten im Abschnitt "Was ist zu testen" lesen :-)


                              Installation


                              VOR der Installation
                              Wie bei jedem Test dieser Art: Bitte macht ein Backup! iobroker backup bzw kopieren des iobroker-data Verzeichnisses reichen an sich aus. Bitte nicht das node_modules Verzeichnis einfach kopieren, da sonst symbolische Links kaputt gehen können, was zu größeren Problemen danach führt. Die alte Version des js-controller kann im Notfall einfach wieder per npm install iobroker.js-controller@version installiert werden und sollte alles wieder herstellen.

                              Windows

                              Auf Systemen, die mit dem neuen Windows Installer eingerichtet wurden, darf der js-controller nicht mit npm aktualisiert werden. Es wird eine neue Version des Windows Installers geben, die das Update des js-controllers mit wenigen Mausklicks ermöglicht. Wir updaten dazu hier im Thread.

                              Linux

                              Für den Beta-Test muss der js-controller direkt per npm installiert werden. Dazu bitte den ioBroker auf dem Server beenden und dann in einer Shell UNBEDINGT in das ioBroker Verzeichnis wechseln. Dann mittels npm install ioBroker/ioBroker.js-controller den Controller manuell aktualisieren. Bevor ihr loslegt, lest aber bitte erst noch die folgenden Hinweise! Der zweite Post in diesem Thread ist für eine FAQ reserviert. Bitte schaut auch dort gern einmal rein.

                              Achtung: Slave-Systeme zuerst!
                              Bei einem Multi-Host-System, welches auf js-controller 2.2 läuft ist es beim Update auf Version 3.0 empfohlen, zuerst die Slave-Systeme zu aktualisieren. Der Master wird als letztes aktualisiert!

                              Bei Updates von Master/Slave-Systemen mit js-controller 1.5 oder früher auf die 3.0 müssen zwingend zuerst die Slaves und der Master als letztes aktualisiert werden. Die Slaves bleiben nach dem Update offline und werden erst wieder funktionieren wenn auch der Master auf die 3.0 aktualisiert wurde!

                              Nötige Adapter-Aktualisierungen

                              • Pushover funktioniert in Version 1.1.x. Wer Version 1.2.x drauf hat könnte Probleme bekommen und sollte bitte 1.3.0 vom GitHub versuchen ob die Probleme damit behoben werden.
                              • tr-064 in Version 4.0.0 ist nötig
                              • tr-064-community wird nun offiziell nicht mehr funktionieren.
                              • Die soef Adapter "firetv" und "wifilight" funktionieren nicht mehr und haben Updates bekommen: Bitte wifilight 1.1.0 bzw firetv 1.0.0 nutzen. Falls jemand "wifilight-community" oder "firetv-community" nutzt bitte wieder zurück auf die anderen wechseln.
                              • Der soef Adapter "Lightify" funktioniert ebenso nicht mehr. Da Lightify als Platform allerdings in ein paar Monaten nicht mehr weiter betrieben wird haben wir entscheiden hier keinen Aufwand mehr reinzustecken. Am besten die Geräte über zigbee direkt anbinden.

                              Es werden aber, wie oben ausgeführt, einige Adapter ggf Warnungen ins Log schreiben. Hier ist beispielsweise radar2 schon bekannt. Falls das Problematisch ist ist aktuell die einzige Option das Loglevel der Instanz auf "Error" zu setzen.

                              Fehler
                              Wenn bei der Installation Fehler wegen fehlender Zugriffsrechte auftreten, am besten den Installation-Fixer (iobroker fix wer schon einen js-controller 2.x hat, alternativ weiterhin manuell via curl -sL https://iobroker.net/fix.sh | bash -) nutzen und die Installation wiederholen.

                              Falls es auch danach noch Fehler gibt, bitte die Installation erneut mittels sudo -H -u iobroker npm install ioBroker/ioBroker.js-controller versuchen. Bitte berichtet solche Fälle hier im Thread.

                              Nach der Installation
                              Nach der Installation den ioBroker wieder starten (z.B. mittels iobroker start).

                              Wenn alles klappt merkt Ihr außer der höheren Versionsnummer in der Host-Ansicht im Admin keinen Unterschied. Alles funktioniert weiterhin wie vorher. Alle Adapterinstanzen starten und funktionieren. Wenn das so ist hat alles geklappt. Die großen Änderungen sind alle "Unter der Haube" versteckt.

                              Falls im Log Warn-Meldungen auftauchen mit dem Hinweis diese an den Entwickler zu senden, dann bitte schauen welcher Adapter es ist und entsprechend dort Issues bitte anlegen!


                              Was hat sich geändert, was besonders ansehen/testen?


                              Neben einiger weiterer Bugfixes gibt es folgende Änderungen und Fixes zu erwähnen:

                              • Der neue js-controller kann erkennen wenn es ein Node.js Update gab durch welches ggf, Adapter nicht mehr funktionieren und sollte diese automatisch reparieren (rebuilden). Wer also überlegt in dem Zuge des Tests seine Node.js Version anzuheben bitte mal explizit NICHT die übliche Anleitung nach dem Node-js update mit dem Rebuild befolgen sondern ioBroker einfach nach dem Node.js Update starten. Interessant ist ob sich alles selbst "heilt" :-)
                              • Der js-controller prüft jetzt vor jedem Start eines Adapters wieviel RAM noch frei ist und warnt im Log falls dies zu wenig ist. Die Limits sind 100MB (Warnung) bzw. 50MB (Fehler) und dies soll verhindern das mehr Adapter-Prozesse genutzt werden als RAM verfügbar ist. Hier sind wir gespannt auf Eure berichte.
                              • Logfiles sollten jetzt wirklich nach dem täglichen rotieren auf Linux-Systemen als .gz Dateien abgelegt werden.

                              Wie bereits gesagt, viele Änderungen fanden hinter den Kulissen statt. Hier für Interessierte als Spoiler eine Zusammenfassung:


                              3.0.6 (2020-04-07) Release Elena

                              BREAKING CHANGES

                              • Nodejs 8.x will be no longer officially supported! Supported are nodejs 10.x, 12.x and (most likely) 14.x

                              Features

                              • (Apollon77) Enable zip Archive setting that it is on by default again. All Logs on Linux will be packaged to .gz on rotation. This can be deactivated by configuration (see Documentation)
                              • (Apollon77) Introduce CLI command "iobroker rebuild <adaptername>" or "iobroker rebuild self" (for controller) to execute an npm install/rebuild for the specified adapter
                              • (Apollon77) Detect the need for a rebuild because of a nodejs update by checking adapter crash error message and execute the "iobroker rebuild" command for the affected adapter up to 3 times.
                              • (foxriver76) Add ability to define separate read and write id for aliases, introduce Adapter feature flag ALIAS_SEPARATE_READ_WRITE_ID for this (see Documentation)
                              • (foxriver76) Make file write intervals of objects and state file dbs configurable (see Documentation)
                              • (foxriver76) Check available RAM of the system before a new adapter process is started. If it is below 50/100MB log an error/warn and make it configurable via iobroker.json (see Documentation)
                              • (Apollon77) Add plugin system for js-controller and adapters (see Documentation)
                              • (Apollon77) Add and automatically enable Sentry as plugin for js-controller (see infos in README.md), can be disable per host via system.host.name.plugins.sentry.enabled (see Documentation)
                              • (AlCalzone) add iobroker extend object command

                              Optimizations and Fixes

                              • (bluefox) Show options for start/stop/restart if more than one instance exists for the adapter
                              • (AlCalzone) Validate arguments for iobroker del ... CLI command
                              • (bluefox) Log js-controller version by start of adapter too
                              • (Stabilostick) Set default certificate validity to 12 months, according to new Apple rules! Existing certificates will be recreated on controller installation if no custom certificate is used
                              • (bluefox) Also initialize objects with local redis connection details if setup command is called with "useRedis" parameter
                              • (foxriver76) Increase timeout of hostinfo command to prevent errors on systems with low CPU
                              • (foxriver76) The end of schedule adapters is no longer logged as error
                              • (foxriver76) Allow CLI commands to check status of an adapter instance
                              • (foxriver76) Enhancements and fixes for iobroker list files command, allow to specify exact meta folder name as parameter and not only the adapter
                              • (foxriver76) Add forced repository update to help, add logging to show that it is used
                              • (foxriver76) Also delete uploaded vis widgets on adapter deletion
                              • (foxriver76) Restart referenced restart-adapters after uninstall also
                              • (foxriver76) Prevent dot as last char of an object or state id
                              • (foxriver76) Improve performance on filter actions (getObjectView) when redis is used as objects database
                              • (Apollon77) Optimize sigKill handling to prevent restart loops for edge cases and slow system
                              • (Apollon77) Optimize errormessage for invalid protocol on database connection and make easier understandable
                              • (Apollon77) Also catch unhandled promise rejections in adapters and handle like exceptions to allow error detection and automatic restart
                              • (foxriver76) Also remove objects from Enums on object deletion
                              • (foxriver76) Fix adapter exiting with wrong exit codes
                              • (bluefox) Fix restart CLI command
                              • (foxriver) Update cache manifest correctly on visdebug and fix process exit on non existing vis dir
                              • (foxriver76) No longer require restart of instance after alias object changes and other alias optimizations
                              • (foxriver76) Make sure files in internal file storage are always stored with correct path and also automatically fix existing entries
                              • (foxriver76) fix crash of redis setState when undefined is passed and refuse undefined as value in general
                              • (Apollon77) Make sure objects update from/ts/user when extending objects in all cases
                              • (AlCalzone) optimize performance when objects are duplicated and checked internally
                              • (Apollon77) prevent crash if udp membership can not be added (Sentry fix)
                              • (Apollon77) change object type for compact groups to "folder"

                              Developer relevant DEPRECATIONS/WARNINGS

                              • (foxriver76) Do not allow access to adapter.states and adapter.objects anymore and add warning logs to deprecate the usage. js-controller 3.1+ will remove these methods. Please adjust your adapters
                              • (foxriver76) Verify that a proper object of type "meta" exists when files are accessed in the internal ioBroker storage and output deprecation logging, these actions will be declined in js-controller 3.1+
                              • (AlCalzone) Validate the object argument to set[Foreign]State[Changed] and log warnings, such invalid set commands will be declined with js-controller 3.1
                              • (Apollon77) Move deprecation of getMessage to next controller version (3.1+)
                              • (foxriver76/Apollon77) Validate that id in several state and object methods is of type string and log warnings
                              • (foxriver76) Add basic checking for obj.common properties including logging. Please check logs and fix them, such invalid objects will be declined with js-controller 3.1

                              Developer relevant new Features

                              • (bluefox/foxriver76) Automatically encrypt all config attributes that are listed in common.encryptedNative in io-package, introduce ADAPTER_AUTO_DECRYPT (see Documentation) Admin support missing as of now!
                              • (bluefox) Introduce new dependency field for io-package called common.globalDependencies to check for global dependencies (see Documentation). Admin support missing as of now!
                              • (AlCalzone) Add command iobroker debug adapter to start Node.js debug sessions for an adapter

                              Developer relevant Optimizations and Fixes

                              • (Apollon77) Make sure that all places in adapters for states and objects that can return "really async" (e.g. because of DB communication) ALWAYS return async! (else callback !--count constructs can fail)
                              • (foxriver76) Also set default values of instanceObjects defined in io-package.json
                              • (bluefox) Improve extension mode for web extensions
                              • (foxriver76) Optimize extendObjects function of adapter.js (use from and ack)
                              • (foxriver76) Use from and ack when creating instanceObjects on installation of an instance
                              • (Apollon77) Fix potential crash where name is no string in some File object operations
                              • (foxriver76) Fix this.stop being undefined on daemon adapters
                              • (foxriver76) Also respect def values of io-package.json on automatic object recreation due to instance start
                              • (foxriver76) Respect state.from if provided on setState
                              • (Apollon77) Enhance checks for getObjectsView response
                              • general dependency updates
                              • code style optimizations

                              Generell ist zu testen, ob alles noch so funktioniert wie vorher auch. Das ist das wichtigste!


                              Wie Fehler melden?


                              Wer sich unsicher ist, ob ein Fehler vorliegt, sollte am besten hier im Thread das Problem beschreiben. So können wir alle versuchen, das Problem nachzuvollziehen und ggf. einzugrenzen.

                              Sobald ein Fehler auftritt der in einer Fehlermeldung oder einen Crash mit Fehlerdetails im Log oder auf Kommandozeile endet, dann dazu am besten direkt ein GitHub-Issue im js-controller Projekt öffnen und zusätzlich hier im Thread posten. Je detaillierter die Angaben im Issue sind (genaue Fehlermeldungen/Logs, Infos zur OS- und Node.js-Umgebung sowie genaue Schritte zur Reproduktion des Problems), umso schneller können wir Fehler einkreisen und beheben.

                              Wir wünschen allen viel Spaß beim Testen und vielen Dank für Eure Unterstützung!

                              FAQ

                              FAQ1: Ich sehe Einträge wie "will not read this file (socketio.png) in future versions: socketio.admin is not an object of type "meta"" im Logfile Was soll ich tun?

                              Wenn der Name mit ".admin" lautet (wie hier "socketio.admin") dann bitte einfach ein "iobroker upload socketio" (in dem Fall) machen. Es kan sein das früher mal Admin Files nocht korrekt angelegt wurden oder auch Dinge nocht ganz vollständig gelöscht wurden. Das Upload geht auch wenn Ihr den Adapter gar nicht mehr installiert habt. Danach sollte aber die Meldung weg sein.

                              ChaotC Offline
                              ChaotC Offline
                              Chaot
                              schrieb am zuletzt editiert von
                              #187

                              @apollon77
                              Ich habe beieinem Update eine Fehlermeldung:

                              host.ioBroker	2020-04-14 07:38:33.524	info	iobroker exit 0
                              host.ioBroker	2020-04-14 07:38:32.508	error	iobroker Required dependency "hm-rpc" not found.
                              host.ioBroker	2020-04-14 07:38:30.806	info	iobroker upgrade hm-rega
                              host.ioBroker	2020-04-14 07:38:24.475	info	Update repository "latest" under "http://download.iobroker.net/sources-dist-latest.json"
                              

                              ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                              foxriver76F 1 Antwort Letzte Antwort
                              0
                              • ChaotC Chaot

                                @apollon77
                                Ich habe beieinem Update eine Fehlermeldung:

                                host.ioBroker	2020-04-14 07:38:33.524	info	iobroker exit 0
                                host.ioBroker	2020-04-14 07:38:32.508	error	iobroker Required dependency "hm-rpc" not found.
                                host.ioBroker	2020-04-14 07:38:30.806	info	iobroker upgrade hm-rega
                                host.ioBroker	2020-04-14 07:38:24.475	info	Update repository "latest" under "http://download.iobroker.net/sources-dist-latest.json"
                                
                                foxriver76F Offline
                                foxriver76F Offline
                                foxriver76
                                Developer
                                schrieb am zuletzt editiert von
                                #188

                                @Chaot und ist hm-rpc installiert?

                                Videotutorials & mehr

                                Hier könnt ihr mich unterstützen.

                                ChaotC 1 Antwort Letzte Antwort
                                0
                                • foxriver76F foxriver76

                                  @Chaot und ist hm-rpc installiert?

                                  ChaotC Offline
                                  ChaotC Offline
                                  Chaot
                                  schrieb am zuletzt editiert von
                                  #189

                                  @foxriver76
                                  Ja.
                                  Deshalb wundert es mich ja so.
                                  Ich habe nichts mit Homematic. Deshalb werde ich mal beides deinstallieren. Oder wird der innerhalb vom ioBroker für irgendwas gebraucht? Der war bei mir von Anfang an installiert.

                                  ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                  apollon77A 1 Antwort Letzte Antwort
                                  0
                                  • ChaotC Chaot

                                    @foxriver76
                                    Ja.
                                    Deshalb wundert es mich ja so.
                                    Ich habe nichts mit Homematic. Deshalb werde ich mal beides deinstallieren. Oder wird der innerhalb vom ioBroker für irgendwas gebraucht? Der war bei mir von Anfang an installiert.

                                    apollon77A Offline
                                    apollon77A Offline
                                    apollon77
                                    schrieb am zuletzt editiert von
                                    #190

                                    @Chaot naja warte doch mal bitte ... lass doch mal untersuchen ... nicht gleich den Holzhammer!!

                                    Hats Du ein oder mehrere Hosts?
                                    Zeig mal die Instanzliste bitte

                                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                    ChaotC 1 Antwort Letzte Antwort
                                    0
                                    • apollon77A apollon77

                                      @Chaot naja warte doch mal bitte ... lass doch mal untersuchen ... nicht gleich den Holzhammer!!

                                      Hats Du ein oder mehrere Hosts?
                                      Zeig mal die Instanzliste bitte

                                      ChaotC Offline
                                      ChaotC Offline
                                      Chaot
                                      schrieb am zuletzt editiert von
                                      #191

                                      @apollon77 Ich habe nur einen Host und kein Homematic System.
                                      Um zu testen habe ich jetzt nach Entfernen der Instanzen beide nochmals hinzugefügt und keine Fehlermeldung mehr erhalten.
                                      Du hats Recht. Ich hätte sinnvollerweise warten sollen. Hilft dir das Log weiter?

                                      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                      apollon77A foxriver76F 2 Antworten Letzte Antwort
                                      0
                                      • apollon77A Offline
                                        apollon77A Offline
                                        apollon77
                                        schrieb am zuletzt editiert von
                                        #192

                                        Hi,

                                        noch jemand anders hier mit einem hm-rega upgrade ausstehend?

                                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                        1 Antwort Letzte Antwort
                                        0
                                        • ChaotC Chaot

                                          @apollon77 Ich habe nur einen Host und kein Homematic System.
                                          Um zu testen habe ich jetzt nach Entfernen der Instanzen beide nochmals hinzugefügt und keine Fehlermeldung mehr erhalten.
                                          Du hats Recht. Ich hätte sinnvollerweise warten sollen. Hilft dir das Log weiter?

                                          apollon77A Offline
                                          apollon77A Offline
                                          apollon77
                                          schrieb am zuletzt editiert von
                                          #193

                                          @Chaot Ääähm mal so gefragt: welche Controller Version war es denn? Die 3.0.7? Oder eine frühere?

                                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                          ChaotC 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          787

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe