mirror of
https://gitlab.gwdg.de/j.hahn02/university.git
synced 2025-12-31 22:34:25 -05:00
another day
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
# Workflow to publisch the books
|
||||
|
||||
# Using older version here because it just works
|
||||
image: ghcr.io/myriad-dreamin/shiroa:v0.3.0
|
||||
|
||||
pages:
|
||||
@@ -8,3 +11,4 @@ pages:
|
||||
- public
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == 'main'
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ Loesen von BWGLn. Hier gibt es nur wenig loesbare Beispiele: Zentralpotential un
|
||||
|
||||
Erhaltungsgroessen & Symetrien beim Loesen ausnutzen und neue Erhaltungsgroessen auffinden.
|
||||
|
||||
Newton <= Lagrange = Hamilton < Hamilton'sches Prinzip
|
||||
Newton $<=$ Lagrange = Hamilton < Hamilton'sches Prinzip
|
||||
|
||||
Abstraktionsweg:
|
||||
|
||||
@@ -23,13 +23,13 @@ $"Kraefte" -> "Potentiale" -> "Lagrange-/ Hamiltonfunktion" -> "Wirkung"$
|
||||
|
||||
== Vorlesung
|
||||
|
||||
24VL
|
||||
24VL insgesamt ueber das Semester.
|
||||
|
||||
Newton'sche Mechanik (6VL)
|
||||
|
||||
1D Probleme, Numerik, Reduktion auf DGL 1. Ordnung, Zentralpotential, Streuprobleme
|
||||
|
||||
#example[
|
||||
#remark[
|
||||
Ich meine das PDF gibts auch online
|
||||
]
|
||||
|
||||
@@ -55,16 +55,16 @@ Grundlage fuer die ersten Wochen
|
||||
Newton II. BWGL
|
||||
|
||||
$
|
||||
dot(arrow(p)) = dif / (dif t) arrow(p) = m dot.double(r) = sum_(i=0)^(n) arrow(F_i) (arrow(r) dot(arrow(r)))
|
||||
dot(arrow(p)) = dif / (dif t) arrow(p) = m dot.double(r) = sum_(i=0)^(n) arrow(F_i) (arrow(r), dot(arrow(r))).
|
||||
$ <bwg>
|
||||
|
||||
Dabei ist $arrow(r)$ ein Vektor in Kartesichen Koordinaten.
|
||||
|
||||
Ziel: $arrow(r) = arrow(r)(t)$ bzw $x(t), y(t) z(t)$ also eine Lsg von @bwg durch das Anfangswertproblem
|
||||
Das Ziel ist hier $arrow(r) = arrow(r)(t)$ bzw $x(t), y(t), z(t)$ also eine Lsg von @bwg durch das Anfangswertproblem
|
||||
|
||||
$
|
||||
arrow(r)(t) = arrow(r_0) \
|
||||
dot(arrow(r))(t_0 ) = dot(arrow(r_0))
|
||||
dot(arrow(r))(t_0 ) = dot(arrow(r_0)).
|
||||
$
|
||||
|
||||
#example[
|
||||
@@ -107,5 +107,3 @@ Allgemeine Loesung des Beispiels:
|
||||
|
||||
// TODO: mit dem Skript weiterschreiben zuende machen
|
||||
|
||||
|
||||
// okayt
|
||||
|
||||
@@ -137,7 +137,7 @@ $
|
||||
|
||||
$t_(i-1) -> t_(i+1) $
|
||||
|
||||
Zeitumkehr
|
||||
Zeitumkehr ist gegeben da,
|
||||
$
|
||||
arrow(x)' (t_(i+1) )=arrow(x) (t_(i+1) )\
|
||||
arrow(v)' (t_(i+1) )= - arrow(v) (t_(i+1) )
|
||||
|
||||
58
S2/CWR/VL/CwrVL3.typ
Normal file
58
S2/CWR/VL/CwrVL3.typ
Normal file
@@ -0,0 +1,58 @@
|
||||
// Main VL Template
|
||||
#import "../preamble.typ": *
|
||||
|
||||
#show: conf.with(
|
||||
// May add more flags here in the future
|
||||
num: 3
|
||||
)
|
||||
|
||||
= Weiter ODE
|
||||
|
||||
Durch Hilfsvariablen koennen DGL in eine Form von erster Ordnung gebracht werden
|
||||
$
|
||||
dot(arrow(y)) (t)= arrow(F) (arrow(y),t).
|
||||
$
|
||||
Diese kann dann durch das Euler-Verfahren oder durch das "Middlestep"-Verfahren geloest werden. #highlight[TODO: what is the middlestep for differential equations?]
|
||||
|
||||
In der klassischen Mechanik gilt
|
||||
$
|
||||
dot(z)= vec(dot(q),dot(p))= vec((partial HH) / (partial p),- (partial HH) / (partial q) ) = J arrow(nabla)_(z) HH "mit" J =^("symplektisch") mat(
|
||||
0, 11;
|
||||
-11, 0;
|
||||
).
|
||||
$
|
||||
|
||||
Symplektisch hat etwas mit Phasenraumerhaltung zu tun. Das bedeuete, dass die Flaeche von Gebieten im Phasenraum unter einer Propagation entlang einer Funktion erhalten bleibt.
|
||||
|
||||
$
|
||||
v = integral d z (0) = integral d z (t) abs((partial z (0)) / (partial z (t)) )
|
||||
$
|
||||
|
||||
Flaechenerhaltend bedeutet, dass $abs((partial z (t)) / (partial z (0)) )= 1$ gilt. Die Determinante ist also gleich Eins.
|
||||
Zum expliziten Ausrechenen gilt
|
||||
$
|
||||
abs((partial z (t)) / (partial z (0)) )= abs(1 + (partial dot(z) (0)) / (partial z (0))t + O (t^2 ) ) = 1 + tr (A) t + O (t^2 ) \
|
||||
det e^(A t) = e ^(tr(A) t)
|
||||
$
|
||||
|
||||
$
|
||||
tr (A) = tr (dot(z) (0)) / (z (0)) = sum_(i)^(N) partial / (partial z_i ) dot(z)_(i) = sum partial / (partial z_i ) sum J_(i k) (partial^2 HH) / ( partial z_i partial z_k) = 0
|
||||
$
|
||||
|
||||
$
|
||||
dot(z)= vec(dot(q),dot(p)) = vec(+(partial HH) / (partial p),- (partial HH) / (partial q) ) = i L z \
|
||||
i L = dot(q) partial / (partial q) + dot(p)partial / (partial p) \
|
||||
= (partial HH) / (partial p) partial / (partial q) - (partial HH) / (partial q) partial / (partial p) \
|
||||
==> (dif 0) / (dif t) = i L 0 = {HH,0} \ ==> z (t) = e^(i L t) z (0) "ist die formale Loesung"
|
||||
$
|
||||
|
||||
Das Problem ist, dass die $p$ und $q$ Komponenten nicht kommutieren. Daher ist eine Diskretisierung der Zeitentwicklung notwendig.
|
||||
|
||||
Der Velocity-Verlet Algorithmus ist
|
||||
$
|
||||
e ^(i L Delta t) approx e^(i L_(p) (Delta t)/2) e^(i L_(q) (Delta t)/2) e^(i L_(p) (Delta t)/2) + O(Delta t^2 )\
|
||||
z (Delta t) = e^(i L_(p) (Delta t)/2) e^(i L_(q) (Delta t)/2) e^(i L_(p) (Delta t)/2) (0).
|
||||
$
|
||||
|
||||
Die Phasenraumerhaltung ist ein Mass fuer die Stabilitaet des Algorithmus.
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
|
||||
= Uebersicht bla
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ $
|
||||
|
||||
#lemma[
|
||||
Sei V ein K-VR mit $K in {RR,CC}$ mit Skalarprodukt $angle.l dot\,dot angle.r$. Dann definiert $norm(x)= sqrt(angle.l x\,x angle.r) , space x in V$ eine Norm auf V.
|
||||
]
|
||||
] <norm1>
|
||||
|
||||
#proof[
|
||||
Dreiecksungleichung anwenden.
|
||||
@@ -35,7 +35,7 @@ $
|
||||
]
|
||||
|
||||
#example[
|
||||
- $RR^n $ mit dem Standardskalarprodukt ist ein Hilbertraum.
|
||||
$RR^n $ mit dem Standardskalarprodukt ist ein Hilbertraum.
|
||||
]
|
||||
|
||||
Ein weiteres Beispiel ist der Folgenraum $l^2 $.
|
||||
@@ -59,12 +59,11 @@ $
|
||||
|
||||
T: $angle.l dot \, dot angle.r$ definiert ein Skalarprodukt auf $l^2 $.
|
||||
|
||||
#theorem[
|
||||
#theorem("hello")[
|
||||
$l^2 $ ist unter dem Skalarprodukt $angle.l a \, b angle.r = sum_( )^(oo) a_n macron(b_n )$ ein Hilbertraum.
|
||||
]
|
||||
|
||||
#proof[
|
||||
Sei $a^(k) = (a_n ^(k) )_(n in N)$ eine Cauchy-Folge im $l^2 $. \
|
||||
Sei $a^(k) = (a_n ^(k) )_(n in N)$ eine Cauchy-Folge im $l^2 $.
|
||||
Fuer $epsilon > 0$ wahle $N in NN$ sodass $norm(a^(k) - a^(l) )_(2) < epsilon space forall n, l <= N$. \
|
||||
Dann gilt fuer $k,l >= N , space n in NN$
|
||||
$
|
||||
|
||||
Binary file not shown.
@@ -2,6 +2,7 @@
|
||||
|
||||
#let conf(num: none, ueb: false, body) = {
|
||||
// Global settings
|
||||
|
||||
show: default
|
||||
|
||||
// Set the header
|
||||
@@ -11,4 +12,5 @@
|
||||
|
||||
// load the document
|
||||
body
|
||||
|
||||
}
|
||||
|
||||
129
S2/ExPhyII/VL/ExIIVL4.typ
Normal file
129
S2/ExPhyII/VL/ExIIVL4.typ
Normal file
@@ -0,0 +1,129 @@
|
||||
// Main VL Template
|
||||
#import "../preamble.typ": *
|
||||
|
||||
#show: conf.with(
|
||||
// May add more flags here in the future
|
||||
num: 4
|
||||
)
|
||||
|
||||
= Uebersicht
|
||||
|
||||
Wiederholung von dem Tropfenversuch und der allgemeinen Behandlung des Dipols und des Dipolmomentes $arrow(p)= q arrow(d)$. \
|
||||
Es gilt die Naeherung fuer grosse $r$
|
||||
$
|
||||
arrow(E)_("Dipol") approx (1) / (r^2 ).
|
||||
$
|
||||
Das Drehmoment $arrow(D)$ eines Dipols im homogenen elektrischen Feld $arrow(E)= arrow(E) (r)$ ergibt sich zu
|
||||
$
|
||||
arrow(D)= arrow(r)_(1) times arrow(F) + arrow(r)_(2) times arrow(F)= arrow(p)times arrow(E).
|
||||
$
|
||||
|
||||
Aus der Gleichung der Kraft im elektrischen Feld laesst sich folgern, dass
|
||||
$
|
||||
arrow(E)= (arrow(F)_(12) ) / (q), \
|
||||
arrow(E)_(j) = sum_(i=1)^(N) (q_i ) / (4 pi epsilon_0 ) ((arrow(r)_(j) - arrow(r)_(i) )) / (abs(arrow(r)_(j) - arrow(r)_(i) )^3 ) .
|
||||
$
|
||||
|
||||
== Gesamtladung von Objekten
|
||||
|
||||
$
|
||||
Q = integral _(V) rho (arrow(r)) d V = integral rho (arrow(r))d arrow(r) \
|
||||
Q = integral.triple _(V) d x d y d z * rho (x,y,z)
|
||||
$
|
||||
|
||||
$
|
||||
arrow(E) (arrow(r)) = (1) / (4 pi epsilon_0 ) integral (rho (arrow(r)')) / (abs(arrow(r)- arrow(r)')^3 ) (arrow(r)- arrow(r)') d arrow(r)'
|
||||
$
|
||||
|
||||
Das ist z.B. das El. feld von einer unendlich ausgedehnten geladenen Platte mit homogener Flaechenladungstraegerdichte $sigma$.
|
||||
|
||||
Bestimme das Feld an $P$ durch $d q = sigma * d A$. Es folgt also fuer das Differential von $E$
|
||||
$
|
||||
d E = (1) / (4 pi epsilon_0 ) (sigma d A) / (b^2 ) arrow(hat(b)) \
|
||||
d A = r d phi d r,
|
||||
$
|
||||
wobei $b$ der Abstand der Ladung $P$ zur Platte ist.
|
||||
|
||||
Betrachte nun die $arrow(E)$ Komponente senkrecht zur Oberflaeche der Rotationsymetrieachse
|
||||
$
|
||||
arrow(E) (z)= E (z)hat(e)_(z) \
|
||||
E_(z) = (1) / (4 pi epsilon_0 ) sigma integral_(0)^(2 pi) d phi integral_(0)^(oo) d r * r * cos (alpha) (1) / (b^2 ) \
|
||||
r = a tan alpha , space (dif r) / (dif alpha) (a) / (cos ^2 alpha) , space b = (a) / (cos alpha) \
|
||||
E = (sigma) / (2 epsilon_0 ) integral_(0)^(pi ) cos alpha tan alpha d alpha \
|
||||
E = (sigma) / (2 epsilon_0 ).
|
||||
$
|
||||
|
||||
Das Feld einer unendlich ausgedehnten Platte ist also konstant im Raum.
|
||||
Bei zwei gegebenen Platten addieren sich die Felder wie bei einem Plattenkondensator.
|
||||
Die Kraft auf Ladung im Plattenkondensator in Richtung der Feldlinen ist gegeben durch
|
||||
|
||||
$
|
||||
F = q E = q (sigma) / (2 epsilon_0 ).
|
||||
$
|
||||
|
||||
|
||||
Das elektrische Feld erzeugt also eine Ablenkung von Ladungen. Dies kann in einem Versuch verdeutlicht werden.
|
||||
In der Anwendung sieht man dieses Prinzip bei alten Fehrnsehern oder der Massenspektometrie.
|
||||
|
||||
== 1.3 Elektrische Fluss und Satz von Gauss
|
||||
|
||||
Im Prinzip ist mit den bis jetzt behandelten Gleichungen die gesamte Elektrostatik berechnet werden. Das kann recht kompliziert werden, weshalb wir nach Vereinfachungen suchen.
|
||||
|
||||
Zuerst wird das Analogon des Luftstrom mit Geschwindigkeit $arrow(v)$ behandelt.
|
||||
Hier ist der Fluss $phi = arrow(v) * arrow(A)= v A cos alpha$ gleich Null, wenn das Geschwindigkeitsfeld homogen ist.
|
||||
|
||||
Der elektrische Fluss durch eine Flaeche ist definiert als
|
||||
$
|
||||
d phi_("El") = arrow(E) d arrow(A) \
|
||||
==> phi_("El") = integral_(A) arrow(E) d arrow(A).
|
||||
$
|
||||
Dies ist ein Mass fuer die Feldlinien die duch die Flaeche $d A$ gehen.
|
||||
|
||||
#example[
|
||||
Kugel mit beliebigem Radius $R$ um Punktladung $Q$ (komplett eingeschlossen)
|
||||
$
|
||||
phi_("El") = (Q) / (4 pi epsilon_0 ) integral (hat(r)) / (r^3 ) d A = (Q) / (epsilon_0 ).
|
||||
$
|
||||
Also ist der Fluss proportional zur eingeschlossenen Ladung (fuer ein Dipol also Null).
|
||||
Dieses Ergebnis gilt fuer alle Integrale ueber geslossene Flaechen
|
||||
$
|
||||
integral arrow(E) d arrow(A) = (1) / (epsilon_0 ) Q_("eingeschlossen").
|
||||
$
|
||||
Falls keine Ladung eingeschlossen ist, dann ist der Fluss durch die geschlossene Flaeche gleich Null. Die Beitraege der Fluesse kompensieren sich also genau weg.
|
||||
|
||||
Das elektrische Feld nimmt mit $(1) / (r^2 ) $ nach aussen hin ab, jedoch nimmt die Gesamtflaeche nach aussen mit $R^2 $ zu.
|
||||
]
|
||||
|
||||
Wenn man das Teilvolumen $V$ einer Kugel, welches durch zwei Teile von Kugelschalen begrenzt ist betrachtet. Dann ist der Fluss durch den Rand von $V$ gleich Null. Da der Fluss, welcher hineinstroemt, gleich dem Inversen dessen ist welcher wieder austritt, ist der Gesamtfluss durch $V$ auch gleich Null.
|
||||
|
||||
#theorem[
|
||||
Satz von Gauss. Sei $A$ eine geschlossene Oberflaeche. Dann gilt
|
||||
$
|
||||
integral _(A) arrow(E) d arrow(A) = integral _(V (A)) "div"(arrow(E)) d V = (Q) / (epsilon_0 ) = integral _(V) (rho) / (epsilon_0 ) d V.
|
||||
$
|
||||
Da dies fuer jedes Volumen gilt folgt
|
||||
$
|
||||
arrow(nabla) arrow(E)= "div"arrow(E) = (rho) / (epsilon_0 ),
|
||||
$
|
||||
also sind die Ladungen die Quellen bzw. die Senken von elektrischen Feldern. Das entspricht der *1. Maxwell Gleichung*.
|
||||
|
||||
#highlight[TODO: understand and write down this proof]
|
||||
]
|
||||
|
||||
=== Erlaeuterungen zum Satz von Gauss
|
||||
|
||||
Das Integral einer Ableitung (div) ueber ein Gebiet (ein Volumen) ist gleich dem wert der Funktion an seinen Grenzen (die Flaeche die das Volumen umschliesst).
|
||||
Anders ausgedrueckt das Integral ueber Quellen innerhalb eines Volumens ist gleich dem Fluss durch die Randflaechen.
|
||||
|
||||
== 1.4 Das elektrische Potential und arbeit im elektrischen Feld
|
||||
|
||||
Vorbemerkung zur Rotation eines Vektorfeldes.
|
||||
|
||||
#theorem[
|
||||
Stoke'scher Satz. Es gilt fuer jedes Vektorfeld
|
||||
$
|
||||
integral _(A) arrow(nabla) times arrow(E) d A = integral_(C) arrow(E) d arrow(s).
|
||||
$
|
||||
Das Integral einer Ableitung ueber ein Geiebt gleich dem Funktionswert an seinen Grenzen (der Rand der Flaeche).
|
||||
]
|
||||
|
||||
1
S2/PyCourse/input.txt
Normal file
1
S2/PyCourse/input.txt
Normal file
@@ -0,0 +1 @@
|
||||
Have to find out when and what will be done in the Uebung.
|
||||
5
book.typ
5
book.typ
@@ -2,7 +2,10 @@
|
||||
|
||||
#show: book
|
||||
|
||||
#book-meta( // put metadata of your book like book.toml of mdbook
|
||||
// Main book to export everything of this repo
|
||||
// May be split into smaller books in the future
|
||||
|
||||
#book-meta(
|
||||
|
||||
title: "JonasDocs",
|
||||
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
// Default configuration for the typst setup for uni notes
|
||||
// May include different ones for different occasions
|
||||
|
||||
#import "@preview/equate:0.2.1": equate
|
||||
#import "@preview/quick-maths:0.2.1": shorthands
|
||||
#import "./theorems.typ": *
|
||||
|
||||
#let default(body) = {
|
||||
// page setup
|
||||
// cannot set the page with shiroa as exporter
|
||||
//set page(margin: 2cm, numbering: "1")
|
||||
set text(lang: "de", hyphenate: false)
|
||||
set align(left)
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
// AGLA template
|
||||
// Main VL Template
|
||||
#import "../preamble.typ": *
|
||||
|
||||
#show: conf.with(num: 1)
|
||||
#show: conf.with(
|
||||
// May add more flags here in the future
|
||||
num: 1
|
||||
)
|
||||
|
||||
= Uebersicht
|
||||
|
||||
|
||||
@@ -1,55 +1,110 @@
|
||||
// The nice latex boxes to look cool
|
||||
|
||||
#import "@preview/ctheorems:1.1.3": *
|
||||
|
||||
// Defaults for the block
|
||||
//width: 100%,
|
||||
//inset: 1.2em,
|
||||
//radius: 0.3em,
|
||||
//breakable: false,
|
||||
|
||||
// What is this for?
|
||||
// #show: thmrules.with(qed-symbol: $square$)
|
||||
#show: thmrules
|
||||
// Use this to format the size: inset: (x: 1.2em, top: 1em, bottom: 1em)
|
||||
|
||||
// TODO: fix the alignment
|
||||
// TODO: make the numbering good dnd manual and insert the title at the top (from the first line)
|
||||
|
||||
// Template for templates?
|
||||
//#let base = thmenv(
|
||||
// "base",
|
||||
//)
|
||||
|
||||
#let BASE_LEVEL = 0
|
||||
|
||||
#let theorem = thmbox( //tem
|
||||
"theorem",
|
||||
"Theorem",
|
||||
fill: rgb("#eeffdd")
|
||||
).with(
|
||||
numbering: none
|
||||
base_level: BASE_LEVEL,
|
||||
fill: rgb("#eeffdd"),
|
||||
bodyfmt: body => [
|
||||
#body #h(1fr)
|
||||
]
|
||||
)
|
||||
|
||||
#let corollary = thmplain( //cor
|
||||
"corollary",
|
||||
"Corollary",
|
||||
base_level: BASE_LEVEL,
|
||||
base: "theorem",
|
||||
titlefmt: strong
|
||||
titlefmt: strong,
|
||||
bodyfmt: body => [
|
||||
#body #h(1fr)
|
||||
]
|
||||
)
|
||||
|
||||
#let definition = thmbox( //def
|
||||
"definition",
|
||||
"Definition",
|
||||
fill: rgb("#eedebb")
|
||||
)
|
||||
#let example = thmplain( //exa
|
||||
"example",
|
||||
"Example"
|
||||
).with(
|
||||
numbering: none
|
||||
)
|
||||
#let proof = thmproof( //pro
|
||||
"proof",
|
||||
"Proof"
|
||||
)
|
||||
#let remark = thmbox( //rem
|
||||
"remark",
|
||||
"Remark"
|
||||
base_level: BASE_LEVEL,
|
||||
fill: rgb("#eedebb"),
|
||||
bodyfmt: body => [
|
||||
#body #h(1fr)
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
#let axiom = thmbox( //axi
|
||||
"axiom",
|
||||
"Axiom"
|
||||
"Axiom",
|
||||
base_level: BASE_LEVEL,
|
||||
bodyfmt: body => [
|
||||
#body #h(1fr)
|
||||
]
|
||||
)
|
||||
|
||||
#let lemma = thmbox( //lem
|
||||
"lemma",
|
||||
"Lemma",
|
||||
fill: rgb("#cddfff")
|
||||
)
|
||||
#let note = thmbox( //nte
|
||||
"note",
|
||||
"Note"
|
||||
base_level: BASE_LEVEL,
|
||||
fill: rgb("#cddfff"),
|
||||
bodyfmt: body => [
|
||||
#body #h(1fr)
|
||||
]
|
||||
)
|
||||
|
||||
// Other boxes and fields
|
||||
|
||||
#let note = thmbox( //nte
|
||||
"note",
|
||||
"Note",
|
||||
bodyfmt: body => [
|
||||
// Just make the text normally formatted
|
||||
#body #h(1fr)
|
||||
]
|
||||
).with(numbering: none)
|
||||
|
||||
#let remark = thmplain( //rem
|
||||
"remark",
|
||||
"Remark",
|
||||
bodyfmt: body => [
|
||||
#body #h(1fr)
|
||||
]
|
||||
).with(numbering: none)
|
||||
|
||||
#let proof = thmenv( //pro
|
||||
"proof",
|
||||
none,
|
||||
none,
|
||||
(name, number, body, color: black) => [
|
||||
#align(left, [_Proof_: #name #body]) #h(1fr) $square$ // float a QED symbol to the right
|
||||
#v(0.5em)
|
||||
]
|
||||
).with(numbering: none)
|
||||
|
||||
#let example = thmbox( //exa
|
||||
"example",
|
||||
"Example",
|
||||
fill: rgb("#efefff99"),
|
||||
).with(numbering: none)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user