Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Fenster und andere Geräte zählen opt. Alexa Ansagen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    565

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Fenster und andere Geräte zählen opt. Alexa Ansagen

Scheduled Pinned Locked Moved Blockly
blocklyjavascript
1.2k Posts 41 Posters 435.1k Views 71 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • dslraserD dslraser

    @dirk1962
    Ich denke das mit dem sortieren habe ich jetzt gelöst...
    Es werden die eingeschalteten oben angezeigt(alphabetisch sortiert) und die ausgeschalteten darunter sind dann auch alphabetisch sortiert. Ich mach das die nächsten Tage dann mal fertig...

    Bildschirmfoto 2020-05-14 um 16.38.06.png

    dirk1962D Offline
    dirk1962D Offline
    dirk1962
    wrote on last edited by
    #326

    @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

    Ich denke das mit dem sortieren habe ich jetzt gelöst...
    Es werden die eingeschalteten oben angezeigt(alphabetisch sortiert) und die ausgeschalteten darunter sind dann auch alphabetisch sortiert. Ich mach das die nächsten Tage dann mal fertig...

    Das wäre echt super. Habe wahrscheinlich noch genügend Zeit zum Testen.:blush: :+1:

    NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

    dslraserD 1 Reply Last reply
    0
    • flkontaktF flkontakt

      @dslraser hallo, danke für deine Nachricht. Ich möchte für meine Visu zwischen EG und OG unterscheiden können, siehe Bild. Bei Klick auf die Fenstericons soll dann die Liste der geöffneten Fenster angezeigt werden. Aktuell zähle ich nur die Anzahl der Fenster die offen oder gekippt sind.

      Dein Script beinhaltet alle Daten die ich bräuchte, mir fehlt nur die Trennung EG und OG. Die States der Fenster habe ich den jeweiligen Funktionen zugeordnet.IMG_20200514_150433.jpg

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      wrote on last edited by
      #327

      @flkontakt
      Du meinst es wahrscheinlich so....?

      Bildschirmfoto 2020-05-14 um 17.05.27.png

      flkontaktF 1 Reply Last reply
      0
      • D DocGame

        @dslraser Danke schonmal....
        Soweit scheint es jetzt zu gehen. Habe noch 2 "Sensor unbekannt" nach denen ich noch forschen muss.
        Wenn das alles gut läuft kommt die nächste Geräteklasse dran. Gestern habe ich probeweise "Licht" getestet und mit ist Java vor lauter Warnmeldungen um die Ohren geflogen. Konnte nichtmal das Script aufgrung der Auslastung stoppen :anguished:
        Aber eins nach dem anderen....

        Fenster_IQontrol.JPG

        dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        wrote on last edited by
        #328

        @DocGame sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

        Habe noch 2 "Sensor unbekannt"

        Wenn Du die rausgefunden hast, sage mal bitte Bescheid, damit die auch noch integriert werden können.

        D 1 Reply Last reply
        0
        • dslraserD dslraser

          @flkontakt
          Du meinst es wahrscheinlich so....?

          Bildschirmfoto 2020-05-14 um 17.05.27.png

          flkontaktF Online
          flkontaktF Online
          flkontakt
          wrote on last edited by
          #329

          @dslraser das sieht sehr gut! So hatte ich mir das vorgestellt, was kann/muss ich anpassen?

          dslraserD 1 Reply Last reply
          0
          • dslraserD dslraser

            @DocGame sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

            Gestern habe ich probeweise "Licht" getestet und mit ist Java vor lauter Warnmeldungen um die Ohren geflogen. Konnte nichtmal das Script aufgrung der Auslastung stoppen

            Was für "Licht" hast Du denn ?

            D Offline
            D Offline
            DocGame
            wrote on last edited by
            #330

            @dslraser So ziemlich alles was der Markt hergibt.
            Verschiedenste Yeelight Modelle (yeelight-adapter)
            Verschiedene Hue Lampen (hue-adapter)
            Zigbee Lampen am Zigbee-adapter, einige auch am Deconz
            Einige Stripes am WLED-Adapter usw....
            Eine ziemlich bunte Mischung.
            Ich denke ich muss ein zusätzliches emum anlegen in die ich nur den state reinpacke. In dem jetzigen habe ich alles drin wg. Farbe dimmen usw. Das bringt sicherlich dein Blockly zum rotieren.

            dslraserD 1 Reply Last reply
            0
            • D DocGame

              @dslraser So ziemlich alles was der Markt hergibt.
              Verschiedenste Yeelight Modelle (yeelight-adapter)
              Verschiedene Hue Lampen (hue-adapter)
              Zigbee Lampen am Zigbee-adapter, einige auch am Deconz
              Einige Stripes am WLED-Adapter usw....
              Eine ziemlich bunte Mischung.
              Ich denke ich muss ein zusätzliches emum anlegen in die ich nur den state reinpacke. In dem jetzigen habe ich alles drin wg. Farbe dimmen usw. Das bringt sicherlich dein Blockly zum rotieren.

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              wrote on last edited by
              #331

              @DocGame sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

              So ziemlich alles was der Markt hergibt.

              ich möchte so nach und nach alle integrieren, dafür bräuchte ich jeweils einen RAW von so einem state. HUE über den HUE Adapter habe ich selbst, den brauche ich nicht.

              1 Reply Last reply
              0
              • flkontaktF flkontakt

                @dslraser das sieht sehr gut! So hatte ich mir das vorgestellt, was kann/muss ich anpassen?

                dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                wrote on last edited by
                #332

                @flkontakt sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                was kann/muss ich anpassen?

                ne ganze Menge...ist mir jetzt gerade zu lang das zu erklären. Würdest Du es genau so wie gezeigt haben wollen ?

                flkontaktF 1 Reply Last reply
                0
                • dslraserD dslraser

                  @flkontakt sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                  was kann/muss ich anpassen?

                  ne ganze Menge...ist mir jetzt gerade zu lang das zu erklären. Würdest Du es genau so wie gezeigt haben wollen ?

                  flkontaktF Online
                  flkontaktF Online
                  flkontakt
                  wrote on last edited by
                  #333

                  @dslraser die Datenpunkte würden mir völlig reichen, weitere Anpassungen würde ich hinbekommen, falls nötig. Wenn du etwas fertiges hättest, würde ich das gerne übernehmen. vielen dank für die Unterstützung!

                  dslraserD 1 Reply Last reply
                  0
                  • flkontaktF flkontakt

                    @dslraser die Datenpunkte würden mir völlig reichen, weitere Anpassungen würde ich hinbekommen, falls nötig. Wenn du etwas fertiges hättest, würde ich das gerne übernehmen. vielen dank für die Unterstützung!

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    wrote on last edited by dslraser
                    #334

                    @flkontakt sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                    die Datenpunkte würden mir völlig reichen, weitere Anpassungen würde ich hinbekommen, falls nötig.

                    Die Datenpunkte habe ich hiermit erstellt, die kannst Du ja in zwei Blocklys aufteilen.

                    Bildschirmfoto 2020-05-14 um 18.03.19.png

                    <xml xmlns="http://www.w3.org/1999/xhtml">
                      <variables>
                        <variable type="" id="q-e8vKpWl@Q9cU2jes}t">anlegen_in</variable>
                      </variables>
                      <block type="procedures_defcustomnoreturn" id="eZsGA^2r{c%G,YpuLp]K" x="13" y="62">
                        <mutation statements="false">
                          <arg name="anlegen_in" varid="q-e8vKpWl@Q9cU2jes}t"></arg>
                        </mutation>
                        <field name="NAME">Datenpunkte_anlegen_EG</field>
                        <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjEgKDI2IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwoKZnVuY3Rpb24gY3JlYXRlVXNlclN0YXRlcyh3aGVyZSwgZm9yY2UsIHN0YXRlc1RvQ3JlYXRlLCBjYWxsYmFjayA9IHVuZGVmaW5lZCkgewogCiAgICBjb25zdCBXQVJOID0gZmFsc2U7IC8vIE9ubHkgZm9yIDBfdXNlcmRhdGEuMDogVGhyb3dzIHdhcm5pbmcgaW4gbG9nLCBpZiBzdGF0ZSBpcyBhbHJlYWR5IGV4aXN0aW5nIGFuZCBmb3JjZT1mYWxzZS4gRGVmYXVsdCBpcyBmYWxzZSwgc28gbm8gd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGV4aXN0cy4KICAgIGNvbnN0IExPR19ERUJVRyA9IGZhbHNlOyAvLyBUbyBkZWJ1ZyB0aGlzIGZ1bmN0aW9uLCBzZXQgdG8gdHJ1ZQogICAgLy8gUGVyIGlzc3VlICM0NzQgKGh0dHBzOi8vZ2l0aHViLmNvbS9pb0Jyb2tlci9pb0Jyb2tlci5qYXZhc2NyaXB0L2lzc3Vlcy80NzQpLCB0aGUgdXNlZCBmdW5jdGlvbiBzZXRPYmplY3QoKSBleGVjdXRlcyB0aGUgY2FsbGJhY2sgCiAgICAvLyBiZWZvcmUgdGhlIHN0YXRlIGlzIGFjdHVhbCBjcmVhdGVkLiBUaGVyZWZvcmUsIHdlIHVzZSBhIHNldFRpbWVvdXQgYW5kIGNvdW50ZXIgYXMgYSB3b3JrYXJvdW5kLgogICAgY29uc3QgREVMQVkgPSA1MDsgLy8gRGVsYXkgaW4gbWlsbGlzZWNvbmRzIChtcykuIEluY3JlYXNlIHRoaXMgdG8gMTAwLCBpZiBpdCBpcyBub3Qgd29ya2luZy4KCiAgICAvLyBWYWxpZGF0ZSAid2hlcmUiCiAgICBpZiAod2hlcmUuZW5kc1dpdGgoJy4nKSkgd2hlcmUgPSB3aGVyZS5zbGljZSgwLCAtMSk7IC8vIFJlbW92ZSB0cmFpbGluZyBkb3QKICAgIGlmICggKHdoZXJlLm1hdGNoKC9eKChqYXZhc2NyaXB0XC4oWzEtOV1bMC05XXxbMC05XSkpJHwwX3VzZXJkYXRhXC4wJCkvKSA9PSBudWxsKSApIHsKICAgICAgICBsb2coJ1RoaXMgc2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgdG8gY3JlYXRlIHN0YXRlcyB1bmRlciBbJyArIHdoZXJlICsgJ10nLCAnZXJyb3InKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgLy8gUHJlcGFyZSAic3RhdGVzVG9DcmVhdGUiIHNpbmNlIHdlIGFsc28gYWxsb3cgYSBzaW5nbGUgc3RhdGUgdG8gY3JlYXRlCiAgICBpZighQXJyYXkuaXNBcnJheShzdGF0ZXNUb0NyZWF0ZVswXSkpIHN0YXRlc1RvQ3JlYXRlID0gW3N0YXRlc1RvQ3JlYXRlXTsgLy8gd3JhcCBpbnRvIGFycmF5LCBpZiBqdXN0IG9uZSBhcnJheSBhbmQgbm90IGluc2lkZSBhbiBhcnJheQoKICAgIC8vIEFkZCAid2hlcmUiIHRvIFNUQVRFU19UT19DUkVBVEUKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhdGVzVG9DcmVhdGUubGVuZ3RoOyBpKyspIHsKICAgICAgICBsZXQgbHBQYXRoID0gc3RhdGVzVG9DcmVhdGVbaV1bMF0ucmVwbGFjZSgvXC4qXC4vZywgJy4nKTsgLy8gcmVwbGFjZSBhbGwgbXVsdGlwbGUgZG90cyBsaWtlICcuLicsICcuLi4nIHdpdGggYSBzaW5nbGUgJy4nCiAgICAgICAgbHBQYXRoID0gbHBQYXRoLnJlcGxhY2UoL14oKGphdmFzY3JpcHRcLihbMS05XVswLTldfFswLTldKVwuKXwwX3VzZXJkYXRhXC4wXC4pLywnJykgLy8gcmVtb3ZlIGFueSBqYXZhc2NyaXB0LnguIC8gMF91c2VyZGF0YS4wLiBmcm9tIGJlZ2lubmluZwogICAgICAgIGxwUGF0aCA9IHdoZXJlICsgJy4nICsgbHBQYXRoOyAvLyBhZGQgd2hlcmUgdG8gYmVnaW5uaW5nIG9mIHN0cmluZwogICAgICAgIHN0YXRlc1RvQ3JlYXRlW2ldWzBdID0gbHBQYXRoOwogICAgfQoKICAgIGlmICh3aGVyZSAhPSAnMF91c2VyZGF0YS4wJykgewogICAgICAgIC8vIENyZWF0ZSBTdGF0ZXMgdW5kZXIgamF2YXNjcmlwdC54CiAgICAgICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgICAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKGxvb3BQYXJhbSkgewogICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gTm93IHdlIGFyZSBjcmVhdGluZyBuZXcgc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXScpOwogICAgICAgICAgICBsZXQgbG9vcEluaXQgPSAobG9vcFBhcmFtWzFdWydkZWYnXSA9PSB1bmRlZmluZWQpID8gbnVsbCA6IGxvb3BQYXJhbVsxXVsnZGVmJ107IC8vIG1pbWljIHNhbWUgYmVoYXZpb3IgYXMgY3JlYXRlU3RhdGUgaWYgbm8gaW5pdCB2YWx1ZSBpcyBwcm92aWRlZAogICAgICAgICAgICBjcmVhdGVTdGF0ZShsb29wUGFyYW1bMF0sIGxvb3BJbml0LCBmb3JjZSwgbG9vcFBhcmFtWzFdLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHByb2Nlc3NlZC4nKTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgICAvLyBDcmVhdGUgU3RhdGVzIHVuZGVyIDBfdXNlcmRhdGEuMAogICAgICAgIGxldCBudW1TdGF0ZXMgPSBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7CiAgICAgICAgbGV0IGNvdW50ZXIgPSAtMTsKICAgICAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKGxvb3BQYXJhbSkgewogICAgICAgICAgICBjb3VudGVyICs9IDE7CiAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZyAoJ1tEZWJ1Z10gQ3VycmVudGx5IHByb2Nlc3NpbmcgZm9sbG93aW5nIHN0YXRlOiBbJyArIGxvb3BQYXJhbVswXSArICddJyk7CiAgICAgICAgICAgIGlmKCAoJChsb29wUGFyYW1bMF0pLmxlbmd0aCA+IDApICYmIChleGlzdHNTdGF0ZShsb29wUGFyYW1bMF0pKSApIHsgLy8gV29ya2Fyb3VuZCBkdWUgdG8gaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3OAogICAgICAgICAgICAgICAgLy8gU3RhdGUgaXMgZXhpc3RpbmcuCiAgICAgICAgICAgICAgICBpZiAoV0FSTiAmJiAhZm9yY2UpIGxvZygnU3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXSBpcyBhbHJlYWR5IGV4aXN0aW5nIGFuZCB3aWxsIG5vIGxvbmdlciBiZSBjcmVhdGVkLicsICd3YXJuJyk7CiAgICAgICAgICAgICAgICBpZiAoIVdBUk4gJiYgTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gU3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXSBpcyBhbHJlYWR5IGV4aXN0aW5nLiBPcHRpb24gZm9yY2UgKD1vdmVyd3JpdGUpIGlzIHNldCB0byBbJyArIGZvcmNlICsgJ10uJyk7CiAgICAgICAgICAgICAgICBpZighZm9yY2UpIHsKICAgICAgICAgICAgICAgICAgICAvLyBTdGF0ZSBleGlzdHMgYW5kIHNoYWxsIG5vdCBiZSBvdmVyd3JpdHRlbiBzaW5jZSBmb3JjZT1mYWxzZQogICAgICAgICAgICAgICAgICAgIC8vIFNvLCB3ZSBkbyBub3QgcHJvY2VlZC4KICAgICAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQhJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB3YXMgcHJvdmlkZWQsIHdoaWNoIHdlIGFyZSBnb2luZyB0byBleGVjdXRlIG5vdy4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBnbyBvdXQgYW5kIGNvbnRpbnVlIHdpdGggbmV4dCBlbGVtZW50IGluIGxvb3AuCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTg0NTI5MjAvY29udGludWUtaW4tY3Vyc29yLWZvcmVhY2gKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IC8vIGlmKCFmb3JjZSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU3RhdGUgaXMgbm90IGV4aXN0aW5nIG9yIGZvcmNlID0gdHJ1ZSwgc28gd2UgYXJlIGNvbnRpbnVpbmcgdG8gY3JlYXRlIHRoZSBzdGF0ZSB0aHJvdWdoIHNldE9iamVjdCgpLgogICAgICAgICAgICBsZXQgb2JqID0ge307CiAgICAgICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgICAgICBvYmouY29tbW9uID0gbG9vcFBhcmFtWzFdOwogICAgICAgICAgICBzZXRPYmplY3QobG9vcFBhcmFtWzBdLCBvYmosIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3QgZm9yIHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ106ICcgKyBlcnIpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gTm93IHdlIGFyZSBjcmVhdGluZyBuZXcgc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXScpCiAgICAgICAgICAgICAgICAgICAgbGV0IGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS5kZWYgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS50eXBlID09PSAnc3RyaW5nJykgaW5pdCA9ICcnOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGluaXQgPSBsb29wUGFyYW1bMV0uZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZShsb29wUGFyYW1bMF0sIGluaXQsIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIHNldFN0YXRlIGR1cmNoZ2Vmw7xocnQ6ICcgKyBsb29wUGFyYW1bMF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEZ1bmN0aW9uIHRvIGNhbGxiYWNrIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9LCBERUxBWSArICgyMCAqIGNvdW50ZXIpICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfQp9CgpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICAvL1N0aW1tZW4KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wMUFsZXhhJywgeyduYW1lJzonMDFBbGV4YScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6dHJ1ZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQWxleGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDJIYW5zJywgeyduYW1lJzonMDJIYW5zJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiSGFucyIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wM1ZpY2tpJywgeyduYW1lJzonMDNWaWNraScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIlZpY2tpIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA0Q29uY2hpdGEnLCB7J25hbWUnOicwNENvbmNoaXRhJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQ29uY2hpdGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDVBbGV4YV9zc21sJywgeyduYW1lJzonMDVBbGV4YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJBbGV4YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wNkhhbnNfc3NtbCcsIHsnbmFtZSc6JzA2SGFuc19zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJIYW5zIj4nIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA3Vmlja2lfc3NtbCcsIHsnbmFtZSc6JzA3Vmlja2lfc3NtbCcsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6JzxzcGVhaz48dm9pY2UgbmFtZT0iVmlja2kiPicgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDhDb25jaGl0YV9zc21sJywgeyduYW1lJzonMDhDb25jaGl0YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJDb25jaGl0YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wOXNzbWxfZW5kZScsIHsnbmFtZSc6JzA5c3NtbF9lbmRlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPC92b2ljZT48L3NwZWFrPicgfV0sCiAgICAvL0Fuc2FnZSBCdXR0b24KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfQW5zYWdlbi4wOUZlbnN0ZXJhbnNhZ2VfRUcnLCB7J25hbWUnOiAnMDlGZW5zdGVyYW5zYWdlJywndHlwZSc6ICdib29sZWFuJywgJ3JlYWQnOiB0cnVlLCAnd3JpdGUnOiB0cnVlLCAncm9sZSc6ICdidXR0b24nLCdkZWYnOnRydWUsICJzbWFydE5hbWUiOiB7ImRlIjogIjA5RmVuc3RlcmFuc2FnZSIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwgCiAgICAvL0dlcmFldGUgemFlaGxlbgogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uRUcuRmVuc3Rlcl96YWVobGVuLjAxX0FuemFobF9GZW5zdGVyX2dla2lwcHQnLCB7J25hbWUnOicwMV9BbnphaGxfRmVuc3Rlcl9nZWtpcHB0JywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidudW1iZXInLCd1bml0JzonRmVuc3RlcicsICdkZWYnOjAgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi5FRy5GZW5zdGVyX3phZWhsZW4uMDJfQW56YWhsX0ZlbnN0ZXJfb2ZmZW4nLCB7J25hbWUnOicwMl9BbnphaGxfRmVuc3Rlcl9vZmZlbicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonbnVtYmVyJywndW5pdCc6J0ZlbnN0ZXInLCAnZGVmJzowIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uRUcuRmVuc3Rlcl96YWVobGVuLjAzX0FuemFobF9GZW5zdGVyX2dlc2NobG9zc2VuJywgeyduYW1lJzonMDNfQW56YWhsX0ZlbnN0ZXJfZ2VzY2hsb3NzZW4nLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLkVHLkZlbnN0ZXJfemFlaGxlbi4wNF9BbnphaGxfRmVuc3Rlcl9nZXNhbXQnLCB7J25hbWUnOicwNF9BbnphaGxfRmVuc3Rlcl9nZXNhbXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLkVHLkZlbnN0ZXJfemFlaGxlbi4wNF8xX0FuemFobF9GZW5zdGVyX2dlb2VmZm5ldF91bmRfZ2VraXBwdF9nZXNhbXQnLCB7J25hbWUnOicwNF8xX0FuemFobF9GZW5zdGVyX2dlb2VmZm5ldF91bmRfZ2VraXBwdF9nZXNhbXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLkVHLkZlbnN0ZXJfemFlaGxlbi4wNV9vZmZlbmVfZ2VraXBwdGVfRmVuc3Rlcl9MaXN0ZScsIHsnbmFtZSc6JzA1X29mZmVuZV9nZWtpcHB0ZV9GZW5zdGVyX0xpc3RlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonbm9jaCBsZWVyJyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLkVHLkZlbnN0ZXJfemFlaGxlbi4wNl9nZXNhbXRlX0ZlbnN0ZXJfTGlzdGUnLCB7J25hbWUnOicwNl9nZXNhbXRlX0ZlbnN0ZXJfTGlzdGUnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOidub2NoIGxlZXInIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uRUcuRmVuc3Rlcl96YWVobGVuLjA3X2h0bWxfRmVuc3Rlcl9MaXN0ZScsIHsnbmFtZSc6JzA3X2h0bWxfRmVuc3Rlcl9MaXN0ZScsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6J25vY2ggbGVlcicgfV0sCiAgICAvL1RlbGVncmFtIE5hY2hyaWNodGVudmVyc2FuZAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5UZWxlZ3JhbS4wMVRlbGVncmFtX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXNfRUcnLCB7J25hbWUnOicwMVRlbGVncmFtX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXMnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5UZWxlZ3JhbS4wMlRlbGVncmFtX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuX0VHJywgeyduYW1lJzonMDJUZWxlZ3JhbV9GZW5zdGVyc3RhdHVzX3NlbmRlbicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIlRlbGVncmFtX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKICAgIC8vRS1NYWlsIE5hY2hyaWNodGVudmVyc2FuZAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5FTUFJTC4wMUVNYWlsX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXNfRUcnLCB7J25hbWUnOicwMUVNYWlsX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXMnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5FTUFJTC4wMkVNYWlsX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuX0VHJywgeyduYW1lJzonMDJFTWFpbF9GZW5zdGVyc3RhdHVzX3NlbmRlbicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIkVNQUlMX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKICAgIApdOwoKY3JlYXRlVXNlclN0YXRlcyhhbmxlZ2VuX2luLCBmYWxzZSwgc3RhdGVzVG9DcmVhdGUsIGZ1bmN0aW9uKCl7OwogICAgbWFpbl9lZygpOwp9KTsKCgo=</field>
                        <comment pinned="false" h="80" w="160">Datenpunkte erstellen</comment>
                      </block>
                      <block type="procedures_defcustomnoreturn" id="Zvy_1dO.m7QsW5~:T1E*" x="12" y="112">
                        <mutation statements="false">
                          <arg name="anlegen_in" varid="q-e8vKpWl@Q9cU2jes}t"></arg>
                        </mutation>
                        <field name="NAME">Datenpunkte_anlegen_OG</field>
                        <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjEgKDI2IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwoKZnVuY3Rpb24gY3JlYXRlVXNlclN0YXRlcyh3aGVyZSwgZm9yY2UsIHN0YXRlc1RvQ3JlYXRlLCBjYWxsYmFjayA9IHVuZGVmaW5lZCkgewogCiAgICBjb25zdCBXQVJOID0gZmFsc2U7IC8vIE9ubHkgZm9yIDBfdXNlcmRhdGEuMDogVGhyb3dzIHdhcm5pbmcgaW4gbG9nLCBpZiBzdGF0ZSBpcyBhbHJlYWR5IGV4aXN0aW5nIGFuZCBmb3JjZT1mYWxzZS4gRGVmYXVsdCBpcyBmYWxzZSwgc28gbm8gd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGV4aXN0cy4KICAgIGNvbnN0IExPR19ERUJVRyA9IGZhbHNlOyAvLyBUbyBkZWJ1ZyB0aGlzIGZ1bmN0aW9uLCBzZXQgdG8gdHJ1ZQogICAgLy8gUGVyIGlzc3VlICM0NzQgKGh0dHBzOi8vZ2l0aHViLmNvbS9pb0Jyb2tlci9pb0Jyb2tlci5qYXZhc2NyaXB0L2lzc3Vlcy80NzQpLCB0aGUgdXNlZCBmdW5jdGlvbiBzZXRPYmplY3QoKSBleGVjdXRlcyB0aGUgY2FsbGJhY2sgCiAgICAvLyBiZWZvcmUgdGhlIHN0YXRlIGlzIGFjdHVhbCBjcmVhdGVkLiBUaGVyZWZvcmUsIHdlIHVzZSBhIHNldFRpbWVvdXQgYW5kIGNvdW50ZXIgYXMgYSB3b3JrYXJvdW5kLgogICAgY29uc3QgREVMQVkgPSA1MDsgLy8gRGVsYXkgaW4gbWlsbGlzZWNvbmRzIChtcykuIEluY3JlYXNlIHRoaXMgdG8gMTAwLCBpZiBpdCBpcyBub3Qgd29ya2luZy4KCiAgICAvLyBWYWxpZGF0ZSAid2hlcmUiCiAgICBpZiAod2hlcmUuZW5kc1dpdGgoJy4nKSkgd2hlcmUgPSB3aGVyZS5zbGljZSgwLCAtMSk7IC8vIFJlbW92ZSB0cmFpbGluZyBkb3QKICAgIGlmICggKHdoZXJlLm1hdGNoKC9eKChqYXZhc2NyaXB0XC4oWzEtOV1bMC05XXxbMC05XSkpJHwwX3VzZXJkYXRhXC4wJCkvKSA9PSBudWxsKSApIHsKICAgICAgICBsb2coJ1RoaXMgc2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgdG8gY3JlYXRlIHN0YXRlcyB1bmRlciBbJyArIHdoZXJlICsgJ10nLCAnZXJyb3InKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgLy8gUHJlcGFyZSAic3RhdGVzVG9DcmVhdGUiIHNpbmNlIHdlIGFsc28gYWxsb3cgYSBzaW5nbGUgc3RhdGUgdG8gY3JlYXRlCiAgICBpZighQXJyYXkuaXNBcnJheShzdGF0ZXNUb0NyZWF0ZVswXSkpIHN0YXRlc1RvQ3JlYXRlID0gW3N0YXRlc1RvQ3JlYXRlXTsgLy8gd3JhcCBpbnRvIGFycmF5LCBpZiBqdXN0IG9uZSBhcnJheSBhbmQgbm90IGluc2lkZSBhbiBhcnJheQoKICAgIC8vIEFkZCAid2hlcmUiIHRvIFNUQVRFU19UT19DUkVBVEUKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhdGVzVG9DcmVhdGUubGVuZ3RoOyBpKyspIHsKICAgICAgICBsZXQgbHBQYXRoID0gc3RhdGVzVG9DcmVhdGVbaV1bMF0ucmVwbGFjZSgvXC4qXC4vZywgJy4nKTsgLy8gcmVwbGFjZSBhbGwgbXVsdGlwbGUgZG90cyBsaWtlICcuLicsICcuLi4nIHdpdGggYSBzaW5nbGUgJy4nCiAgICAgICAgbHBQYXRoID0gbHBQYXRoLnJlcGxhY2UoL14oKGphdmFzY3JpcHRcLihbMS05XVswLTldfFswLTldKVwuKXwwX3VzZXJkYXRhXC4wXC4pLywnJykgLy8gcmVtb3ZlIGFueSBqYXZhc2NyaXB0LnguIC8gMF91c2VyZGF0YS4wLiBmcm9tIGJlZ2lubmluZwogICAgICAgIGxwUGF0aCA9IHdoZXJlICsgJy4nICsgbHBQYXRoOyAvLyBhZGQgd2hlcmUgdG8gYmVnaW5uaW5nIG9mIHN0cmluZwogICAgICAgIHN0YXRlc1RvQ3JlYXRlW2ldWzBdID0gbHBQYXRoOwogICAgfQoKICAgIGlmICh3aGVyZSAhPSAnMF91c2VyZGF0YS4wJykgewogICAgICAgIC8vIENyZWF0ZSBTdGF0ZXMgdW5kZXIgamF2YXNjcmlwdC54CiAgICAgICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgICAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKGxvb3BQYXJhbSkgewogICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gTm93IHdlIGFyZSBjcmVhdGluZyBuZXcgc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXScpOwogICAgICAgICAgICBsZXQgbG9vcEluaXQgPSAobG9vcFBhcmFtWzFdWydkZWYnXSA9PSB1bmRlZmluZWQpID8gbnVsbCA6IGxvb3BQYXJhbVsxXVsnZGVmJ107IC8vIG1pbWljIHNhbWUgYmVoYXZpb3IgYXMgY3JlYXRlU3RhdGUgaWYgbm8gaW5pdCB2YWx1ZSBpcyBwcm92aWRlZAogICAgICAgICAgICBjcmVhdGVTdGF0ZShsb29wUGFyYW1bMF0sIGxvb3BJbml0LCBmb3JjZSwgbG9vcFBhcmFtWzFdLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHByb2Nlc3NlZC4nKTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgICAvLyBDcmVhdGUgU3RhdGVzIHVuZGVyIDBfdXNlcmRhdGEuMAogICAgICAgIGxldCBudW1TdGF0ZXMgPSBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7CiAgICAgICAgbGV0IGNvdW50ZXIgPSAtMTsKICAgICAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKGxvb3BQYXJhbSkgewogICAgICAgICAgICBjb3VudGVyICs9IDE7CiAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZyAoJ1tEZWJ1Z10gQ3VycmVudGx5IHByb2Nlc3NpbmcgZm9sbG93aW5nIHN0YXRlOiBbJyArIGxvb3BQYXJhbVswXSArICddJyk7CiAgICAgICAgICAgIGlmKCAoJChsb29wUGFyYW1bMF0pLmxlbmd0aCA+IDApICYmIChleGlzdHNTdGF0ZShsb29wUGFyYW1bMF0pKSApIHsgLy8gV29ya2Fyb3VuZCBkdWUgdG8gaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3OAogICAgICAgICAgICAgICAgLy8gU3RhdGUgaXMgZXhpc3RpbmcuCiAgICAgICAgICAgICAgICBpZiAoV0FSTiAmJiAhZm9yY2UpIGxvZygnU3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXSBpcyBhbHJlYWR5IGV4aXN0aW5nIGFuZCB3aWxsIG5vIGxvbmdlciBiZSBjcmVhdGVkLicsICd3YXJuJyk7CiAgICAgICAgICAgICAgICBpZiAoIVdBUk4gJiYgTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gU3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXSBpcyBhbHJlYWR5IGV4aXN0aW5nLiBPcHRpb24gZm9yY2UgKD1vdmVyd3JpdGUpIGlzIHNldCB0byBbJyArIGZvcmNlICsgJ10uJyk7CiAgICAgICAgICAgICAgICBpZighZm9yY2UpIHsKICAgICAgICAgICAgICAgICAgICAvLyBTdGF0ZSBleGlzdHMgYW5kIHNoYWxsIG5vdCBiZSBvdmVyd3JpdHRlbiBzaW5jZSBmb3JjZT1mYWxzZQogICAgICAgICAgICAgICAgICAgIC8vIFNvLCB3ZSBkbyBub3QgcHJvY2VlZC4KICAgICAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQhJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB3YXMgcHJvdmlkZWQsIHdoaWNoIHdlIGFyZSBnb2luZyB0byBleGVjdXRlIG5vdy4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBnbyBvdXQgYW5kIGNvbnRpbnVlIHdpdGggbmV4dCBlbGVtZW50IGluIGxvb3AuCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTg0NTI5MjAvY29udGludWUtaW4tY3Vyc29yLWZvcmVhY2gKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IC8vIGlmKCFmb3JjZSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU3RhdGUgaXMgbm90IGV4aXN0aW5nIG9yIGZvcmNlID0gdHJ1ZSwgc28gd2UgYXJlIGNvbnRpbnVpbmcgdG8gY3JlYXRlIHRoZSBzdGF0ZSB0aHJvdWdoIHNldE9iamVjdCgpLgogICAgICAgICAgICBsZXQgb2JqID0ge307CiAgICAgICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgICAgICBvYmouY29tbW9uID0gbG9vcFBhcmFtWzFdOwogICAgICAgICAgICBzZXRPYmplY3QobG9vcFBhcmFtWzBdLCBvYmosIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3QgZm9yIHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ106ICcgKyBlcnIpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gTm93IHdlIGFyZSBjcmVhdGluZyBuZXcgc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXScpCiAgICAgICAgICAgICAgICAgICAgbGV0IGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS5kZWYgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS50eXBlID09PSAnc3RyaW5nJykgaW5pdCA9ICcnOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGluaXQgPSBsb29wUGFyYW1bMV0uZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZShsb29wUGFyYW1bMF0sIGluaXQsIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIHNldFN0YXRlIGR1cmNoZ2Vmw7xocnQ6ICcgKyBsb29wUGFyYW1bMF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEZ1bmN0aW9uIHRvIGNhbGxiYWNrIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9LCBERUxBWSArICgyMCAqIGNvdW50ZXIpICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfQp9CgpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICAvL1N0aW1tZW4KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wMUFsZXhhJywgeyduYW1lJzonMDFBbGV4YScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6dHJ1ZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQWxleGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDJIYW5zJywgeyduYW1lJzonMDJIYW5zJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiSGFucyIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wM1ZpY2tpJywgeyduYW1lJzonMDNWaWNraScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIlZpY2tpIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA0Q29uY2hpdGEnLCB7J25hbWUnOicwNENvbmNoaXRhJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQ29uY2hpdGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDVBbGV4YV9zc21sJywgeyduYW1lJzonMDVBbGV4YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJBbGV4YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wNkhhbnNfc3NtbCcsIHsnbmFtZSc6JzA2SGFuc19zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJIYW5zIj4nIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA3Vmlja2lfc3NtbCcsIHsnbmFtZSc6JzA3Vmlja2lfc3NtbCcsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6JzxzcGVhaz48dm9pY2UgbmFtZT0iVmlja2kiPicgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDhDb25jaGl0YV9zc21sJywgeyduYW1lJzonMDhDb25jaGl0YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJDb25jaGl0YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wOXNzbWxfZW5kZScsIHsnbmFtZSc6JzA5c3NtbF9lbmRlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPC92b2ljZT48L3NwZWFrPicgfV0sCiAgICAvL0Fuc2FnZSBCdXR0b24KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfQW5zYWdlbi4wOUZlbnN0ZXJhbnNhZ2VfT0cnLCB7J25hbWUnOiAnMDlGZW5zdGVyYW5zYWdlJywndHlwZSc6ICdib29sZWFuJywgJ3JlYWQnOiB0cnVlLCAnd3JpdGUnOiB0cnVlLCAncm9sZSc6ICdidXR0b24nLCdkZWYnOnRydWUsICJzbWFydE5hbWUiOiB7ImRlIjogIjA5RmVuc3RlcmFuc2FnZSIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwgCiAgICAvL0dlcmFldGUgemFlaGxlbgogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uT0cuRmVuc3Rlcl96YWVobGVuLjAxX0FuemFobF9GZW5zdGVyX2dla2lwcHQnLCB7J25hbWUnOicwMV9BbnphaGxfRmVuc3Rlcl9nZWtpcHB0JywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidudW1iZXInLCd1bml0JzonRmVuc3RlcicsICdkZWYnOjAgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi5PRy5GZW5zdGVyX3phZWhsZW4uMDJfQW56YWhsX0ZlbnN0ZXJfb2ZmZW4nLCB7J25hbWUnOicwMl9BbnphaGxfRmVuc3Rlcl9vZmZlbicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonbnVtYmVyJywndW5pdCc6J0ZlbnN0ZXInLCAnZGVmJzowIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uT0cuRmVuc3Rlcl96YWVobGVuLjAzX0FuemFobF9GZW5zdGVyX2dlc2NobG9zc2VuJywgeyduYW1lJzonMDNfQW56YWhsX0ZlbnN0ZXJfZ2VzY2hsb3NzZW4nLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLk9HLkZlbnN0ZXJfemFlaGxlbi4wNF9BbnphaGxfRmVuc3Rlcl9nZXNhbXQnLCB7J25hbWUnOicwNF9BbnphaGxfRmVuc3Rlcl9nZXNhbXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLk9HLkZlbnN0ZXJfemFlaGxlbi4wNF8xX0FuemFobF9GZW5zdGVyX2dlb2VmZm5ldF91bmRfZ2VraXBwdF9nZXNhbXQnLCB7J25hbWUnOicwNF8xX0FuemFobF9GZW5zdGVyX2dlb2VmZm5ldF91bmRfZ2VraXBwdF9nZXNhbXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLk9HLkZlbnN0ZXJfemFlaGxlbi4wNV9vZmZlbmVfZ2VraXBwdGVfRmVuc3Rlcl9MaXN0ZScsIHsnbmFtZSc6JzA1X29mZmVuZV9nZWtpcHB0ZV9GZW5zdGVyX0xpc3RlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonbm9jaCBsZWVyJyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLk9HLkZlbnN0ZXJfemFlaGxlbi4wNl9nZXNhbXRlX0ZlbnN0ZXJfTGlzdGUnLCB7J25hbWUnOicwNl9nZXNhbXRlX0ZlbnN0ZXJfTGlzdGUnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOidub2NoIGxlZXInIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uT0cuRmVuc3Rlcl96YWVobGVuLjA3X2h0bWxfRmVuc3Rlcl9MaXN0ZScsIHsnbmFtZSc6JzA3X2h0bWxfRmVuc3Rlcl9MaXN0ZScsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6J25vY2ggbGVlcicgfV0sCiAgICAvL1RlbGVncmFtIE5hY2hyaWNodGVudmVyc2FuZAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5UZWxlZ3JhbS4wMVRlbGVncmFtX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXNfT0cnLCB7J25hbWUnOicwMVRlbGVncmFtX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXMnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5UZWxlZ3JhbS4wMlRlbGVncmFtX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuX09HJywgeyduYW1lJzonMDJUZWxlZ3JhbV9GZW5zdGVyc3RhdHVzX3NlbmRlbicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIlRlbGVncmFtX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKICAgIC8vRS1NYWlsIE5hY2hyaWNodGVudmVyc2FuZAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5FTUFJTC4wMUVNYWlsX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXNfT0cnLCB7J25hbWUnOicwMUVNYWlsX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXMnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5FTUFJTC4wMkVNYWlsX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuX09HJywgeyduYW1lJzonMDJFTWFpbF9GZW5zdGVyc3RhdHVzX3NlbmRlbicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIkVNQUlMX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKICAgIApdOwoKY3JlYXRlVXNlclN0YXRlcyhhbmxlZ2VuX2luLCBmYWxzZSwgc3RhdGVzVG9DcmVhdGUsIGZ1bmN0aW9uKCl7OwogICAgbWFpbl9vZygpOwp9KTsKCgo=</field>
                        <comment pinned="false" h="80" w="160">Datenpunkte erstellen</comment>
                      </block>
                      <block type="procedures_callcustomnoreturn" id="jF?p*bfL@wiJRZXO9]+}" x="12" y="162">
                        <mutation name="Datenpunkte_anlegen_EG">
                          <arg name="anlegen_in"></arg>
                        </mutation>
                        <value name="ARG0">
                          <block type="text" id="(F_d$2%z]Oc$;UCfCU=h">
                            <field name="TEXT">javascript.0</field>
                          </block>
                        </value>
                        <next>
                          <block type="procedures_callcustomnoreturn" id="tA~^OS%}Fy.}/{4Zc4lA">
                            <mutation name="Datenpunkte_anlegen_OG">
                              <arg name="anlegen_in"></arg>
                            </mutation>
                            <value name="ARG0">
                              <block type="text" id="^}uKX/c.8x0ClcNS*J18">
                                <field name="TEXT">javascript.0</field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                      <block type="procedures_defnoreturn" id="K`--nJY%DS|!u4N4*0F:" x="12" y="312">
                        <field name="NAME">main_eg</field>
                        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                      </block>
                      <block type="procedures_defnoreturn" id="(ZQhT?Uu8=m$`[Sd3;yx" x="12" y="388">
                        <field name="NAME">main_og</field>
                        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                      </block>
                    </xml>
                    

                    flkontaktF 1 Reply Last reply
                    0
                    • dslraserD dslraser

                      @DocGame sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                      Habe noch 2 "Sensor unbekannt"

                      Wenn Du die rausgefunden hast, sage mal bitte Bescheid, damit die auch noch integriert werden können.

                      D Offline
                      D Offline
                      DocGame
                      wrote on last edited by
                      #335

                      @dslraser Das ist ja höchst ominös mit den 2 unbekannten Sensoren...
                      Bin mal mit meinen Garagensensoren (oben und unten) von MiHome auf Zigbee umgestiegen und habe diese auf MiHome scheinbar nicht abgemeldet. Jetzt sind Sie in beiden drin und zeigen sogar in beiden Adaptern die korrekten Werte. Bin immer davon ausgegangen, das dies nicht geht. Die MiHome hatte ich nicht mehr den Fenster.enum zugewiesen. Scheinbar hat dein Blockly diese trotzdem gefunden aber nicht zugewiesen. Wenn ich diese "Fenster" zuweise wird alles korrekt angezeigt (die 2 eben doppelt).
                      Wg. der RAW's der "Licht" Geräte aus dem anderen Post werde ich mich noch melden. Du meinst aber auch, das das Anlegen einer neuen Aufzählung nur mit dem Power State dein Blockly schon einmal beruhigen würde?

                      dslraserD 1 Reply Last reply
                      0
                      • D DocGame

                        @dslraser Das ist ja höchst ominös mit den 2 unbekannten Sensoren...
                        Bin mal mit meinen Garagensensoren (oben und unten) von MiHome auf Zigbee umgestiegen und habe diese auf MiHome scheinbar nicht abgemeldet. Jetzt sind Sie in beiden drin und zeigen sogar in beiden Adaptern die korrekten Werte. Bin immer davon ausgegangen, das dies nicht geht. Die MiHome hatte ich nicht mehr den Fenster.enum zugewiesen. Scheinbar hat dein Blockly diese trotzdem gefunden aber nicht zugewiesen. Wenn ich diese "Fenster" zuweise wird alles korrekt angezeigt (die 2 eben doppelt).
                        Wg. der RAW's der "Licht" Geräte aus dem anderen Post werde ich mich noch melden. Du meinst aber auch, das das Anlegen einer neuen Aufzählung nur mit dem Power State dein Blockly schon einmal beruhigen würde?

                        dslraserD Offline
                        dslraserD Offline
                        dslraser
                        Forum Testing Most Active
                        wrote on last edited by dslraser
                        #336

                        @DocGame sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                        nur mit dem Power State

                        im Moment werden nur diese gefunden. (beim Licht Blockly)

                        .on
                        .STATE
                        .state

                        Edit: und in die Aufzählung immer nur einen state packen (nicht einen ganzen Kanal), mit dem Du das Licht an/aus schalten kannst.

                        D 1 Reply Last reply
                        0
                        • dslraserD dslraser

                          @DocGame sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                          nur mit dem Power State

                          im Moment werden nur diese gefunden. (beim Licht Blockly)

                          .on
                          .STATE
                          .state

                          Edit: und in die Aufzählung immer nur einen state packen (nicht einen ganzen Kanal), mit dem Du das Licht an/aus schalten kannst.

                          D Offline
                          D Offline
                          DocGame
                          wrote on last edited by DocGame
                          #337

                          @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                          @DocGame sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                          nur mit dem Power State

                          im Moment werden nur diese gefunden. (beim Licht Blockly)

                          .on
                          .STATE
                          .state

                          Mich irritiert eben, dass das Fenster-Blockly auch die 2 Geräte ohne Zuweisung auf die Fenster.enum anhand des "is opened" State die Geräte gefunden hat.
                          Nicht das er bei dem gescheiterten Licht-Versuch States aus anderen Geräten (BWM, Steckdosen usw.) berücksichtigt hat und dadurch getilt ist.
                          Sicherheitshalber werde ich die "komplette" zuweisung auf Lichtgeraete.enum nehmen und in Licht nur den jeweilige On/Off State in Licht.enum nehmen. Ist doch sicherlich kein Fehler, da es in deinem Blockly ja nur um Zustandsanzeigen geht....oder?
                          Hier mal die Datenpunkte eines Yeelight(RGB) und eines Zigbee-Leuchtmittels(Weiß)
                          LichtDatenpunkteYeelight.JPG
                          LichtDatenpunkteZigbee-White.JPG
                          Edit: Habe deinen vorherigen Post leider nicht gesehen. die Frage hat sich dann ja erledigt.

                          dslraserD 1 Reply Last reply
                          0
                          • D DocGame

                            @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                            @DocGame sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                            nur mit dem Power State

                            im Moment werden nur diese gefunden. (beim Licht Blockly)

                            .on
                            .STATE
                            .state

                            Mich irritiert eben, dass das Fenster-Blockly auch die 2 Geräte ohne Zuweisung auf die Fenster.enum anhand des "is opened" State die Geräte gefunden hat.
                            Nicht das er bei dem gescheiterten Licht-Versuch States aus anderen Geräten (BWM, Steckdosen usw.) berücksichtigt hat und dadurch getilt ist.
                            Sicherheitshalber werde ich die "komplette" zuweisung auf Lichtgeraete.enum nehmen und in Licht nur den jeweilige On/Off State in Licht.enum nehmen. Ist doch sicherlich kein Fehler, da es in deinem Blockly ja nur um Zustandsanzeigen geht....oder?
                            Hier mal die Datenpunkte eines Yeelight(RGB) und eines Zigbee-Leuchtmittels(Weiß)
                            LichtDatenpunkteYeelight.JPG
                            LichtDatenpunkteZigbee-White.JPG
                            Edit: Habe deinen vorherigen Post leider nicht gesehen. die Frage hat sich dann ja erledigt.

                            dslraserD Offline
                            dslraserD Offline
                            dslraser
                            Forum Testing Most Active
                            wrote on last edited by
                            #338

                            @DocGame
                            Danke für die Bilder, aber der ein RAW in Code Tags wäre besser zum testen. (den kann ich bei mir einfügen)

                            D 1 Reply Last reply
                            0
                            • dslraserD dslraser

                              @DocGame
                              Danke für die Bilder, aber der ein RAW in Code Tags wäre besser zum testen. (den kann ich bei mir einfügen)

                              D Offline
                              D Offline
                              DocGame
                              wrote on last edited by DocGame
                              #339

                              @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                              @DocGame
                              Danke für die Bilder, aber der ein RAW in Code Tags wäre besser zum testen. (den kann ich bei mir einfügen)

                              Hier ein "Switch State" vom Zigbee-Adapter:

                              {
                                "from": "system.adapter.zigbee.0",
                                "user": "system.user.admin",
                                "ts": 1583356481398,
                                "common": {
                                  "name": "Kinderdecke 1 Switch state",
                                  "type": "boolean",
                                  "role": "switch",
                                  "smartType": "SWITCH",
                                  "read": true,
                                  "write": true
                                },
                                "native": {},
                                "acl": {
                                  "object": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator",
                                  "state": 1636
                                },
                                "_id": "zigbee.0.7cb03eaa0a050960.state",
                                "type": "state"
                              }
                              
                              

                              und hier Yeelight:

                              {
                                "type": "state",
                                "common": {
                                  "name": "power",
                                  "role": "switch",
                                  "write": true,
                                  "read": true,
                                  "type": "boolean",
                                  "smartName": {
                                    "de": "",
                                    "smartType": "LIGHT"
                                  },
                                  "custom": {
                                    "iot.0": {
                                      "smartName": {
                                        "smartType": "LIGHT"
                                      }
                                    }
                                  }
                                },
                                "native": {},
                                "from": "system.adapter.yeelight-2.0",
                                "user": "system.user.admin",
                                "ts": 1567203791546,
                                "_id": "yeelight-2.0.Fernsehlicht.control.power",
                                "acl": {
                                  "object": 1636,
                                  "state": 1636
                                }
                              }
                              

                              WLED:

                              {
                                "type": "state",
                                "common": {
                                  "name": "On / Off",
                                  "role": "switch",
                                  "type": "boolean",
                                  "unit": "",
                                  "write": true,
                                  "read": true
                                },
                                "native": {},
                                "from": "system.adapter.wled.0",
                                "user": "system.user.admin",
                                "ts": 1589284310155,
                                "_id": "wled.0.84f3eb73d78e.on",
                                "acl": {
                                  "object": 1636,
                                  "state": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator"
                                }
                              }
                              
                              1 Reply Last reply
                              1
                              • dirk1962D dirk1962

                                @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                                Ich denke das mit dem sortieren habe ich jetzt gelöst...
                                Es werden die eingeschalteten oben angezeigt(alphabetisch sortiert) und die ausgeschalteten darunter sind dann auch alphabetisch sortiert. Ich mach das die nächsten Tage dann mal fertig...

                                Das wäre echt super. Habe wahrscheinlich noch genügend Zeit zum Testen.:blush: :+1:

                                dslraserD Offline
                                dslraserD Offline
                                dslraser
                                Forum Testing Most Active
                                wrote on last edited by
                                #340

                                @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                                Das wäre echt super. Habe wahrscheinlich noch genügend Zeit zum Testen.

                                Steckdosen sind jetzt oben drinn. Ich hoffe es passt und es gibt keine anderen Fehler. Die "sortieren Geschichte" war/ist ein größerer Umbau (intern im Blockly). Datenpunkte können alle bleiben, es braucht nichts gelöscht zu werden.

                                D dirk1962D 2 Replies Last reply
                                0
                                • dslraserD dslraser

                                  @flkontakt sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                                  die Datenpunkte würden mir völlig reichen, weitere Anpassungen würde ich hinbekommen, falls nötig.

                                  Die Datenpunkte habe ich hiermit erstellt, die kannst Du ja in zwei Blocklys aufteilen.

                                  Bildschirmfoto 2020-05-14 um 18.03.19.png

                                  <xml xmlns="http://www.w3.org/1999/xhtml">
                                    <variables>
                                      <variable type="" id="q-e8vKpWl@Q9cU2jes}t">anlegen_in</variable>
                                    </variables>
                                    <block type="procedures_defcustomnoreturn" id="eZsGA^2r{c%G,YpuLp]K" x="13" y="62">
                                      <mutation statements="false">
                                        <arg name="anlegen_in" varid="q-e8vKpWl@Q9cU2jes}t"></arg>
                                      </mutation>
                                      <field name="NAME">Datenpunkte_anlegen_EG</field>
                                      <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjEgKDI2IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwoKZnVuY3Rpb24gY3JlYXRlVXNlclN0YXRlcyh3aGVyZSwgZm9yY2UsIHN0YXRlc1RvQ3JlYXRlLCBjYWxsYmFjayA9IHVuZGVmaW5lZCkgewogCiAgICBjb25zdCBXQVJOID0gZmFsc2U7IC8vIE9ubHkgZm9yIDBfdXNlcmRhdGEuMDogVGhyb3dzIHdhcm5pbmcgaW4gbG9nLCBpZiBzdGF0ZSBpcyBhbHJlYWR5IGV4aXN0aW5nIGFuZCBmb3JjZT1mYWxzZS4gRGVmYXVsdCBpcyBmYWxzZSwgc28gbm8gd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGV4aXN0cy4KICAgIGNvbnN0IExPR19ERUJVRyA9IGZhbHNlOyAvLyBUbyBkZWJ1ZyB0aGlzIGZ1bmN0aW9uLCBzZXQgdG8gdHJ1ZQogICAgLy8gUGVyIGlzc3VlICM0NzQgKGh0dHBzOi8vZ2l0aHViLmNvbS9pb0Jyb2tlci9pb0Jyb2tlci5qYXZhc2NyaXB0L2lzc3Vlcy80NzQpLCB0aGUgdXNlZCBmdW5jdGlvbiBzZXRPYmplY3QoKSBleGVjdXRlcyB0aGUgY2FsbGJhY2sgCiAgICAvLyBiZWZvcmUgdGhlIHN0YXRlIGlzIGFjdHVhbCBjcmVhdGVkLiBUaGVyZWZvcmUsIHdlIHVzZSBhIHNldFRpbWVvdXQgYW5kIGNvdW50ZXIgYXMgYSB3b3JrYXJvdW5kLgogICAgY29uc3QgREVMQVkgPSA1MDsgLy8gRGVsYXkgaW4gbWlsbGlzZWNvbmRzIChtcykuIEluY3JlYXNlIHRoaXMgdG8gMTAwLCBpZiBpdCBpcyBub3Qgd29ya2luZy4KCiAgICAvLyBWYWxpZGF0ZSAid2hlcmUiCiAgICBpZiAod2hlcmUuZW5kc1dpdGgoJy4nKSkgd2hlcmUgPSB3aGVyZS5zbGljZSgwLCAtMSk7IC8vIFJlbW92ZSB0cmFpbGluZyBkb3QKICAgIGlmICggKHdoZXJlLm1hdGNoKC9eKChqYXZhc2NyaXB0XC4oWzEtOV1bMC05XXxbMC05XSkpJHwwX3VzZXJkYXRhXC4wJCkvKSA9PSBudWxsKSApIHsKICAgICAgICBsb2coJ1RoaXMgc2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgdG8gY3JlYXRlIHN0YXRlcyB1bmRlciBbJyArIHdoZXJlICsgJ10nLCAnZXJyb3InKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgLy8gUHJlcGFyZSAic3RhdGVzVG9DcmVhdGUiIHNpbmNlIHdlIGFsc28gYWxsb3cgYSBzaW5nbGUgc3RhdGUgdG8gY3JlYXRlCiAgICBpZighQXJyYXkuaXNBcnJheShzdGF0ZXNUb0NyZWF0ZVswXSkpIHN0YXRlc1RvQ3JlYXRlID0gW3N0YXRlc1RvQ3JlYXRlXTsgLy8gd3JhcCBpbnRvIGFycmF5LCBpZiBqdXN0IG9uZSBhcnJheSBhbmQgbm90IGluc2lkZSBhbiBhcnJheQoKICAgIC8vIEFkZCAid2hlcmUiIHRvIFNUQVRFU19UT19DUkVBVEUKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhdGVzVG9DcmVhdGUubGVuZ3RoOyBpKyspIHsKICAgICAgICBsZXQgbHBQYXRoID0gc3RhdGVzVG9DcmVhdGVbaV1bMF0ucmVwbGFjZSgvXC4qXC4vZywgJy4nKTsgLy8gcmVwbGFjZSBhbGwgbXVsdGlwbGUgZG90cyBsaWtlICcuLicsICcuLi4nIHdpdGggYSBzaW5nbGUgJy4nCiAgICAgICAgbHBQYXRoID0gbHBQYXRoLnJlcGxhY2UoL14oKGphdmFzY3JpcHRcLihbMS05XVswLTldfFswLTldKVwuKXwwX3VzZXJkYXRhXC4wXC4pLywnJykgLy8gcmVtb3ZlIGFueSBqYXZhc2NyaXB0LnguIC8gMF91c2VyZGF0YS4wLiBmcm9tIGJlZ2lubmluZwogICAgICAgIGxwUGF0aCA9IHdoZXJlICsgJy4nICsgbHBQYXRoOyAvLyBhZGQgd2hlcmUgdG8gYmVnaW5uaW5nIG9mIHN0cmluZwogICAgICAgIHN0YXRlc1RvQ3JlYXRlW2ldWzBdID0gbHBQYXRoOwogICAgfQoKICAgIGlmICh3aGVyZSAhPSAnMF91c2VyZGF0YS4wJykgewogICAgICAgIC8vIENyZWF0ZSBTdGF0ZXMgdW5kZXIgamF2YXNjcmlwdC54CiAgICAgICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgICAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKGxvb3BQYXJhbSkgewogICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gTm93IHdlIGFyZSBjcmVhdGluZyBuZXcgc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXScpOwogICAgICAgICAgICBsZXQgbG9vcEluaXQgPSAobG9vcFBhcmFtWzFdWydkZWYnXSA9PSB1bmRlZmluZWQpID8gbnVsbCA6IGxvb3BQYXJhbVsxXVsnZGVmJ107IC8vIG1pbWljIHNhbWUgYmVoYXZpb3IgYXMgY3JlYXRlU3RhdGUgaWYgbm8gaW5pdCB2YWx1ZSBpcyBwcm92aWRlZAogICAgICAgICAgICBjcmVhdGVTdGF0ZShsb29wUGFyYW1bMF0sIGxvb3BJbml0LCBmb3JjZSwgbG9vcFBhcmFtWzFdLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHByb2Nlc3NlZC4nKTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgICAvLyBDcmVhdGUgU3RhdGVzIHVuZGVyIDBfdXNlcmRhdGEuMAogICAgICAgIGxldCBudW1TdGF0ZXMgPSBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7CiAgICAgICAgbGV0IGNvdW50ZXIgPSAtMTsKICAgICAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKGxvb3BQYXJhbSkgewogICAgICAgICAgICBjb3VudGVyICs9IDE7CiAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZyAoJ1tEZWJ1Z10gQ3VycmVudGx5IHByb2Nlc3NpbmcgZm9sbG93aW5nIHN0YXRlOiBbJyArIGxvb3BQYXJhbVswXSArICddJyk7CiAgICAgICAgICAgIGlmKCAoJChsb29wUGFyYW1bMF0pLmxlbmd0aCA+IDApICYmIChleGlzdHNTdGF0ZShsb29wUGFyYW1bMF0pKSApIHsgLy8gV29ya2Fyb3VuZCBkdWUgdG8gaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3OAogICAgICAgICAgICAgICAgLy8gU3RhdGUgaXMgZXhpc3RpbmcuCiAgICAgICAgICAgICAgICBpZiAoV0FSTiAmJiAhZm9yY2UpIGxvZygnU3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXSBpcyBhbHJlYWR5IGV4aXN0aW5nIGFuZCB3aWxsIG5vIGxvbmdlciBiZSBjcmVhdGVkLicsICd3YXJuJyk7CiAgICAgICAgICAgICAgICBpZiAoIVdBUk4gJiYgTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gU3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXSBpcyBhbHJlYWR5IGV4aXN0aW5nLiBPcHRpb24gZm9yY2UgKD1vdmVyd3JpdGUpIGlzIHNldCB0byBbJyArIGZvcmNlICsgJ10uJyk7CiAgICAgICAgICAgICAgICBpZighZm9yY2UpIHsKICAgICAgICAgICAgICAgICAgICAvLyBTdGF0ZSBleGlzdHMgYW5kIHNoYWxsIG5vdCBiZSBvdmVyd3JpdHRlbiBzaW5jZSBmb3JjZT1mYWxzZQogICAgICAgICAgICAgICAgICAgIC8vIFNvLCB3ZSBkbyBub3QgcHJvY2VlZC4KICAgICAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQhJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB3YXMgcHJvdmlkZWQsIHdoaWNoIHdlIGFyZSBnb2luZyB0byBleGVjdXRlIG5vdy4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBnbyBvdXQgYW5kIGNvbnRpbnVlIHdpdGggbmV4dCBlbGVtZW50IGluIGxvb3AuCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTg0NTI5MjAvY29udGludWUtaW4tY3Vyc29yLWZvcmVhY2gKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IC8vIGlmKCFmb3JjZSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU3RhdGUgaXMgbm90IGV4aXN0aW5nIG9yIGZvcmNlID0gdHJ1ZSwgc28gd2UgYXJlIGNvbnRpbnVpbmcgdG8gY3JlYXRlIHRoZSBzdGF0ZSB0aHJvdWdoIHNldE9iamVjdCgpLgogICAgICAgICAgICBsZXQgb2JqID0ge307CiAgICAgICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgICAgICBvYmouY29tbW9uID0gbG9vcFBhcmFtWzFdOwogICAgICAgICAgICBzZXRPYmplY3QobG9vcFBhcmFtWzBdLCBvYmosIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3QgZm9yIHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ106ICcgKyBlcnIpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gTm93IHdlIGFyZSBjcmVhdGluZyBuZXcgc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXScpCiAgICAgICAgICAgICAgICAgICAgbGV0IGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS5kZWYgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS50eXBlID09PSAnc3RyaW5nJykgaW5pdCA9ICcnOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGluaXQgPSBsb29wUGFyYW1bMV0uZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZShsb29wUGFyYW1bMF0sIGluaXQsIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIHNldFN0YXRlIGR1cmNoZ2Vmw7xocnQ6ICcgKyBsb29wUGFyYW1bMF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEZ1bmN0aW9uIHRvIGNhbGxiYWNrIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9LCBERUxBWSArICgyMCAqIGNvdW50ZXIpICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfQp9CgpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICAvL1N0aW1tZW4KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wMUFsZXhhJywgeyduYW1lJzonMDFBbGV4YScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6dHJ1ZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQWxleGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDJIYW5zJywgeyduYW1lJzonMDJIYW5zJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiSGFucyIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wM1ZpY2tpJywgeyduYW1lJzonMDNWaWNraScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIlZpY2tpIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA0Q29uY2hpdGEnLCB7J25hbWUnOicwNENvbmNoaXRhJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQ29uY2hpdGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDVBbGV4YV9zc21sJywgeyduYW1lJzonMDVBbGV4YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJBbGV4YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wNkhhbnNfc3NtbCcsIHsnbmFtZSc6JzA2SGFuc19zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJIYW5zIj4nIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA3Vmlja2lfc3NtbCcsIHsnbmFtZSc6JzA3Vmlja2lfc3NtbCcsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6JzxzcGVhaz48dm9pY2UgbmFtZT0iVmlja2kiPicgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDhDb25jaGl0YV9zc21sJywgeyduYW1lJzonMDhDb25jaGl0YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJDb25jaGl0YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wOXNzbWxfZW5kZScsIHsnbmFtZSc6JzA5c3NtbF9lbmRlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPC92b2ljZT48L3NwZWFrPicgfV0sCiAgICAvL0Fuc2FnZSBCdXR0b24KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfQW5zYWdlbi4wOUZlbnN0ZXJhbnNhZ2VfRUcnLCB7J25hbWUnOiAnMDlGZW5zdGVyYW5zYWdlJywndHlwZSc6ICdib29sZWFuJywgJ3JlYWQnOiB0cnVlLCAnd3JpdGUnOiB0cnVlLCAncm9sZSc6ICdidXR0b24nLCdkZWYnOnRydWUsICJzbWFydE5hbWUiOiB7ImRlIjogIjA5RmVuc3RlcmFuc2FnZSIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwgCiAgICAvL0dlcmFldGUgemFlaGxlbgogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uRUcuRmVuc3Rlcl96YWVobGVuLjAxX0FuemFobF9GZW5zdGVyX2dla2lwcHQnLCB7J25hbWUnOicwMV9BbnphaGxfRmVuc3Rlcl9nZWtpcHB0JywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidudW1iZXInLCd1bml0JzonRmVuc3RlcicsICdkZWYnOjAgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi5FRy5GZW5zdGVyX3phZWhsZW4uMDJfQW56YWhsX0ZlbnN0ZXJfb2ZmZW4nLCB7J25hbWUnOicwMl9BbnphaGxfRmVuc3Rlcl9vZmZlbicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonbnVtYmVyJywndW5pdCc6J0ZlbnN0ZXInLCAnZGVmJzowIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uRUcuRmVuc3Rlcl96YWVobGVuLjAzX0FuemFobF9GZW5zdGVyX2dlc2NobG9zc2VuJywgeyduYW1lJzonMDNfQW56YWhsX0ZlbnN0ZXJfZ2VzY2hsb3NzZW4nLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLkVHLkZlbnN0ZXJfemFlaGxlbi4wNF9BbnphaGxfRmVuc3Rlcl9nZXNhbXQnLCB7J25hbWUnOicwNF9BbnphaGxfRmVuc3Rlcl9nZXNhbXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLkVHLkZlbnN0ZXJfemFlaGxlbi4wNF8xX0FuemFobF9GZW5zdGVyX2dlb2VmZm5ldF91bmRfZ2VraXBwdF9nZXNhbXQnLCB7J25hbWUnOicwNF8xX0FuemFobF9GZW5zdGVyX2dlb2VmZm5ldF91bmRfZ2VraXBwdF9nZXNhbXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLkVHLkZlbnN0ZXJfemFlaGxlbi4wNV9vZmZlbmVfZ2VraXBwdGVfRmVuc3Rlcl9MaXN0ZScsIHsnbmFtZSc6JzA1X29mZmVuZV9nZWtpcHB0ZV9GZW5zdGVyX0xpc3RlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonbm9jaCBsZWVyJyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLkVHLkZlbnN0ZXJfemFlaGxlbi4wNl9nZXNhbXRlX0ZlbnN0ZXJfTGlzdGUnLCB7J25hbWUnOicwNl9nZXNhbXRlX0ZlbnN0ZXJfTGlzdGUnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOidub2NoIGxlZXInIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uRUcuRmVuc3Rlcl96YWVobGVuLjA3X2h0bWxfRmVuc3Rlcl9MaXN0ZScsIHsnbmFtZSc6JzA3X2h0bWxfRmVuc3Rlcl9MaXN0ZScsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6J25vY2ggbGVlcicgfV0sCiAgICAvL1RlbGVncmFtIE5hY2hyaWNodGVudmVyc2FuZAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5UZWxlZ3JhbS4wMVRlbGVncmFtX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXNfRUcnLCB7J25hbWUnOicwMVRlbGVncmFtX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXMnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5UZWxlZ3JhbS4wMlRlbGVncmFtX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuX0VHJywgeyduYW1lJzonMDJUZWxlZ3JhbV9GZW5zdGVyc3RhdHVzX3NlbmRlbicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIlRlbGVncmFtX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKICAgIC8vRS1NYWlsIE5hY2hyaWNodGVudmVyc2FuZAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5FTUFJTC4wMUVNYWlsX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXNfRUcnLCB7J25hbWUnOicwMUVNYWlsX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXMnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5FTUFJTC4wMkVNYWlsX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuX0VHJywgeyduYW1lJzonMDJFTWFpbF9GZW5zdGVyc3RhdHVzX3NlbmRlbicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIkVNQUlMX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKICAgIApdOwoKY3JlYXRlVXNlclN0YXRlcyhhbmxlZ2VuX2luLCBmYWxzZSwgc3RhdGVzVG9DcmVhdGUsIGZ1bmN0aW9uKCl7OwogICAgbWFpbl9lZygpOwp9KTsKCgo=</field>
                                      <comment pinned="false" h="80" w="160">Datenpunkte erstellen</comment>
                                    </block>
                                    <block type="procedures_defcustomnoreturn" id="Zvy_1dO.m7QsW5~:T1E*" x="12" y="112">
                                      <mutation statements="false">
                                        <arg name="anlegen_in" varid="q-e8vKpWl@Q9cU2jes}t"></arg>
                                      </mutation>
                                      <field name="NAME">Datenpunkte_anlegen_OG</field>
                                      <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjEgKDI2IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwoKZnVuY3Rpb24gY3JlYXRlVXNlclN0YXRlcyh3aGVyZSwgZm9yY2UsIHN0YXRlc1RvQ3JlYXRlLCBjYWxsYmFjayA9IHVuZGVmaW5lZCkgewogCiAgICBjb25zdCBXQVJOID0gZmFsc2U7IC8vIE9ubHkgZm9yIDBfdXNlcmRhdGEuMDogVGhyb3dzIHdhcm5pbmcgaW4gbG9nLCBpZiBzdGF0ZSBpcyBhbHJlYWR5IGV4aXN0aW5nIGFuZCBmb3JjZT1mYWxzZS4gRGVmYXVsdCBpcyBmYWxzZSwgc28gbm8gd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGV4aXN0cy4KICAgIGNvbnN0IExPR19ERUJVRyA9IGZhbHNlOyAvLyBUbyBkZWJ1ZyB0aGlzIGZ1bmN0aW9uLCBzZXQgdG8gdHJ1ZQogICAgLy8gUGVyIGlzc3VlICM0NzQgKGh0dHBzOi8vZ2l0aHViLmNvbS9pb0Jyb2tlci9pb0Jyb2tlci5qYXZhc2NyaXB0L2lzc3Vlcy80NzQpLCB0aGUgdXNlZCBmdW5jdGlvbiBzZXRPYmplY3QoKSBleGVjdXRlcyB0aGUgY2FsbGJhY2sgCiAgICAvLyBiZWZvcmUgdGhlIHN0YXRlIGlzIGFjdHVhbCBjcmVhdGVkLiBUaGVyZWZvcmUsIHdlIHVzZSBhIHNldFRpbWVvdXQgYW5kIGNvdW50ZXIgYXMgYSB3b3JrYXJvdW5kLgogICAgY29uc3QgREVMQVkgPSA1MDsgLy8gRGVsYXkgaW4gbWlsbGlzZWNvbmRzIChtcykuIEluY3JlYXNlIHRoaXMgdG8gMTAwLCBpZiBpdCBpcyBub3Qgd29ya2luZy4KCiAgICAvLyBWYWxpZGF0ZSAid2hlcmUiCiAgICBpZiAod2hlcmUuZW5kc1dpdGgoJy4nKSkgd2hlcmUgPSB3aGVyZS5zbGljZSgwLCAtMSk7IC8vIFJlbW92ZSB0cmFpbGluZyBkb3QKICAgIGlmICggKHdoZXJlLm1hdGNoKC9eKChqYXZhc2NyaXB0XC4oWzEtOV1bMC05XXxbMC05XSkpJHwwX3VzZXJkYXRhXC4wJCkvKSA9PSBudWxsKSApIHsKICAgICAgICBsb2coJ1RoaXMgc2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgdG8gY3JlYXRlIHN0YXRlcyB1bmRlciBbJyArIHdoZXJlICsgJ10nLCAnZXJyb3InKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgLy8gUHJlcGFyZSAic3RhdGVzVG9DcmVhdGUiIHNpbmNlIHdlIGFsc28gYWxsb3cgYSBzaW5nbGUgc3RhdGUgdG8gY3JlYXRlCiAgICBpZighQXJyYXkuaXNBcnJheShzdGF0ZXNUb0NyZWF0ZVswXSkpIHN0YXRlc1RvQ3JlYXRlID0gW3N0YXRlc1RvQ3JlYXRlXTsgLy8gd3JhcCBpbnRvIGFycmF5LCBpZiBqdXN0IG9uZSBhcnJheSBhbmQgbm90IGluc2lkZSBhbiBhcnJheQoKICAgIC8vIEFkZCAid2hlcmUiIHRvIFNUQVRFU19UT19DUkVBVEUKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhdGVzVG9DcmVhdGUubGVuZ3RoOyBpKyspIHsKICAgICAgICBsZXQgbHBQYXRoID0gc3RhdGVzVG9DcmVhdGVbaV1bMF0ucmVwbGFjZSgvXC4qXC4vZywgJy4nKTsgLy8gcmVwbGFjZSBhbGwgbXVsdGlwbGUgZG90cyBsaWtlICcuLicsICcuLi4nIHdpdGggYSBzaW5nbGUgJy4nCiAgICAgICAgbHBQYXRoID0gbHBQYXRoLnJlcGxhY2UoL14oKGphdmFzY3JpcHRcLihbMS05XVswLTldfFswLTldKVwuKXwwX3VzZXJkYXRhXC4wXC4pLywnJykgLy8gcmVtb3ZlIGFueSBqYXZhc2NyaXB0LnguIC8gMF91c2VyZGF0YS4wLiBmcm9tIGJlZ2lubmluZwogICAgICAgIGxwUGF0aCA9IHdoZXJlICsgJy4nICsgbHBQYXRoOyAvLyBhZGQgd2hlcmUgdG8gYmVnaW5uaW5nIG9mIHN0cmluZwogICAgICAgIHN0YXRlc1RvQ3JlYXRlW2ldWzBdID0gbHBQYXRoOwogICAgfQoKICAgIGlmICh3aGVyZSAhPSAnMF91c2VyZGF0YS4wJykgewogICAgICAgIC8vIENyZWF0ZSBTdGF0ZXMgdW5kZXIgamF2YXNjcmlwdC54CiAgICAgICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgICAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKGxvb3BQYXJhbSkgewogICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gTm93IHdlIGFyZSBjcmVhdGluZyBuZXcgc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXScpOwogICAgICAgICAgICBsZXQgbG9vcEluaXQgPSAobG9vcFBhcmFtWzFdWydkZWYnXSA9PSB1bmRlZmluZWQpID8gbnVsbCA6IGxvb3BQYXJhbVsxXVsnZGVmJ107IC8vIG1pbWljIHNhbWUgYmVoYXZpb3IgYXMgY3JlYXRlU3RhdGUgaWYgbm8gaW5pdCB2YWx1ZSBpcyBwcm92aWRlZAogICAgICAgICAgICBjcmVhdGVTdGF0ZShsb29wUGFyYW1bMF0sIGxvb3BJbml0LCBmb3JjZSwgbG9vcFBhcmFtWzFdLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHByb2Nlc3NlZC4nKTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgICAvLyBDcmVhdGUgU3RhdGVzIHVuZGVyIDBfdXNlcmRhdGEuMAogICAgICAgIGxldCBudW1TdGF0ZXMgPSBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7CiAgICAgICAgbGV0IGNvdW50ZXIgPSAtMTsKICAgICAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKGxvb3BQYXJhbSkgewogICAgICAgICAgICBjb3VudGVyICs9IDE7CiAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZyAoJ1tEZWJ1Z10gQ3VycmVudGx5IHByb2Nlc3NpbmcgZm9sbG93aW5nIHN0YXRlOiBbJyArIGxvb3BQYXJhbVswXSArICddJyk7CiAgICAgICAgICAgIGlmKCAoJChsb29wUGFyYW1bMF0pLmxlbmd0aCA+IDApICYmIChleGlzdHNTdGF0ZShsb29wUGFyYW1bMF0pKSApIHsgLy8gV29ya2Fyb3VuZCBkdWUgdG8gaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3OAogICAgICAgICAgICAgICAgLy8gU3RhdGUgaXMgZXhpc3RpbmcuCiAgICAgICAgICAgICAgICBpZiAoV0FSTiAmJiAhZm9yY2UpIGxvZygnU3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXSBpcyBhbHJlYWR5IGV4aXN0aW5nIGFuZCB3aWxsIG5vIGxvbmdlciBiZSBjcmVhdGVkLicsICd3YXJuJyk7CiAgICAgICAgICAgICAgICBpZiAoIVdBUk4gJiYgTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gU3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXSBpcyBhbHJlYWR5IGV4aXN0aW5nLiBPcHRpb24gZm9yY2UgKD1vdmVyd3JpdGUpIGlzIHNldCB0byBbJyArIGZvcmNlICsgJ10uJyk7CiAgICAgICAgICAgICAgICBpZighZm9yY2UpIHsKICAgICAgICAgICAgICAgICAgICAvLyBTdGF0ZSBleGlzdHMgYW5kIHNoYWxsIG5vdCBiZSBvdmVyd3JpdHRlbiBzaW5jZSBmb3JjZT1mYWxzZQogICAgICAgICAgICAgICAgICAgIC8vIFNvLCB3ZSBkbyBub3QgcHJvY2VlZC4KICAgICAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQhJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB3YXMgcHJvdmlkZWQsIHdoaWNoIHdlIGFyZSBnb2luZyB0byBleGVjdXRlIG5vdy4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBnbyBvdXQgYW5kIGNvbnRpbnVlIHdpdGggbmV4dCBlbGVtZW50IGluIGxvb3AuCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTg0NTI5MjAvY29udGludWUtaW4tY3Vyc29yLWZvcmVhY2gKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IC8vIGlmKCFmb3JjZSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU3RhdGUgaXMgbm90IGV4aXN0aW5nIG9yIGZvcmNlID0gdHJ1ZSwgc28gd2UgYXJlIGNvbnRpbnVpbmcgdG8gY3JlYXRlIHRoZSBzdGF0ZSB0aHJvdWdoIHNldE9iamVjdCgpLgogICAgICAgICAgICBsZXQgb2JqID0ge307CiAgICAgICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgICAgICBvYmouY29tbW9uID0gbG9vcFBhcmFtWzFdOwogICAgICAgICAgICBzZXRPYmplY3QobG9vcFBhcmFtWzBdLCBvYmosIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3QgZm9yIHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ106ICcgKyBlcnIpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gTm93IHdlIGFyZSBjcmVhdGluZyBuZXcgc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXScpCiAgICAgICAgICAgICAgICAgICAgbGV0IGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS5kZWYgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS50eXBlID09PSAnc3RyaW5nJykgaW5pdCA9ICcnOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGluaXQgPSBsb29wUGFyYW1bMV0uZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZShsb29wUGFyYW1bMF0sIGluaXQsIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIHNldFN0YXRlIGR1cmNoZ2Vmw7xocnQ6ICcgKyBsb29wUGFyYW1bMF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEZ1bmN0aW9uIHRvIGNhbGxiYWNrIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9LCBERUxBWSArICgyMCAqIGNvdW50ZXIpICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfQp9CgpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICAvL1N0aW1tZW4KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wMUFsZXhhJywgeyduYW1lJzonMDFBbGV4YScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6dHJ1ZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQWxleGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDJIYW5zJywgeyduYW1lJzonMDJIYW5zJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiSGFucyIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wM1ZpY2tpJywgeyduYW1lJzonMDNWaWNraScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIlZpY2tpIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA0Q29uY2hpdGEnLCB7J25hbWUnOicwNENvbmNoaXRhJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQ29uY2hpdGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDVBbGV4YV9zc21sJywgeyduYW1lJzonMDVBbGV4YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJBbGV4YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wNkhhbnNfc3NtbCcsIHsnbmFtZSc6JzA2SGFuc19zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJIYW5zIj4nIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA3Vmlja2lfc3NtbCcsIHsnbmFtZSc6JzA3Vmlja2lfc3NtbCcsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6JzxzcGVhaz48dm9pY2UgbmFtZT0iVmlja2kiPicgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDhDb25jaGl0YV9zc21sJywgeyduYW1lJzonMDhDb25jaGl0YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJDb25jaGl0YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wOXNzbWxfZW5kZScsIHsnbmFtZSc6JzA5c3NtbF9lbmRlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPC92b2ljZT48L3NwZWFrPicgfV0sCiAgICAvL0Fuc2FnZSBCdXR0b24KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfQW5zYWdlbi4wOUZlbnN0ZXJhbnNhZ2VfT0cnLCB7J25hbWUnOiAnMDlGZW5zdGVyYW5zYWdlJywndHlwZSc6ICdib29sZWFuJywgJ3JlYWQnOiB0cnVlLCAnd3JpdGUnOiB0cnVlLCAncm9sZSc6ICdidXR0b24nLCdkZWYnOnRydWUsICJzbWFydE5hbWUiOiB7ImRlIjogIjA5RmVuc3RlcmFuc2FnZSIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwgCiAgICAvL0dlcmFldGUgemFlaGxlbgogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uT0cuRmVuc3Rlcl96YWVobGVuLjAxX0FuemFobF9GZW5zdGVyX2dla2lwcHQnLCB7J25hbWUnOicwMV9BbnphaGxfRmVuc3Rlcl9nZWtpcHB0JywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidudW1iZXInLCd1bml0JzonRmVuc3RlcicsICdkZWYnOjAgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi5PRy5GZW5zdGVyX3phZWhsZW4uMDJfQW56YWhsX0ZlbnN0ZXJfb2ZmZW4nLCB7J25hbWUnOicwMl9BbnphaGxfRmVuc3Rlcl9vZmZlbicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonbnVtYmVyJywndW5pdCc6J0ZlbnN0ZXInLCAnZGVmJzowIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uT0cuRmVuc3Rlcl96YWVobGVuLjAzX0FuemFobF9GZW5zdGVyX2dlc2NobG9zc2VuJywgeyduYW1lJzonMDNfQW56YWhsX0ZlbnN0ZXJfZ2VzY2hsb3NzZW4nLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLk9HLkZlbnN0ZXJfemFlaGxlbi4wNF9BbnphaGxfRmVuc3Rlcl9nZXNhbXQnLCB7J25hbWUnOicwNF9BbnphaGxfRmVuc3Rlcl9nZXNhbXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLk9HLkZlbnN0ZXJfemFlaGxlbi4wNF8xX0FuemFobF9GZW5zdGVyX2dlb2VmZm5ldF91bmRfZ2VraXBwdF9nZXNhbXQnLCB7J25hbWUnOicwNF8xX0FuemFobF9GZW5zdGVyX2dlb2VmZm5ldF91bmRfZ2VraXBwdF9nZXNhbXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOidGZW5zdGVyJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLk9HLkZlbnN0ZXJfemFlaGxlbi4wNV9vZmZlbmVfZ2VraXBwdGVfRmVuc3Rlcl9MaXN0ZScsIHsnbmFtZSc6JzA1X29mZmVuZV9nZWtpcHB0ZV9GZW5zdGVyX0xpc3RlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonbm9jaCBsZWVyJyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLk9HLkZlbnN0ZXJfemFlaGxlbi4wNl9nZXNhbXRlX0ZlbnN0ZXJfTGlzdGUnLCB7J25hbWUnOicwNl9nZXNhbXRlX0ZlbnN0ZXJfTGlzdGUnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOidub2NoIGxlZXInIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uT0cuRmVuc3Rlcl96YWVobGVuLjA3X2h0bWxfRmVuc3Rlcl9MaXN0ZScsIHsnbmFtZSc6JzA3X2h0bWxfRmVuc3Rlcl9MaXN0ZScsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6J25vY2ggbGVlcicgfV0sCiAgICAvL1RlbGVncmFtIE5hY2hyaWNodGVudmVyc2FuZAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5UZWxlZ3JhbS4wMVRlbGVncmFtX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXNfT0cnLCB7J25hbWUnOicwMVRlbGVncmFtX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXMnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5UZWxlZ3JhbS4wMlRlbGVncmFtX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuX09HJywgeyduYW1lJzonMDJUZWxlZ3JhbV9GZW5zdGVyc3RhdHVzX3NlbmRlbicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIlRlbGVncmFtX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKICAgIC8vRS1NYWlsIE5hY2hyaWNodGVudmVyc2FuZAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5FTUFJTC4wMUVNYWlsX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXNfT0cnLCB7J25hbWUnOicwMUVNYWlsX0ZlbnN0ZXJfVmVyc2FuZF9hbl9hdXMnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5FTUFJTC4wMkVNYWlsX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuX09HJywgeyduYW1lJzonMDJFTWFpbF9GZW5zdGVyc3RhdHVzX3NlbmRlbicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIkVNQUlMX0ZlbnN0ZXJzdGF0dXNfc2VuZGVuIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKICAgIApdOwoKY3JlYXRlVXNlclN0YXRlcyhhbmxlZ2VuX2luLCBmYWxzZSwgc3RhdGVzVG9DcmVhdGUsIGZ1bmN0aW9uKCl7OwogICAgbWFpbl9vZygpOwp9KTsKCgo=</field>
                                      <comment pinned="false" h="80" w="160">Datenpunkte erstellen</comment>
                                    </block>
                                    <block type="procedures_callcustomnoreturn" id="jF?p*bfL@wiJRZXO9]+}" x="12" y="162">
                                      <mutation name="Datenpunkte_anlegen_EG">
                                        <arg name="anlegen_in"></arg>
                                      </mutation>
                                      <value name="ARG0">
                                        <block type="text" id="(F_d$2%z]Oc$;UCfCU=h">
                                          <field name="TEXT">javascript.0</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="procedures_callcustomnoreturn" id="tA~^OS%}Fy.}/{4Zc4lA">
                                          <mutation name="Datenpunkte_anlegen_OG">
                                            <arg name="anlegen_in"></arg>
                                          </mutation>
                                          <value name="ARG0">
                                            <block type="text" id="^}uKX/c.8x0ClcNS*J18">
                                              <field name="TEXT">javascript.0</field>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                    <block type="procedures_defnoreturn" id="K`--nJY%DS|!u4N4*0F:" x="12" y="312">
                                      <field name="NAME">main_eg</field>
                                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                    </block>
                                    <block type="procedures_defnoreturn" id="(ZQhT?Uu8=m$`[Sd3;yx" x="12" y="388">
                                      <field name="NAME">main_og</field>
                                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                    </block>
                                  </xml>
                                  

                                  flkontaktF Online
                                  flkontaktF Online
                                  flkontakt
                                  wrote on last edited by
                                  #341

                                  @dslraser werde ich testen, vielen Dank!!!

                                  1 Reply Last reply
                                  0
                                  • dslraserD dslraser

                                    @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                                    Das wäre echt super. Habe wahrscheinlich noch genügend Zeit zum Testen.

                                    Steckdosen sind jetzt oben drinn. Ich hoffe es passt und es gibt keine anderen Fehler. Die "sortieren Geschichte" war/ist ein größerer Umbau (intern im Blockly). Datenpunkte können alle bleiben, es braucht nichts gelöscht zu werden.

                                    D Offline
                                    D Offline
                                    DocGame
                                    wrote on last edited by
                                    #342

                                    @dslraser
                                    die Fehler bei "Licht" kommen jetzt Gott sei Dank nicht mehr....
                                    Allerdings ist die Anzeige auch nich recht Bescheiden:
                                    Licht_IQontrol.JPG

                                    dslraserD 1 Reply Last reply
                                    0
                                    • D DocGame

                                      @dslraser
                                      die Fehler bei "Licht" kommen jetzt Gott sei Dank nicht mehr....
                                      Allerdings ist die Anzeige auch nich recht Bescheiden:
                                      Licht_IQontrol.JPG

                                      dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      wrote on last edited by
                                      #343

                                      @DocGame
                                      ja, schaue ich mir an, aber das dauert etwas...

                                      D 1 Reply Last reply
                                      0
                                      • dslraserD dslraser

                                        @DocGame
                                        ja, schaue ich mir an, aber das dauert etwas...

                                        D Offline
                                        D Offline
                                        DocGame
                                        wrote on last edited by
                                        #344

                                        @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                                        @DocGame
                                        ja, schaue ich mir an, aber das dauert etwas...

                                        Kein Thema....Ist ja eh super wie Hilfsbereit du bist.
                                        Muss auch mal wieder nach dem Frauchen schauen :blush:

                                        1 Reply Last reply
                                        0
                                        • siggi85S Offline
                                          siggi85S Offline
                                          siggi85
                                          wrote on last edited by
                                          #345

                                          @dslraser Ich habe Xiaomi Fenstersensoren mit deconz eingebunden und die werden als Sensor unbekannt erkannt. Anbei der RAW von einem der Datenpunkte.


                                          {
                                          "from": "system.adapter.deconz.0",
                                          "ts": 1555133853429,
                                          "common": {
                                          "name": "Fenster Bad open",
                                          "type": "boolean",
                                          "role": "state",
                                          "read": true,
                                          "write": false
                                          },
                                          "native": {},
                                          "acl": {
                                          "object": 1636,
                                          "owner": "system.user.admin",
                                          "ownerGroup": "system.group.administrator",
                                          "state": 1636
                                          },
                                          "_id": "deconz.0.Sensors.20.open",
                                          "type": "state"
                                          }

                                          dslraserD 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          477

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe