Autor Thema: Erledigt, andere Lösung gefunden - Hilfe zu HTTPMOD - wie richtig herangehen?  (Gelesen 237 mal)

Online Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 4330
Moin Moin!

Ich habe einen Epson Beamer welchen ich mit dem Script von hier auch an und abschalten kann:
https://forum.fhem.de/index.php/topic,13097.msg771364.html#msg771364

Jetzt würde ich aber auch gerne irgendwie abfragen ob der Beamer an oder aus ist.
Auf der Weboberfläche zur Beamer-Steuerung steht im Standby Fall "Der Projektor befindet sich im Standby-Modus."
Das könnte ich abfragen.

Das Problem ist aber ein anderes. Dieses Menü läuft auf der Adresse: https://192.168.12.95/cgi-bin/webconf. Diese Seite kann ich aber nicht direkt aufrufen, da gibt es keine Login-Aufforderung.
Es kommt nur ein "404 - nicht gefunden" Fehler.
Ich muss über https://192.168.12.95/webconf/pad.html einsteigen, dann kommt das Broswer Pop Up zum Login.

Ich bekomme es nicht hin das im HTTPMOD abzubilden. meine unzähligen Versuche erspare ich euch und frage eher:
Wie fange ich da richtig an? Wäre über Tipps und/oder Hinweise dankbar. :-)

Grüße
Frank
« Letzte Änderung: 04 Mai 2021, 08:43:18 von Frank_Huber »

Online Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 4330
Antw:Hilfe zu HTTPMOD - wie richtig herangehen?
« Antwort #1 am: 03 Mai 2021, 15:26:20 »
So, Habe mir jetzt mal die Burp Suite installiert und eine Anmeldung an den Beamer mitgeloggt.

Seitenaufruf Request
GET /webconf/pad.html HTTP/1.1
Host: 192.168.12.95
Accept: text/html, application/xhtml+xml, image/jxr, */*
Accept-Language: en-DE,en-GB;q=0.7,en;q=0.3
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Connection: close

Response: (erwartungsgemäß 401)
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="Web Control", nonce="71d7b2884b89ea5774efd49ca7b0b38e", qop="auth"
Content-Type: text/html
Content-Length: 351
Connection: close
Date: Fri, 02 Jan 1970 04:04:34 GMT
Server: SEIKO EPSON CORPORATION

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>401 - Unauthorized</title>
 </head>
 <body>
  <h1>401 - Unauthorized</h1>
 </body>
</html>

Anmeldung Request:
GET /webconf/pad.html HTTP/1.1
Host: 192.168.12.95
Accept: text/html, application/xhtml+xml, image/jxr, */*
Accept-Language: en-DE,en-GB;q=0.7,en;q=0.3
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Authorization: Digest username="EPSONWEB",realm="Web Control",nonce="71d7b2884b89ea5774efd49ca7b0b38e",uri="/webconf/pad.html",cnonce="7a22c29e820fe440240eb0f43da28c3f",nc=00000001,response="713b0e12c6c705911a482dc012b90fbc",qop="auth"
Connection: close

Anmeldung Response:
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
Content-Type: text/html
Accept-Ranges: bytes
ETag: "-1149581181"
Last-Modified: Wed, 27 Nov 2019 19:01:39 GMT
Content-Length: 614
Connection: close
Date: Fri, 02 Jan 1970 04:04:56 GMT
Server: SEIKO EPSON CORPORATION

<!doctype html>
<html class="no-js">
<head>
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache,no-store" />
<meta HTTP-EQUIV="Expires" CONTENT="0" />
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Epson Web Control</title>
<meta name="viewport" content="width=device-width,user-scalable=no,maximum-scale=1" />
</head>
<body>
<form action="/cgi-bin/webconf" method="post" name="form">
<input type="hidden" name="page" value="68" />
</form>
<script type="text/javascript">
document.form.submit();
</script>
</body>
</html>

dannach ein POST,
Request:
POST /cgi-bin/webconf HTTP/1.1
Host: 192.168.12.95
Accept: text/html, application/xhtml+xml, image/jxr, */*
Referer: https://192.168.12.95/webconf/pad.html
Accept-Language: en-DE,en-GB;q=0.7,en;q=0.3
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Content-Length: 7
Cache-Control: no-cache
Connection: close

page=68

Response:
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
Content-Type: text/html
Connection: close
Date: Fri, 02 Jan 1970 04:04:56 GMT
Server: SEIKO EPSON CORPORATION
Content-Length: 15191

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache,no-store">
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="MSThemeCompatible" Content="Yes">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta name="viewport" content="width=1100">
<title>&#66;&#69;&#65;&#77;&#69;&#82;&#95;&#75;&#73;&#78;&#79; Epson Web Control</title>
<link rel="stylesheet" type="text/css" href="/rsrc/templ.css">
<style type="text/css">
<!--
body {
background-image: url("/img/bg.jpg");
background-repeat: no-repeat;
background-position: left top;
}

* { margin: 0; padding: 0; }

#overview {
width: 1100px;
margin: 15px auto;
}
#upperview {
width: 1100px;
float : top;
}
#sideview {
clear: both;
width: 200px;
float: left;
display:none;
}
#mainview {
width: 900px;
float: left;
display:none;
text-align: center;
}

td.SLIDEADJUST {
width : 200px;
height: 75px;
}

tr.MENU_PROJECTOR_HIDE {
display:none;
}
tr.MENU_INITIAL_HIDE {
display:none;
}
tr.MENU_IQ_ADJUST_HIDE {
display:none;
}
tr.MENU_SIGNAL_HIDE {
display:none;
}
tr.MENU_SETTING_HIDE {
display:none;
}
tr.MENU_EXTENDED_HIDE {
display:none;
}
tr.MENU_NETWORK_HIDE {
display:none;
}
tr.MENU_ECO_HIDE {
display:none;
}
tr.MENU_INFO_HIDE {
display:none;
}
tr.MENU_RESET_HIDE {
display:none;
}
-->
</style>
<script type="text/javascript" src="/rsrc/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="/rsrc/common.js"></script>
</head>

<body  bgcolor="black" text="white" link="white" vlink="white" oncontextmenu="return false">

<div id="overview">
<div id="upperview">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="50">
<tr><td height="16" width="220"></td></tr>
</table>
</div>

<div id="sideview">
<table border="0" cellpadding="2" cellspacing="0" width="195">
<tr><td colspan="3" height="3"></td></tr>

<tr>
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="MovePage('60');" tabindex="2">
<font size="3" color="#000000"><b>Home</b></font></a>
</td>
</tr>

<tr><td height="4" colspan="2"></td></tr>


<tr class="MENU_INITIAL_TOGGLE">
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="return false;" tabindex="4">
<font size="3" color="#000000"><b>Grundeinstellungen</b></font></a>
</td>
</tr>

<tr class="MENU_INITIAL_HIDE">
<td bgcolor="#2d2e32" width="20" height="26"></td>
<td bgcolor="#2d2e32" width="186">
<a href="#" onClick="MovePage('38'); return false;" tabindex="6">
<font size="2">Grundeinstellungen</font></a>
</td>
<td bgcolor="#2d2e32" width="8" background="/img/corner_g.gif"
style="background-repeat: no-repeat;
background-position: right bottom;"></td>
</tr>

<tr><td height="4" colspan="2"></td></tr>


<tr class="MENU_IQ_ADJUST_TOGGLE">
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="return false;" tabindex="8">
<font size="3" color="#000000"><b>Bild</b></font></a>
</td>
</tr>

<tr class="MENU_IQ_ADJUST_HIDE">
<td bgcolor="#2d2e32" width="20" height="26"></td>
<td bgcolor="#2d2e32" width="186">
<a href="#" onClick="MovePage('01'); return false;" tabindex="10">
<font size="2">Bild</font></a>
</td>
<td bgcolor="#2d2e32" width="8" background="/img/corner_g.gif"
style="background-repeat: no-repeat;
background-position: right bottom;"></td>
</tr>

<tr><td height="4" colspan="2"></td></tr>

<tr class="MENU_SIGNAL_TOGGLE">
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="return false;" tabindex="12">
<font size="3" color="#000000"><b>Signal</b></font></a>
</td>
</tr>

<tr class="MENU_SIGNAL_HIDE">
<td bgcolor="#2d2e32" width="20" height="26"></td>
<td bgcolor="#2d2e32" width="186">
<a href="#" onClick="MovePage('02'); return false;" tabindex="14">
<font size="2">Signal</font></a>
</td>
<td bgcolor="#2d2e32" width="8" background="/img/corner_g.gif"
style="background-repeat: no-repeat;
background-position: right bottom;"></td>
</tr>

<tr><td height="4" colspan="2"></td></tr>

<tr class="MENU_SETTING_TOGGLE">
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="return false;" tabindex="16">
<font size="3" color="#000000"><b>Einstellung</b></font></a>
</td>
</tr>

<tr class="MENU_SETTING_HIDE">
<td bgcolor="#2d2e32" width="20" height="26"></td>
<td bgcolor="#2d2e32" width="186">
<a href="#" onClick="MovePage('03'); return false;" tabindex="18">
<font size="2">Einstellung</font></a>
</td>
<td bgcolor="#2d2e32" width="8" background="/img/corner_g.gif"
style="background-repeat: no-repeat;
background-position: right bottom;"></td>
</tr>

<tr><td height="4" colspan="2"></td></tr>

<tr class="MENU_EXTENDED_TOGGLE">
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="return false;" tabindex="20">
<font size="3" color="#000000"><b>Erweitert</b></font></a>
</td>
</tr>

<tr class="MENU_EXTENDED_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('04'); return false;" tabindex="22">
<font size="2">Erweitert</font></a>
</td>
</tr>

<tr class="MENU_EXTENDED_HIDE"><td height="2" colspan="2"></td></tr>

<tr class="MENU_EXTENDED_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>

<td bgcolor="#2d2e32" colspan="2" width="186">

<a href="#" onClick="MovePage('17'); return false;" tabindex="24">
<font size="2">Multi-Projektion</font></a>
</td>
</tr>


<tr class="MENU_EXTENDED_HIDE"><td colspan="2" height="2"></td></tr>

<tr class="MENU_EXTENDED_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>

<td bgcolor="#2d2e32" width="186">

<a href="#" onClick="MovePage('24'); return false;" tabindex="26">
<font size="2">Zeitplan</font></a>
</td>

<td bgcolor="#2d2e32" width="8" background="/img/corner_g.gif"
style="background-repeat: no-repeat;
background-position: right bottom;"></td>

</tr>



<tr><td height="4" colspan="2"></td></tr>

<tr class="MENU_NETWORK_TOGGLE">
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="return false;" tabindex="30">
<font size="3" color="#000000"><b>Netzwerk</b></font></a>
</td>
</tr>


<tr class="MENU_NETWORK_HIDE">
<td bgcolor="#2d2e32" width="20" height="26"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('36'); return false;" tabindex="32">
<font size="2">WLAN-Einstellungen</font></a>
</td>
</tr>

<tr class="MENU_NETWORK_HIDE"><td colspan="2" height="2"></td></tr>



<tr class="MENU_NETWORK_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('08'); return false;" tabindex="36">
<font size="2">Grund</font></a>
</td>
</tr>

<tr class="MENU_NETWORK_HIDE"><td colspan="2" height="2"></td></tr>


<tr class="MENU_NETWORK_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('10'); return false;" tabindex="38">
<font size="2">Wireless LAN</font></a>
</td>
</tr>

<tr class="MENU_NETWORK_HIDE"><td colspan="2" height="2"></td></tr>


<!-- IPv6 Wireless start -->

<tr class="MENU_NETWORK_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('81'); return false;" tabindex="40">
<font size="2">WLAN-IPv6-Einstellungen</font></a>
</td>
</tr>

<tr class="MENU_NETWORK_HIDE"><td colspan="2" height="2"></td></tr>

<!-- IPv6 Wireless end -->


<tr class="MENU_NETWORK_HIDE">
<td bgcolor="#2d2e32" width="20" height="26"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('09'); return false;" tabindex="42">
<font size="2">Wired LAN</font></a>
</td>
</tr>

<tr class="MENU_NETWORK_HIDE"><td colspan="2" height="2"></td></tr>


<!-- IPv6 Wired start -->

<tr class="MENU_NETWORK_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('82'); return false;" tabindex="44">
<font size="2">LAN-IPv6-Einstellungen</font></a>
</td>
</tr>

<tr class="MENU_NETWORK_HIDE"><td colspan="2" height="2"></td></tr>

<!-- IPv6 Wired end -->

<tr class="MENU_NETWORK_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('11'); return false;" tabindex="46">
<font size="2">Meldung</font></a>
</td>
</tr>

<tr class="MENU_NETWORK_HIDE"><td colspan="2" height="2"></td></tr>

<tr class="MENU_NETWORK_HIDE Enterprise">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('44'); return false;" tabindex="48">
<font size="2">Zertifikat</font></a>
</td>
</tr>

<tr class="MENU_NETWORK_HIDE Enterprise"><td colspan="2" height="2"></td></tr>

<tr class="MENU_NETWORK_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" width="186">
<a href="#" onClick="MovePage('12'); return false;" tabindex="50">
<font size="2">Sonstige</font></a>
</td>
<td bgcolor="#2d2e32" width="8" background="/img/corner_g.gif"
style="background-repeat: no-repeat;
background-position: right bottom;"></td>
</tr>

<tr><td height="4" colspan="2"></td></tr>

<tr class="MENU_ECO_TOGGLE">
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="return false;" tabindex="52">
<font size="3" color="#000000"><b>ECO</b></font></a>
</td>
</tr>

<tr class="MENU_ECO_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" width="186">
<a href="#" onClick="MovePage('32'); return false;" tabindex="54">
<font size="2">ECO</font></a>
</td>
<td bgcolor="#2d2e32" width="8" background="/img/corner_g.gif"
style="background-repeat: no-repeat;
background-position: right bottom;"></td>
</tr>

<tr><td height="4" colspan="2"></td></tr>

<tr class="MENU_INFO_TOGGLE">
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="return false;" tabindex="56">
<font size="3" color="#000000"><b>Information</b></font></a>
</td>
</tr>

<tr class="MENU_INFO_HIDE">
<td bgcolor="#2d2e32" height="26" width="20"></td>
<td bgcolor="#2d2e32" colspan="2" width="186">
<a href="#" onClick="MovePage('05'); return false;" tabindex="58">
<font size="2">Information</font></a>
</td>
</tr>



<tr class="MENU_INFO_HIDE"><td colspan="2" height="2"></td></tr>

<tr class="MENU_INFO_HIDE">
<td bgcolor="#2d2e32" width="20" height="26"></td>

<td bgcolor="#2d2e32" colspan="2" width="186">

<a href="#" onClick="MovePage('06'); return false;" tabindex="62">
<font size="2">Wireless LAN</font></a>
</td>
</tr>



<tr class="MENU_INFO_HIDE"><td colspan="2" height="2"></td></tr>

<tr class="MENU_INFO_HIDE">
<td bgcolor="#2d2e32" width="20" height="26"></td>
<td bgcolor="#2d2e32" width="186">
<a href="#" onClick="MovePage('07'); return false;" tabindex="64">
<font size="2">Wired LAN</font></a>
</td>
<td bgcolor="#2d2e32" width="8" background="/img/corner_g.gif"
style="background-repeat: no-repeat;
background-position: right bottom;"></td>
</tr>


<tr><td height="4" colspan="2"></td></tr>

<tr class="MENU_RESET_TOGGLE">
<td colspan="3" height="33" class="title_menu">
<a href="#" onClick="return false;" tabindex="66">
<font size="3" color="#000000"><b>Reset</b></font></a>
</td>
</tr>

<tr class="MENU_RESET_HIDE">
<td bgcolor="#2d2e32" width="20" height="26"></td>
<td bgcolor="#2d2e32" width="186">
<a href="#" onClick="MovePage('42'); return false;" tabindex="68">
<font size="2">Reset</font></a>
</td>
<td bgcolor="#2d2e32" width="8" background="/img/corner_g.gif"
style="background-repeat: no-repeat;
background-position: right bottom;"></td>
</tr>

</table>
</div>

<div id="mainview">
<br><br><br><br><br><br><br><br><br><br>
Der Projektor befindet sich im Standby-Modus.<BR>
Kann Projektoreinstellungen nicht vornehmen.
</div>
</div>

</body>
</html>

<script>

reconfigViewport(1100);

var bEnterprise = !!'Exist';
var s_bDispPage = new Array(false, false, false, false, false, false, false, false, false, false);

$(function(){
$.ajaxSetup({async: false, cache: false});

setAnimeteSideView($(window), $("#mainview"), $("#sideview"), $("#upperview"));

//NEED maintenance for each model
$('.MENU_' + GetMenuString(0) + '_TOGGLE').click( function() {
ToggleDispPage(0);
});
$('.MENU_' + GetMenuString(1) + '_TOGGLE').click( function() {
ToggleDispPage(1);
});
$('.MENU_' + GetMenuString(2) + '_TOGGLE').click( function() {
ToggleDispPage(2);
});
$('.MENU_' + GetMenuString(3) + '_TOGGLE').click( function() {
ToggleDispPage(3);
});
$('.MENU_' + GetMenuString(4) + '_TOGGLE').click( function() {
ToggleDispPage(4);
});
$('.MENU_' + GetMenuString(5) + '_TOGGLE').click( function() {
ToggleDispPage(5);
});
$('.MENU_' + GetMenuString(6) + '_TOGGLE').click( function() {
ToggleDispPage(6);
});
$('.MENU_' + GetMenuString(7) + '_TOGGLE').click( function() {
ToggleDispPage(7);
});
$('.MENU_' + GetMenuString(8) + '_TOGGLE').click( function() {
ToggleDispPage(8);
});
$('.MENU_' + GetMenuString(9) + '_TOGGLE').click( function() {
ToggleDispPage(9);
});
});

$(window).load(function(){
switchMenu(bEnterprise);
$('#sideview').show();
$('#mainview').show();
});

function ToggleDispPage(index){
//NEED maintenance for each model
if ( 0 == index ) {
if ( ! s_bDispPage[index] ) {
$('.MENU_' + GetMenuString(index) + '_HIDE').show();
s_bDispPage[index] = true;
} else {
$('.MENU_' + GetMenuString(index) + '_HIDE').hide();
s_bDispPage[index] = false;
}
return;
}

for (var cnt=1; cnt<=9; cnt++) {
if ( cnt==index ) {
if ( ! s_bDispPage[cnt] ) {
$('.MENU_' + GetMenuString(cnt) + '_HIDE').show();
s_bDispPage[cnt] = true;
switchMenu(bEnterprise);
} else {
$('.MENU_' + GetMenuString(cnt) + '_HIDE').hide();
s_bDispPage[cnt] = false;
}
} else {
if ( s_bDispPage[cnt] ) {
$('.MENU_' + GetMenuString(cnt) + '_HIDE').hide();
s_bDispPage[cnt] = false;
}
}
}
}

function GetMenuString(index){
//NEED maintenance for each model
switch(index){
case 0: return 'PROJECTOR';
case 1: return 'INITIAL';
case 2: return 'IQ_ADJUST';
case 3: return 'SIGNAL';
case 4: return 'SETTING';
case 5: return 'EXTENDED';
case 6: return 'NETWORK';
case 7: return 'ECO';
case 8: return 'INFO';
case 9: return 'RESET';
default: break;
}
return '';
}

function switchMenu(b){
var c = ".Enterprise";
if (b === false){
$(c).hide();
}
}
</script>

In der Response steckt dann in Zeile 453 auch die Antwort auf die ich abfragen würde:
"Der Projektor befindet sich im Standby-Modus.<BR>"

So, und jetzt habe ich Tausend Fragezeichen im Kopf wie ich das in HTTPMOD umsetzen muss...
Hilfe! ;-)


Online Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 4330
Antw:Hilfe zu HTTPMOD - wie richtig herangehen?
« Antwort #2 am: 04 Mai 2021, 08:43:00 »
So, nach nem Abend Try&Error gebe ich das mit HTTPMOD auf.

Ich habe was anderes gefunden: pjlink. :-) https://forum.fhem.de/index.php?topic=93813.0

meine Gesamtlösung: https://forum.fhem.de/index.php/topic,13097.msg1154262.html#msg1154262
« Letzte Änderung: 04 Mai 2021, 09:09:00 von Frank_Huber »

 

decade-submarginal