ThibG
b6c0f1fdc6
[Glitch] Add HTML form validation for the registration form
...
Port d70c3ab4c3
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-08-13 22:25:33 +02:00
Thibaut Girka
da62e350e0
Merge branch 'master' into glitch-soc/merge-upstream
2020-08-13 22:17:29 +02:00
ThibG
0f38f9726a
Fix hardcoded non-breaking space in public view ( #14568 )
2020-08-13 12:04:28 +02:00
ThibG
8d217d7231
Improve email address validation ( #14565 )
...
* Increase DNS timeout from 1 second to 5 seconds for MX check
1 seconds is rather short when using a recursive DNS resolver which
hasn't got a cached result already available. Use 5 seconds instead,
which is the timeout value we use for outgoing HTTP queries.
* Add more precise error messages for invalid e-mail addresses
2020-08-12 12:40:25 +02:00
ThibG
7dc4c74265
Add client-side validation in password change forms ( #14564 )
...
* Fix client-side username validation at registration
It used the Account::USERNAME_RE regexp which is for *remote* users,
local user validation is stricter. Also take into account max username length.
* Add client-side form validation for password change
* Add client-side form validation to dedicated registration form
Previous changes only applied to the /about page, not the dedicated form on
/auth
2020-08-12 12:11:15 +02:00
Thibaut Girka
660188c900
Fix local-only flag not necessarily being preserved on delete & redraft
2020-08-12 00:02:44 +02:00
Thibaut Girka
7c20530fb7
Fix embedded player
...
(broken because I forgot to adapt it to glitch-soc's theming system)
2020-08-12 00:00:42 +02:00
ThibG
d70c3ab4c3
Add HTML form validation for the registration form ( #14560 )
...
* Add HTML-level validation of username in sign-up form
* Make required fields with incorrect values more visible
* Enable HTML form validation for the registration form
* Mark agreement checkbox as required client-side
* Add minimum length to password
* Add client-side password confirmation validation
2020-08-11 23:09:13 +02:00
Thibaut Girka
0376b6b92b
Fix new audio player when under content warnings
2020-08-11 22:37:51 +02:00
Eugen Rochko
8ae52dc792
[Glitch] Add support for managing multiple stream subscriptions in a single connection
...
Ported ef057584fd
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-08-11 19:40:35 +02:00
Thibaut Girka
78fa15d08f
Merge branch 'master' into glitch-soc/master
...
Conflicts:
- `streaming/index.js`:
Upstream entirely refactored it.
Ported our changes to upstream's refactor. Hopefuly.
2020-08-11 19:19:27 +02:00
Eugen Rochko
ef057584fd
Add support for managing multiple stream subscriptions in a single connection ( #14524 )
2020-08-11 18:24:59 +02:00
niwatori24
8b61bb1c3e
Cache result of SQL ( #14534 )
2020-08-09 15:23:42 +02:00
Thibaut Girka
5d5b9e2f62
Merge branch 'master' into glitch-soc/merge-upstream
2020-08-08 19:10:40 +02:00
ThibG
bd3420b139
Fix crash when failing to load emoji picker ( #14525 )
...
Fixes #14523
2020-08-08 17:57:56 +02:00
abcang
4a4d08f3a0
Fix eslint error ( #14521 )
2020-08-07 10:40:33 +02:00
ThibG
a637344e37
Fallback to previous, more approximative hashtag RE on older browsers ( #14513 )
...
Fixes #14511
2020-08-05 22:39:14 +02:00
Thibaut Girka
a3806ec6ba
[Glitch] Fallback to previous, more approximative hashtag RE on older browsers
...
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-08-05 13:43:32 +02:00
Fire Demon
3d5b3e357c
Add support for direct message assertions
2020-08-04 19:43:19 +02:00
ThibG
8f0e6122a9
[Glitch] Fix audio player on Safari
...
Port 635b6a0f1a
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-08-02 22:30:51 +02:00
Thibaut Girka
b578d70957
Merge branch 'master' into glitch-soc/merge-upstream
2020-08-02 22:29:17 +02:00
ThibG
8ce962e148
Fix audio/video player not using CDN_HOST in media paths on public pages ( #14486 )
2020-08-02 19:03:10 +02:00
ThibG
635b6a0f1a
Fix audio player on Safari ( #14485 )
2020-08-02 18:47:09 +02:00
ThibG
de7ba22c45
[Glitch] Fix new audio player features not working on Safari
...
Port 51b5bb5301
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-08-02 14:35:40 +02:00
ThibG
8f3295f212
[Glitch] Fix wrong proptypes for onEditAccountNote
...
Port 5faf2de938
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-08-02 14:34:56 +02:00
kedama
1d8e930445
[Glitch] Fix the hashtag judgment of the compose form to be the same as the server side
...
Port cd94854e7d
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-08-02 14:33:22 +02:00
Thibaut Girka
23cd5f2c15
Merge branch 'master' into glitch-soc/merge-upstream
2020-08-02 14:30:28 +02:00
ThibG
3ade834830
Fix disabled boost icon being replaced by private boost icon on hover ( #14456 )
...
Fixes #14455
2020-08-02 11:21:28 +02:00
ThibG
51b5bb5301
Fix new audio player features not working on Safari ( #14465 )
...
Fixes #14462
2020-08-02 11:20:17 +02:00
ThibG
5faf2de938
Fix wrong proptypes for onEditAccountNote ( #14481 )
...
Also add missing PropTypes to the correct component
Fixes #14478
2020-08-02 11:20:02 +02:00
kedama
cd94854e7d
Fix the hashtag judgment of the compose form to be the same as the server side ( #14484 )
2020-08-02 11:19:43 +02:00
Thibaut Girka
2cfa142961
Merge branch 'master' into glitch-soc/merge-upstream
...
Conflicts:
- `yarn.lock`:
No real conflict, just a glitch-soc-only dependency textually too close to
one updated upstream. Ported upstream changes.
2020-08-01 20:24:23 +02:00
ThibG
bfd5aea206
Fix handling of Reject Follow when a matching follow relationship exists ( #14479 )
...
* Add tests
* Fix handling of Reject Follow when a matching follow relationship exists
Regression from #12199
2020-08-01 18:20:37 +02:00
Takeshi Umeda
156af70e4d
Fix following restriction not working when exact match in account search ( #14394 )
2020-07-26 23:58:36 +02:00
Thibaut Girka
ab967cf5a0
Fix local-only toots not being returned by the local TL API
...
Fixes #1389
2020-07-25 13:25:58 +02:00
Eugen Rochko
00448db3c8
Fix unnecessary second connection to user stream from account timeline in web UI ( #14387 )
...
Fix regression from #14212
2020-07-24 14:55:14 +02:00
Eugen Rochko
054f4af603
New Crowdin updates ( #14335 )
...
* New translations en.yml (Kazakh)
[ci skip]
* New translations en.json (Norwegian Nynorsk)
[ci skip]
* New translations simple_form.en.yml (Norwegian Nynorsk)
[ci skip]
* New translations en.yml (Latvian)
[ci skip]
* New translations simple_form.en.yml (Kazakh)
[ci skip]
* New translations en.json (Latvian)
[ci skip]
* New translations doorkeeper.en.yml (Estonian)
[ci skip]
* New translations simple_form.en.yml (Estonian)
[ci skip]
* New translations en.yml (Estonian)
[ci skip]
* New translations en.yml (Norwegian Nynorsk)
[ci skip]
* New translations en.yml (Slovak)
[ci skip]
* New translations doorkeeper.en.yml (Croatian)
[ci skip]
* New translations en.yml (Spanish, Argentina)
[ci skip]
* New translations doorkeeper.en.yml (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Indonesian)
[ci skip]
* New translations simple_form.en.yml (Indonesian)
[ci skip]
* New translations doorkeeper.en.yml (Indonesian)
[ci skip]
* New translations simple_form.en.yml (Persian)
[ci skip]
* New translations doorkeeper.en.yml (Persian)
[ci skip]
* New translations en.json (Tamil)
[ci skip]
* New translations en.yml (Tamil)
[ci skip]
* New translations simple_form.en.yml (Tamil)
[ci skip]
* New translations doorkeeper.en.yml (Tamil)
[ci skip]
* New translations simple_form.en.yml (Spanish, Argentina)
[ci skip]
* New translations simple_form.en.yml (Croatian)
[ci skip]
* New translations doorkeeper.en.yml (Spanish, Argentina)
[ci skip]
* New translations en.json (Bengali)
[ci skip]
* New translations en.yml (Bengali)
[ci skip]
* New translations simple_form.en.yml (Bengali)
[ci skip]
* New translations en.json (Marathi)
[ci skip]
* New translations en.yml (Marathi)
[ci skip]
* New translations doorkeeper.en.yml (Marathi)
[ci skip]
* New translations en.json (Croatian)
[ci skip]
* New translations en.yml (Welsh)
[ci skip]
* New translations en.yml (Croatian)
[ci skip]
* New translations en.json (Welsh)
[ci skip]
* New translations simple_form.en.yml (Asturian)
[ci skip]
* New translations simple_form.en.yml (Welsh)
[ci skip]
* New translations en.yml (Taigi)
[ci skip]
* New translations en.yml (Corsican)
[ci skip]
* New translations simple_form.en.yml (Corsican)
[ci skip]
* New translations doorkeeper.en.yml (Corsican)
[ci skip]
* New translations doorkeeper.en.yml (Kabyle)
[ci skip]
* New translations en.json (Ido)
[ci skip]
* New translations en.yml (Ido)
[ci skip]
* New translations simple_form.en.yml (Ido)
[ci skip]
* New translations doorkeeper.en.yml (Ido)
[ci skip]
* New translations en.json (Taigi)
[ci skip]
* New translations doorkeeper.en.yml (Serbian (Latin))
[ci skip]
* New translations en.json (Silesian)
[ci skip]
* New translations en.yml (Silesian)
[ci skip]
* New translations en.json (Uyghur)
[ci skip]
* New translations en.yml (Uyghur)
[ci skip]
* New translations en.json (Sorani (Kurdish))
[ci skip]
* New translations en.yml (Sorani (Kurdish))
[ci skip]
* New translations simple_form.en.yml (Serbian (Latin))
[ci skip]
* New translations doorkeeper.en.yml (Welsh)
[ci skip]
* New translations en.yml (Breton)
[ci skip]
* New translations en.json (Esperanto)
[ci skip]
* New translations simple_form.en.yml (Esperanto)
[ci skip]
* New translations doorkeeper.en.yml (Esperanto)
[ci skip]
* New translations en.json (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations doorkeeper.en.yml (Chinese Traditional, Hong Kong)
[ci skip]
* New translations en.json (Malayalam)
[ci skip]
* New translations en.yml (Malayalam)
[ci skip]
* New translations simple_form.en.yml (Malayalam)
[ci skip]
* New translations doorkeeper.en.yml (Malayalam)
[ci skip]
* New translations simple_form.en.yml (Breton)
[ci skip]
* New translations en.yml (Serbian (Latin))
[ci skip]
* New translations doorkeeper.en.yml (Breton)
[ci skip]
* New translations en.json (Kannada)
[ci skip]
* New translations en.yml (Kannada)
[ci skip]
* New translations en.json (Asturian)
[ci skip]
* New translations en.yml (Asturian)
[ci skip]
* New translations en.yml (Portuguese, Brazilian)
[ci skip]
* New translations doorkeeper.en.yml (Asturian)
[ci skip]
* New translations en.yml (Occitan)
[ci skip]
* New translations simple_form.en.yml (Occitan)
[ci skip]
* New translations doorkeeper.en.yml (Occitan)
[ci skip]
* New translations en.json (Serbian (Latin))
[ci skip]
* New translations simple_form.en.yml (Portuguese, Brazilian)
[ci skip]
* New translations doorkeeper.en.yml (Turkish)
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.json (Georgian)
[ci skip]
* New translations doorkeeper.en.yml (Hungarian)
[ci skip]
* New translations en.yml (Armenian)
[ci skip]
* New translations simple_form.en.yml (Armenian)
[ci skip]
* New translations doorkeeper.en.yml (Armenian)
[ci skip]
* New translations en.yml (Italian)
[ci skip]
* New translations simple_form.en.yml (Italian)
[ci skip]
* New translations doorkeeper.en.yml (Italian)
[ci skip]
* New translations simple_form.en.yml (Japanese)
[ci skip]
* New translations doorkeeper.en.yml (Japanese)
[ci skip]
* New translations en.yml (Georgian)
[ci skip]
* New translations simple_form.en.yml (Hebrew)
[ci skip]
* New translations simple_form.en.yml (Georgian)
[ci skip]
* New translations doorkeeper.en.yml (Georgian)
[ci skip]
* New translations en.yml (Korean)
[ci skip]
* New translations simple_form.en.yml (Korean)
[ci skip]
* New translations doorkeeper.en.yml (Korean)
[ci skip]
* New translations en.json (Lithuanian)
[ci skip]
* New translations en.yml (Lithuanian)
[ci skip]
* New translations en.json (Macedonian)
[ci skip]
* New translations en.yml (Macedonian)
[ci skip]
* New translations doorkeeper.en.yml (Hebrew)
[ci skip]
* New translations en.yml (Hebrew)
[ci skip]
* New translations en.json (Occitan)
[ci skip]
* New translations en.json (Sardinian)
[ci skip]
* New translations en.yml (Sardinian)
[ci skip]
* New translations en.json (Slovenian)
[ci skip]
* New translations en.yml (Slovenian)
[ci skip]
* New translations en.yml (Esperanto)
[ci skip]
* New translations en.yml (Russian)
[ci skip]
* New translations en.json (Hebrew)
[ci skip]
* New translations en.json (Slovak)
[ci skip]
* New translations simple_form.en.yml (Russian)
[ci skip]
* New translations simple_form.en.yml (Ukrainian)
[ci skip]
* New translations en.yml (Hungarian)
[ci skip]
* New translations simple_form.en.yml (Hungarian)
[ci skip]
* New translations en.yml (Japanese)
[ci skip]
* New translations simple_form.en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Persian)
[ci skip]
* New translations en.json (Ukrainian)
[ci skip]
* New translations en.yml (Ukrainian)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations doorkeeper.en.yml (Finnish)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations doorkeeper.en.yml (Icelandic)
[ci skip]
* New translations en.yml (Urdu (Pakistan))
[ci skip]
* New translations doorkeeper.en.yml (Swedish)
[ci skip]
* New translations en.json (Turkish)
[ci skip]
* New translations en.yml (Turkish)
[ci skip]
* New translations simple_form.en.yml (Turkish)
[ci skip]
* New translations en.yml (Indonesian)
[ci skip]
* New translations doorkeeper.en.yml (Ukrainian)
[ci skip]
* New translations en.yml (Chinese Traditional)
[ci skip]
* New translations simple_form.en.yml (Chinese Traditional)
[ci skip]
* New translations doorkeeper.en.yml (Chinese Traditional)
[ci skip]
* New translations en.json (Urdu (Pakistan))
[ci skip]
* New translations en.yml (Swedish)
[ci skip]
* New translations en.yml (Galician)
[ci skip]
* New translations simple_form.en.yml (Galician)
[ci skip]
* New translations doorkeeper.en.yml (Galician)
[ci skip]
* New translations en.json (Icelandic)
[ci skip]
* New translations en.yml (Icelandic)
[ci skip]
* New translations simple_form.en.yml (Icelandic)
[ci skip]
* New translations simple_form.en.yml (Swedish)
[ci skip]
* New translations en.json (Swedish)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations simple_form.en.yml (Portuguese)
[ci skip]
* New translations simple_form.en.yml (Dutch)
[ci skip]
* New translations doorkeeper.en.yml (Dutch)
[ci skip]
* New translations en.json (Norwegian)
[ci skip]
* New translations en.yml (Norwegian)
[ci skip]
* New translations simple_form.en.yml (Norwegian)
[ci skip]
* New translations doorkeeper.en.yml (Norwegian)
[ci skip]
* New translations en.json (Polish)
[ci skip]
* New translations en.yml (Polish)
[ci skip]
* New translations simple_form.en.yml (Polish)
[ci skip]
* New translations doorkeeper.en.yml (Polish)
[ci skip]
* New translations en.yml (Portuguese)
[ci skip]
* New translations doorkeeper.en.yml (Portuguese)
[ci skip]
* New translations doorkeeper.en.yml (Serbian (Cyrillic))
[ci skip]
* New translations doorkeeper.en.yml (Russian)
[ci skip]
* New translations simple_form.en.yml (Slovak)
[ci skip]
* New translations doorkeeper.en.yml (Slovak)
[ci skip]
* New translations simple_form.en.yml (Slovenian)
[ci skip]
* New translations doorkeeper.en.yml (Slovenian)
[ci skip]
* New translations en.yml (Albanian)
[ci skip]
* New translations simple_form.en.yml (Albanian)
[ci skip]
* New translations doorkeeper.en.yml (Albanian)
[ci skip]
* New translations en.json (Serbian (Cyrillic))
[ci skip]
* New translations en.yml (Serbian (Cyrillic))
[ci skip]
* New translations simple_form.en.yml (Serbian (Cyrillic))
[ci skip]
* New translations en.json (Portuguese, Brazilian)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.json (French)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations doorkeeper.en.yml (Vietnamese)
[ci skip]
* New translations doorkeeper.en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations doorkeeper.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.yml (Chinese Simplified)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations simple_form.en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.yml (Finnish)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.json (Finnish)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.json (Dutch)
[ci skip]
* New translations en.yml (Dutch)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations devise.en.yml (Thai)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.json (Korean)
[ci skip]
* New translations en.json (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.yml (Thai)
[ci skip]
* New translations en.json (Vietnamese)
[ci skip]
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* New translations simple_form.en.yml (Vietnamese)
[ci skip]
* New translations en.yml (Vietnamese)
[ci skip]
* i18n-tasks normalize
* yarn manage:translations
* Fix normalization
2020-07-24 12:46:46 +02:00
ThibG
753ba9fc23
Fix hover and normal colors for private boost icon being swapped ( #14386 )
2020-07-24 12:19:30 +02:00
Thibaut Girka
5e93c7359d
Fix custom boost icon colors being swapped
2020-07-24 11:58:09 +02:00
ThibG
b136e621ea
[Glitch] Add custom icon for private boosts
...
Port 956473142c
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-07-24 11:29:20 +02:00
Thibaut Girka
4d950c71e9
Merge branch 'master' into glitch-soc/master
2020-07-24 11:26:40 +02:00
ThibG
956473142c
Add custom icon for private boosts ( #14380 )
2020-07-23 23:54:19 +02:00
Takeshi Umeda
939a47393c
Fix duplicate notification and delivery of mentions ( #14378 )
2020-07-23 15:41:49 +02:00
ThibG
59e0eb1ba0
[Glitch] Change disabled retweet icon
...
Port e93efc0309
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-07-22 22:57:57 +02:00
Thibaut Girka
c03d1a9ac8
Merge branch 'master' into glitch-soc/merge-upstream
2020-07-22 22:53:46 +02:00
Thibaut Girka
855ada7e93
Fix “Show less for all”/”Show more for all” eye icon not reflecting state
2020-07-22 22:53:10 +02:00
ThibG
e93efc0309
Change disabled retweet icon ( #14373 )
...
* Change disabled retweet icon
* Hide fontawesome version of boost icon in both reduce-motion and no-reduce-motion
2020-07-22 22:48:51 +02:00
ThibG
f8e315cd74
[Glitch] Fix keyboard navigation in scrollable lists
...
Port 98f6380dee
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-07-22 13:51:44 +02:00
Sasha Sorokin
4412e2579c
[Glitch] Fix following_counter plural to include "one"
...
Port 17b1d71536
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-07-22 13:50:58 +02:00
ThibG
9bdad8f14e
[Glitch] Fix audio player controls color in mastodon-light theme
...
Port 85bc0f9639
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
2020-07-22 13:50:15 +02:00