matejcik
d318a29343
fix(legacy/ethereum): set correct limit for SignTxEIP1559.to
2021-09-10 15:09:03 +02:00
matejcik
2ce0c8f188
fix(legacy): make use of Ethereum required fields
2021-09-10 15:09:03 +02:00
matejcik
96ed53cc1c
refactor(core,legacy): remove Wanchain special handling
...
now that Wanchain has proper chainID and we don't need to detect it by
magic.
[no changelog]
2021-09-10 15:09:03 +02:00
matejcik
639406b01f
feat(all): make chain_id mandatory
2021-09-10 15:09:03 +02:00
arbitrarylink
f051225730
feat(core,legacy): add support for Ethereum 64-bit chain_id
...
* Changes from original PR
* Now that we are rejecting chain_ids of 0, we need to have the tests set the chain_ids to at least 1.
* Ran 'make gen' and uploaded changed files.
* Ran make style_check and fixed reported errors
* Added changelog files
* Reverted changes concerning chain_id 0 being rejected.
* Adds tests for MAX_CHAIN_ID and MAX_CHAIN_ID+1. Also reverts MAX_CHAIN_ID to the previous value.
* Added missing whitespace around arithmetic operator.
Co-authored-by: Michael Hatton <michaelhatton@Michaels-Mini.fios-router.home>
2021-09-10 15:09:03 +02:00
Tomas Susanka
cec1f39a90
chore(core, legacy): bump versions
...
[no changelog]
2021-08-31 12:55:37 +02:00
Tomas Susanka
1f5800a966
chore(legacy): generate Changelog
2021-08-26 14:54:27 +02:00
Andrew Kozlik
dd65780610
fix(legacy): Stricter protobuf field handling in Stellar.
2021-08-24 13:46:08 +02:00
matejcik
7aed8d535d
feat(all): re-enable Firo ( fixes #1767 )
2021-08-23 11:43:57 +02:00
matejcik
becf5dcc53
chore(legacy): remove Lisk
2021-08-19 10:25:41 +02:00
matejcik
a39870449f
fix(legacy): recognize SignTXEIP1559 on legacy build
...
[no changelog]
2021-08-10 11:00:29 +02:00
matejcik
9ab1891b22
feat(common): more required fields in messages-management
...
[no changelog]
2021-08-04 15:03:11 +02:00
matejcik
33a9a14eab
feat(legacy/emulator): avoid busy loop when waiting for messages
2021-08-04 10:58:15 +02:00
Pavol Rusnak
397a2ab18e
feat(legacy): make sure that known_bootloader check contains the hash of our bundled bootloader
2021-07-23 13:46:06 +02:00
Andrew Kozlik
c1843f9f9f
style(legacy): Remove nested conditional operators.
2021-07-22 10:54:49 +02:00
Andrew Kozlik
7277a49047
fix(common): Add new rpId to Binance's FIDO definition.
2021-07-21 13:19:16 +02:00
Martin Milata
0d251fc01a
Merge branch 'release/21.07'
2021-07-16 14:34:20 +02:00
Andrew Kozlik
24bb401638
fix(legacy,core): Fix operation source account encoding in Stellar.
2021-07-13 17:24:16 +02:00
Martin Milata
478bc81b86
chore(legacy): bump version to 1.10.3
2021-07-08 13:38:09 +02:00
Martin Milata
01c1ae426f
docs: add security fixes to changelogs
2021-06-30 18:32:58 +02:00
Andrew Kozlik
5fb0f9a6c5
feat(legacy): Distinguish between known path checks and script type checks in coin_path_check().
2021-06-30 18:25:58 +02:00
Andrew Kozlik
b8cb531098
feat(legacy): Check presence of multisig parameters in coin_known_path_check() for consistency with core checks.
2021-06-30 18:25:58 +02:00
Andrew Kozlik
c067618828
fix(common): Fix incorrect SLIP-44 coin type for Bgold and SmartCash Testnets.
2021-06-30 18:25:58 +02:00
Andrew Kozlik
28421594c9
fix(legacy): Use short-circuit evaluation in coin_known_path_check().
2021-06-30 18:25:58 +02:00
Andrew Kozlik
9b0e980c44
fix(legacy): Don't allow unknown paths in GetAddress.
2021-06-30 18:25:58 +02:00
Andrew Kozlik
3884232f74
feat(legacy): Restrict path ranges for account, change and address index.
2021-06-30 18:25:58 +02:00
Andrew Kozlik
a6390e4b82
fix(legacy): Allow known non-standard paths in GetAddress and SignTx.
2021-06-30 18:25:58 +02:00
Andrew Kozlik
18f4a47173
fix(legacy): Disable spending testnet coins from Bitcoin paths.
2021-06-30 18:25:58 +02:00
Martin Milata
a2d2405a11
docs(legacy/firmware): changelog for 1.10.2
2021-06-30 18:17:09 +02:00
Pavol Rusnak
8cfa5da1ce
docs: fix typos in comments
...
[skip_ci]
2021-06-30 15:41:55 +02:00
Andrew Kozlik
9ebfa936c0
docs(legacy/firmware): Fix dates in changelog.
2021-06-11 20:22:42 +02:00
Martin Milata
362504dfcd
docs(legacy/firmware): changelog for blake256 fix
2021-06-11 20:22:42 +02:00
matejcik
97f49cf336
fix(legacy): fix protobuf build [no changelog]
2021-06-08 09:55:19 +02:00
matejcik
2fac964a29
chore(common): disable Firo support
2021-06-04 11:38:18 +02:00
Pavol Rusnak
fce3640848
fix(common): remove dead coin Hatch
2021-06-04 10:10:26 +02:00
Martin Milata
3976ef7261
chore(legacy/firmware): bump version to 1.10.2
...
[skip_ci]
2021-06-02 12:50:22 +02:00
Martin Milata
5f2b7b231b
docs(legacy/firmware): changelog for 1.10.1
2021-05-24 18:58:48 +02:00
Andrew Kozlik
2dbde040c4
feat(legacy): Add safety_checks setting.
2021-05-24 17:47:43 +02:00
Ondřej Vejpustek
34f5d508b0
refactor(legacy): move wait_random into separate file
2021-05-21 13:42:53 +02:00
Pavol Rusnak
e09a74a79e
refactor(legacy): rename check_bootloader to check_and_replace_bootloader
2021-05-13 17:59:39 +02:00
Martin Milata
ca5d173071
docs(legacy/firmware): changelog for 1.10.0
2021-05-13 14:35:54 +02:00
Martin Milata
97aa0fb517
docs(legacy/firmware): use towncrier for generating CHANGELOG.md
2021-05-04 14:18:01 +02:00
Martin Milata
f58c1634c6
docs(core): use towncrier for generating CHANGELOG.md
2021-05-04 14:18:01 +02:00
Tomas Susanka
300c27abb8
chore(legacy): bump version to 1.10.1; add soft-reset to changelog
2021-04-23 15:47:17 +02:00
Tomas Susanka
e82aacbc7c
docs(legacy/changelog): add note on bootloader
2021-04-22 09:41:58 +02:00
Pavol Rusnak
f93a8514e8
fix(legacy): update embedded bootloader hash
2021-04-21 16:00:09 +02:00
Pavol Rusnak
73ae44f500
fix(legacy): rebuild bundled bootloader (deterministically)
2021-04-19 18:32:47 +02:00
Pavol Rusnak
0d37824b01
fix(legacy): show dialog before rebooting to bootloader
2021-04-15 18:01:09 +02:00
Alexis Hernandez
bb1c638d3b
legacy: Update op_return max size to 150 bytes
...
The goal is to allow Trezor 1 to create TPoS contracts for Stakenet.
Last year, Stakenet introduced a hard-fork [1] to change the way TPoS contracts
are created, instead of a custom signature method, now it works with the
output from the signMessage method, while this works for Trezor T, it doesn't
work for Trezor 1 due to the 80 bytes limit on the OP_RETURN output while
Stakenet allows up to 150 bytes [2], in a gitter discussion [3] we concluded that
the change should be fine.
The hard-fork was introduced because we couldn't got our TPoS contracts PR accepted [4],
the OP_RETURN still contains the same data, its just stored in a different way:
- The TPoS address, where the coins to stake are stored, and where rewards are received.
- The merchant address, where the merchant receives its commission.
- The contract commission.
- The TPoS collateral signature (this is what uses the signMessage now).
At last, there is an example transaction creating a TPoS contract [5].
[1]: https://github.com/X9Developers/XSN/pull/154
[2]: https://github.com/X9Developers/XSN/blob/master/src/script/standard.h#L34
[3]: https://gitter.im/trezor/community?at=6064c41e940f1d555e2ea670
[4]: https://github.com/trezor/trezor-firmware/pull/140
[5]: https://xsnexplorer.io/transactions/858feb31097501cf68d698cde104cf778ec51ff3668e943404b549a5dd2f5792
2021-04-06 10:15:59 +02:00
Andrew Kozlik
a755e99ccc
feat(legacy): Display nLockTime in human-readable form.
2021-03-26 14:49:21 +01:00
Andrew Kozlik
66823e2893
chore(core,legacy): Bump FIX_VERSIONs due to upgrade to storage version 3.
2021-03-25 14:24:41 +01:00
Andrew Kozlik
cbb0d82999
feat(legacy): Support 50 digit PIN and wipe code.
2021-03-25 14:24:41 +01:00
matejcik
56ee7d33a9
chore: add cardano changelogs
2021-03-18 10:30:03 +01:00
Andrew Kozlik
97a3223663
fix(legacy): Skip unused messages in nanopb.
2021-03-17 22:34:26 +01:00
Andrew Kozlik
a36439a57f
fix(legacy): Improve compile-time checks of message sizes.
...
Distinguish between the maximum size of a protobuf-encoded message
and the maximum size of a C struct containing a decoded message.
2021-03-17 22:34:26 +01:00
Andrew Kozlik
54fec3742f
fix(legacy): Improve error handling in msg_read_tiny().
...
When a message was unexpected and small enough, it raised a
DataError, which contradicted the reasoning about ignoring
unexpected messages. Now all unexpected messages are ignored
regardless of their size.
When a message was expected, but too big, it was ignored, which
made debugging difficult. Now it raises a DataError.
2021-03-17 22:34:26 +01:00
Andrew Kozlik
d3183776fa
chore(legacy): Add compile-time checks for msg_tiny sizes.
2021-03-17 22:34:26 +01:00
Andrew Kozlik
838b2c2c77
fix(legacy): Replace magic numbers with USB_PACKET_SIZE and MSG_HEADER_SIZE.
2021-03-17 22:34:26 +01:00
Andrew Kozlik
9aec5409b9
feat(legacy): Allow decreasing output amount in RBF transactions.
2021-03-17 15:15:50 +01:00
Pavol Rusnak
a36d0c0fbe
docs(changelog): add public key to ECDHSessionKey
2021-03-08 16:52:44 +01:00
Roman Zeyde
78ab0a6a2d
feat(legacy): add public_key to ECDHSessionKey
2021-03-08 15:59:00 +01:00
Pavol Rusnak
97b43499e5
fix(legacy): remove executable bit from legacy/firmware/bootloader.dat
2021-03-05 18:33:59 +01:00
Pavol Rusnak
60a6b8211e
docs(changelog): next bootloader/firmware version will be 1.10.0
2021-03-05 18:32:23 +01:00
Pavol Rusnak
4a82d6c9d5
fix(legacy): recompile bundled bootloader
2021-03-03 16:36:18 +01:00
Pavol Rusnak
3b80e9f228
fix(legacy): store only half of the logo64, use flip to render both parts
2021-03-03 16:23:53 +01:00
Pavol Rusnak
4b0f41d41e
fix(common): change msg_id of RebootToBootloader from 804 to 87
2021-03-03 12:07:00 +01:00
Ondrej Mikle
d0b630abfc
chore(legacy): return code for reboot call
2021-03-03 12:06:59 +01:00
Ondrej Mikle
18a05d467e
chore(legacy): fake handling emulator reset to bootloader
2021-03-03 12:06:59 +01:00
Ondrej Mikle
2dccbf99d4
chore(legacy): add reset to bootloader protobuf message
2021-03-03 12:06:59 +01:00
Ondrej Mikle
f9917e8d47
feat(legacy): add 'stay in bootloader' bootloader to firmware'
2021-03-03 12:06:58 +01:00
matejcik
0964517fe7
fix(legacy): do not query presence of newly-required protobuf fields
2021-02-10 10:56:52 +01:00
Andrew Kozlik
79fad70b05
fix: Improve wording when showing multisig XPUBS.
2021-01-26 15:09:37 +01:00
Pavol Rusnak
0519d86451
chore(legacy): simplify data2hex
2021-01-22 22:41:11 +01:00
Tomas Susanka
1006c8a0f1
chore(core,legacy): change versions to 1.9.5 and 2.3.6
...
This reverts commit 92535dc090
.
2021-01-22 15:42:55 +01:00
Pavol Rusnak
47e701f54c
docs(legacy): update changelog
...
[skip_ci]
2021-01-22 14:30:50 +01:00
Pavol Rusnak
92535dc090
chore(core,legacy): change versions back to 1.9.4 and 2.3.5
...
[skip_ci]
2021-01-22 14:23:11 +01:00
Pavol Rusnak
1d3166017d
feat(legacy): implement amount_unit for SignTx
2021-01-22 14:07:36 +01:00
Pavol Rusnak
cb4c5a72bf
legacy: implement GetAddress.ignore_xpub_magic
2021-01-21 23:46:29 +01:00
Pavol Rusnak
4ed714ba47
common/defs: add xpub_magic_multisig_segwit_{native,p2sh} fields to coins
2021-01-21 23:46:29 +01:00
Pavol Rusnak
1e6259a476
docs: update changelogs
...
[skip_ci]
2021-01-08 14:33:28 +01:00
Pavol Rusnak
4d45a68fd0
legacy: return root_fingerprint in PublicKey
2021-01-08 14:17:09 +01:00
Pavol Rusnak
2f8d687405
feat(legacy): implement GetPublicKey.ignore_xpub_magic behaviour
2021-01-08 14:17:09 +01:00
Pavol Rusnak
91e60036e0
fix(legacy): show xpub instead of pubkey in GetPublicKey dialog
2021-01-08 14:17:09 +01:00
Pavol Rusnak
9ba1c9aa50
docs: mention that nanopb was bumped to 0.4.4 in changelogs
...
[skip_ci]
2021-01-06 13:52:09 +01:00
Pavol Rusnak
6739e4e5e1
docs: push releases 1.9.4 and 2.3.5 to February 2021
...
[skip_ci]
2021-01-06 09:10:06 +01:00
Pavol Rusnak
af716d0843
fix(legacy): update typo (we lock device after 5 seconds, not 2 seconds)
2021-01-04 19:55:41 +01:00
Pavol Rusnak
93215ae3c7
style: reformat with clang-format 11
2021-01-04 14:40:16 +01:00
Pavol Rusnak
1d151ab4fe
legacy: fix typo
2020-12-29 17:37:37 +01:00
Tomas Susanka
d38540ca7a
chore(legacy): bump version to 1.9.5
2020-12-18 19:39:21 +01:00
Andrew Kozlik
d252539125
fix(legacy): Support negative amounts in layoutConfirmTx().
2020-12-17 16:33:33 +01:00
Andrew Kozlik
389f14d6c4
feat(legacy): Implement replacement transaction signing flow.
2020-12-17 16:33:33 +01:00
Andrew Kozlik
4ad1fbc133
chore(legacy): Create TxInfo struct in Bitcoin signing.
2020-12-17 16:33:33 +01:00
Andrew Kozlik
a2e35fabce
chore(legacy): Rename variables in signing to match the names in core.
2020-12-17 16:33:33 +01:00
Pavol Rusnak
d8dd2f64a9
legacy: update release date for 1.9.4
2020-11-26 16:51:44 +01:00
Martin Milata
bf524854cd
chore(legacy): missing changelog entry, formatting
2020-11-20 14:47:08 +01:00
Martin Milata
480332b803
fix(legacy): increase minimum auto-lock delay to 1 minute
2020-11-20 13:57:51 +01:00
Pavol Rusnak
c6e78e525a
fix: remove PIVX ( #1359 )
2020-11-20 12:12:42 +01:00
Pavol Rusnak
50fdd183c2
ci: enable editorconfig checks, fix whitespace issues
2020-11-11 14:43:50 +01:00
Andrew Kozlik
443e0c101e
chore(common): Add orig_hash and orig_index fields to TxInput and TxOutput.
2020-10-23 15:07:15 +02:00
Andrew Kozlik
c67ecb984b
chore(crypto): Move XPUB_MAXLEN and ADDRESS_MAXLEN from modtrezorcrypto to bip32.h.
2020-10-13 13:13:49 +02:00
Martin Milata
7d8fbacba7
feat(legacy): add auto_lock_delay_ms to Features
2020-10-02 11:06:16 +02:00
Pavol Rusnak
71058eedd5
chore(vendor/nanopb): update nanopb from 0.4.1 to 0.4.3
2020-09-24 10:52:31 +02:00
matejcik
c9348709e8
fix(legacy/nem): use levy only if provided
2020-09-24 10:52:31 +02:00
matejcik
0eed360037
chore: make tx type names shorter
...
as suggested by @andrewkozlik:
TxAckInputType -> TxInput
TxAckOutputType -> TxOutput
TxAckPrevTxType -> PrevTx
TxAckPrevInputType -> PrevInput
TxAckPrevOutputType -> PrevOutput
2020-09-23 16:00:10 +02:00
matejcik
5debebefc8
chore(legacy): update code to handle protobuf changes correctly
2020-09-23 16:00:10 +02:00
Andrew Kozlik
5d745d5d04
common/protob: Add commitment_data to TxInputType.
2020-09-08 19:36:10 +02:00
Martin Milata
047fcffde1
legacy: replace confusing Version group ID error message
2020-09-04 15:26:24 +02:00
Andrew Kozlik
e9ed0851b3
legacy: Stream prev_tx after confirmation.
2020-09-04 14:36:39 +02:00
Tomas Susanka
b99b8b3df3
Merge remote-tracking branch 'origin/release/2020-09'
2020-09-03 13:17:23 +02:00
Pavol Rusnak
c1dd07a2e4
core+legacy: update dates in changelogs
2020-09-02 15:36:36 +02:00
matejcik
e0583dd5cb
all: use a specific error code for "invalid session"
2020-08-28 15:37:06 +02:00
matejcik
58621711d1
legacy: implement EndSession
2020-08-28 15:37:06 +02:00
Pavol Rusnak
8c2e20c26b
legacy/firmware: validate script type only in full-mode known_path_check ( #1216 )
...
(cherry picked from commit 07bd330d98
)
2020-08-24 12:54:24 +02:00
Pavol Rusnak
07bd330d98
legacy/firmware: validate script type only in full-mode known_path_check ( #1216 )
2020-08-24 12:54:00 +02:00
Tomas Susanka
d080464cc5
core, legacy: bump versions (also in changelogs)
2020-08-24 09:31:49 +02:00
Andrew Kozlik
ae71735e62
legacy/signing: Ask user to confirm custom nLockTime.
2020-08-21 21:30:15 +02:00
Pavol Rusnak
146ee7af89
update changelogs
2020-08-21 21:30:15 +02:00
Pavol Rusnak
e2632b16dc
legacy: show passphrase on device
2020-08-21 21:30:15 +02:00
Ondrej Mikle
ff3b10a329
legacy/intermediate_fw: Intermediate firmware for T1 ( #1084 )
...
* legacy/intermediate_fw: skeleton FW with RAM shim function
* legacy/intermediate_fw: reboot from RAM
* legacy/intermediate_fw: flash erase from RAM
* legacy/intermediate_fw: port flash erase body from cm3
* legacy/intermediate_fw: erase works with flash unlock
* legacy/intermediate_fw: wait for flash controller ready
* legacy/intermediate_fw: cleanup and add comments
* legacy/intermediate_fw: disable IRQ before reboot
* legacy/intermediate_fw: also erase storage
* legacy/intermediate_fw: style
* legacy/intermediate_fw: dialogs for update bootloader/erase FW
* legacy/intermediate_fw: style
* legacy/intermediate_fw: add bootloader replacement code
* legacy/intermediate_fw: add CI build script for intermediate FW
* legacy/intermediate_fw: call bootloader update
* legacy/intermediate_fw: add bootloader update dependency
* legacy/intermediate_fw: change setup() at start of main
* legacy/intermediate_fw: deduplicate code
* docs: table for MEMORY_PROTECT combinations that work on T1
* legacy/intermediate_fw: deduplicate code
* legacy/intermediate_fw: check if running in privileged mode
* legacy/intermediate_fw: style
* legacy/intermediate_fw: ChangeLog
* legacy/intermediate_fw: make version match latest bootloader included
* legacy/intermediate_fw: style
2020-08-21 14:58:13 +02:00
Pavol Rusnak
503ac8d801
legacy: allow spending coins from Bitcoin paths if the coin ...
...
has implemented strong replay protection via SIGHASH_FORKID
2020-08-21 11:49:03 +02:00
Pavol Rusnak
5359509483
legacy: refactor check_cointype into a separate function
2020-08-21 11:49:03 +02:00
Pavol Rusnak
fd87c62b68
common/defs: remove coins with no Trezor-compatible wallets
2020-08-19 19:29:18 +02:00
Pavol Rusnak
fd2ddbfb03
core+legacy: expand month names in changelogs
2020-08-05 23:07:11 +02:00
Pavol Rusnak
3fffa9ae68
common/defs: enable XVG
2020-08-05 12:10:52 +02:00
Pavol Rusnak
1eca04b7b2
legacy: update changelog
2020-08-05 12:02:04 +02:00
Pavol Rusnak
568da98199
legacy: refactor path_mismatched function and revert its logic
2020-08-05 11:54:33 +02:00
Andrew Kozlik
5c1f197602
common/protob: Add CancelAuthorization message.
2020-08-04 17:32:44 +02:00
Andrew Kozlik
2c30dd62fc
common: Add DoPreauthorized message.
2020-08-04 17:32:44 +02:00
Andrew Kozlik
bbab13f6e7
common/protob: Add AuthorizeCoinJoin message.
2020-08-04 17:32:44 +02:00
Andrew Kozlik
7d07161efe
common/fido: Unify application labeling between U2F and FIDO2.
2020-07-30 15:29:54 +02:00
Martin Milata
f4c9d0a040
legacy: rename TxInfo field overwintered to is_zcashlike
...
For v3 transaction format see:
https://zips.z.cash/zip-0202#transaction-format-version-3
2020-07-30 15:14:18 +02:00
Martin Milata
b8063e882b
legacy: drop zcash v3 tx signing support
2020-07-30 15:14:18 +02:00
Andrew Kozlik
38074a4e59
legacy: print inverted question mark for nonprintable characters
2020-07-27 16:29:03 +02:00
Pavol Rusnak
89d701ed08
core+legacy: bump versions (also in changelogs)
2020-07-27 13:59:49 +02:00
Pavol Rusnak
e97413e8c5
legacy: convert old changelogs to new format
2020-07-27 12:13:43 +02:00
Pavol Rusnak
8dacad0782
core/bootloader: update protobuf definitions
2020-07-26 00:00:37 +02:00
Tomas Susanka
34bd57006f
core, legacy: set version of the upcoming release in Changelog
2020-07-24 12:33:46 +02:00
Martin Milata
48e1dc957f
legacy: raise error on auto-lock value out of range
2020-07-22 21:38:42 +02:00
Pavol Rusnak
2b9613c8a0
legacy: add changelog entry
2020-07-09 15:54:42 +02:00
Andrew Kozlik
24bf352577
legacy: Support multiple change-outputs.
2020-07-09 15:51:23 +02:00
matejcik
2c8e5f527b
all: rename changelogs to .md for highlighting
2020-07-08 10:43:40 +02:00
matejcik
a19a9a318a
all: improve changelog formatting
2020-07-08 10:43:40 +02:00
matejcik
476cf2ee8f
core, legacy: more changelog entries
2020-07-08 10:43:40 +02:00
Andrew Kozlik
533de50588
common/protob: Add GetOwnershipId message.
2020-07-03 11:17:19 +02:00
Andrew Kozlik
956ea9a94f
common: Add ownership_proof field to TxInputType.
2020-07-03 11:17:19 +02:00
Andrew Kozlik
c723c78529
common/protob: Add GetOwnershipProof message.
2020-07-03 11:17:19 +02:00
Andrew Kozlik
cc655575c8
common: Add witness field to TxInputType.
2020-07-03 11:17:19 +02:00
Tomas Susanka
3a3e5739b0
core, legacy: update changelogs
2020-07-02 09:09:34 +00:00
Tomas Susanka
ca3dd2bfb9
common: skip deprecated fields during generation; deprecate overwintered field in Zcash
2020-06-30 16:02:21 +02:00
matejcik
e6e3043096
all: implement support for pre-overwinter prevtx ( fixes #1030 )
2020-06-30 15:19:31 +02:00