Skip to content

Commit

Permalink
Merge branch '4.2-dev' into 4.1-dev-mm-cando
Browse files Browse the repository at this point in the history
  • Loading branch information
richard67 committed Feb 1, 2022
2 parents b18576c + f7aacab commit b6f5afd
Show file tree
Hide file tree
Showing 465 changed files with 1,933 additions and 1,735 deletions.
2 changes: 1 addition & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ services:
## Install PHP and composer, and run the appropriate composer command
install:
- IF EXIST C:\tools\php (SET PHP=0)
# TODO: This is a workaround for https://github.com/chocolatey/choco/issues/1843. Once this is fixed we
# @todo: This is a workaround for https://github.com/chocolatey/choco/issues/1843. Once this is fixed we
# should go back to latest version in appveyor saving ourselves test time
- ps: choco upgrade chocolatey -y --version 0.10.13 --allow-downgrade --no-progress
- ps: >-
Expand Down
119 changes: 65 additions & 54 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -182,39 +182,41 @@ steps:
commands:
- bash tests/Codeception/drone-api-run.sh "$(pwd)" mysql

- name: phpnext-api-mysql
depends_on:
- phpmin-api-mysql
image: joomlaprojects/docker-images:systemtests8.2
failure: ignore
environment:
JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
commands:
- bash tests/Codeception/drone-api-run.sh "$(pwd)" mysqlphpnext
# - name: phpnext-api-mysql
# depends_on:
# - phpmin-api-mysql
# image: joomlaprojects/docker-images:systemtests8.2
# failure: ignore
# environment:
# JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
# commands:
# - bash tests/Codeception/drone-api-run.sh "$(pwd)" mysqlphpnext

- name: phpmin-api-postgres
depends_on:
- phpnext-api-mysql
# - phpnext-api-mysql
- phpmin-api-mysql
image: joomlaprojects/docker-images:systemtests
failure: ignore
environment:
JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
commands:
- bash tests/Codeception/drone-api-run.sh "$(pwd)" postgres

- name: phpnext-api-postgres
depends_on:
- phpmin-api-postgres
image: joomlaprojects/docker-images:systemtests8.2
failure: ignore
environment:
JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
commands:
- bash tests/Codeception/drone-api-run.sh "$(pwd)" postgresphpnext
# - name: phpnext-api-postgres
# depends_on:
# - phpmin-api-postgres
# image: joomlaprojects/docker-images:systemtests8.2
# failure: ignore
# environment:
# JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
# commands:
# - bash tests/Codeception/drone-api-run.sh "$(pwd)" postgresphpnext

- name: phpmax-api-postgres
depends_on:
- phpnext-api-postgres
# - phpnext-api-postgres
- phpmin-api-postgres
image: joomlaprojects/docker-images:systemtests8.1
failure: ignore
environment:
Expand All @@ -233,53 +235,62 @@ steps:
commands:
- bash tests/Codeception/drone-system-run.sh "$(pwd)" mysql

- name: phpnext-system-mysql
depends_on: [ phpmin-system-mysql ]
image: joomlaprojects/docker-images:systemtests8.2
failure: ignore
environment:
JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
commands:
- bash tests/Codeception/drone-system-run.sh "$(pwd)" mysqlphpnext
# - name: phpnext-system-mysql
# depends_on:
# - phpmin-system-mysql
# image: joomlaprojects/docker-images:systemtests8.2
# failure: ignore
# environment:
# JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
# commands:
# - bash tests/Codeception/drone-system-run.sh "$(pwd)" mysqlphpnext

- name: phpmax-system-mysql
depends_on: [ phpnext-system-mysql ]
depends_on:
# - phpnext-system-mysql
- phpmin-system-mysql
image: joomlaprojects/docker-images:systemtests8.1
failure: ignore
environment:
JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
commands:
- bash tests/Codeception/drone-system-run.sh "$(pwd)" mysqlphpmax

- name: phpnext-system-mysql8
depends_on: [ phpmax-system-mysql ]
image: joomlaprojects/docker-images:systemtests8.2
failure: ignore
environment:
JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
commands:
- bash tests/Codeception/drone-system-run.sh "$(pwd)" mysql8phpnext
# - name: phpnext-system-mysql8
# depends_on:
# - phpmax-system-mysql
# image: joomlaprojects/docker-images:systemtests8.2
# failure: ignore
# environment:
# JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
# commands:
# - bash tests/Codeception/drone-system-run.sh "$(pwd)" mysql8phpnext

- name: phpmax-system-mysql8
depends_on: [ phpnext-system-mysql ]
depends_on:
# - phpnext-system-mysql
- phpmax-system-mysql
image: joomlaprojects/docker-images:systemtests8.1
failure: ignore
environment:
JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
commands:
- bash tests/Codeception/drone-system-run.sh "$(pwd)" mysql8phpmax

- name: phpnext-system-postgres
depends_on: [ phpmax-system-mysql8 ]
image: joomlaprojects/docker-images:systemtests8.2
failure: ignore
environment:
JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
commands:
- bash tests/Codeception/drone-system-run.sh "$(pwd)" postgresphpnext
# - name: phpnext-system-postgres
# depends_on:
# - phpmax-system-mysql8
# image: joomlaprojects/docker-images:systemtests8.2
# failure: ignore
# environment:
# JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
# commands:
# - bash tests/Codeception/drone-system-run.sh "$(pwd)" postgresphpnext

- name: phpmax-system-postgres
depends_on: [ phpnext-system-mysql8 ]
depends_on:
# - phpnext-system-mysql8
- phpmax-system-mysql8
image: joomlaprojects/docker-images:systemtests8.1
failure: ignore
environment:
Expand All @@ -306,17 +317,17 @@ steps:
- name: artifacts-system-tests
image: cschlosser/drone-ftps
depends_on:
- phpnext-system-mysql
- phpnext-system-mysql8
- phpnext-system-postgres
# - phpnext-system-mysql
# - phpnext-system-mysql8
# - phpnext-system-postgres
- phpmax-system-mysql
- phpmax-system-mysql8
- phpmax-system-postgres
- phpmin-system-mysql
- phpmin-system-mysql8
- phpmin-system-postgres
- phpnext-api-mysql
- phpnext-api-postgres
# - phpnext-api-mysql
# - phpnext-api-postgres
- phpmax-api-mysql
- phpmax-api-postgres
- phpmin-api-mysql
Expand Down Expand Up @@ -404,11 +415,11 @@ steps:
path: /reference
when:
branch:
- 4.1-dev
- 4.2-dev


---
kind: signature
hmac: e93522732dd8607448fa7705982c42c06f9ebf9762023ed1bb2207ee975fee42
hmac: d9707d261edba35bc6b70f09a1babee119cb0a88cebda40171248e5c0a8b135e

...
4 changes: 2 additions & 2 deletions .github/workflows/create-translation-pull-request-v4.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
git remote add upstream https://github.com/joomla/joomla-cms.git
git fetch upstream
git checkout --progress --force -B translation refs/remotes/origin/translation
git merge upstream/4.0-dev
git merge upstream/4.1-dev
- name: Fetch and extract translations
run: |
Expand Down Expand Up @@ -67,4 +67,4 @@ jobs:
GITHUB_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
run: |
gh pr list -R joomla/joomla-cms --state open --author joomla-translation-bot -S "Translation Update" | grep -v "No pull" || \
gh pr create --title "Translation Update" --body "Automatically created pull request based on core-translation repository changes" -R joomla/joomla-cms --base 4.0-dev
gh pr create --title "Translation Update" --body "Automatically created pull request based on core-translation repository changes" -R joomla/joomla-cms --base 4.1-dev
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Joomla! CMS™
Joomla! CMS™
====================

Build Status
Expand All @@ -11,8 +11,8 @@ Overview
---------------------
* This is the source of Joomla! 4.x.
* Joomla's [Official website](https://www.joomla.org).
* Joomla! 4.1 [version history](https://docs.joomla.org/Special:MyLanguage/Joomla_4.1_version_history).
* Detailed changes are in the [changelog](https://github.com/joomla/joomla-cms/commits/4.0-dev).
* Joomla! 4.2 [version history](https://docs.joomla.org/Special:MyLanguage/Joomla_4.2_version_history).
* Detailed changes are in the [changelog](https://github.com/joomla/joomla-cms/commits/4.2-dev).

What is Joomla?
---------------------
Expand Down Expand Up @@ -47,7 +47,7 @@ cd joomla-cms
```
- Go to the 4.0-dev branch:
```bash
git checkout 4.0-dev
git checkout 4.2-dev
```
- Install all the needed composer packages:
```bash
Expand Down
4 changes: 2 additions & 2 deletions README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ Joomla! CMS™
1- Overview
* This is a Joomla! 4.x installation/upgrade package.
* Joomla! Official site: https://www.joomla.org
* Joomla! 4.1 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_4.1_version_history
* Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/4.0-dev
* Joomla! 4.2 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_4.2_version_history
* Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/4.2-dev

2- What is Joomla?
* Joomla! is a Content Management System (CMS) which enables you to build websites and powerful online applications.
Expand Down
47 changes: 45 additions & 2 deletions administrator/components/com_admin/script.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ public function preflight($action, $installer)
{
$this->fromVersion = $manifestValues['version'];

// Ensure templates are moved to the correct mode
$this->fixTemplateMode();

return true;
}
}
Expand Down Expand Up @@ -6112,7 +6115,7 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/media/vendor/codemirror/lib/#codemirror.js#',
// From 4.0.5 to 4.0.6
'/media/vendor/mediaelement/css/mejs-controls.png',
// From 4.0.x to 4.1.0
// From 4.0.x to 4.1.0-beta1
'/administrator/templates/atum/css/system/searchtools/searchtools.css',
'/administrator/templates/atum/css/system/searchtools/searchtools.min.css',
'/administrator/templates/atum/css/system/searchtools/searchtools.min.css.gz',
Expand Down Expand Up @@ -6327,6 +6330,8 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/templates/system/scss/general.scss',
'/templates/system/scss/offline.scss',
'/templates/system/scss/offline_rtl.scss',
// From 4.1.0-beta3 to 4.1.0-rc1
'/api/components/com_media/src/Helper/AdapterTrait.php',
);

$folders = array(
Expand Down Expand Up @@ -7586,7 +7591,7 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/libraries/vendor/algo26-matthias/idna-convert/tests',
// From 4.0.3 to 4.0.4
'/templates/cassiopeia/images/system',
// From 4.0.5 to 4.1.0
// From 4.0.x to 4.1.0-beta1
'/templates/system/scss',
'/templates/system/css',
'/templates/cassiopeia/scss/vendor/metismenu',
Expand Down Expand Up @@ -7637,6 +7642,8 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/administrator/templates/atum/css/system/searchtools',
'/administrator/templates/atum/css/system',
'/administrator/templates/atum/css',
// From 4.1.0-beta3 to 4.1.0-rc1
'/api/components/com_media/src/Helper',
);

$status['files_checked'] = $files;
Expand Down Expand Up @@ -8533,4 +8540,40 @@ protected function moveRemainingTemplateFiles()
}
}
}

/**
* Ensure the core templates are correctly moved to the new mode.
*
* @return void
*
* @since __DEPLOY_VERSION__
*/
protected function fixTemplateMode(): void
{
$db = Factory::getContainer()->get('DatabaseDriver');

array_map(
function ($template) use ($db)
{
$clientId = $template === 'atum' ? 1 : 0;
$query = $db->getQuery(true)
->update($db->quoteName('#__template_styles'))
->set($db->quoteName('inheritable') . ' = 1')
->where($db->quoteName('template') . ' = ' . $db->quote($template))
->where($db->quoteName('client_id') . ' = ' . $clientId);

try
{
$db->setQuery($query)->execute();
}
catch (Exception $e)
{
echo Text::sprintf('JLIB_DATABASE_ERROR_FUNCTION_FAILED', $e->getCode(), $e->getMessage()) . '<br>';

return;
}
},
['atum', 'cassiopeia']
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ INSERT INTO `#__extensions` (`name`, `type`, `element`, `folder`, `client_id`, `
('atum', 'template', 'atum', '', 1, 1, 1, 0, '{}', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0),
('cassiopeia', 'template', 'cassiopeia', '', 0, 1, 1, 0, '{}', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);

INSERT INTO `#__template_styles` (`template`, `client_id`, `home`, `title`, `params`) VALUES
('atum', 1, (CASE WHEN (SELECT b.`count` FROM (SELECT count(a.`id`) AS `count` FROM `#__template_styles` a WHERE a.`home` = '1' AND a.`client_id` = 1 AND a.`template` IN ('isis', 'hathor')) AS b) = 0 THEN '0' ELSE '1' END), 'atum - Default', '{}'),
('cassiopeia', 0, (CASE WHEN (SELECT d.`count` FROM (SELECT count(c.`id`) AS `count` FROM `#__template_styles` c WHERE c.`home` = '1' AND c.`client_id` = 0 AND c.`template` IN ('protostar', 'beez3')) AS d) = 0 THEN '0' ELSE '1' END), 'cassiopeia - Default', '{}');
-- The following statement had to be modified for 4.1 by adding the `inheritable` and `parent` columns.
-- See https://github.com/joomla/joomla-cms/pull/36585 .
INSERT INTO `#__template_styles` (`template`, `client_id`, `home`, `title`, `inheritable`, `parent`, `params`) VALUES
('atum', 1, (CASE WHEN (SELECT b.`count` FROM (SELECT count(a.`id`) AS `count` FROM `#__template_styles` a WHERE a.`home` = '1' AND a.`client_id` = 1 AND a.`template` IN ('isis', 'hathor')) AS b) = 0 THEN '0' ELSE '1' END), 'atum - Default', 1, '', '{}'),
('cassiopeia', 0, (CASE WHEN (SELECT d.`count` FROM (SELECT count(c.`id`) AS `count` FROM `#__template_styles` c WHERE c.`home` = '1' AND c.`client_id` = 0 AND c.`template` IN ('protostar', 'beez3')) AS d) = 0 THEN '0' ELSE '1' END), 'cassiopeia - Default', 1, '', '{}');

--
-- Move mod_version to the right position for the atum template
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,5 @@ INSERT INTO `#__action_log_config` (`type_title`, `type_alias`, `id_holder`, `ti
INSERT INTO `#__mail_templates` (`template_id`, `extension`, `language`, `subject`, `body`, `htmlbody`, `attachments`, `params`) VALUES
('plg_system_tasknotification.failure_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_FAILURE_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_FAILURE_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title", "exit_code", "exec_data_time", "task_output"]}'),
('plg_system_tasknotification.fatal_recovery_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_FATAL_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_FATAL_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title"]}'),
('plg_system_tasknotification.orphan_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title", ""]}'),
('plg_system_tasknotification.orphan_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title"]}'),
('plg_system_tasknotification.success_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_SUCCESS_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_SUCCESS_MAIL_BODY', '', '', '{"tags":["task_id", "task_title", "exec_data_time", "task_output"]}');
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
UPDATE `#__mail_templates`
SET `params` = '{"tags": ["task_id", "task_title"]}'
WHERE `template_id`= 'plg_system_tasknotification.orphan_mail' AND `params` = '{"tags": ["task_id", "task_title", ""]}';
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
INSERT INTO `#__extensions` (`name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
('plg_webservices_media', 'plugin', 'media', 'webservices', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0);
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ INSERT INTO "#__extensions" ("name", "type", "element", "folder", "client_id", "
('atum', 'template', 'atum', '', 1, 1, 1, 0, '{}', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0),
('cassiopeia', 'template', 'cassiopeia', '', 0, 1, 1, 0, '{}', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);

INSERT INTO "#__template_styles" ("template", "client_id", "home", "title", "params") VALUES
('atum', 1, (CASE WHEN (SELECT b."count" FROM (SELECT count(a."id") AS "count" FROM "#__template_styles" a WHERE a."home" = '1' AND a."client_id" = 1 AND a."template" IN ('isis', 'hathor')) AS b) = 0 THEN '0' ELSE '1' END), 'atum - Default', '{}'),
('cassiopeia', 0, (CASE WHEN (SELECT d."count" FROM (SELECT count(c."id") AS "count" FROM "#__template_styles" c WHERE c."home" = '1' AND c."client_id" = 0 AND c."template" IN ('protostar', 'beez3')) AS d) = 0 THEN '0' ELSE '1' END), 'cassiopeia - Default', '{}');
-- The following statement had to be modified for 4.1 by adding the "inheritable" and "parent" columns.
-- See https://github.com/joomla/joomla-cms/pull/36585 .
INSERT INTO "#__template_styles" ("template", "client_id", "home", "title", "inheritable", "parent", "params") VALUES
('atum', 1, (CASE WHEN (SELECT b."count" FROM (SELECT count(a."id") AS "count" FROM "#__template_styles" a WHERE a."home" = '1' AND a."client_id" = 1 AND a."template" IN ('isis', 'hathor')) AS b) = 0 THEN '0' ELSE '1' END), 'atum - Default', 1, '', '{}'),
('cassiopeia', 0, (CASE WHEN (SELECT d."count" FROM (SELECT count(c."id") AS "count" FROM "#__template_styles" c WHERE c."home" = '1' AND c."client_id" = 0 AND c."template" IN ('protostar', 'beez3')) AS d) = 0 THEN '0' ELSE '1' END), 'cassiopeia - Default', 1, '', '{}');

--
-- Move mod_version to the right position for the atum template
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,5 @@ INSERT INTO "#__action_log_config" ("type_title", "type_alias", "id_holder", "ti
INSERT INTO "#__mail_templates" ("template_id", "extension", "language", "subject", "body", "htmlbody", "attachments", "params") VALUES
('plg_system_tasknotification.failure_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_FAILURE_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_FAILURE_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title", "exit_code", "exec_data_time", "task_output"]}'),
('plg_system_tasknotification.fatal_recovery_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_FATAL_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_FATAL_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title"]}'),
('plg_system_tasknotification.orphan_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title", ""]}'),
('plg_system_tasknotification.orphan_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title"]}'),
('plg_system_tasknotification.success_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_SUCCESS_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_SUCCESS_MAIL_BODY', '', '', '{"tags":["task_id", "task_title", "exec_data_time", "task_output"]}');
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
UPDATE "#__mail_templates"
SET "params" = '{"tags": ["task_id", "task_title"]}'
WHERE "template_id"= 'plg_system_tasknotification.orphan_mail' AND "params" = '{"tags": ["task_id", "task_title", ""]}';
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
INSERT INTO "#__extensions" ("name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
('plg_webservices_media', 'plugin', 'media', 'webservices', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0);

0 comments on commit b6f5afd

Please sign in to comment.