Commit graph

40851 commits

Author SHA1 Message Date
Hubert Chathi
de9a2cc382
Add PostHog codes for trust requirement failures ()
* Add PostHog codes for trust requirement failures

* add tests for new codes
2024-10-28 13:16:48 +00:00
Florian Duros
7de5c84b3d
Add back unencrypted path in StopGapWidgetDriver.sendToDevice () 2024-10-25 13:07:45 +00:00
Michael Telatynski
da5c97f9fa
Enable React StrictMode ()
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-25 11:20:25 +00:00
ElementRobot
bdf0f1dcc3
[create-pull-request] automated change ()
Co-authored-by: t3chguy <t3chguy@users.noreply.github.com>
2024-10-25 06:26:40 +00:00
Michael Telatynski
5b5348ec1e
Remove abandoned MSC3886, MSC3903, MSC3906 implementations ()
* Remove abandoned MSC3886, MSC3903, MSC3906 implementations

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove stale snapshots

* Improve coverage

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-24 12:58:39 +00:00
Florian Duros
6d0d237c79
Replace MatrixClient.isRoomEncrypted by MatrixClient.CryptoApi.isEncryptionEnabledInRoom in SecurityRoomSettingsTab () 2024-10-24 08:34:07 +00:00
Michael Telatynski
5cad0c234f
Fix other devices not being decorated as such ()
* Fix other devices not being decorated as such

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update snapshots

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-23 16:25:00 +00:00
Michael Telatynski
d4cf3881bc
Switch away from deprecated ReactDOM findDOMNode ()
* Remove unused method getVisibleDecryptionFailures

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Switch away from ReactDOM findDOMNode

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-22 11:58:45 +00:00
David Baker
19ef3267c0
Refactor CreateCrossSigningDialog ()
* Refactor CreateCrossSigningDialog

 * Converts CreateCrossSigningDialog to a functional component
 * Pulls logic out to its own class
 * Updates usage of deprecated cross signing bootstrap method on client to be on the crypto object and updates test to match

Moved from https://github.com/element-hq/matrix-react-sdk/pull/131

* Add mock here too

* Use the right mock

* Remove duplicate mock

* Stray jest mock line

* Un-move mocks

* tsdoc

* Typo

Co-authored-by: Andy Balaam <andy.balaam@matrix.org>

---------

Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2024-10-22 11:42:07 +00:00
Florian Duros
4a1f86f273
Remove MatrixClient.getDehydratedDevice call () 2024-10-22 08:09:07 +00:00
Michael Telatynski
d8800ef987
Update to React 18 ()
* Upgrade target to es2021

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Upgrade target to es2021

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Upgrade to es2022

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Upgrade to es2022

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix babel config

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix babel config

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix React contexts

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix types

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Fix React state

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update to React 18

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update to React 18

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Install @testing-library/dom

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update lockfile

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Yarn lock update

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-21 13:50:06 +00:00
Florian Duros
46d13921d0
First batch: remove deprecated calls on MatrixClient ()
* Remove `initCrypto` mocking

* Remove `MatrixClient.downloadKeys` mocking

* Remove `MatrixClient.getStoredDevice` mocking

* Replace `MatrixClient.setGlobalBlacklistUnverifiedDevices` by `MatrixClient.CryptoApi.globalBlacklistUnverifiedDevices`

* Remove `MatrixClient.getStoredCrossSigningForUser` mocking

* Replace `MatrixClient.legacyDeviceVerification` by `MatrixClient.CryptoApi.requestDeviceVerification`

* Remove `MatrixClient.isCrossSigningReady` mock

* Replace `MatrixClient.bootstrapCrossSigning` by `MatrixClient.getCrypto.bootstrapCrossSigning`

* Replace `MatrixClient.getCryptoTrustCrossSignedDevices` by `MatrixClient.getCrypto.getTrustCrossSignedDevices`

* Replace `MatrixClient.hasSecretStorageKey` by `MatrixClient.SecretStorage.hasKey`

* Replace `MatrixClient.getDefaultSecretStorageKeyId` by `MatrixClient.SecretStorage.getDefaultKeyId`

* Remove `MatrixClient.encryptAndSendToDevices` call
2024-10-21 12:53:39 +01:00
Florian Duros
b45b06edad
Remove MatrixClient.requestVerification call () 2024-10-21 10:47:00 +00:00
Michael Telatynski
02e0aca98d
Deduplicate icons using Compound ()
* Deduplicate icons using Compound

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update snapshots

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update e2e tests

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-21 10:36:31 +00:00
Florian Duros
061c8217b3
- Remove deprecated MatrixClient.keyBackupKeyFromPassword call. ()
- The `keyBackupKeyFromPassword` call is bound to the `keyCallback` props in `RestoreKeyBackupDialog` which is not used in `CreateSecretStorageDialog`
- Remove code bound to `keyCallback` props
2024-10-21 09:59:07 +00:00
Michael Telatynski
3294c6b5c5
Close right panel chat when minimising maximised voip widget ()
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-21 09:06:18 +00:00
Michael Telatynski
26430a3a6a
Replace legacy Tooltips with Compound tooltips ()
* Ditch legacy Tooltips in favour of Compound

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Remove dead code

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Extract markdown CodeBlock into React component

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Upgrade compound

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-18 14:57:39 +00:00
Florian Duros
fad457362d
Replace MatrixClient.isRoomEncrypted by MatrixClient.CryptoApi.isEncryptionEnabledInRoom in ContentMessages.ts () 2024-10-18 14:44:56 +00:00
Michael Telatynski
4e93233a3d
Merge pull request from element-hq/t3chguy/sonar-happy 2024-10-18 15:55:15 +01:00
Michael Telatynski
51c308f2ec
Update RoomInvite.tsx 2024-10-18 15:38:49 +01:00
Michael Telatynski
4d9b40c49a
Update src/RoomInvite.tsx
Co-authored-by: Florian Duros <florianduros@element.io>
2024-10-18 15:17:58 +01:00
Michael Telatynski
90e8c13c0f
Deduplicate icons using Compound Design Tokens ()
* Deduplicate icons using Compound Design Tokens

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-18 13:51:54 +00:00
Michael Telatynski
837e27ed42
Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-18 14:34:02 +01:00
Michael Telatynski
6c6bf811a6
Migrate to stylistic
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-18 14:34:01 +01:00
David Langley
59cd5180af
Add reactions to html export ()
* Absorb the matrix-react-sdk repository ()

Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
Co-authored-by: Kim Brose <kim.brose@nordeck.net>
Co-authored-by: Florian Duros <florianduros@element.io>
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
Co-authored-by: dbkr <986903+dbkr@users.noreply.github.com>
Co-authored-by: ElementRobot <releases@riot.im>
Co-authored-by: dbkr <dbkr@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: David Langley <davidl@element.io>
Co-authored-by: Michael Weimann <michaelw@matrix.org>
Co-authored-by: Timshel <Timshel@users.noreply.github.com>
Co-authored-by: Sahil Silare <32628578+sahil9001@users.noreply.github.com>
Co-authored-by: Will Hunt <will@half-shot.uk>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
Co-authored-by: Robin <robin@robin.town>
Co-authored-by: Tulir Asokan <tulir@maunium.net>

* Update dependency @sentry/browser to v8.33.0 [SECURITY] ()

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update babel monorepo ()

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency @types/react to v17.0.83 ()

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency @matrix-org/spec to v1.12.0 ()

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency @formatjs/intl-segmenter to v11.5.9 ()

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Remove references to `MatrixClient.crypto` ()

* Remove `VerificationExplorer`

* Remove `remakeolm` slash command

* Remove call to `crypto.cancelAndResendAllOutgoingKeyRequests`

* Remove crypto mock in `LoginWithQR-test.tsx`

* Remove `StopGadWidgetDriver.sendToDevice`

* Remove remaining mock

* Update dependency typescript to v5.6.3 ()

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency eslint-plugin-unicorn to v56 ()

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency stylelint to v16.10.0 ()

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update browserslist ()

* Update browserslist

* Update tests

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* Add reactions to html export and add test

* Add reaction to snapshot test

* Update snapshot output

* Remove logging

* Add reaction to html export screenshot test.

* lint

* Update reference screenshot.

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
Co-authored-by: github-merge-queue <github-merge-queue@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
Co-authored-by: Kim Brose <kim.brose@nordeck.net>
Co-authored-by: Florian Duros <florianduros@element.io>
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
Co-authored-by: dbkr <986903+dbkr@users.noreply.github.com>
Co-authored-by: ElementRobot <releases@riot.im>
Co-authored-by: dbkr <dbkr@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Michael Weimann <michaelw@matrix.org>
Co-authored-by: Timshel <Timshel@users.noreply.github.com>
Co-authored-by: Sahil Silare <32628578+sahil9001@users.noreply.github.com>
Co-authored-by: Will Hunt <will@half-shot.uk>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: Andrew Ferrazzutti <andrewf@element.io>
Co-authored-by: Robin <robin@robin.town>
Co-authored-by: Tulir Asokan <tulir@maunium.net>
2024-10-18 12:56:08 +00:00
Michael Telatynski
0105f566c9
Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-18 13:28:44 +01:00
Michael Telatynski
44b23d2191
Make Sonar happier
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-18 12:56:57 +01:00
Michael Telatynski
06d1239608
Fix develop changelog parsing ()
* Fix develop changelog parsing and DRY it

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* duh

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Improve coverage

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Typeguards!

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Discard changes to test/unit-tests/components/views/dialogs/__snapshots__/ChangelogDialog-test.tsx.snap

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-18 11:20:52 +00:00
ElementRobot
6771bd6de2
[create-pull-request] automated change ()
Co-authored-by: t3chguy <t3chguy@users.noreply.github.com>
2024-10-18 10:24:02 +00:00
Florian Duros
1bb482f6f7
Replace Matrix.getKeyBackupEnabled by MatrixClient.CryptoApi.getActiveSessionBackupVersion ()
* Migrating deprecated sync `MatrixClient.getKeyBackupEnabled` to async `MatrixClient.CryptoApi.getActiveSessionBackupVersion` in `NewRecoveryMethodDialog`.
Rewrite `NewRecoveryMethodDialog` into a functional component to make it easier to handle the new async method.

* Migrating deprecated sync `MatrixClient.getKeyBackupEnabled` to async `MatrixClient.CryptoApi.getActiveSessionBackupVersion` in `MatrixChat`.
2024-10-18 09:45:45 +00:00
Florian Duros
85d2bf3a04
Second batch: remove deprecated calls on MatrixClient ()
* Replace `MatrixClient.forceDiscardSession` call by `MatrixClient.CryptoApi.forceDiscardSession`

* Remove `MatrixClient.scheduleAllGroupSessionsForBackup` mock
2024-10-18 07:51:53 +00:00
Michael Telatynski
a9bea774f9
Fix Ctrl+F shortcut not working with minimised room summary card ()
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-17 15:02:38 +00:00
Michael Telatynski
0c19991e3c
Fix network dropdown missing checkbox & aria-checked ()
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-17 12:40:04 +00:00
Florian Duros
7236953d07
Remove references to MatrixClient.crypto ()
* Remove `VerificationExplorer`

* Remove `remakeolm` slash command

* Remove call to `crypto.cancelAndResendAllOutgoingKeyRequests`

* Remove crypto mock in `LoginWithQR-test.tsx`

* Remove `StopGadWidgetDriver.sendToDevice`

* Remove remaining mock
2024-10-17 08:50:44 +01:00
Florian Duros
b483fdda35
Use new CryptoEvent import ()
* Use new `CryptoEvent` import

* Remove remaining old `CryptoEvent` import

* Replace `import` by `import type`
2024-10-16 12:56:10 +01:00
Michael Telatynski
f44174b268
i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-16 10:43:41 +01:00
Michael Telatynski
1407e2f52d
Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-16 09:49:09 +01:00
Florian Duros
571ada37a7
Replace MatrixClient.isCryptoEnabled by MatrixClient.getCrypto ()
* Replace `MatrixClient.isCryptoEnabled` by `MatrixClient.getCrypto`

* Cast `cryptoEnabled` as `boolean`

* Fix `MatrixChat-test`

(cherry picked from commit 950ab1940bfcea9443f03284f9175d319c13a44c)
2024-10-16 09:42:18 +01:00
Michael Telatynski
146968da2c
Deduplicate more icons using Compound Design Tokens ()
* Deduplicate more icons using Compound Design Tokens

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
(cherry picked from commit 7448bd52e2ff354917d6e5f769ca052961c13aa0)
2024-10-16 09:42:03 +01:00
Michael Telatynski
4094d24071
Fix i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-16 09:31:08 +01:00
Michael Telatynski
68c0c4c833
Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-15 18:29:37 +01:00
Michael Telatynski
67659ab353
Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-15 16:22:11 +01:00
Michael Telatynski
d928a7be9d
Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-15 15:45:19 +01:00
Michael Telatynski
13184f0131
Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-15 15:43:46 +01:00
Michael Telatynski
643d13066c
Merge branch 'develop' of https://github.com/vector-im/element-web into t3chguy/repo-merge
# Conflicts:
#	package.json
2024-10-15 15:38:52 +01:00
Michael Telatynski
f0ee7f7905
Merge matrix-react-sdk into element-web
Merge remote-tracking branch 'repomerge/t3chguy/repomerge' into t3chguy/repo-merge

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-15 15:32:09 +01:00
David Baker
80018bccff Supporting change for CVE-2024-47771 / GHSA-963w-49j9-gxj6 2024-10-15 14:08:43 +01:00
David Baker
bc0ae8de14 Fix for CVE-2024-47779 / GHSA-3jm3-x98c-r34x 2024-10-15 14:08:36 +01:00
Michael Telatynski
d58c9fa7f6
Always show link new device flow even if unsupported ()
* Always show link new device flow even if unsupported

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update screenshot

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-15 09:18:57 +00:00
ElementRobot
51a5cf64c8
[create-pull-request] automated change ()
Co-authored-by: dbkr <dbkr@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2024-10-15 09:12:29 +00:00