a4a1c3f18b
[ #1307 ] go.mod: Bump frostfs-sdk-go/frostfs-api-go/v2 versions
...
* Also, resolve dependencies and conflicts for object service
by creating stub for `Patch` method.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-08-16 14:13:09 +00:00
d055168e2a
[ #1135 ] ir: Add healthstatus RECONFIGURING
...
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-08-15 16:54:45 +03:00
8377372a40
[ #1276 ] go.mod: Update api-go
...
Tests and linters / Staticcheck (pull_request) Successful in 2m54s
Build / Build Components (1.22) (pull_request) Successful in 3m28s
Build / Build Components (1.21) (pull_request) Successful in 3m16s
Tests and linters / Lint (pull_request) Successful in 4m14s
Tests and linters / Tests with -race (pull_request) Successful in 8m2s
Tests and linters / Tests (1.21) (pull_request) Successful in 8m41s
Tests and linters / Tests (1.22) (pull_request) Successful in 8m54s
Tests and linters / gopls check (pull_request) Successful in 2m53s
DCO action / DCO (pull_request) Successful in 46s
Vulncheck / Vulncheck (pull_request) Successful in 1m4s
Pre-commit hooks / Pre-commit (pull_request) Successful in 1m47s
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-07-26 16:44:19 +03:00
dd459d399f
[ #1274 ] go.mod: Update neo-go version that fixes ws-client
...
DCO action / DCO (pull_request) Successful in 1m1s
Vulncheck / Vulncheck (pull_request) Successful in 1m27s
Pre-commit hooks / Pre-commit (pull_request) Successful in 3m8s
Tests and linters / gopls check (pull_request) Successful in 3m12s
Build / Build Components (1.21) (pull_request) Successful in 3m27s
Build / Build Components (1.22) (pull_request) Successful in 3m43s
Tests and linters / Tests (1.22) (pull_request) Successful in 3m39s
Tests and linters / Staticcheck (pull_request) Successful in 3m38s
Tests and linters / Lint (pull_request) Successful in 4m29s
Tests and linters / Tests (1.21) (pull_request) Successful in 9m2s
Tests and linters / Tests with -race (pull_request) Successful in 9m10s
* Update go.mod;
* This neo-go package version contains fix for the wsclient that
allows to morph event listener refresh the invalidated websocket
connection to neo-go.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-07-26 14:21:19 +03:00
9c2c76ca32
[ #1259 ] Move pkg/util/locode to frostfs-locode-db
...
Vulncheck / Vulncheck (pull_request) Successful in 4m47s
DCO action / DCO (pull_request) Successful in 4m40s
Build / Build Components (1.21) (pull_request) Successful in 7m27s
Tests and linters / Staticcheck (pull_request) Successful in 8m22s
Tests and linters / gopls check (pull_request) Successful in 10m56s
Build / Build Components (1.22) (pull_request) Successful in 11m48s
Tests and linters / Tests (1.22) (pull_request) Successful in 16m11s
Tests and linters / Lint (pull_request) Successful in 16m27s
Pre-commit hooks / Pre-commit (pull_request) Successful in 19m12s
Tests and linters / Tests (1.21) (pull_request) Successful in 20m31s
Tests and linters / Tests with -race (pull_request) Successful in 8m56s
Removed pkg/util/locode package, added
git.frostfs.info/TrueCloudLab/frostfs-locode-db/pkg/locode dependency.
Signed-off-by: George Bartolomey <george@bh4.ru>
2024-07-23 14:59:14 +03:00
7ddba70030
[ #1264 ] go.mod: Update dependencies
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-07-23 08:42:29 +00:00
658e3cb92f
[ #1264 ] go.mod: Update bbolt to v1.3.10
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-07-23 08:42:29 +00:00
d5dc14c639
[ #1243 ] object: Make APE checker set x-headers to request properties
...
* Update go.mod, go.sum;
* Add x-headers to request properties;
* Add a unit-test.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-07-16 07:28:42 +00:00
0308835d48
[ #1159 ] adm/frostfsid: Update frostfs-contract version
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-07-11 14:04:37 +00:00
80d7459560
Revert "[ #1196 ] morph/client: Remove duplicate utility functions"
...
Tests and linters / Tests (1.21) (pull_request) Failing after 27s
DCO action / DCO (pull_request) Successful in 3m38s
Pre-commit hooks / Pre-commit (pull_request) Successful in 4m16s
Vulncheck / Vulncheck (pull_request) Failing after 3m43s
Build / Build Components (1.22) (pull_request) Successful in 4m45s
Build / Build Components (1.21) (pull_request) Successful in 4m54s
Tests and linters / Staticcheck (pull_request) Successful in 5m10s
Tests and linters / gopls check (pull_request) Successful in 5m15s
Tests and linters / Lint (pull_request) Successful in 5m53s
Tests and linters / Tests with -race (pull_request) Successful in 9m12s
Tests and linters / Tests (1.22) (pull_request) Successful in 9m43s
This reverts commit 259007540f
.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-07-03 15:44:35 +03:00
259007540f
[ #1196 ] morph/client: Remove duplicate utility functions
...
Build / Build Components (1.21) (pull_request) Successful in 4m1s
DCO action / DCO (pull_request) Successful in 4m3s
Vulncheck / Vulncheck (pull_request) Successful in 3m51s
Pre-commit hooks / Pre-commit (pull_request) Successful in 5m15s
Tests and linters / Lint (pull_request) Successful in 6m59s
Build / Build Components (1.22) (pull_request) Successful in 8m54s
Tests and linters / gopls check (pull_request) Successful in 10m46s
Tests and linters / Staticcheck (pull_request) Successful in 11m30s
Tests and linters / Tests (1.21) (pull_request) Successful in 13m37s
Tests and linters / Tests (1.22) (pull_request) Successful in 13m43s
Tests and linters / Tests with -race (pull_request) Successful in 13m44s
We used several utility functions to parse frostfsid client
subject and extended subject. However, following the changes
in TrueCloudLab/frostfs-contract#97 , these utility functions
have become public. So there is no more need to have them here.
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-07-02 15:19:59 +03:00
5b100699d7
[ #566 ] policer: Move isClientErrMaintenance to frostfs-sdk-go
...
DCO action / DCO (pull_request) Successful in 1m5s
Vulncheck / Vulncheck (pull_request) Successful in 4m8s
Pre-commit hooks / Pre-commit (pull_request) Successful in 5m5s
Build / Build Components (1.21) (pull_request) Successful in 4m47s
Build / Build Components (1.22) (pull_request) Successful in 4m44s
Tests and linters / Lint (pull_request) Successful in 6m13s
Tests and linters / Staticcheck (pull_request) Successful in 6m3s
Tests and linters / gopls check (pull_request) Successful in 6m16s
Tests and linters / Tests (1.21) (pull_request) Successful in 9m19s
Tests and linters / Tests with -race (pull_request) Successful in 9m15s
Tests and linters / Tests (1.22) (pull_request) Successful in 9m22s
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-06-18 10:20:45 +03:00
42ecc2f2b9
[ #1170 ] morph: Support mTLS
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-06-14 09:26:27 +03:00
a849236b68
[ #1161 ] node: Remove notification functionality
...
It is unused and will be reworked in future.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-06-07 12:10:51 +00:00
5aacb8fc86
[ #1144 ] metabase: Save parent attributes for ec-chunks
...
Vulncheck / Vulncheck (pull_request) Successful in 4m15s
DCO action / DCO (pull_request) Successful in 4m4s
Build / Build Components (1.22) (pull_request) Successful in 5m17s
Build / Build Components (1.21) (pull_request) Successful in 5m22s
Tests and linters / Lint (pull_request) Successful in 7m6s
Tests and linters / Staticcheck (pull_request) Successful in 7m25s
Tests and linters / gopls check (pull_request) Successful in 7m19s
Pre-commit hooks / Pre-commit (pull_request) Successful in 9m39s
Tests and linters / Tests (1.22) (pull_request) Successful in 10m36s
Tests and linters / Tests (1.21) (pull_request) Successful in 10m50s
Tests and linters / Tests with -race (pull_request) Successful in 10m51s
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-31 19:55:32 +03:00
0b367007fc
[ #1152 ] go.mod: Update api-go and sdk versions
...
DCO action / DCO (pull_request) Successful in 5m23s
Build / Build Components (1.22) (pull_request) Successful in 7m33s
Build / Build Components (1.21) (pull_request) Successful in 7m43s
Tests and linters / Lint (pull_request) Successful in 8m51s
Tests and linters / Tests (1.22) (pull_request) Successful in 14m33s
Pre-commit hooks / Pre-commit (pull_request) Successful in 15m48s
Vulncheck / Vulncheck (pull_request) Successful in 15m12s
Tests and linters / Tests (1.21) (pull_request) Successful in 16m38s
Tests and linters / gopls check (pull_request) Successful in 19m24s
Tests and linters / Staticcheck (pull_request) Successful in 21m29s
Tests and linters / Tests with -race (pull_request) Successful in 23m16s
* Resolve conflicts for apemanager since api-go
contains ape and apemanager packages and SDK only
ape package.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-31 15:39:09 +03:00
4a34d0d40e
[ #1149 ] go.mod: Bump neo-go up to v0.106.0
...
Required to work with neo-go v0.106.0 node
with default hardfork configuration. Without
neo-go client version bump, it throws error.
failed to get network magic: unexpected hardfork: Cockatrice
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-05-30 08:11:58 +00:00
8fd678e269
[ #1141 ] go.mod: Update frostfs-sdk-go and frostfs-api-go/v2
...
* Also fix unit-test.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-20 13:22:48 +03:00
952d13cd2b
[ #1124 ] cli: Improve APE rule parsing
...
Vulncheck / Vulncheck (pull_request) Successful in 1m25s
DCO action / DCO (pull_request) Successful in 1m59s
Build / Build Components (1.21) (pull_request) Successful in 2m27s
Build / Build Components (1.22) (pull_request) Successful in 4m25s
Pre-commit hooks / Pre-commit (pull_request) Successful in 4m57s
Tests and linters / Staticcheck (pull_request) Successful in 5m38s
Tests and linters / gopls check (pull_request) Successful in 5m57s
Tests and linters / Lint (pull_request) Successful in 6m26s
Tests and linters / Tests (1.22) (pull_request) Successful in 9m5s
Tests and linters / Tests (1.21) (pull_request) Successful in 9m11s
Tests and linters / Tests with -race (pull_request) Successful in 9m4s
* Make APE rule parser to read condition's kind in unambiguous using lexemes
`ResourceCondition`, `RequestCondition` instead confusing `Object.Request`, `Object.Resource`.
* Fix unit-tests.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-14 12:23:26 +03:00
20baf6e112
[ #1108 ] ape: Update policy-engine version for listing by iteration
...
* Update go.mod with a new version of policy-engine pacakge.
* Adapt SwitchRPCGuardedActor to ContractStorage interface.
* Fix `frostfs-adm` util.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-14 12:17:56 +03:00
00b2b77b26
[ #1112 ] node: Implement Range\RangeHash
requests for EC object
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-05-07 14:47:21 +03:00
411a8d0245
[ #1004 ] blobovnicza: Use TTL for blobovnicza tree cache
...
DCO action / DCO (pull_request) Successful in 12m46s
Vulncheck / Vulncheck (pull_request) Successful in 14m10s
Build / Build Components (1.22) (pull_request) Successful in 15m23s
Build / Build Components (1.21) (pull_request) Successful in 15m38s
Tests and linters / Staticcheck (pull_request) Successful in 3m36s
Tests and linters / gopls check (pull_request) Successful in 4m0s
Tests and linters / Lint (pull_request) Successful in 5m8s
Tests and linters / Tests (1.21) (pull_request) Successful in 7m41s
Tests and linters / Tests with -race (pull_request) Successful in 7m46s
Tests and linters / Tests (1.22) (pull_request) Successful in 7m58s
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-26 19:54:29 +03:00
112a7c690f
[ #1103 ] node: Implement Get\Head
requests for EC object
...
DCO action / DCO (pull_request) Successful in 1m44s
Vulncheck / Vulncheck (pull_request) Successful in 3m3s
Build / Build Components (1.21) (pull_request) Successful in 4m0s
Build / Build Components (1.22) (pull_request) Successful in 3m57s
Tests and linters / Staticcheck (pull_request) Successful in 4m46s
Tests and linters / gopls check (pull_request) Successful in 4m48s
Tests and linters / Lint (pull_request) Successful in 5m45s
Tests and linters / Tests (1.21) (pull_request) Successful in 8m57s
Tests and linters / Tests with -race (pull_request) Successful in 9m10s
Tests and linters / Tests (1.22) (pull_request) Successful in 9m20s
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-24 18:15:53 +03:00
91e79c98ba
[ #1089 ] ape: Provide request actor as an additional target
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-16 11:03:50 +00:00
661faa639e
[ #1090 ] go.mod: Update policy-engine version
...
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-15 07:45:45 +00:00
cdae227f82
[ #1083 ] go.mod: Bump grpc version
...
DCO action / DCO (pull_request) Successful in 5m52s
Vulncheck / Vulncheck (pull_request) Successful in 6m19s
Build / Build Components (1.22) (pull_request) Successful in 7m43s
Build / Build Components (1.21) (pull_request) Successful in 7m49s
Tests and linters / Staticcheck (pull_request) Successful in 8m2s
Tests and linters / Lint (pull_request) Successful in 8m47s
Tests and linters / gopls check (pull_request) Successful in 8m29s
Tests and linters / Tests (1.21) (pull_request) Successful in 13m20s
Tests and linters / Tests (1.22) (pull_request) Successful in 13m26s
Tests and linters / Tests with -race (pull_request) Successful in 13m32s
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-10 16:07:57 +03:00
5ef5734c4e
Reapply "[ #972 ] Drop x/exp/slices dependency"
...
This reverts commit 946f2ec2bf
.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-10 12:09:34 +00:00
1c5e0f90aa
[ #1064 ] putsvc: Add EC put
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 07:08:53 +00:00
ffb1a6f81a
[ #1072 ] Fix issue from govulncheck
...
Vulncheck / Vulncheck (pull_request) Successful in 1m21s
DCO action / DCO (pull_request) Successful in 2m6s
Build / Build Components (1.21) (pull_request) Successful in 4m17s
Build / Build Components (1.20) (pull_request) Successful in 4m52s
Tests and linters / Staticcheck (pull_request) Successful in 6m37s
Tests and linters / Lint (pull_request) Successful in 7m13s
Tests and linters / gopls check (pull_request) Successful in 7m2s
Tests and linters / Tests (1.20) (pull_request) Successful in 9m8s
Tests and linters / Tests (1.21) (pull_request) Successful in 10m22s
Tests and linters / Tests with -race (pull_request) Successful in 10m20s
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-05 18:20:07 +03:00
4738508ce2
[ #1063 ] go.mod: Update SDK version
...
* Update frostfs-sdk and frostfs-api-go versions.
* Refactor depreacted method ReplicaNumberByIndex.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-03 10:33:51 +00:00
2d595ec15f
[ #976 ] ape: Update dependency
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-03-13 14:54:19 +03:00
63a29110ee
[ #634 ] go.mod: Bump protobuf version
...
DCO action / DCO (pull_request) Successful in 5m1s
Vulncheck / Vulncheck (pull_request) Successful in 6m45s
Tests and linters / Staticcheck (pull_request) Successful in 7m51s
Build / Build Components (1.21) (pull_request) Successful in 7m29s
Build / Build Components (1.20) (pull_request) Successful in 8m21s
Tests and linters / gopls check (pull_request) Successful in 8m38s
Tests and linters / Lint (pull_request) Successful in 14m27s
Tests and linters / Tests with -race (pull_request) Successful in 17m35s
Tests and linters / Tests (1.20) (pull_request) Successful in 3m11s
Tests and linters / Tests (1.21) (pull_request) Successful in 2m38s
Found by vulncheck:
Vulnerability #1 : GO-2024-2611
Infinite loop in JSON unmarshaling in google.golang.org/protobuf
More info: https://pkg.go.dev/vuln/GO-2024-2611
Module: google.golang.org/protobuf
Found in: google.golang.org/protobuf@v1.32.0
Fixed in: google.golang.org/protobuf@v1.33.0
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-06 13:12:34 +03:00
b84cf91f73
[ #1009 ] adm: Make workaround for get-admin and list-rule-chains
...
* Inroduce workaround to create actor for contract storage interface
without passing a real alphabet wallet. This is made by creating
a dummy account.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-03-05 12:34:53 +00:00
b38effd799
[ #1019 ] go.mod: Update sdk-go
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-03-04 07:44:38 +00:00
946f2ec2bf
Revert "[ #972 ] Drop x/exp/slices dependency"
...
This reverts commit f3e50772fd
.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 15:36:01 +00:00
f3e50772fd
[ #972 ] Drop x/exp/slices dependency
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 13:13:09 +00:00
6bafdab004
[ #988 ] go.mod: Update api-go and sdk-go versions
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-02-15 17:20:59 +03:00
962e5a9c19
[ #736 ] logger: Add journald support
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-02-12 06:17:22 +00:00
80b581d499
[ #466 ] adm: Allow to download contracts from Gitea
...
DCO action / DCO (pull_request) Successful in 2m25s
Vulncheck / Vulncheck (pull_request) Successful in 1m58s
Tests and linters / Staticcheck (pull_request) Successful in 5m31s
Tests and linters / Tests (1.21) (pull_request) Successful in 5m53s
Tests and linters / Tests (1.20) (pull_request) Successful in 6m6s
Tests and linters / Lint (pull_request) Successful in 6m22s
Tests and linters / Tests with -race (pull_request) Successful in 6m41s
Build / Build Components (1.21) (pull_request) Successful in 1m40s
Build / Build Components (1.20) (pull_request) Successful in 1m56s
Signed-off-by: Olga Konstantinova <kola43843@gmail.com>
2024-02-08 21:07:49 +00:00
2cb04379a4
[ #922 ] go.mod: Update APE
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-02-02 12:09:51 +00:00
5be2af881a
[ #934 ] container: Make container APE middleware read namespaces
...
* Those methods that can access already existing containers and thus
can get container properties should read namespace from Zone
property. If Zone is not set, take a namespace for root.
* Otherwise, define namespaces by owner ID via frostfs-id contract.
* Improve unit-tests, consider more cases.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-02-01 17:38:24 +00:00
cc2da73b20
[ #929 ] go.mod: Update dependencies
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-01-25 07:24:11 +00:00
0e3d144695
[ #908 ] adm: Support frostfsid basic operations
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2024-01-19 11:04:03 +00:00
e43609c616
[ #885 ] go.mod: Update APE
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2024-01-12 15:38:37 +00:00
530249e3bd
[ #893 ] go.mod: Update neo-go
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-12-29 15:03:47 +00:00
8180a0664f
[ #887 ] node: Drop badger writecache implementation
...
Vulncheck / Vulncheck (pull_request) Successful in 6m1s
Build / Build Components (1.21) (pull_request) Successful in 7m37s
Build / Build Components (1.20) (pull_request) Successful in 7m52s
Tests and linters / Staticcheck (pull_request) Successful in 8m56s
Tests and linters / Lint (pull_request) Successful in 9m26s
Tests and linters / Tests (1.21) (pull_request) Successful in 15m5s
Tests and linters / Tests with -race (pull_request) Successful in 15m7s
DCO action / DCO (pull_request) Successful in 1m1s
Tests and linters / Tests (1.20) (pull_request) Successful in 4m1s
Badger implementation isn't tested and works not well,
but requires human resources to maintain.
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2023-12-22 13:00:54 +03:00
5b672fb392
[ #876 ] adm: Add morph ape get/set-admin
commands
...
DCO action / DCO (pull_request) Successful in 2m56s
Vulncheck / Vulncheck (pull_request) Successful in 3m1s
Build / Build Components (1.20) (pull_request) Successful in 3m46s
Build / Build Components (1.21) (pull_request) Successful in 3m45s
Tests and linters / Staticcheck (pull_request) Successful in 4m41s
Tests and linters / Lint (pull_request) Successful in 6m6s
Tests and linters / Tests (1.20) (pull_request) Successful in 12m18s
Tests and linters / Tests (1.21) (pull_request) Successful in 13m7s
Tests and linters / Tests with -race (pull_request) Successful in 13m22s
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2023-12-21 18:21:37 +03:00
7d7cf05575
[ #851 ] ape: Initialize and use policy contract interface
...
* Replace inmemory policy contract mock by initialized
policy contract interface.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2023-12-18 11:06:35 +00:00
eca7ac9f0d
[ #552 ] Add sdnotify package
...
To avoid using third-party dependencies.
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2023-12-13 17:49:26 +03:00
9b2dce5763
[ #552 ] Add status notification to systemd
...
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2023-12-13 15:02:39 +03:00