{"id":662,"date":"2026-04-24T20:52:08","date_gmt":"2026-04-24T20:52:08","guid":{"rendered":"https:\/\/schautdoch.ch\/?p=662"},"modified":"2026-04-24T20:57:05","modified_gmt":"2026-04-24T20:57:05","slug":"traum-schiff","status":"publish","type":"post","link":"https:\/\/schautdoch.ch\/?p=662","title":{"rendered":"Traum Schiff"},"content":{"rendered":"\n<div id=\"loaderBox\">\n  <div id=\"loaderText\">Lade Schiff&#8230;<\/div>\n  <div id=\"battery\">\n    <div id=\"batteryFill\"><\/div>\n  <\/div>\n<\/div>\n\n<style>\n  body {\n    margin: 0;\n    background: #e9e9e9;\n    overflow: hidden;\n  }\n\n  #loaderBox {\n    position: fixed;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    font-family: Arial, sans-serif;\n    text-align: center;\n    color: #333;\n    z-index: 10;\n  }\n\n  #loaderText {\n    margin-bottom: 12px;\n    font-size: 18px;\n  }\n\n  #battery {\n    width: 260px;\n    height: 34px;\n    border: 3px solid #555;\n    border-radius: 6px;\n    padding: 3px;\n    position: relative;\n    background: #f5f5f5;\n  }\n\n  #battery::after {\n    content: \"\";\n    position: absolute;\n    right: -13px;\n    top: 9px;\n    width: 8px;\n    height: 16px;\n    background: #555;\n    border-radius: 2px;\n  }\n\n  #batteryFill {\n    height: 100%;\n    width: 0%;\n    background: #777;\n    border-radius: 3px;\n    transition: width 0.2s;\n  }\n<\/style>\n\n<script type=\"module\">\nimport * as THREE from \"https:\/\/cdn.jsdelivr.net\/npm\/three@0.152.2\/build\/three.module.js\";\nimport { STLLoader } from \"https:\/\/cdn.jsdelivr.net\/npm\/three@0.152.2\/examples\/jsm\/loaders\/STLLoader.js\";\nimport { OrbitControls } from \"https:\/\/cdn.jsdelivr.net\/npm\/three@0.152.2\/examples\/jsm\/controls\/OrbitControls.js\";\n\nconst loaderBox = document.getElementById(\"loaderBox\");\nconst loaderText = document.getElementById(\"loaderText\");\nconst batteryFill = document.getElementById(\"batteryFill\");\n\nconst scene = new THREE.Scene();\nscene.background = new THREE.Color(0xe9e9e9);\n\nconst camera = new THREE.PerspectiveCamera(\n  60,\n  window.innerWidth \/ window.innerHeight,\n  0.1,\n  2000\n);\ncamera.position.set(120, 70, 120);\n\nconst renderer = new THREE.WebGLRenderer({ antialias: true });\nrenderer.setSize(window.innerWidth, window.innerHeight);\nrenderer.shadowMap.enabled = true;\ndocument.body.appendChild(renderer.domElement);\n\nconst controls = new OrbitControls(camera, renderer.domElement);\ncontrols.enableDamping = true;\n\nconst light1 = new THREE.HemisphereLight(0xffffff, 0xaaaaaa, 1);\nscene.add(light1);\n\nconst light2 = new THREE.DirectionalLight(0xffffff, 1.4);\nlight2.position.set(100, 120, 80);\nlight2.castShadow = true;\nscene.add(light2);\n\nconst floor = new THREE.Mesh(\n  new THREE.PlaneGeometry(600, 600),\n  new THREE.ShadowMaterial({ opacity: 0.18 })\n);\nfloor.rotation.x = -Math.PI \/ 2;\nfloor.position.y = -25;\nfloor.receiveShadow = true;\nscene.add(floor);\n\nlet ship;\n\nconst manager = new THREE.LoadingManager();\n\nmanager.onProgress = function (url, loaded, total) {\n  const percent = Math.round((loaded \/ total) * 100);\n  batteryFill.style.width = percent + \"%\";\n  loaderText.innerText = \"Lade Schiff... \" + percent + \"%\";\n};\n\nmanager.onLoad = function () {\n  loaderText.innerText = \"Schiff ist da.\";\n  setTimeout(() => {\n    loaderBox.style.display = \"none\";\n  }, 500);\n};\n\nconst stlLoader = new STLLoader(manager);\n\nstlLoader.load(\n  \"https:\/\/www.alleswasbewegt.ch\/images\/schiff.stl\",\n  function (geometry) {\n    geometry.center();\n\n    const material = new THREE.MeshStandardMaterial({\n      color: 0xf4f4f4,\n      roughness: 0.65,\n      metalness: 0.15\n    });\n\n    ship = new THREE.Mesh(geometry, material);\n    ship.castShadow = true;\n    scene.add(ship);\n  },\n  function (xhr) {\n    if (xhr.lengthComputable) {\n      const percent = Math.round((xhr.loaded \/ xhr.total) * 100);\n      batteryFill.style.width = percent + \"%\";\n      loaderText.innerText = \"Lade Schiff... \" + percent + \"%\";\n    } else {\n      loaderText.innerText = \"Lade Schiff...\";\n      batteryFill.style.width = \"50%\";\n    }\n  },\n  function (error) {\n    loaderText.innerText = \"Fehler: STL konnte nicht geladen werden.\";\n    console.error(error);\n  }\n);\n\nfunction animate() {\n  requestAnimationFrame(animate);\n\n  if (ship) {\n    ship.rotation.y += 0.0015;\n  }\n\n  controls.update();\n  renderer.render(scene, camera);\n}\n\nanimate();\n\nwindow.addEventListener(\"resize\", () => {\n  camera.aspect = window.innerWidth \/ window.innerHeight;\n  camera.updateProjectionMatrix();\n  renderer.setSize(window.innerWidth, window.innerHeight);\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Lade Schiff&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"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BrAcAoAC\/h0DAqweLIoCCuAhpCEQFKwB2iMDCQUBAqYkBN4kBQAQBQCAJNwjAwCaIwMBBALiNgLaAgiAAxIIBAIKDAUAHAQKFAIEAgQCCB4EDB4CFAIiAgUBAgQDBgUAAwIEAwAECAMABggDAAQGAwAWAwC2AQwgAgUAsgEsDgMADAYEArIBNgoCBgQGAwAGxhIHAAMAuhHsEbwVAiICJgIIAgjUF7QDth3kHCASFBCgHMYcmBzQHK4c4hwQKJwc6BsCPgaWAQwEPgQkBgQ2AgSaGAgGCAIGBAwKAgYFAAIKBAIIBAMABMYaAwEEAgi0GRygAfwaBQCSHtAevB76HoYg\/h+GIwwDAAQCBgQCBAMA1iMEAwIFAAoGuCLkIhgkniScAQ6cAQLINQgGqgGUCwEEjAK+AZQCBgiUBAMAugEGlgICAQAQAA4EIgEKPgQkAAgECAECAhIEEAwCJAoDAAwIAAoBAAQBBQIBBAQOAgC6AQEGvAICgAIBAzYsigIKAAQQFKwBAQ6wAQQBBAIBAQMCBAKGBSgAIQEnAAQAJwEoBicAKAAhACgAJwBEAIQBBwAoAicBIQCoAAQAgQCEAIEAhAKBAIQAgQCEAoEAhACBAIQAgQCEAoEAhACBAIQAgQCEAYEAhAGBAIQBgQCEAIEAhACBAIQAgQGEAIEAhACBAIQFgQCEA4EAhAGBAIQSgQCEAoEAhACBAIQCgQCEAIEAhAWBAIQAgQCEAIEAhACBAIQCgQCEAIEAhAGBAIQCgQCEAYEAhACBAIQBgQCEAYEAhAGBAIQAgQCEAIEAhAKBAIQAgQCEAYEAhACBAIQAgQCEB4EAhASBAIQAgQCEA4EChACBAIQBgQCEAIEBhACBAIQBgQCEAoEAhAGBAIQAgQCEAYEAhAKBAIQBgQCEAoEAhACBAIQCgQCEAYEAhACBAIQAgQCEBYEAhACBAIQAgQCEAoEAhASBAIQAgQCEAYEAhACBAIQFgQCEAoEAhACBAIQAgQCEAoEAhACBAIQAgQCEAIEAhACBAIQAgQCEAYEAhACBAYQAgQCEAYEAhACBAIQAgQCEAIEAhACBAIQDgQCEAoEAhACBAIQBgQCEB4EBhAWBAIQAgQCEAIEAhAKBAIQAgQCEAKgAKACoACEBqADE0QGoASEAoQEhAqgAwQLEAMEAxADBAMQGwQDEA8EBxADBAMQAwQHEAMEBxADBAMQAwQDEAMEAxAHBAMQAwQDEAcECxALBAMQAwQDEAsEExAPBAMQAwQDEAMEAxADBAMQAwQDEAMEAxADBAMQBwQDEAMEAxADBAMQBwQDEBMEAxAHBAMQEwQDEAMEAxADBA8QFwQDEBMEAxADBAMQBwQDEAMEAxADBAMQBwQDEAcEAxALBAMQAwQHEBKHoJ\/0jc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlQXV0b21hdGlzY2ggZ2VzcGVpY2hlcnRlciBFbnR3dXJmZG9jdW1lbnRjb250ZW50ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHN0aWNreWRvY3VtZW50dGVtcGxhdGVkb2N1bWVudGZvcm1hdGRvY3VtZW50bWV0YWZvb3Rub3Rlc2RvY3VtZW50Y2F0ZWdvcmllc2RvY3VtZW50dGFnc2RvY3VtZW50YmxvY2tzVFpyYXVtc2NoaWZmcmF1bSBTY2hpZmZjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2lubmVyQmxvY2tzY29udGVudDwhLS0gd3A6aHRtbCAtLT4KPCBsPgo8ID0iZGUiPmFkZSBjaGF0Ij4KPGl0ZT5pICA8L2k+CjxzdHlsZT4KICBib2R5IHsgbWFyZ2luOiAwOyBiYWNrZ3JvdW5kOiAjOyB9CiAgYW5hcyB7IGRpc3BsYXk6IGJsb2NrOyB9CnR5bApoZWFkCmJvZHk+Cgo8c2NyaXB0IHNyImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vdGhyZWVAMC4xNTIuMi9idWlsZC90aHJlZS5tLmpzIgppcHQgciJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3RocmVlQDAuMTUyLjIvZXhhbXBsZXMvanMvbG9hZGVycy9TVExMb2FkZXIuanMiaXB0cml0c3IiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS90aHJlZUAwLjE1Mi4yL2V4YW1wbGVzL2pzL2NvbnRyb2xzL09yYml0Q29udHJvbHMuanMiY3J0CnNjcnQKY29uc3Qgc2NlbmUgPSBuZXcgVEhSRUUuU2NlbmUoKTsKc2NlbmUuYmFja2dyb3VuZCA9IG5ldyBUSFJFRS5Db2xvcigweCk7Cgpjb25zdCBjYW1lcmEgPSBuZXcgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEoLCB3aW5kb3cuaW5uZXJXaWR0aC93aW5kb3cuaW5uZXJIZWlnaHQsIDAuMSwgMDAwKTsKY2FtZXJhLnBvc2l0aW9uLnNldCgwLCAwLCAxMCk7Cgpjb25zdCByZW5kZXJlciA9IG5ldyBUSFJFRS5XZWJHTFJlbmRlcmVyKHsgYW50aWFsaWFzOiB0cnVlIH0pOwpyZW5kZXJlci5zZXRTaXplKHdpbmRvdy5pbm5lcldpZHRoLCB3aW5kb3cuaW5uZXJIZWlnaHQpOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlbmRlcmVyLmRvbUVsZW1lbnQpOwoKY29uc3QgY29udHJvbHMgPSBuZXcgT3JiaXRDb250cm9scyhjYW1lcmEsIHJlbmRlcmVyLmRvbUVsZW1lbnQpOwoKY25zdCBpZ2h0ID0gbmV3IFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQoMHhmZmZmZmYsIDEpOwppZ2h0LnBvc2l0aW9uLnNldCgsIDEsICk7CnNjZW5lLmFkZChpZ2h0KTsKCmNvbnN0IGwgPSBuZXcgVEhSRUUuZW50KDAwMDApOwpzY2VuZS5hZGQobCk7CgogIGxhZGUKY29uc3QgbG9hZGVyID0gZSBULlRMTG9hZGVyKCkKbG9hZGVyLmxvYWQoCiAgaHR0cHM6Ly93d3cuYWxsZXN3YXNiZXdlZ3QuY2gvaW1hZ2VzL3NjaGlmZi5zdGwsCiAgZnVuY3Rpb24gKGdlb21ldHJ5KSB7CiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoU3RhbmRhcmRNYXRlcmlhbCh7CiAgICAgIGNvbG9yOiAweCwKICAgICAgbmVzczogMC4sCiAgICAgIG5lc3M6IDAuCiAgICB9KTsKCiAgICBzaCA9IG5ldyBUSFJFRS5NZXNoKGdlb21ldHJ5LCBtYXRlcmlhbCk7CiAgICB0ICB0cmU7CiAgICBzY2VuZS5hZGQoc2gpOwogIH0KKQoKLyBuaWF0aW9uCmZ1bmN0aW9uIGFuaW1hdGUoKSB7CiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGUpOwogIHJkZXJlci5yZW5kZXIoc2NlbmUsIGNhbWVyYSk7Cn0KYW5pbWF0ZSgpOwoKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIocmVzaXplLCAoKSA9PiB7CiAgY2FtZXJhLmFzcGVjdCA9IHdpbmRvdy5pbm5lcldpZHRoL3dpbmRvdy5pbm5lckhlaWdodDsKICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpOwogIHJlbmRlcmVyLnNldFNpemUod2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodCk7Cn0pOwo8L3NjcmlwdD4KPCEtLSAvd3A6aHRtbCAtLT5kb2N1bWVudHNsdWdzdGF0ZXNhdmVkQXRzdGF0ZXNhdmVkQnlkaXZpZD0ib2FkZXJCb3giICBkaXZpZGxvYXJUZXh0TFNpZmYuLi48L2Rpdj4KICA8ZGl2IGlkPSJidGVyeSAgICBkdiBpZD0iYmF0cnlGaWxsIjwvZHY+CmR2L2Rpdj4KCjwKICAgCiAgIAogICBvdmVyZmxvdzogaGlkZGVuOwogIAojbG9kZXJCb3ggewogICAgcG9zaXRpbzogZml4ZWQ7CiAgICB0b3A6IDUwJTsKICAgIGxlZnQ6IDUwJTsKICAgIHRybmZvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgY29sb3I6ICMzMzM7CiAgICB6LWluZGV4OiAxMDsKICB9CgogICNsb2FkZXJUZXh0IAogICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgZm9udC1zaXplOiAxOHB4OwogIH0KCiAgI2JhdHRlcnkgewogICAgd2l0aDogMjYwcHg7CiAgICBoZWdodDogMzRweDsKICAgIGJvcmRlcjogM3B4IG9saWQgIzU1NTsKICAgIGJvcmRlci1yYWRpdXM6IDZ4OwogICAgcGFkZGluZzogM3B4OwogICAgcG9zaXRpb246IHJldGl2ZTsKICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7CiAgfQoKICAjYmF0dGVyOmFmdGVyewogICAgY29udGVudDogIiI7CiAgICBwb3NpdGlvbjogYXNvdXRlOwogICAgcmlnaHQ6IC0xM3B4OwogICAgdHA6IDlweDsKICAgIHdpZHRoOiA4cHg7CiAgICBoZWlnaHQ6IDE2cHg7CiAgICBiYWdyb3VuZDogIzU1NQogICBib3JkZXItcmFkaXVzOiAycHg7CiAgCiAgI2JhdGVyRmlsIHsgICAgaWdodDogMTAwJTsKICAgIHdpZHRoOiAwJTsKICAgIGJja2dyb3VuOiAjNzc3OyAgICByZXItcmFkaXVzOiAzcHg7CiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjJzOwogIH0KPC9zdGxldHlwZT0ibW9kdWxlIj4KaW1wb3J0ICogYSBUSFJFRSBmb20gb2R1bGU7bW9yeyBTVExMb2FkZSB9IGZyb20gbTsKbW9yIHsgT2JDb250cm9sIH0gZm9tIG07CgpvbnN0IGxvYWRlQm94ID0gZG9jdW1lbi5nZXRFbGVtZW50QnlJZCgibG9hZGVyQm94Iik7Y29udCBsb2FkZXJUZXh0ID0gZG91bWVudC5nZXRFbGVtZW50QnlJZCgibG9hZGVUZXgiKTtjb25zdGJhdHRyeUZpbGwgPSBkb2N1bWV0Lmd0RWxlbWVudEJ5SWQoImJhdHRlcnlGaWxsIik7CgogIAogICAKIAogMgo3bDExbDFsMi40bDIxMGwybDJmb29yNjYxOGZvb3Jmb29yNWZvb3Jmb29yKTsKCmxldCBzaGlwOwoKY29uc3QgbWFnciA9IG5ldyBUSFJFRS5Mb2FkaW5nTWFuYWdlcihtYW5hZ2VyLm9uUHJvZ3Jlc3M9ZnVuY3Rpb24gKHVyLCBsb2QsIHRvdGFsKSB7ICBwZXJjZW50ID0gTWF0aC5yb3VuZCgoZCAvIHRvdGFsKSAqIDEwMCk7CiAgYmF0dGV5RmlsbC5zdHlsZS53aWR0aHByY2VudCsgIiUiOwogIGxvYWRlcmV4dGlubmVyZXh0ID0gImFkZSBTY2hpZmYuLi4gIiArIHBlcmNlbnQgKyAiJSI7Cn07CgptYW5hZ2VyLm9uID0gZnVuY3Rpb24gKCkgewogIGxvYWRUZXh0LmlubmVyVGV4dCA9ICJTY2hpZmYgaXN0IGRhLiI7CiAgc2V0VGltZW91dCggPT4geyAgICBvYWRyQm94LnN5bGUuZGlzcGxheT0gIm5vbiI7CiAgfSwgNTAwKTsKfTsKCmNvbnQgc3RsTG9hZGVyID0gbmV3IFNUTExvYWRlcihtYW5hZ2VyKXN0TCIiNDQ0cm91Z2g2NW1ldGFsMTVpcGlwaXAsICBmdW5jdGlvbiAoeGhyIHsgICAgaWYgKHhoci5sZW5ndGhDb21wdXRhYmxlKSB7ICAgICAgY29uc3QgcGVyY2VudCA9IE1hdGgucm91bmQoKHhoci5sb2FkZWQgeGhyLnRvdGFsKSAqIDEwMCk7CiAgICAgIGJhdHRlcnlGaWxsLnN0eWxlLndpZHRoID0gcGVyY2V0ICsgIiUiOwogICAgICBsb2FkZXJUZXh0Lm5uZXJUZXh0ID0gIkxkZSBTY2hpZmYuLi4gIiArIHBlcmNlbiArICIlIjsKICAgIH0gZWxzZSB7CiAgICAgIGxvYWRlclRleHQubm5lclRleHQgPSAiTGFkZSBTY2hpZmYuLi4iOwogICAgICBiYXR0ZXJ5RmlsbC5zdHlsZS53aWR0aCA9ICI1MCUiOwogICAgfQogIH0sCiAgZnVuY3RpKGVycm9yKXsKICAgIG9kZXJUZXh0LmluZXJUZXh0ID0gIkZlaGxlcjogU1RMIGtvbm50ZSBuaWNodCBlbGRucmRlLiI7ICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogIH0KKTsKCmlwaXAxNQoiIiAgc3RhdGV2ZXJzaW9uZG9jdW1lbnRzbHVnc3RhdGVzYXZlZEF0c3RhdGVzYXZlZEJ5ZTllOWU5IGVuZQplOWU5ZTk2MDEyMnJlbmVyZXIuc2hhZHdNYXAuZW5hYmxlZCA9IHRydWU7CmRvY29udHJvbHMuZW5hYmxlRGFtcGluZyA9IHRydWU7Cm9IZW1pc3BoZXJlTGlnaHQoMHhmZmZmZmYsIDB4YWFhYWFhLCApOwpzY2VuZS5hZGQoaWdodCk7Cgpjb25zdCBpZ2h0ID0gbmV3IFRIUkVFLjAyMDgwaWdodC5jYXRTaGFkb3cgPSB0cnVlOwpzTXNoKAogIGV3IFRIUkVFLlBsYW5lR2VvbWVyeSwgLAogIG5ldyBUSFJFRS5TaGFkb3dNYXRlcmlhbCh7IG9wYWNpdHk6IDAuIH0pCilsLnJvdGF0aW9uLnggPSAtTWF0aC5QSSAvIDI7CmwucG9pdGlvbi55ID0gLTI7CmwucmVpdmVTaGFkb3cgPSB0cnVlOwpzY2VhbmVldCBlczsKCmxnZW9tZXRyeS5lbnRlcigpOwoKICAgIGNmZmZzaC5jYXNTaGFkb3c9dSAgbGFuZ2FlIHdlbgppZiAoc2gpIHsKICAgIHNoLm90YXRpb24ueSArPSAwLjAwOwogIH0KCiAgY29udHJvbHMudXBhdCgpOwogIG5kZWVyBQcIBAgGCAUhCAcIBwgGCA4IDggLCAZIAQYIBAkICggECAYBSwAIBwQKCwcSQQACQQBCAkEAAkEBAkEGAgEDDwEKAQ1BAEIAQQlCAEECAkEAAkECAkEBAkEAC0EAOQRBAQIBNxZBBjcbQQeGAQQrQQARARMBBAEDFwMEAQS4AUEALxUsQQAEAQMNHAMBAw4DAgMBCQEDBAYBDUEFQgABAgcBBEEBAwEGBQEDQQQEAkECDi8aBAGAAUgCDgInBEEBAgECDgIGQQkCATcCQQECARoMGAYtAYACARAIBAUHBQcDBAkCAwIDBUEAGUQAAQgBB0MAQQAIAQMBAwEXAQMULAEFiAIBhQERGx8lLQYiAhwwDAEZBgMCAwQgRwAEATQCGQgDBUEAAgoIAQIBAgQBBwQDAQMKDR0DERtDAAUEDwMcAQNBBQJBBwJBBwNBAAIBAwEDQQADARkCHRIBDAQLAhYaEQEFDwMFBy8XLwEFBAMGCwYVJAJBBAUCBUICAQ8CHy04Gg0XJpcBBwYBCSQCQQBDACJCAUEDBQcIBAUHBQcGQQMGQgABAwkXHkEAJA0BAwoBAw0BQgABQwARAQYTQgAqBQEcAQMMAgEDFQJBBAMBCQ9BAQIEBkEJAkEABAIIAgERARMCBgMCDQEDAAABCQAAAQIABwEHQgEBAEEAAI4BQRAIA0QCAgMBBkEAAwJDAQFDAEEAA0IAQQBCAAoEAQIGBUEAAgQCAUIAAQYKAkEADA4DBAYFAgNBBgUEBQJBAAUCA0EBBEEDBgUBBQEIAQUBRwADBgECQQQKQQERQQ4CAUIAQQADHgESAwJDAAIBAwEDQQADAQMWAQNBAgMBA0EAA0EKQgABQgABEwJBAALNBAB9AX0BfQB3BG9wZW53BmNsb3NlZHl3AHcIc3RhbmRhcmR3AHUAdyQ2YzkyNTUxNy01ZGVlLTQ4YTAtODU0Ni1kNTdiZmIyZjI1MWJ4dwljb3JlL2h0bWx3B3B1Ymxpc2h3EzIwMjYtMDQtMjRUMjA6NTI6MDh3DHRyYXVtLXNjaGlmZnUBfQF3lCA8ZGl2IGlkPSJsb2FkZXJCb3giPgogIDxkaXYgaWQ9ImxvYWRlclRleHQiPkxhZGUgU2NoaWZmLi4uPC9kaXY+CiAgPGRpdiBpZD0iYmF0dGVyeSI+CiAgICA8ZGl2IGlkPSJiYXR0ZXJ5RmlsbCI+PC9kaXY+CiAgPC9kaXY+CjwvZGl2PgoKPHN0eWxlPgogIGJvZHkgewogICAgbWFyZ2luOiAwOwogICAgYmFja2dyb3VuZDogI2U5ZTllOTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQoKICAjbG9hZGVyQm94IHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogNTAlOwogICAgbGVmdDogNTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjb2xvcjogIzMzMzsKICAgIHotaW5kZXg6IDEwOwogIH0KCiAgI2xvYWRlclRleHQgewogICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgIGZvbnQtc2l6ZTogMThweDsKICB9CgogICNiYXR0ZXJ5IHsKICAgIHdpZHRoOiAyNjBweDsKICAgIGhlaWdodDogMzRweDsKICAgIGJvcmRlcjogM3B4IHNvbGlkICM1NTU7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBwYWRkaW5nOiAzcHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1OwogIH0KCiAgI2JhdHRlcnk6OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IC0xM3B4OwogICAgdG9wOiA5cHg7CiAgICB3aWR0aDogOHB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgYmFja2dyb3VuZDogIzU1NTsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICB9CgogICNiYXR0ZXJ5RmlsbCB7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB3aWR0aDogMCU7CiAgICBiYWNrZ3JvdW5kOiAjNzc3OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgdHJhbnNpdGlvbjogd2lkdGggMC4yczsKICB9Cjwvc3R5bGU+Cgo8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CmltcG9ydCAqIGFzIFRIUkVFIGZyb20gImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vdGhyZWVAMC4xNTIuMi9idWlsZC90aHJlZS5tb2R1bGUuanMiOwppbXBvcnQgeyBTVExMb2FkZXIgfSBmcm9tICJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3RocmVlQDAuMTUyLjIvZXhhbXBsZXMvanNtL2xvYWRlcnMvU1RMTG9hZGVyLmpzIjsKaW1wb3J0IHsgT3JiaXRDb250cm9scyB9IGZyb20gImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vdGhyZWVAMC4xNTIuMi9leGFtcGxlcy9qc20vY29udHJvbHMvT3JiaXRDb250cm9scy5qcyI7Cgpjb25zdCBsb2FkZXJCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9hZGVyQm94Iik7CmNvbnN0IGxvYWRlclRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9hZGVyVGV4dCIpOwpjb25zdCBiYXR0ZXJ5RmlsbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiYXR0ZXJ5RmlsbCIpOwoKY29uc3Qgc2NlbmUgPSBuZXcgVEhSRUUuU2NlbmUoKTsKc2NlbmUuYmFja2dyb3VuZCA9IG5ldyBUSFJFRS5Db2xvcigweGU5ZTllOSk7Cgpjb25zdCBjYW1lcmEgPSBuZXcgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEoCiAgNjAsCiAgd2luZG93LmlubmVyV2lkdGggLyB3aW5kb3cuaW5uZXJIZWlnaHQsCiAgMC4xLAogIDIwMDAKKTsKY2FtZXJhLnBvc2l0aW9uLnNldCgxMjAsIDcwLCAxMjApOwoKY29uc3QgcmVuZGVyZXIgPSBuZXcgVEhSRUUuV2ViR0xSZW5kZXJlcih7IGFudGlhbGlhczogdHJ1ZSB9KTsKcmVuZGVyZXIuc2V0U2l6ZSh3aW5kb3cuaW5uZXJXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0KTsKcmVuZGVyZXIuc2hhZG93TWFwLmVuYWJsZWQgPSB0cnVlOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlbmRlcmVyLmRvbUVsZW1lbnQpOwoKY29uc3QgY29udHJvbHMgPSBuZXcgT3JiaXRDb250cm9scyhjYW1lcmEsIHJlbmRlcmVyLmRvbUVsZW1lbnQpOwpjb250cm9scy5lbmFibGVEYW1waW5nID0gdHJ1ZTsKCmNvbnN0IGxpZ2h0MSA9IG5ldyBUSFJFRS5IZW1pc3BoZXJlTGlnaHQoMHhmZmZmZmYsIDB4YWFhYWFhLCAxKTsKc2NlbmUuYWRkKGxpZ2h0MSk7Cgpjb25zdCBsaWdodDIgPSBuZXcgVEhSRUUuRGlyZWN0aW9uYWxMaWdodCgweGZmZmZmZiwgMS40KTsKbGlnaHQyLnBvc2l0aW9uLnNldCgxMDAsIDEyMCwgODApOwpsaWdodDIuY2FzdFNoYWRvdyA9IHRydWU7CnNjZW5lLmFkZChsaWdodDIpOwoKY29uc3QgZmxvb3IgPSBuZXcgVEhSRUUuTWVzaCgKICBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSg2MDAsIDYwMCksCiAgbmV3IFRIUkVFLlNoYWRvd01hdGVyaWFsKHsgb3BhY2l0eTogMC4xOCB9KQopOwpmbG9vci5yb3RhdGlvbi54ID0gLU1hdGguUEkgLyAyOwpmbG9vci5wb3NpdGlvbi55ID0gLTI1OwpmbG9vci5yZWNlaXZlU2hhZG93ID0gdHJ1ZTsKc2NlbmUuYWRkKGZsb29yKTsKCmxldCBzaGlwOwoKY29uc3QgbWFuYWdlciA9IG5ldyBUSFJFRS5Mb2FkaW5nTWFuYWdlcigpOwoKbWFuYWdlci5vblByb2dyZXNzID0gZnVuY3Rpb24gKHVybCwgbG9hZGVkLCB0b3RhbCkgewogIGNvbnN0IHBlcmNlbnQgPSBNYXRoLnJvdW5kKChsb2FkZWQgLyB0b3RhbCkgKiAxMDApOwogIGJhdHRlcnlGaWxsLnN0eWxlLndpZHRoID0gcGVyY2VudCArICIlIjsKICBsb2FkZXJUZXh0LmlubmVyVGV4dCA9ICJMYWRlIFNjaGlmZi4uLiAiICsgcGVyY2VudCArICIlIjsKfTsKCm1hbmFnZXIub25Mb2FkID0gZnVuY3Rpb24gKCkgewogIGxvYWRlclRleHQuaW5uZXJUZXh0ID0gIlNjaGlmZiBpc3QgZGEuIjsKICBzZXRUaW1lb3V0KCgpID0+IHsKICAgIGxvYWRlckJveC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogIH0sIDUwMCk7Cn07Cgpjb25zdCBzdGxMb2FkZXIgPSBuZXcgU1RMTG9hZGVyKG1hbmFnZXIpOwoKc3RsTG9hZGVyLmxvYWQoCiAgImh0dHBzOi8vd3d3LmFsbGVzd2FzYmV3ZWd0LmNoL2ltYWdlcy9zY2hpZmYuc3RsIiwKICBmdW5jdGlvbiAoZ2VvbWV0cnkpIHsKICAgIGdlb21ldHJ5LmNlbnRlcigpOwoKICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsKHsKICAgICAgY29sb3I6IDB4ZjRmNGY0LAogICAgICByb3VnaG5lc3M6IDAuNjUsCiAgICAgIG1ldGFsbmVzczogMC4xNQogICAgfSk7CgogICAgc2hpcCA9IG5ldyBUSFJFRS5NZXNoKGdlb21ldHJ5LCBtYXRlcmlhbCk7CiAgICBzaGlwLmNhc3RTaGFkb3cgPSB0cnVlOwogICAgc2NlbmUuYWRkKHNoaXApOwogIH0sCiAgZnVuY3Rpb24gKHhocikgewogICAgaWYgKHhoci5sZW5ndGhDb21wdXRhYmxlKSB7CiAgICAgIGNvbnN0IHBlcmNlbnQgPSBNYXRoLnJvdW5kKCh4aHIubG9hZGVkIC8geGhyLnRvdGFsKSAqIDEwMCk7CiAgICAgIGJhdHRlcnlGaWxsLnN0eWxlLndpZHRoID0gcGVyY2VudCArICIlIjsKICAgICAgbG9hZGVyVGV4dC5pbm5lclRleHQgPSAiTGFkZSBTY2hpZmYuLi4gIiArIHBlcmNlbnQgKyAiJSI7CiAgICB9IGVsc2UgewogICAgICBsb2FkZXJUZXh0LmlubmVyVGV4dCA9ICJMYWRlIFNjaGlmZi4uLiI7CiAgICAgIGJhdHRlcnlGaWxsLnN0eWxlLndpZHRoID0gIjUwJSI7CiAgICB9CiAgfSwKICBmdW5jdGlvbiAoZXJyb3IpIHsKICAgIGxvYWRlclRleHQuaW5uZXJUZXh0ID0gIkZlaGxlcjogU1RMIGtvbm50ZSBuaWNodCBnZWxhZGVuIHdlcmRlbi4iOwogICAgY29uc29sZS5lcnJvcihlcnJvcik7CiAgfQopOwoKZnVuY3Rpb24gYW5pbWF0ZSgpIHsKICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSk7CgogIGlmIChzaGlwKSB7CiAgICBzaGlwLnJvdGF0aW9uLnkgKz0gMC4wMDE1OwogIH0KCiAgY29udHJvbHMudXBkYXRlKCk7CiAgcmVuZGVyZXIucmVuZGVyKHNjZW5lLCBjYW1lcmEpOwp9CgphbmltYXRlKCk7Cgp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgKCkgPT4gewogIGNhbWVyYS5hc3BlY3QgPSB3aW5kb3cuaW5uZXJXaWR0aCAvIHdpbmRvdy5pbm5lckhlaWdodDsKICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpOwogIHJlbmRlcmVyLnNldFNpemUod2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodCk7Cn0pOwo8L3NjcmlwdD57QnncFIJigAB9qtHK9wSdAQB3txM8IURPQ1RZUEUgaHRtbD4KPGh0bWwgbGFuZz0iZGUiPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0iVVRGLTgiPgo8dGl0bGU+U2NoaWZmIOKAkyBTemVuZTwvdGl0bGU+CjxzdHlsZT4KICBib2R5IHsgbWFyZ2luOiAwOyBiYWNrZ3JvdW5kOiAjZTllOWU5OyB9CiAgY2FudmFzIHsgZGlzcGxheTogYmxvY2s7IH0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3RocmVlQDAuMTUyLjIvYnVpbGQvdGhyZWUubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vdGhyZWVAMC4xNTIuMi9leGFtcGxlcy9qcy9sb2FkZXJzL1NUTExvYWRlci5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3RocmVlQDAuMTUyLjIvZXhhbXBsZXMvanMvY29udHJvbHMvT3JiaXRDb250cm9scy5qcyI+PC9zY3JpcHQ+Cgo8c2NyaXB0PgovLyBTemVuZQpjb25zdCBzY2VuZSA9IG5ldyBUSFJFRS5TY2VuZSgpOwpzY2VuZS5iYWNrZ3JvdW5kID0gbmV3IFRIUkVFLkNvbG9yKDB4ZTllOWU5KTsKCi8vIEthbWVyYQpjb25zdCBjYW1lcmEgPSBuZXcgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEoNjAsIHdpbmRvdy5pbm5lcldpZHRoL3dpbmRvdy5pbm5lckhlaWdodCwgMC4xLCAxMDAwKTsKY2FtZXJhLnBvc2l0aW9uLnNldCgxMjAsIDYwLCAxMjApOwoKLy8gUmVuZGVyZXIKY29uc3QgcmVuZGVyZXIgPSBuZXcgVEhSRUUuV2ViR0xSZW5kZXJlcih7IGFudGlhbGlhczogdHJ1ZSB9KTsKcmVuZGVyZXIuc2V0U2l6ZSh3aW5kb3cuaW5uZXJXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0KTsKcmVuZGVyZXIuc2hhZG93TWFwLmVuYWJsZWQgPSB0cnVlOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlbmRlcmVyLmRvbUVsZW1lbnQpOwoKLy8gU3RldWVydW5nIChydWhpZykKY29uc3QgY29udHJvbHMgPSBuZXcgVEhSRUUuT3JiaXRDb250cm9scyhjYW1lcmEsIHJlbmRlcmVyLmRvbUVsZW1lbnQpOwpjb250cm9scy5lbmFibGVEYW1waW5nID0gdHJ1ZTsKY29udHJvbHMuZGFtcGluZ0ZhY3RvciA9IDAuMDM7CgovLyBMaWNodCDigJMgd2VpY2ggd2llIFN0dWRpbwpjb25zdCBoZW1pTGlnaHQgPSBuZXcgVEhSRUUuSGVtaXNwaGVyZUxpZ2h0KDB4ZmZmZmZmLCAweGFhYWFhYSwgMC44KTsKc2NlbmUuYWRkKGhlbWlMaWdodCk7Cgpjb25zdCBkaXJMaWdodCA9IG5ldyBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0KDB4ZmZmZmZmLCAxKTsKZGlyTGlnaHQucG9zaXRpb24uc2V0KDgwLCAxMjAsIDgwKTsKZGlyTGlnaHQuY2FzdFNoYWRvdyA9IHRydWU7CnNjZW5lLmFkZChkaXJMaWdodCk7CgovLyBCb2RlbiAoZ2lidCBUaWVmZSkKY29uc3QgcGxhbmUgPSBuZXcgVEhSRUUuTWVzaCgKICBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSg1MDAsIDUwMCksCiAgbmV3IFRIUkVFLlNoYWRvd01hdGVyaWFsKHsgb3BhY2l0eTogMC4yIH0pCik7CnBsYW5lLnJvdGF0aW9uLnggPSAtTWF0aC5QSSAvIDI7CnBsYW5lLnBvc2l0aW9uLnkgPSAtMjA7CnBsYW5lLnJlY2VpdmVTaGFkb3cgPSB0cnVlOwpzY2VuZS5hZGQocGxhbmUpOwoKLy8gU1RMIGxhZGVuCmNvbnN0IGxvYWRlciA9IG5ldyBUSFJFRS5TVExMb2FkZXIoKTsKbGV0IG1lc2g7Cgpsb2FkZXIubG9hZCgKICAnaHR0cHM6Ly93d3cuYWxsZXN3YXNiZXdlZ3QuY2gvaW1hZ2VzL3NjaGlmZi5zdGwnLAogIGZ1bmN0aW9uIChnZW9tZXRyeSkgewoKICAgIGdlb21ldHJ5LmNlbnRlcigpOwoKICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsKHsKICAgICAgY29sb3I6IDB4ZjVmNWY1LAogICAgICBtZXRhbG5lc3M6IDAuMiwKICAgICAgcm91Z2huZXNzOiAwLjcKICAgIH0pOwoKICAgIG1lc2ggPSBuZXcgVEhSRUUuTWVzaChnZW9tZXRyeSwgbWF0ZXJpYWwpOwogICAgbWVzaC5jYXN0U2hhZG93ID0gdHJ1ZTsKCiAgICBzY2VuZS5hZGQobWVzaCk7CiAgfQopOwoKLy8gQW5pbWF0aW9uIOKAkyBsYW5nc2FtZSBCZXdlZ3VuZwpmdW5jdGlvbiBhbmltYXRlKCkgewogIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTsKCiAgaWYgKG1lc2gpIHsKICAgIG1lc2gucm90YXRpb24ueSArPSAwLjAwMjsgLy8gZ2FueiBsYW5nc2FtIGRyZWhlbgogIH0KCiAgY29udHJvbHMudXBkYXRlKCk7CiAgcmVuZGVyZXIucmVuZGVyKHNjZW5lLCBjYW1lcmEpOwp9CmFuaW1hdGUoKTsKCi8vIFJlc2l6ZQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gewogIGNhbWVyYS5hc3BlY3QgPSB3aW5kb3cuaW5uZXJXaWR0aC93aW5kb3cuaW5uZXJIZWlnaHQ7CiAgY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTsKICByZW5kZXJlci5zZXRTaXplKHdpbmRvdy5pbm5lcldpZHRoLCB3aW5kb3cuaW5uZXJIZWlnaHQpOwp9KTsKPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4C6qjluwJtAQEBIAsAAwoRABMHAQIEAwEDBgMCAwEBBAIBAAEFAwACAAICAQEBAgEFAgABAisCBgACABcCAwEBAQQAAQARATkBBAkBAwQAAQFNBQMEAgABAAIBUgMCAQEAAQEDAQEARwUECSsBLQAiAAQLqQEUFQUtBAEEBAAEACwABAAOAAUADQAEAAsEDQMDBAIBAQABAA8EBAEBAgUAEAABAAIDAQAKABAALwAaAEUFCAQIAAgECAAOBykABAUBBgIGAgIBBQIADgEKAAMAAQACAEABKwkYAAYArgEAARATAYmXrkosAAoGAQEBDgAkAx4dARIBBCQCDQIBAQ0AAQIQBAUAAQIXHRwAAgAqAAUAAQIcAAECDwACAAECGAAGAAIAHQABAAEDDwAFAAEAAgECAQEABQEKARQAARQgAQ==\",\"updateId\":132020199}","footnotes":""},"categories":[1],"tags":[],"class_list":["post-662","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/posts\/662","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=662"}],"version-history":[{"count":4,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/posts\/662\/revisions"}],"predecessor-version":[{"id":667,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=\/wp\/v2\/posts\/662\/revisions\/667"}],"wp:attachment":[{"href":"https:\/\/schautdoch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/schautdoch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}