summary refs log tree commit diff
path: root/synapse (follow)
Commit message (Expand)AuthorAgeFilesLines
...
* TypoErik Johnston2017-10-121-1/+1
* Remove dead codeErik Johnston2017-10-121-3/+0
* Fix typosErik Johnston2017-10-121-20/+26
* Fix typoErik Johnston2017-10-121-1/+1
* Basic implementation of backup media storeErik Johnston2017-10-124-126/+131
* log when we get an exception handling replication updateshera2017-10-121-1/+5
* Merge pull request #2531 from matrix-org/dbkr/spamcheck_error_messagesDavid Baker2017-10-121-2/+6
|\
| * fix isinstanceDavid Baker2017-10-111-1/+1
| * Allow error strings from spam checkerDavid Baker2017-10-111-2/+6
* | Merge pull request #2532 from matrix-org/rav/fix_linearizerRichard van der Hoff2017-10-111-2/+22
|\ \
| * | Fix stackoverflow and logcontexts from linearizerRichard van der Hoff2017-10-111-2/+22
* | | Merge pull request #2529 from matrix-org/rav/fix_transaction_failure_handlingRichard van der Hoff2017-10-111-2/+3
|\ \ \
| * | | log pdu_failures from incoming transactionsRichard van der Hoff2017-10-111-2/+3
| |/ /
* | | Merge pull request #2515 from matrix-org/rav/fix_receipt_logcontextRichard van der Hoff2017-10-111-0/+51
|\ \ \
| * | | logformatter: fix AttributeErrorRichard van der Hoff2017-10-111-3/+11
| * | | Fancy logformatter to format exceptions betterRichard van der Hoff2017-10-091-0/+43
* | | | Fix fetching remote summariesErik Johnston2017-10-111-2/+2
* | | | peeeeeeeeep8888888888888888888888888888Erik Johnston2017-10-111-1/+1
* | | | Fix group stream replicationErik Johnston2017-10-111-7/+7
* | | | Merge pull request #2530 from matrix-org/rav/fix_receipt_logcontextRichard van der Hoff2017-10-111-0/+4
|\ \ \ \
| * | | | fix a logcontext leak in read receipt handlingRichard van der Hoff2017-10-111-0/+4
| | |/ / | |/| |
* | | | Fix typo in invite to groupErik Johnston2017-10-111-1/+1
* | | | Fix typoErik Johnston2017-10-111-1/+1
* | | | Fix attestations to check correct server nameErik Johnston2017-10-111-10/+20
| |_|/ |/| |
* | | Fix schema delta versionsErik Johnston2017-10-113-1/+1
* | | Merge pull request #2466 from matrix-org/erikj/groups_mergedErik Johnston2017-10-1131-57/+4786
|\ \ \
| * | | Validate room idsErik Johnston2017-10-111-1/+5
| * | | Don't corrupt cacheErik Johnston2017-10-051-0/+1
| * | | Merge branch 'develop' into erikj/groups_mergedDavid Baker2017-10-0226-273/+930
| |\ \ \
| * | | | Add remove room APIErik Johnston2017-09-266-1/+72
| * | | | Add unique index to group_rooms tableErik Johnston2017-09-262-3/+1
| * | | | Add is_publicised to group summaryErik Johnston2017-09-261-25/+31
| * | | | Remove user from group summary when the leave the groupErik Johnston2017-09-211-0/+8
| * | | | Revert: Keep room_id's in group summaryErik Johnston2017-09-211-0/+1
| * | | | Keep room_id's in group summaryErik Johnston2017-09-211-1/+0
| * | | | Correctly return next tokenErik Johnston2017-09-201-1/+2
| * | | | Fix initial syncErik Johnston2017-09-201-1/+9
| * | | | Ensure that creator of group sees group down /syncErik Johnston2017-09-192-4/+31
| * | | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/groups_mergedErik Johnston2017-09-1924-546/+580
| |\ \ \ \
| * | | | | Add user profiles to summary from group serverErik Johnston2017-08-253-2/+30
| * | | | | Fix typos and reinheritErik Johnston2017-08-251-12/+6
| * | | | | Split out profile handler to fix testsErik Johnston2017-08-258-22/+30
| * | | | | Add remote profile cacheErik Johnston2017-08-255-5/+237
| * | | | | Add _simple_updateErik Johnston2017-08-251-19/+32
| * | | | | Merge pull request #2410 from matrix-org/erikj/groups_publiciseErik Johnston2017-08-216-0/+197
| |\ \ \ \ \
| | * | | | | Use BOOLEAN rather than TEXT typeErik Johnston2017-08-211-1/+1
| | * | | | | FixupErik Johnston2017-08-112-9/+14
| | * | | | | Add bulk group publicised lookup APIErik Johnston2017-08-095-0/+142
| | * | | | | Allow update group publicityErik Johnston2017-08-082-0/+43
| | * | | | | Store whether the user wants to publicise their membership of a groupErik Johnston2017-08-083-0/+7
| * | | | | | Groups: Fix mising json.load in initial syncErik Johnston2017-08-211-1/+7
| |/ / / / /
| * | | | | Remove stale TODO commentsErik Johnston2017-08-041-10/+0
| * | | | | Update commentErik Johnston2017-07-241-2/+2
| * | | | | Use join rather than joined, etc.Erik Johnston2017-07-241-2/+2
| * | | | | Fix all the typosErik Johnston2017-07-241-8/+7
| * | | | | Include users membership in group in summary APIErik Johnston2017-07-242-0/+60
| * | | | | Check users/rooms are in group before adding to summaryErik Johnston2017-07-241-0/+25
| * | | | | Correctly add joins to correct segmentErik Johnston2017-07-241-1/+1
| * | | | | Merge pull request #2378 from matrix-org/erikj/group_sync_supportErik Johnston2017-07-2111-10/+281
| |\ \ \ \ \
| | * | | | | Add notifierErik Johnston2017-07-201-0/+1
| | * | | | | Fix replication. And notifyErik Johnston2017-07-205-4/+119
| | * | | | | Remember to cast to boolErik Johnston2017-07-201-1/+1
| | * | | | | Fix bug in generating current tokenErik Johnston2017-07-201-0/+2
| | * | | | | Add groups to sync streamErik Johnston2017-07-207-6/+159
| * | | | | | Merge pull request #2377 from matrix-org/erikj/group_profile_updateErik Johnston2017-07-205-0/+55
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | |
| | * | | | | Remove spurious content paramErik Johnston2017-07-201-1/+1
| | * | | | | Check values are stringsErik Johnston2017-07-201-1/+4
| | * | | | | Fix a storage descErik Johnston2017-07-201-1/+1
| | * | | | | Add update group profile APIErik Johnston2017-07-205-0/+52
| * | | | | | Fix typoErik Johnston2017-07-201-1/+1
| |/ / / / /
| * | | | | CommentsErik Johnston2017-07-184-13/+24
| * | | | | CommentsErik Johnston2017-07-182-103/+88
| * | | | | Fix permissionsErik Johnston2017-07-181-2/+6
| * | | | | Add DELETEErik Johnston2017-07-181-0/+46
| * | | | | Add 'args' param to post_jsonErik Johnston2017-07-181-9/+15
| * | | | | Fix typosErik Johnston2017-07-183-12/+22
| * | | | | Correctly parse query paramsErik Johnston2017-07-181-19/+19
| * | | | | Update federation client pokesErik Johnston2017-07-181-13/+22
| * | | | | Add client apisErik Johnston2017-07-182-10/+188
| * | | | | CommentsErik Johnston2017-07-182-15/+22
| * | | | | Use transport client directlyErik Johnston2017-07-181-18/+25
| * | | | | CommentErik Johnston2017-07-181-0/+14
| * | | | | Remove sync stuffErik Johnston2017-07-182-29/+1
| * | | | | Add GroupID typeErik Johnston2017-07-181-0/+5
| * | | | | Remove unused tablesErik Johnston2017-07-181-7/+0
| * | | | | Remove sync stuffErik Johnston2017-07-182-70/+0
| * | | | | Add local group server supportErik Johnston2017-07-1710-2/+1248
| * | | | | Ensure category and role ids are non-nullErik Johnston2017-07-141-0/+24
| * | | | | Add DEFAULT_ROLE_IDErik Johnston2017-07-141-4/+5
| * | | | | Correctly increment ordersErik Johnston2017-07-141-2/+2
| * | | | | Remove unused functionsErik Johnston2017-07-131-152/+0
| * | | | | CommentsErik Johnston2017-07-132-12/+32
| * | | | | Remove TODOErik Johnston2017-07-131-1/+0
| * | | | | Add summary APIs to federationErik Johnston2017-07-131-11/+223
| * | | | | raise NotImplementedErrorErik Johnston2017-07-131-5/+2
| * | | | | CommentsErik Johnston2017-07-123-5/+79
| * | | | | Simplify checking if adminErik Johnston2017-07-121-53/+19
| * | | | | Add group summary APIsErik Johnston2017-07-124-2/+970
| * | | | | Merge pull request #2352 from matrix-org/erikj/group_server_splitErik Johnston2017-07-1211-11/+1206
| |\ \ \ \ \
| | * | | | | CommentErik Johnston2017-07-121-1/+1
| | * | | | | Move commentErik Johnston2017-07-111-2/+2
| | * | | | | Add federation API for adding room to groupErik Johnston2017-07-111-0/+18
| | * | | | | CommentErik Johnston2017-07-111-5/+8
| | * | | | | TypoErik Johnston2017-07-111-1/+1
| | * | | | | Rename column to attestation_jsonErik Johnston2017-07-112-5/+5
| | * | | | | CommentsErik Johnston2017-07-113-5/+9
| | * | | | | CommentErik Johnston2017-07-112-0/+26
| | * | | | | Remove u/ requirementErik Johnston2017-07-111-2/+3
| | * | | | | Lift out visibility parsingErik Johnston2017-07-111-20/+21
| | * | | | | CommentsErik Johnston2017-07-114-43/+132
| | * | | | | Initial group server implementationErik Johnston2017-07-1011-11/+1064
* | | | | | | Merge pull request #2501 from matrix-org/dbkr/channel_notificationsErik Johnston2017-10-113-7/+85
|\ \ \ \ \ \ \
| * | | | | | | pep8David Baker2017-10-102-3/+5
| * | | | | | | Don't KeyError if no power_levels eventDavid Baker2017-10-101-1/+3
| * | | | | | | Use notification levels in power_levelsDavid Baker2017-10-103-12/+22
| * | | | | | | There was already a constant for thisDavid Baker2017-10-101-3/+4
| * | | | | | | More optimisationDavid Baker2017-10-101-6/+9
| * | | | | | | What year is it!? Who's the president!?David Baker2017-10-101-1/+1
| * | | | | | | Merge branch 'develop' into dbkr/channel_notificationsDavid Baker2017-10-107-107/+183
| |\ \ \ \ \ \ \
| * | | | | | | | Make be fasterDavid Baker2017-10-051-3/+3
| * | | | | | | | Add fastpath optimisationDavid Baker2017-10-051-3/+9
| * | | | | | | | pep8David Baker2017-10-051-0/+3
| * | | | | | | | They're called roomsDavid Baker2017-10-051-4/+4
| * | | | | | | | Get rule type rightDavid Baker2017-10-051-1/+1
| * | | | | | | | Support for channel notificationsDavid Baker2017-10-053-8/+59
* | | | | | | | | Merge pull request #2483 from jeremycline/unfreeze-ujson-dumpErik Johnston2017-10-111-1/+2
|\ \ \ \ \ \ \ \ \
| * | | | | | | | | Unfreeze event before serializing with ujsonJeremy Cline2017-09-301-1/+2
* | | | | | | | | | Merge pull request #2490 from matrix-org/erikj/drop_left_room_eventsErik Johnston2017-10-103-0/+65
|\ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / |/| | | | | | | | |
| * | | | | | | | | Fix up commentErik Johnston2017-10-091-1/+2
| * | | | | | | | | Invalidate cacheErik Johnston2017-10-031-0/+3
| * | | | | | | | | Update commentsErik Johnston2017-10-032-1/+8
| * | | | | | | | | Remove spurious line feedErik Johnston2017-10-031-1/+0
| * | | | | | | | | Ignore incoming events for rooms that we have leftErik Johnston2017-10-032-0/+55
* | | | | | | | | | fed server: process PDUs for different rooms in parallelRichard van der Hoff2017-10-091-19/+34
* | | | | | | | | | Fed server: use a linearizer for ongoing transactionsRichard van der Hoff2017-10-091-1/+29
| |_|_|_|_|_|_|/ / |/| | | | | | | |
* | | | | | | | | fed server: refactor on_incoming_transactionRichard van der Hoff2017-10-091-24/+29
* | | | | | | | | Fed server: Move origin-check code to _handle_received_pduRichard van der Hoff2017-10-091-24/+24
| |_|_|_|_|_|_|/ |/| | | | | | |
* | | | | | | | Merge pull request #2508 from matrix-org/rav/federation_queue_logcontextsRichard van der Hoff2017-10-091-16/+32
|\ \ \ \ \ \ \ \
| * | | | | | | | Fix up logcontext handling in (federation) TransactionQueueRichard van der Hoff2017-10-061-16/+32
* | | | | | | | | Merge pull request #2507 from matrix-org/rav/execute_concurrently_log_contextsRichard van der Hoff2017-10-091-2/+2
|\ \ \ \ \ \ \ \ \
| * | | | | | | | | Fix logcontext handling for concurrently_executeRichard van der Hoff2017-10-061-2/+2
| |/ / / / / / / /
* / / / / / / / / Fix up deferred handling in federation.pyRichard van der Hoff2017-10-061-24/+21
|/ / / / / / / /
* | | | | | | | some comments in the state res codeRichard van der Hoff2017-10-051-0/+13
* | | | | | | | Spam checking: add the invitee to user_may_inviteDavid Baker2017-10-053-8/+10
| |_|/ / / / / |/| | | | | |
* | | | | | | Use better method for word boundary searchingDavid Baker2017-10-051-11/+3
* | | | | | | pep8David Baker2017-10-051-0/+1
* | | | | | | Fix notif kws that start/end with non-word charsDavid Baker2017-10-051-2/+21
* | | | | | | spam check room publishingDavid Baker2017-10-042-0/+26
* | | | | | | un-double indentDavid Baker2017-10-041-1/+1
* | | | | | | Add room creation checks to spam checkerDavid Baker2017-10-043-0/+47
* | | | | | | s/roomid/room_id/David Baker2017-10-031-2/+2
* | | | | | | pass room id tooDavid Baker2017-10-033-4/+6
* | | | | | | Federation was passing strings anywayDavid Baker2017-10-031-1/+1
* | | | | | | this shouldn't be debugDavid Baker2017-10-031-2/+2
* | | | | | | better loggingDavid Baker2017-10-031-4/+9
* | | | | | | Actually write warpper functionDavid Baker2017-10-031-0/+16
* | | | | | | Skip spam check for admin usersDavid Baker2017-10-031-8/+8
* | | | | | | Fix param name & lintDavid Baker2017-10-031-2/+4
* | | | | | | Allow spam checker to reject invites tooDavid Baker2017-10-032-6/+18
|/ / / / / /
* | | | | | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2017-10-024-13/+29
|\ \ \ \ \ \
| * | | | | | Bump version and changelog v0.23.1Erik Johnston2017-10-021-1/+1
| * | | | | | Make 'affinity' package optionalErik Johnston2017-10-022-2/+17
| * | | | | | Move quit_with_errorErik Johnston2017-10-022-10/+11
* | | | | | | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2017-10-021-1/+1
|\| | | | | | | |_|_|_|_|/ |/| | | | |
| * | | | | Bump version and change log github/release-v0.23.0 release-v0.23.0Erik Johnston2017-10-021-1/+1
* | | | | | Merge pull request #2480 from matrix-org/rav/federation_client_loggingRichard van der Hoff2017-09-291-7/+6
|\ \ \ \ \ \
| * | | | | | Improve logging of failures in matrixfederationclientRichard van der Hoff2017-09-281-7/+6
* | | | | | | Only log if we've removed mediaErik Johnston2017-09-281-2/+4
|/ / / / / /
* | | | | | Handle SERVFAILs when doing AAAA lookups for federation (#2477)Richard van der Hoff2017-09-281-5/+17
* | | | | | Up the limits on number of url cache entries to delete at one timeErik Johnston2017-09-281-2/+2
* | | | | | Add old indicesErik Johnston2017-09-281-0/+2
* | | | | | Clear up expired url cache every 10sErik Johnston2017-09-281-1/+1
* | | | | | Actually assign result to variableErik Johnston2017-09-281-1/+1
* | | | | | Only pull out local media that were for url cacheErik Johnston2017-09-281-1/+1
* | | | | | Fix typo in url cache expiry timerErik Johnston2017-09-281-1/+1
* | | | | | Merge pull request #2479 from matrix-org/erikj/expire_url_cache_thumbnailsErik Johnston2017-09-281-31/+81
|\ \ \ \ \ \
| * | | | | | Support new and old style media id formatsErik Johnston2017-09-281-31/+81
* | | | | | | Fix typoErik Johnston2017-09-281-3/+3
|/ / / / / /
* | | | | | Change expires column to expires_tsErik Johnston2017-09-283-10/+29
* | | | | | More bracketsErik Johnston2017-09-281-1/+1
* | | | | | Delete expired url cache dataErik Johnston2017-09-285-5/+208
* | | | | | Fix /joined_members to work with AS usersErik Johnston2017-09-282-13/+26
* | | | | | Fix bug where /joined_members didn't check user was in roomErik Johnston2017-09-272-10/+38
* | | | | | Don't test is spam_checker not NoneDavid Baker2017-09-271-1/+7
* | | | | | Remove unintentional debuggingDavid Baker2017-09-271-1/+0
* | | | | | pep8David Baker2017-09-272-0/+2
* | | | | | Forgot the new file again :(David Baker2017-09-271-0/+35
* | | | | | Make the spam checker a moduleDavid Baker2017-09-265-23/+33
* | | | | | unnecessary parensDavid Baker2017-09-261-1/+1
* | | | | | Add module_loader.pyDavid Baker2017-09-261-0/+41
* | | | | | Factor out module loading to a separate placeDavid Baker2017-09-261-12/+10
|/ / / / /
* | | | | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.23.0 v0.23.0-rc2Erik Johnston2017-09-262-6/+19
|\ \ \ \ \
| * | | | | Refactor to speed up incremental syncsErik Johnston2017-09-251-5/+18
| * | | | | Merge branch 'release-v0.23.0' of github.com:matrix-org/synapse into developErik Johnston2017-09-251-1/+1
| |\ \ \ \ \
| * \ \ \ \ \ Merge branch 'develop' into developRichard van der Hoff2017-09-2532-755/+963
| |\ \ \ \ \ \
| * | | | | | | Fix iteration of requests_missing_keys; list doesn't have .values()Kenny Keslar2017-07-261-1/+1
* | | | | | | | Bump changelog and versionErik Johnston2017-09-261-1/+1
| |_|/ / / / / |/| | | | | |
* | | | | | | Bump version and changesErik Johnston2017-09-251-1/+1
| |/ / / / / |/| | | | |
* | | | | | Fix logcontxt leak in keyclient (#2465)Richard van der Hoff2017-09-251-12/+5
* | | | | | Do an AAAA lookup on SRV record targets (#2462)Richard van der Hoff2017-09-221-20/+96
* | | | | | fix thinko'd docstringMatthew Hodgson2017-09-221-1/+1
* | | | | | Fix device list when rejoining room (#2461)Erik Johnston2017-09-221-2/+14
* | | | | | Fix logcontexts in _check_sigs_and_hashesRichard van der Hoff2017-09-202-60/+62
* | | | | | Fix logcontext handling in verify_json_objects_for_serverRichard van der Hoff2017-09-201-8/+12
* | | | | | Turn _start_key_lookups into an inlineCallbacks functionRichard van der Hoff2017-09-201-40/+37
* | | | | | Fix potential race in _start_key_lookupsRichard van der Hoff2017-09-201-5/+8
* | | | | | Add some comments to _start_key_lookupsRichard van der Hoff2017-09-201-0/+8
* | | | | | Consistency for how verify_request.deferred is calledRichard van der Hoff2017-09-201-13/+17
* | | | | | Factor out _start_key_lookupsRichard van der Hoff2017-09-201-7/+17
* | | | | | Replace `server_and_json` with `verify_requests`Richard van der Hoff2017-09-201-3/+3
* | | | | | pull out handle_key_deferred to top levelRichard van der Hoff2017-09-201-43/+44
* | | | | | Fix incorrect key_ids in error messageRichard van der Hoff2017-09-201-1/+1
* | | | | | Invalidate signing key cache when we gat an updateRichard van der Hoff2017-09-201-17/+24
* | | | | | Remove redundant `preserve_fn`Richard van der Hoff2017-09-201-2/+2
* | | | | | Fix concurrent server_key requests (#2458)Richard van der Hoff2017-09-191-1/+3
* | | | | | Add a config option to block all room invites (#2457)Richard van der Hoff2017-09-194-0/+43
* | | | | | add some comments to on_exchange_third_party_invite_requestRichard van der Hoff2017-09-191-0/+11
* | | | | | PoC for filtering spammy events (#2456)Richard van der Hoff2017-09-193-17/+69
| |_|_|_|/ |/| | | |
* | | | | Fix overzealous kicking of guest users (#2453)Richard van der Hoff2017-09-191-1/+1
* | | | | Clean up and document handling of logcontexts in Keyring (#2452)Richard van der Hoff2017-09-181-28/+36
* | | | | Merge pull request #2451 from matrix-org/erikj/add_state_to_timelineErik Johnston2017-09-182-3/+18
|\ \ \ \ \
| * | | | | Don't filter out current state events from timelineErik Johnston2017-09-182-3/+18
* | | | | | Merge pull request #2450 from matrix-org/dbkr/push_event_id_onlyDavid Baker2017-09-181-0/+20
|\ \ \ \ \ \ | |/ / / / / |/| | | | |
| * | | | | Also include the room_idDavid Baker2017-09-181-0/+1
| * | | | | Use .get - it's much shorterDavid Baker2017-09-181-1/+1
| * | | | | Add support for event_id_only push formatDavid Baker2017-09-181-0/+19
* | | | | | Correctly handle leaving room in /key/changesErik Johnston2017-09-181-13/+12
|/ / / / /
* | | | | Fix typoErik Johnston2017-09-151-1/+1
* | | | | Actually hook leave notifs upErik Johnston2017-09-141-2/+3
* | | | | Handle joining/leaving rooms in /keys/changesErik Johnston2017-09-131-1/+38
* | | | | Get left roomsErik Johnston2017-09-131-3/+32
* | | | | In sync handle device lists for newly joined/left roomsErik Johnston2017-09-121-2/+10
* | | | | Add left section to /keys/changesErik Johnston2017-09-083-11/+19
* | | | | Send down device list change notif when member leaves/rejoins roomErik Johnston2017-09-073-14/+55
* | | | | Merge pull request #2288 from kyrias/bcryptRichard van der Hoff2017-08-231-1/+1
|\ \ \ \ \
| * | | | | python_dependencies: Use bcrypt module instead of py-bcryptJohannes Löthberg2017-06-171-1/+1
* | | | | | Fix user_dir startupRichard van der Hoff2017-08-161-1/+1
* | | | | | Fix process startupRichard van der Hoff2017-08-161-10/+13
* | | | | | explain why CPU affinity is a good ideaMatthew Hodgson2017-08-151-0/+8
* | | | | | Allow configuration of CPU affinityRichard van der Hoff2017-08-155-1/+23
* | | | | | Factor out common application startRichard van der Hoff2017-08-1511-464/+248
* | | | | | fix englishhera2017-08-041-7/+7
* | | | | | typohera2017-08-041-1/+1
* | | | | | Reduce spammy log line in synchrotronsErik Johnston2017-08-021-1/+1
| |/ / / / |/| | | |
* | | | | Increase cache hit ratio for pushErik Johnston2017-07-141-0/+8
* | | | | Add more metrics to push rule evaluationErik Johnston2017-07-131-2/+42
* | | | | Push: Don't acquire lock unless necessaryErik Johnston2017-07-131-0/+4
* | | | | Use less DB for device list handling in syncErik Johnston2017-07-121-8/+7
| |_|/ / |/| | |
* | | | Merge pull request #2354 from krombel/reduce_static_sync_replyErik Johnston2017-07-111-16/+25
|\ \ \ \
| * | | | split out reducing stuff; just make encode_* staticKrombel2017-07-111-35/+27