summary refs log tree commit diff
Commit message (Expand)AuthorAgeFilesLines
* Merge pull request #6840 from matrix-org/rav/federation_client_asyncRichard van der Hoff2020-02-052-136/+143
|\
| * make FederationClient._do_send_invite asyncRichard van der Hoff2020-02-051-10/+7
| * Apply suggestions from code reviewRichard van der Hoff2020-02-051-2/+4
| * Merge remote-tracking branch 'origin/develop' into rav/federation_client_asyncRichard van der Hoff2020-02-047-349/+386
| |\
| * | make FederationClient.send_invite asyncRichard van der Hoff2020-02-031-6/+5
| * | newsfileRichard van der Hoff2020-02-031-0/+1
| * | make FederationClient.get_missing_events asyncRichard van der Hoff2020-02-031-20/+20
| * | make FederationClient._do_send_leave asyncRichard van der Hoff2020-02-031-4/+3
| * | make FederationClient.send_leave.send_request asyncRichard van der Hoff2020-02-031-5/+2
| * | make FederationClient._do_send_join asyncRichard van der Hoff2020-02-031-4/+3
| * | make FederationClient.send_join.send_request asyncRichard van der Hoff2020-02-031-4/+3
| * | make FederationClient.make_membership_event.send_request asyncRichard van der Hoff2020-02-031-4/+3
| * | make FederationClient._try_destination_list asyncRichard van der Hoff2020-02-031-10/+26
| * | make FederationClient.send_leave asyncRichard van der Hoff2020-02-031-10/+9
| * | make FederationClient.send_join asyncRichard van der Hoff2020-02-031-11/+13
| * | make FederationClient.make_membership_event asyncRichard van der Hoff2020-02-031-10/+11
| * | make FederationClient.get_event_auth asyncRichard van der Hoff2020-02-031-6/+4
| * | make FederationClient.get_room_state_ids asyncRichard van der Hoff2020-02-031-4/+5
| * | make FederationClient.get_pdu asyncRichard van der Hoff2020-02-031-15/+17
| * | make FederationClient.backfill asyncRichard van der Hoff2020-02-031-15/+11
* | | Reduce performance logging to DEBUG (#6833)Michael Kaye2020-02-052-1/+2
* | | Database updates to populate rooms.room_version (#6847)Richard van der Hoff2020-02-043-0/+58
* | | Merge pull request #6844 from matrix-org/uhoreg/cross_signing_fix_device_fedHubert Chathi2020-02-042-0/+11
|\ \ \
| * | | add changelogHubert Chathi2020-02-041-0/+1
| * | | add device signatures to device key query resultsHubert Chathi2020-02-041-0/+10
* | | | Update CONTRIBUTING.md about merging PRs. (#6846)Michael Kaye2020-02-042-0/+15
| |_|/ |/| |
* | | Merge pull request #6837 from matrix-org/rav/federation_asyncRichard van der Hoff2020-02-044-235/+212
|\ \ \ | |/ / |/| / | |/
| * make FederationHandler.send_invite asyncRichard van der Hoff2020-02-032-6/+4
| * make FederationHandler.on_get_missing_events asyncRichard van der Hoff2020-02-031-5/+4
| * changelogRichard van der Hoff2020-02-031-0/+1
| * make FederationHandler.user_joined_room asyncRichard van der Hoff2020-02-031-3/+3
| * make FederationHandler._clean_room_for_join asyncRichard van der Hoff2020-02-031-4/+4
| * make FederationHandler._notify_persisted_event asyncRichard van der Hoff2020-02-031-4/+6
| * make FederationHandler.persist_events_and_notify asyncRichard van der Hoff2020-02-031-10/+10
| * make FederationHandler._make_and_verify_event asyncRichard van der Hoff2020-02-031-5/+10
| * make FederationHandler.do_remotely_reject_invite asyncRichard van der Hoff2020-02-032-8/+11
| * make FederationHandler._check_for_soft_fail asyncRichard van der Hoff2020-02-031-13/+9
| * make FederationHandler._persist_auth_tree asyncRichard van der Hoff2020-02-031-11/+7
| * make FederationHandler.do_invite_join asyncRichard van der Hoff2020-02-032-18/+18
| * make FederationHandler.on_event_auth asyncRichard van der Hoff2020-02-031-5/+4
| * make FederationHandler.on_exchange_third_party_invite_request asyncRichard van der Hoff2020-02-031-14/+12
| * make FederationHandler.construct_auth_difference asyncRichard van der Hoff2020-02-031-3/+4
| * make FederationHandler._update_context_for_auth_events asyncRichard van der Hoff2020-02-031-10/+10
| * make FederationHandler._update_auth_events_and_context_for_auth asyncRichard van der Hoff2020-02-031-20/+21
| * make FederationHandler.do_auth asyncRichard van der Hoff2020-02-031-10/+14
| * make FederationHandler._prep_event asyncRichard van der Hoff2020-02-031-23/+10
| * make FederationHandler._handle_new_event asyncRichard van der Hoff2020-02-031-6/+7
| * make FederationHandler._handle_new_events asyncRichard van der Hoff2020-02-031-8/+6
| * make FederationHandler.on_make_leave_request asyncRichard van der Hoff2020-02-031-13/+10
| * make FederationHandler.on_send_leave_request asyncRichard van der Hoff2020-02-031-5/+3
| * make FederationHandler.on_make_join_request asyncRichard van der Hoff2020-02-031-13/+10
| * make FederationHandler.on_invite_request asyncRichard van der Hoff2020-02-031-5/+4
| * make FederationHandler.on_send_join_request asyncRichard van der Hoff2020-02-031-9/+7
| * make FederationHandler.on_query_auth asyncRichard van der Hoff2020-02-031-7/+6
* | Add typing to SyncHandler (#6821)Erik Johnston2020-02-035-349/+381
* | Fix stacktraces when using ObservableDeferred and async/await (#6836)Erik Johnston2020-02-032-0/+5
|/
* Allow URL-encoded user IDs on user admin api paths (#6825)Andrew Morgan2020-02-032-2/+3
* Fix `room_version` in `on_invite_request` flow (#6827)Richard van der Hoff2020-02-033-7/+11
* Update changelog v1.10.0rc1Erik Johnston2020-01-311-1/+4
* Fix link in upgrade.rstErik Johnston2020-01-311-1/+1
* 1.10.0rc1Erik Johnston2020-01-3135-35/+47
* Fix deleting of stale marker for device lists (#6819)Erik Johnston2020-01-312-7/+8
* pass room_version into compute_event_signature (#6807)Richard van der Hoff2020-01-313-9/+25
* Merge pull request #6806 from matrix-org/rav/redact_changes/3Richard van der Hoff2020-01-316-41/+49
|\
| * changelogRichard van der Hoff2020-01-301-0/+1
| * Pass room_version into add_hashes_and_signaturesRichard van der Hoff2020-01-303-10/+21
| * Pass room_version into create_local_event_from_event_dictRichard van der Hoff2020-01-302-25/+19
| * Store the room version in EventBuilderRichard van der Hoff2020-01-302-7/+9
* | Merge pull request #6820 from matrix-org/rav/get_room_version_idRichard van der Hoff2020-01-3114-38/+64
|\ \
| * | newsfileRichard van der Hoff2020-01-311-0/+1
| * | Add `get_room_version` methodRichard van der Hoff2020-01-312-5/+26
| * | s/get_room_version/get_room_version_id/Richard van der Hoff2020-01-3112-33/+37
* | | Fix bug with getting missing auth event during join 500'ed (#6810)Erik Johnston2020-01-312-1/+6
|/ /
* | pass room version into FederationHandler.on_invite_request (#6805)Richard van der Hoff2020-01-303-4/+5
* | Log when we delete room in bg update (#6816)Erik Johnston2020-01-302-0/+3
|/
* MSC2260: Block direct sends of m.room.aliases events (#6794)Richard van der Hoff2020-01-304-33/+28
* Backgroud update to clean out rooms from current state (#6802)Erik Johnston2020-01-303-2/+126
* Resync remote device list when detected as stale. (#6786)Erik Johnston2020-01-304-7/+28
* Fix sending server up commands from workers (#6811)Erik Johnston2020-01-306-13/+36
* When server leaves room check for stale device lists. (#6801)Erik Johnston2020-01-303-6/+83
* When a client asks for remote keys check if should resync. (#6797)Erik Johnston2020-01-302-3/+30
* Type defintions for use in refactoring for redaction changes (#6803)Richard van der Hoff2020-01-305-8/+24
* Remove unused DeviceRow class (#6800)Erik Johnston2020-01-292-20/+2
* Merge pull request #6790 from matrix-org/rav/msc2260.1Richard van der Hoff2020-01-295-18/+112
|\
| * changelogRichard van der Hoff2020-01-291-0/+1
| * Make /directory/room/<alias> handle restrictive power levelsRichard van der Hoff2020-01-291-1/+6
| * Set the PL for aliases events to 0.Richard van der Hoff2020-01-292-3/+16
| * Factor out a `copy_power_levels_contents` methodRichard van der Hoff2020-01-293-15/+90
|/
* Fix race in federation sender that delayed device updates. (#6799)Erik Johnston2020-01-293-30/+23
* Delete current state when server leaves a room (#6792)Erik Johnston2020-01-293-75/+198
* Fix bug when querying remote user keys that require a resync. (#6796)Erik Johnston2020-01-292-1/+3
* Fix outbound federation request metrics (#6795)Erik Johnston2020-01-282-0/+5
* Merge pull request #6787 from matrix-org/rav/msc2260Richard van der Hoff2020-01-283-5/+36
|\
| * fix bad variable refRichard van der Hoff2020-01-281-1/+1
| * update changelogRichard van der Hoff2020-01-282-1/+1
| * changelogRichard van der Hoff2020-01-281-0/+1
| * Implement updated auth rules from MSC2260Richard van der Hoff2020-01-282-5/+35
* | Detect unknown remote devices and mark cache as stale (#6776)Erik Johnston2020-01-286-8/+126
|/
* Pass room version object into event_auth.check and check_redaction (#6788)Richard van der Hoff2020-01-288-34/+53
* Warn if postgres database has non-C locale. (#6734)Erik Johnston2020-01-286-1/+81
* Merge branch 'master' into developErik Johnston2020-01-284-2/+23
|\
| * 1.9.1 v1.9.1 release-v1.9.1Erik Johnston2020-01-284-2/+16
| * Fix setting `mau_limit_reserved_threepids` config (#6793)Erik Johnston2020-01-282-1/+8
* | Add `rooms.room_version` column (#6729)Erik Johnston2020-01-2711-73/+270
* | Propagate cache invalidates from workers to other workers. (#6748)Erik Johnston2020-01-274-5/+29
* | Merge pull request #6775 from matrix-org/jaywink/worker-docs-tweaksBrendan Abolivier2020-01-272-0/+18
|\ \
| * | Formatting of changelogJason Robinson2020-01-271-1/+1
| * | Fix federation_reader listeners doc as per PR reviewJason Robinson2020-01-271-2/+12
| * | Clarifications to the workers documentationJason Robinson2020-01-242-0/+8
* | | Validate client_secret parameter (#6767)Andrew Morgan2020-01-246-6/+93
|/ /
* | Make 'event.redacts' never raise. (#6771)Erik Johnston2020-01-235-6/+62
* | Merge branch 'master' into developBrendan Abolivier2020-01-234-5/+20
|\|
| * Fixup changelog v1.9.0 release-v1.9.0Brendan Abolivier2020-01-231-1/+1
| * Fixup changelogBrendan Abolivier2020-01-231-4/+5
| * Fixup changelogBrendan Abolivier2020-01-232-2/+4
| * Merge branch 'release-v1.9.0' of github.com:matrix-org/synapse into release-v...Brendan Abolivier2020-01-232-4/+5
| |\
| * | 1.9.0Brendan Abolivier2020-01-233-1/+13
* | | a bit of debugging for media storage providers (#6757)Richard van der Hoff2020-01-233-0/+8
* | | Minor fixes to user admin api (#6761)Richard van der Hoff2020-01-232-9/+6
* | | Merge branch 'release-v1.9.0' into developAndrew Morgan2020-01-232-4/+5
|\ \ \ | | |/ | |/|
| * | Update admin room docs with correct endpoints (#6770)Andrew Morgan2020-01-232-4/+5
| |/
* / Remove unnecessary abstractions in admin handler (#6751)Andrew Morgan2020-01-224-73/+11
|/
* Fixup warning about workers changes v1.9.0rc1Brendan Abolivier2020-01-221-1/+1
* Add deprecation headersBrendan Abolivier2020-01-221-0/+4
* Fixup changelogBrendan Abolivier2020-01-221-10/+10
* 1.9.0rc1Brendan Abolivier2020-01-2249-49/+71
* Admin API to list, filter and sort rooms (#6720)Andrew Morgan2020-01-228-7/+787
* Merge pull request #6764 from matrix-org/babolivier/fix-thumbnailBrendan Abolivier2020-01-223-5/+46
|\
| * Lint + changelogBrendan Abolivier2020-01-222-3/+2
| * Remove unused importBrendan Abolivier2020-01-221-1/+1
| * Add tests for thumbnailingBrendan Abolivier2020-01-221-3/+45
| * Fix typo in _select_thumbnailBrendan Abolivier2020-01-221-1/+1
|/
* Fix and add test to deprecated quarantine media admin api (#6756)Andrew Morgan2020-01-223-5/+13
* Allow monthly active user limiting support for worker mode, fixes #4639. (#6742)Neil Johnson2020-01-226-82/+100
* Allow streaming cache invalidate all to workers. (#6749)Erik Johnston2020-01-226-15/+69
* Remove unused CI docker compose files (#6754)Erik Johnston2020-01-224-66/+1
* Avoid attribute error when `password_config` present but empty (#6753)Ivan Vilata-i-Balaguer2020-01-222-1/+2
* Port synapse_port_db to async/await (#6718)Brendan Abolivier2020-01-213-89/+126
* Add a DeltaState to track changes to be made to current state (#6716)Erik Johnston2020-01-203-99/+112
* Fixup synapse.rest to pass mypy (#6732)Erik Johnston2020-01-2012-35/+56
* Fix `/events/:event_id` deprecated API. (#6731)Erik Johnston2020-01-204-2/+30
* Fixup synapse.api to pass mypy (#6733)Erik Johnston2020-01-206-4/+14
* Fix changing password via user admin API. (#6730)Erik Johnston2020-01-203-2/+16
* Fix empty account_validity config block (#6747)Andrew Morgan2020-01-202-1/+3
|\
| * Update changelog.d/6747.bugfixAndrew Morgan2020-01-201-1/+1
| * Add changelogAndrew Morgan2020-01-201-0/+1
| * Fix empty account_validity config blockAndrew Morgan2020-01-201-1/+2
* | Revert "Newsfile"Erik Johnston2020-01-201-1/+0
* | NewsfileErik Johnston2020-01-201-0/+1
|/
* Add more logging around message retention policies support (#6717)Brendan Abolivier2020-01-173-0/+22
* Fix up changelogErik Johnston2020-01-172-1/+1
* bump version to v1.9.0.dev2 v1.9.0.dev2Richard van der Hoff2020-01-171-1/+1
* Fix syntax error in run_upgrade for schema 57 (#6728)Satsuki Yanagi2020-01-172-3/+5
* Merge pull request #6714 from matrix-org/babolivier/retention_select_eventBrendan Abolivier2020-01-174-7/+8
|\
| * Precise changelogBrendan Abolivier2020-01-161-1/+1
| * Fixup diffBrendan Abolivier2020-01-161-6/+7
| * Remove get_room_event_after_stream_ordering entirelyBrendan Abolivier2020-01-162-58/+13
| * LintBrendan Abolivier2020-01-161-6/+12
| * Rename changelogBrendan Abolivier2020-01-151-0/+0
| * ChangelogBrendan Abolivier2020-01-151-0/+1
| * Correctly order when selecting before stream orderingBrendan Abolivier2020-01-151-2/+5
| * Fix typoBrendan Abolivier2020-01-151-1/+1
| * Fix instantiation of message retention purge jobsBrendan Abolivier2020-01-152-13/+48
* | bump version to v1.9.0.dev1 v1.9.0.dev1Richard van der Hoff2020-01-171-1/+1
* | Merge pull request #6724 from matrix-org/rav/log_saml_attributesRichard van der Hoff2020-01-1711-24/+114
|\ \
| * | changelogRichard van der Hoff2020-01-161-0/+1
| * | Log saml assertions rather than the whole responseRichard van der Hoff2020-01-163-1/+72
| * | move batch_iter to a separate moduleRichard van der Hoff2020-01-168-23/+41
* | | Delegate remote_user_id mapping to the saml mapping provider (#6723)Richard van der Hoff2020-01-173-6/+23
* | | Wake up transaction queue when remote server comes back online (#6706)Erik Johnston2020-01-1711-8/+135
* | | Clarify the `account_validity` and `email` sections of the sample configurati...Richard van der Hoff2020-01-175-272/+320
|/ /
* | Add StateMap type alias (#6715)Erik Johnston2020-01-1614-93/+115
* | Add tips for the changelog to the pull request template (#6663)Andrew Morgan2020-01-163-3/+8
* | Add org.matrix.e2e_cross_signing to unstable_features in /versions as per MSC...Neil Johnson2020-01-162-0/+3
* | Port synapse.replication.tcp to async/await (#6666)Erik Johnston2020-01-1615-105/+80
* | Fix purge_room admin API (#6711)Erik Johnston2020-01-153-4/+3
* | Remove duplicate session check in web fallback servlet (#6702)Andrew Morgan2020-01-152-4/+1
* | Merge pull request #6688 from matrix-org/rav/module_api_extensionsRichard van der Hoff2020-01-154-7/+61
|\ \
| * \ Merge branch 'develop' into rav/module_api_extensionsRichard van der Hoff2020-01-1564-290/+1276
| |\ \ | |/ / |/| |
* | | Implement RedirectException (#6687)Richard van der Hoff2020-01-154-7/+113
* | | Add `local_current_membership` table (#6655)Erik Johnston2020-01-1520-107/+263
| |/ |/|
* | Process EDUs in parallel with PDUs. (#6697)Erik Johnston2020-01-142-12/+59
* | Fixup synapse.replication to pass mypy checks (#6667)Erik Johnston2020-01-1412-86/+105
* | Quarantine media by ID or user ID (#6681)Andrew Morgan2020-01-137-11/+632
* | Document more supported endpoints for workers (#6698)Richard van der Hoff2020-01-132-0/+5
* | Kill off RegistrationError (#6691)Richard van der Hoff2020-01-134-17/+4
* | Don't assign numeric IDs for empty usernames (#6690)Richard van der Hoff2020-01-132-1/+2
* | Merge pull request #6689 from matrix-org/rav/saml_mapping_provider_updatesRichard van der Hoff2020-01-132-6/+17
|\ \
| * | changelogRichard van der Hoff2020-01-121-0/+1
| * | Pass client redirect URL into SAML mapping providersRichard van der Hoff2020-01-121-4/+11
| * | Pass the module_api into the SamlMappingProviderRichard van der Hoff2020-01-121-2/+5
* | | Allow additional_resources to implement Resource directly (#6686)Richard van der Hoff2020-01-132-2/+12
* | | Fix exceptions on requests for non-ascii urls (#6682)Richard van der Hoff2020-01-132-1/+3
* | | comment for run_in_backgroundRichard van der Hoff2020-01-121-0/+3
* | | Merge pull request #6675 from matrix-org/rav/die_sqlite37_die_die_dieRichard van der Hoff2020-01-106-41/+47
|\ \ \
| * | | update install notes for CentOSRichard van der Hoff2020-01-091-0/+5
| * | | changelogRichard van der Hoff2020-01-091-0/+1
| * | | Refuse to start if sqlite is older than 3.11.0Richard van der Hoff2020-01-093-8/+19
| * | | Check postgres version in check_databaseRichard van der Hoff2020-01-091-13/+12
| * | | Modify check_database to take a connection rather than a cursorRichard van der Hoff2020-01-094-28/+18
| |/ /
* | | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2020-01-092-0/+12
|\ \ \ | |/ / |/| |
| * | Add note about log_file no longer be accepted (#6674) release-v1.8.0Erik Johnston2020-01-092-0/+12
| | * changelogRichard van der Hoff2020-01-121-0/+1
| | * Handle `config` not being set for synapse plugin modulesRichard van der Hoff2020-01-121-1/+1
| | * Cleanups and additions to the module APIRichard van der Hoff2020-01-122-6/+59
| |/ |/|
* | Allow admin users to create or modify users without a shared secret (#6495)Manuel Stahl2020-01-099-339/+655
* | Merge branch 'master' into developErik Johnston2020-01-095-5/+17
|\|
| * Fixup changelog v1.8.0Erik Johnston2020-01-091-1/+1
| * 1.8.0Erik Johnston2020-01-095-5/+17
* | Merge pull request #6664 from matrix-org/erikj/media_admin_apisErik Johnston2020-01-083-120/+131
|\ \
| * | Shuffle the codeErik Johnston2020-01-081-25/+16
| * | CommentsErik Johnston2020-01-081-0/+3
| * | Do not rely on streaming events, as media repo doesn'tErik Johnston2020-01-081-12/+26
| * | NewsfileErik Johnston2020-01-081-0/+1
| * | Import RoomStore in media worker to fix admin APIsErik Johnston2020-01-081-0/+2
| * | Move media admin store functions to worker storeErik Johnston2020-01-081-120/+120
* | | Merge pull request #6665 from matrix-org/babolivier/retention_doc_typoBrendan Abolivier2020-01-082-1/+2
|\ \ \
| * | | ChangelogBrendan Abolivier2020-01-081-0/+1
| * | | Fix typo in message retention policies docBrendan Abolivier2020-01-081-1/+1
* | | | Merge remote-tracking branch 'origin/release-v1.8.0' into developRichard van der Hoff2020-01-088-28/+184
|\ \ \ \ | |/ / / |/| | / | | |/ | |/|
| * | Fix GET request on /_synapse/admin/v2/users endpoint (#6563)Manuel Stahl2020-01-083-2/+44
| * | Back out ill-advised notary server hackery (#6657)Richard van der Hoff2020-01-085-26/+140
| |/
* | Merge pull request #6624 from matrix-org/babolivier/retention_docBrendan Abolivier2020-01-082-0/+192
|\ \
| * | Fix referenceBrendan Abolivier2020-01-071-1/+1
| * | Incorporate reviewBrendan Abolivier2020-01-071-27/+28
| * | Merge branch 'develop' into babolivier/retention_docBrendan Abolivier2020-01-0783-491/+788
| |\|
| * | Apply suggestions from code reviewBrendan Abolivier2020-01-071-5/+4
| * | Update changelog.d/6624.docBrendan Abolivier2020-01-071-1/+1
| * | Fix vacuum instructions for sqliteBrendan Abolivier2020-01-031-2/+2
| * | Rename changelogBrendan Abolivier2020-01-031-0/+0
| * | Add a complete documentation of the message retention policies supportBrendan Abolivier2020-01-032-0/+192
* | | contrib/docker-compose: fixing mount that overrides containers' /etc (#6656)Fabian Meyer2020-01-082-1/+2
* | | typoMatthew Hodgson2020-01-071-1/+1
* | | Correctly proxy remote group HTTP errors. (#6654)Erik Johnston2020-01-072-0/+17
* | | Merge pull request #6621 from matrix-org/babolivier/purge_job_config_typoBrendan Abolivier2020-01-073-10/+11
|\ \ \ | |_|/ |/| |
| * | RewordBrendan Abolivier2020-01-072-6/+6
| * | Change the example from 5min to 12hBrendan Abolivier2020-01-072-8/+8
| * | ChangelogBrendan Abolivier2020-01-031-0/+1
| * | Update sample configBrendan Abolivier2020-01-031-1/+1
| * | Fix a typo in the purge jobs configuration exampleBrendan Abolivier2020-01-031-1/+1
| |/
* | Fixup changelog v1.8.0rc1Erik Johnston2020-01-071-3/+3
* | Fixup changelogErik Johnston2020-01-071-1/+1
* | Fixup changelogErik Johnston2020-01-071-21/+11
* | 1.8.0rc1Erik Johnston2020-01-0756-55/+81
* | Merge pull request #6652 from matrix-org/babolivier/depth_missing_eventsBrendan Abolivier2020-01-073-3/+4
|\ \
| * | ChangelogBrendan Abolivier2020-01-071-0/+1
| * | Fix conditions failing if min_depth = 0Brendan Abolivier2020-01-072-3/+3
| |/
* | Add a background update to clear tombstoned rooms from the directory (#6648)Richard van der Hoff2020-01-076-1/+106
* | Async/await for background updates (#6647)Richard van der Hoff2020-01-072-16/+21
* | port BackgroundUpdateTestCase to HomeserverTestCase (#6653)Richard van der Hoff2020-01-072-35/+38