Skip to main content

Melatonin counteracts breast cancer by limiting a gene in breast cancer cells

Melatonin counteracts breast cancer by limiting a gene in breast cancer cellsBreast cancer is one of the most widespread cancer forms, with 80% of cases being classified as estrogen receptor-positive. The risk of this type of breast cancer increases when you receive hormone therapy with estrogen (estradiol). The risk is also increased by hormone-disrupting substances in the environment. However, a new study shows that melatonin is able to inhibit a gene that influences the estrogen receptors in breast cancer cells. Melatonin is primarily known for its role as a sleep hormone, but an increasing amount of research shows cancer-protective potential. It is therefore essential to make enough melatonin yourself or to compensate for deficiencies by taking melatonin supplements.

Cancer stem cells are a challenge in the treatment of cancer, as they may lead to tumor growth, metastases, and resistance towards chemo therapy and antiestrogens such as tamoxifen. It has been known for a long time that melatonin has an effect on the estrogen receptors of the cells, yet the actual mechanism remains unclear. In a new study, however, researchers found that melatonin inhibits a gene (OCT4) that influences estrogen receptors in breast cancer stem cells.
In this study, breast cancer cells were exposed to either estradiol or bisphenol A, both of which stimulate cell growth. Afterwards, the cancer cells were treated with or without melatonin.

  • Estradiol is primarily produced in the ovaries to enable pregnancy. Smaller amounts of the hormone are produced in fatty tissues and in the adrenal glands. Estradiol therapy is normally used during menopause, while birth control pills are combined with progestogen.
  • Estradiol stores fat and promotes cell division. Excessive amounts increase the risk of overweight and cancer – especially of the breast and uterus.
  • Bisphenol A is found in such things as plastic containers, tin cans, plastic fillings, lacquer, and glue. Bisphenol A belongs to the large group of hormone-disrupting substances in our environment. It activates those genes that control the growth of breast cancer cells.

Estradiol, bisphenol A, melatonin and their effect on breast cancer cells

Those breast cancer cells that where either exposed to estradiol or bisphenol A significantly increased in number and size, as expected, compared with a group of control cells. However, when the same breast cancer cells were treated with melatonin afterwards, there was a significant reduction of breast cancer cells, and they also decreased in size. Moreover, it turned out that breast cancer cells that were exposed to either estradiol or bisphenol A, and also were exposed to melatonin, reduced more in number and size. The study clearly showed that melatonin had the opposite effect of estradiol and bisphenol A on breast cancer cells. What the scientists had not seen earlier was that melatonin therapy reduces levels of the OCT4 gene in breast cancer cells, thereby also levels of estrogen receptors in the cancer cells, which makes the cells less sensitive to estradiol and bisphenol A.

Melatonin affects all cells in the body

Melatonin is a hormone that controls our 24-hour rhythm, sleep, and many other general physiological processes throughout life. It influences all cells in the body and even functions as a powerful antioxidant that protects cells and repairs cellular damage during our sleep.
Our body’s melatonin secretion is suppressed by daytime light and enhanced at night when it is dark, and it is because of this cycle that we are able to get a good night’s sleep.
Melatonin gets produced by the pineal gland that is situated at the center of the brain. As we grow older, our pineal gland starts to calcify and shrink in size, which results in a lowered production of melatonin. Someone in their 60s have around half the melatonin production as someone in their 20s, and the melatonin output continues to decrease. It is believed that the age-related drop in melatonin levels increases the risk of breast cancer and other cancer types.

Hormone pills and too little sleep is a bad combination

This is because hormone pills with estradiol stimulate the growth of hormone-sensitive cells and because lack of melatonin impairs the body’s ability to counteract this growth.        

Unnatural day-and-night-rhythm (circadian rhythm) and other factors that lower melatonin levels

Over the past decades, the breast cancer rate has increased greatly in the industrialized countries. Some scientists believe that this increase may be caused by the reduced melatonin production that is a result of exposing ourselves to artificial light at night – typically from lamps, computer screens, and other types of displays.
For instance, studies have shown that rats that are exposed to constant light quickly develop cancer in their breast glands. In contrast, breast cancer is less common among blind or visually impaired people.
Night work, stimulants, medicine, jet lag, and radiation from magnetic fields (electrical grids and wireless hardware) may also interfere with the body’s natural melatonin production.

Night work and breast cancer

The Danish Cancer Society has published a study that shows how women who work night shifts are 50% more likely to develop breast cancer, compared with women who have regular day jobs. The explanation is believed to lie in their relative lack of melatonin.

Melatonin’s ability to prevent and counteract cancer

  • Melatonin has the following cancer-fighting properties in situations where the disease has been diagnosed. This, however, requires that the body’s melatonin levels are sufficiently high.
  • Controls growth-stimulating hormones such as estradiol
  • Functions as a powerful antioxidant that protects cell surfaces and DNA
  • Strengthens the immune system’s attack on cancer cells
  • Counteracts inflammation that exhausts the immune system and causes cell damage
  • Promotes programmed cell death (apoptosis)

Melatonin’s role in the prevention of breast cancer

Under normal conditions, many years pass from the time the first cell changes appear, until a cancer tumor is detected. Therefore, melatonin’s role in cancer prevention is often underestimated and greater than what one would expect.

Melatonin may also improve follow-up treatment of breast cancer

This is because melatonin suppresses cell growth and enhances the effect of antiestrogens (tamoxifen), which is often associated with side effects and therapy resistance.

References:

Juliana Lopes et al. Melatonin decreases estrogen receptor binding to estrogen response elements sites on the OCT4 gene in human breast cancer stem cells. Genes & Cancer. 2016
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4979593/

Elsevier: Sleep hormone help breast cancer drug kill more cancer cells. ScienceDaily 2016

Vinter, Anna Gry, Mogens Helweg Claësson: Melatonins indvirkning på immunsystem og cancer. Ugeskrift for Læger 2015

Kræftens Bekæmpelse

Pierpaoli Walter, Regelson William. The Melatonin Miracle. Simon and Schuster 1996

Pernille Lund: Sund & smuk – hele livet. Ny Videnskab 2016

https://om.coop.dk/presse/pressemeddelelser.aspx?nyhedid=13766

  • Created on .
8.763MBMemory Usage907msRequest Duration
Joomla! Version4.4.4
PHP Version8.3.6
Identityguest
Response200
Templateyootheme
Database
Server
mysql
Version
8.0.40-0ubuntu0.24.04.1
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_0900_ai_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:46 [ "REDIRECT_HTTP_AUTHORIZATION" => "" "REDIRECT_HTTPS" => "on" "REDIRECT_SSL_TLS_SNI"...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1740281071 "last" => 1740281071...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
plg_system_languagefilter
array:1 [ "language" => "en-GB" ]
  • afterLoad (456.63KB) (3.92ms)
  • afterInitialise (1.27MB) (67.65ms)
  • afterRoute (897.2KB) (30.28ms)
  • beforeRenderComponent com_content (24.01KB) (347μs)
  • Before Access::preloadComponents (all components) (33.23KB) (1.93ms)
  • After Access::preloadComponents (all components) (97.34KB) (1.86ms)
  • Before Access::preloadPermissions (com_content) (1.6KB) (27μs)
  • After Access::preloadPermissions (com_content) (3.2MB) (23.11ms)
  • Before Access::getAssetRules (id:2080 name:com_content.article.1025) (130.65KB) (122μs)
  • After Access::getAssetRules (id:2080 name:com_content.article.1025) (7.47KB) (544μs)
  • beforeRenderRawModule mod_custom (Search for more information...) (1.35MB) (164ms)
  • afterRenderRawModule mod_custom (Search for more information...) (4.29KB) (3.36ms)
  • beforeRenderModule mod_custom (Search for more information...) (736B) (10μs)
  • afterRenderModule mod_custom (Search for more information...) (5.54KB) (270μs)
  • afterRenderComponent com_content (61.05KB) (171ms)
  • Before Access::getAssetRules (id:8 name:com_content) (49.85KB) (36.32ms)
  • After Access::getAssetRules (id:8 name:com_content) (6.17KB) (39μs)
  • afterDispatch (29.65KB) (12.97ms)
  • beforeRenderRawModule mod_articles_category (READ MORE...) (32.27KB) (5.79ms)
  • afterRenderRawModule mod_articles_category (READ MORE...) (71.31KB) (244ms)
  • beforeRenderRawModule mod_custom (BOOST YOUR IMMUNE DEFENSE) (6.45KB) (2.31ms)
  • afterRenderRawModule mod_custom (BOOST YOUR IMMUNE DEFENSE) (912B) (72μs)
  • beforeRenderRawModule mod_tags_popular (Search) (2.36KB) (17μs)
  • afterRenderRawModule mod_tags_popular (Search) (23.37KB) (108ms)
  • beforeRenderRawModule mod_custom (Check this before you buy a Q10 product) (944B) (23μs)
  • afterRenderRawModule mod_custom (Check this before you buy a Q10 product) (928B) (43μs)
  • beforeRenderRawModule mod_custom (the Vitamin and Mineral Guide) (736B) (9μs)
  • afterRenderRawModule mod_custom (the Vitamin and Mineral Guide) (992B) (21μs)
  • beforeRenderModule mod_articles_category (READ MORE...) (276.94KB) (5.18ms)
  • afterRenderModule mod_articles_category (READ MORE...) (1.25KB) (49μs)
  • beforeRenderModule mod_custom (BOOST YOUR IMMUNE DEFENSE) (6.81KB) (14μs)
  • afterRenderModule mod_custom (BOOST YOUR IMMUNE DEFENSE) (1.28KB) (22μs)
  • beforeRenderModule mod_tags_popular (Search) (1.98KB) (12μs)
  • afterRenderModule mod_tags_popular (Search) (2.52KB) (19μs)
  • beforeRenderModule mod_custom (Check this before you buy a Q10 product) (1.31KB) (10μs)
  • afterRenderModule mod_custom (Check this before you buy a Q10 product) (1.28KB) (18μs)
  • beforeRenderModule mod_custom (the Vitamin and Mineral Guide) (352B) (8μs)
  • afterRenderModule mod_custom (the Vitamin and Mineral Guide) (1.28KB) (18μs)
  • beforeRenderRawModule mod_menu (Main Menu - English) (18.53KB) (1.45ms)
  • afterRenderRawModule mod_menu (Main Menu - English) (191.29KB) (3.41ms)
  • beforeRenderModule mod_menu (Main Menu - English) (720B) (3μs)
  • afterRenderModule mod_menu (Main Menu - English) (4.86KB) (49μs)
  • beforeRenderRawModule mod_languages (Sprogskift) (3.94KB) (16μs)
  • afterRenderRawModule mod_languages (Sprogskift) (19.02KB) (1.55ms)
  • beforeRenderModule mod_languages (Sprogskift) (720B) (5μs)
  • afterRenderModule mod_languages (Sprogskift) (5.31KB) (20μs)
  • beforeRenderRawModule mod_finder () (6.34KB) (10μs)
  • afterRenderRawModule mod_finder () (128.59KB) (5.38ms)
  • beforeRenderModule mod_finder () (704B) (5μs)
  • afterRenderModule mod_finder () (3.29KB) (32μs)
  • beforeRenderRawModule mod_custom () (6.62KB) (128μs)
  • afterRenderRawModule mod_custom () (22.3KB) (1.37ms)
  • beforeRenderModule mod_custom () (704B) (5μs)
  • afterRenderModule mod_custom () (1.23KB) (43μs)
  • beforeRenderRawModule mod_menu (Main Menu - English) (5.07KB) (95μs)
  • afterRenderRawModule mod_menu (Main Menu - English) (6.52KB) (651μs)
  • beforeRenderModule mod_menu (Main Menu - English) (720B) (3μs)
  • afterRenderModule mod_menu (Main Menu - English) (1.25KB) (148μs)
  • beforeRenderRawModule mod_languages (Sprogskift Mobil) (912B) (18μs)
  • afterRenderRawModule mod_languages (Sprogskift Mobil) (3.89KB) (605μs)
  • beforeRenderModule mod_languages (Sprogskift Mobil) (720B) (3μs)
  • afterRenderModule mod_languages (Sprogskift Mobil) (1.27KB) (28μs)
  • beforeRenderRawModule mod_finder () (2.3KB) (8μs)
  • afterRenderRawModule mod_finder () (6.09KB) (1.62ms)
  • beforeRenderModule mod_finder () (704B) (4μs)
  • afterRenderModule mod_finder () (3.73KB) (40μs)
  • beforeRenderRawModule mod_custom () (8.66KB) (159μs)
  • afterRenderRawModule mod_custom () (944B) (111μs)
  • beforeRenderModule mod_custom () (704B) (3μs)
  • afterRenderModule mod_custom () (2.43KB) (23μs)
  • beforeRenderRawModule mod_custom () (688B) (72μs)
  • afterRenderRawModule mod_custom () (896B) (78μs)
  • beforeRenderModule mod_custom () (704B) (2μs)
  • afterRenderModule mod_custom () (2.71KB) (20μs)
  • afterRender (167.87KB) (4.88ms)
  • 1 x afterRenderRawModule mod_articles_category (READ MORE...) (71.31KB) (26.94%)
    244.26ms
    1 x afterRenderComponent com_content (61.05KB) (18.85%)
    170.89ms
    1 x beforeRenderRawModule mod_custom (Search for more information...) (1.35MB) (18.12%)
    164.31ms
    1 x afterRenderRawModule mod_tags_popular (Search) (23.37KB) (11.93%)
    108.17ms
    1 x afterInitialise (1.27MB) (7.46%)
    67.65ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (49.85KB) (4.01%)
    36.32ms
    1 x afterRoute (897.2KB) (3.34%)
    30.28ms
    1 x After Access::preloadPermissions (com_content) (3.2MB) (2.55%)
    23.11ms
    1 x afterDispatch (29.65KB) (1.43%)
    12.97ms
    1 x beforeRenderRawModule mod_articles_category (READ MORE...) (32.27KB) (0.64%)
    5.79ms
    1 x afterRenderRawModule mod_finder () (128.59KB) (0.59%)
    5.38ms
    1 x beforeRenderModule mod_articles_category (READ MORE...) (276.94KB) (0.57%)
    5.18ms
    1 x afterRender (167.87KB) (0.54%)
    4.88ms
    1 x afterLoad (456.63KB) (0.43%)
    3.92ms
    1 x afterRenderRawModule mod_menu (Main Menu - English) (191.29KB) (0.38%)
    3.41ms
    1 x afterRenderRawModule mod_custom (Search for more information...) (4.29KB) (0.37%)
    3.36ms
    1 x beforeRenderRawModule mod_custom (BOOST YOUR IMMUNE DEFENSE) (6.45KB) (0.25%)
    2.31ms
    1 x Before Access::preloadComponents (all components) (33.23KB) (0.21%)
    1.93ms
    1 x After Access::preloadComponents (all components) (97.34KB) (0.2%)
    1.86ms
    1 x afterRenderRawModule mod_finder () (6.09KB) (0.18%)
    1.62ms
    1 x afterRenderRawModule mod_languages (Sprogskift) (19.02KB) (0.17%)
    1.55ms
    1 x beforeRenderRawModule mod_menu (Main Menu - English) (18.53KB) (0.16%)
    1.45ms
    1 x afterRenderRawModule mod_custom () (22.3KB) (0.15%)
    1.37ms
    1 x afterRenderRawModule mod_menu (Main Menu - English) (6.52KB) (0.07%)
    651μs
    1 x afterRenderRawModule mod_languages (Sprogskift Mobil) (3.89KB) (0.07%)
    605μs
    1 x After Access::getAssetRules (id:2080 name:com_content.article.1025) (7.47KB) (0.06%)
    544μs
    1 x beforeRenderComponent com_content (24.01KB) (0.04%)
    347μs
    1 x afterRenderModule mod_custom (Search for more information...) (5.54KB) (0.03%)
    270μs
    1 x beforeRenderRawModule mod_custom () (8.66KB) (0.02%)
    159μs
    1 x afterRenderModule mod_menu (Main Menu - English) (1.25KB) (0.02%)
    148μs
    1 x beforeRenderRawModule mod_custom () (6.62KB) (0.01%)
    128μs
    1 x Before Access::getAssetRules (id:2080 name:com_content.article.1025) (130.65KB) (0.01%)
    122μs
    1 x afterRenderRawModule mod_custom () (944B) (0.01%)
    111μs
    1 x beforeRenderRawModule mod_menu (Main Menu - English) (5.07KB) (0.01%)
    95μs
    1 x afterRenderRawModule mod_custom () (896B) (0.01%)
    78μs
    1 x afterRenderRawModule mod_custom (BOOST YOUR IMMUNE DEFENSE) (912B) (0.01%)
    72μs
    1 x beforeRenderRawModule mod_custom () (688B) (0.01%)
    72μs
    1 x afterRenderModule mod_menu (Main Menu - English) (4.86KB) (0.01%)
    49μs
    1 x afterRenderModule mod_articles_category (READ MORE...) (1.25KB) (0.01%)
    49μs
    1 x afterRenderRawModule mod_custom (Check this before you buy a Q10 product) (928B) (0%)
    43μs
    1 x afterRenderModule mod_custom () (1.23KB) (0%)
    43μs
    1 x afterRenderModule mod_finder () (3.73KB) (0%)
    40μs
    1 x After Access::getAssetRules (id:8 name:com_content) (6.17KB) (0%)
    39μs
    1 x afterRenderModule mod_finder () (3.29KB) (0%)
    32μs
    1 x afterRenderModule mod_languages (Sprogskift Mobil) (1.27KB) (0%)
    28μs
    1 x Before Access::preloadPermissions (com_content) (1.6KB) (0%)
    27μs
    1 x beforeRenderRawModule mod_custom (Check this before you buy a Q10 product) (944B) (0%)
    23μs
    1 x afterRenderModule mod_custom () (2.43KB) (0%)
    23μs
    1 x afterRenderModule mod_custom (BOOST YOUR IMMUNE DEFENSE) (1.28KB) (0%)
    22μs
    1 x afterRenderRawModule mod_custom (the Vitamin and Mineral Guide) (992B) (0%)
    21μs
    1 x afterRenderModule mod_languages (Sprogskift) (5.31KB) (0%)
    20μs
    1 x afterRenderModule mod_custom () (2.71KB) (0%)
    20μs
    1 x afterRenderModule mod_tags_popular (Search) (2.52KB) (0%)
    19μs
    1 x afterRenderModule mod_custom (Check this before you buy a Q10 product) (1.28KB) (0%)
    18μs
    1 x afterRenderModule mod_custom (the Vitamin and Mineral Guide) (1.28KB) (0%)
    18μs
    1 x beforeRenderRawModule mod_languages (Sprogskift Mobil) (912B) (0%)
    18μs
    1 x beforeRenderRawModule mod_tags_popular (Search) (2.36KB) (0%)
    17μs
    1 x beforeRenderRawModule mod_languages (Sprogskift) (3.94KB) (0%)
    16μs
    1 x beforeRenderModule mod_custom (BOOST YOUR IMMUNE DEFENSE) (6.81KB) (0%)
    14μs
    1 x beforeRenderModule mod_tags_popular (Search) (1.98KB) (0%)
    12μs
    3 x beforeRenderModule mod_custom () (704B) (0%)
    10μs
    1 x beforeRenderModule mod_custom (Search for more information...) (736B) (0%)
    10μs
    1 x beforeRenderModule mod_custom (Check this before you buy a Q10 product) (1.31KB) (0%)
    10μs
    1 x beforeRenderRawModule mod_finder () (6.34KB) (0%)
    10μs
    1 x beforeRenderRawModule mod_custom (the Vitamin and Mineral Guide) (736B) (0%)
    9μs
    2 x beforeRenderModule mod_finder () (704B) (0%)
    9μs
    1 x beforeRenderModule mod_custom (the Vitamin and Mineral Guide) (352B) (0%)
    8μs
    1 x beforeRenderRawModule mod_finder () (2.3KB) (0%)
    8μs
    2 x beforeRenderModule mod_menu (Main Menu - English) (720B) (0%)
    6μs
    1 x beforeRenderModule mod_languages (Sprogskift) (720B) (0%)
    5μs
    1 x beforeRenderModule mod_languages (Sprogskift Mobil) (720B) (0%)
    3μs
43 statements were executed, 9 of which were duplicates, 34 unique645ms1.14MB
  • SELECT @@SESSION.sql_mode;67μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `has_session` WHERE `session_id` = ?171μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `has_session` WHERE `session_id` = :session_id LIMIT 1307μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `has_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)10.97ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `has_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 15.28ms1.61KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `has_viewlevels`1.97ms656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `has_usergroups` AS `a` LEFT JOIN `has_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest540μs1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `has_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`7.34ms3.98KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT * FROM `has_languages` WHERE `published` = 1 ORDER BY `ordering` ASC234μs2.33KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `element`,`name`,`client_id`,`extension_id` FROM `has_extensions` WHERE `type` = 'language' AND `state` = 0 AND `enabled` = 11.21ms1008B/libraries/src/Language/LanguageHelper.php:213Copy
  • SELECT * FROM has_rsform_config253μs1.06KB/administrator/components/com_rsform/helpers/config.php:52Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `has_menu` AS `m` LEFT JOIN `has_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`11.75ms165.8KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray1,:preparedArray2)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`1.95ms3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `has_template_styles` AS `s` LEFT JOIN `has_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 12.91ms848B/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `has_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40)483μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `has_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 016.92ms397.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `has_content`2.17ms3.02KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `has_content` SET `hits` = (`hits` + 1) WHERE `id` = '1025'4.13ms48B/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `has_content` AS `a` INNER JOIN `has_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `has_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `has_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `has_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `has_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0 AND `a`.`language` IN (:preparedArray1,:preparedArray2)) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray3,:preparedArray4)2.35ms22.19KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`7.52ms3.98KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `has_contentitem_tag_map` AS `m` INNER JOIN `has_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2) AND `language` IN (:preparedArray3,:preparedArray4)14.88ms4.09KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`6.29ms3.98KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM has_fields AS a LEFT JOIN `has_languages` AS l ON l.lang_code = a.language LEFT JOIN has_users AS uc ON uc.id=a.checked_out LEFT JOIN has_viewlevels AS ag ON ag.id = a.access LEFT JOIN has_users AS ua ON ua.id = a.created_user_id LEFT JOIN has_fields_groups AS g ON g.id = a.group_id LEFT JOIN `has_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform AND `a`.`language` IN (:preparedArray8,:preparedArray9) ORDER BY a.ordering ASC949μs4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `alias` FROM `has_content` WHERE `id` = :id7.97ms1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `has_content` WHERE `id` = :id1.77ms1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `has_modules` AS `m` LEFT JOIN `has_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `has_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) AND `m`.`language` IN (:preparedArray3,:preparedArray4) ORDER BY `m`.`position`,`m`.`ordering`35.57ms180.84KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`catid`,`a`.`language`, CASE WHEN CHAR_LENGTH(`a`.`alias`) != 0 THEN CONCAT_WS(':', `a`.`id`, `a`.`alias`) ELSE a.id END AS `slug`, CASE WHEN CHAR_LENGTH(`cc`.`alias`) != 0 THEN CONCAT_WS(':', `cc`.`id`, `cc`.`alias`) ELSE cc.id END AS `catslug` FROM `has_content` AS `a` LEFT JOIN `has_categories` AS `cc` ON `cc`.`id` = `a`.`catid` WHERE `a`.`catid` = :catid AND `a`.`state` = :state AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND (`publish_up` IS NULL OR `publish_up` <= :nowDate1) AND (`publish_down` IS NULL OR `publish_down` >= :nowDate2) AND `a`.`language` IN (:preparedArray3,:preparedArray4) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC133ms161.75KBParams/plugins/content/pagenavigation/src/Extension/PageNavigation.php:188Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `has_categories` AS `s` INNER JOIN `has_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`8.49ms3.98KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT custom_data FROM has_extensions WHERE element = 'yootheme' AND folder = 'system' LIMIT 1227μs536B/templates/yootheme/packages/platform-joomla/src/Storage.php:30Copy
  • SELECT `language`,`id` FROM `has_menu` WHERE `home` = '1' AND `published` = 1 AND `client_id` = 02.18ms704B/libraries/src/Language/Multilanguage.php:123Copy
  • SELECT `alias` FROM `has_content` WHERE `id` = :id3.97ms1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `has_content` WHERE `id` = :id5.04ms1.31KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c2`.`language`,CONCAT_WS(':', `c2`.`id`, `c2`.`alias`) AS `id`,CONCAT_WS(':', `ca`.`id`, `ca`.`alias`) AS `catid` FROM `has_content` AS `c` INNER JOIN `has_associations` AS `a` ON `a`.`id` = `c`.`id` AND `a`.`context` = :context INNER JOIN `has_associations` AS `a2` ON `a`.`key` = `a2`.`key` INNER JOIN `has_content` AS `c2` ON `a2`.`id` = `c2`.`id` INNER JOIN `has_categories` AS `ca` ON `c2`.`catid` = `ca`.`id` AND `ca`.`extension` = :extension2 WHERE `c`.`id` = :id AND c2.access IN (1,5) AND c2.language != 'en-GB' AND (c2.publish_up IS NULL OR c2.publish_up <= '2025-02-23 03:24:31') AND (c2.publish_down IS NULL OR c2.publish_down >= '2025-02-23 03:24:31') AND c2.state = 111.14ms4KBParams/libraries/src/Language/Associations.php:145Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END AS `publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`metadata`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`featured`,`a`.`language`,LENGTH(`a`.`fulltext`) AS `readmore`,`a`.`ordering`,`fp`.`featured_up`,`fp`.`featured_down`,CASE WHEN `c`.`published` = 2 AND `a`.`state` > 0 THEN 2 WHEN `c`.`published` != 1 THEN 0 ELSE `a`.`state` END AS `state`,`c`.`title` AS `category_title`,`c`.`path` AS `category_route`,`c`.`access` AS `category_access`,`c`.`alias` AS `category_alias`,`c`.`language` AS `category_language`,`c`.`published`,`c`.`published` AS `parents_published`,`c`.`lft`,CASE WHEN `a`.`created_by_alias` > ' ' THEN `a`.`created_by_alias` ELSE `ua`.`name` END AS `author`,`ua`.`email` AS `author_email`,`uam`.`name` AS `modified_by_name`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,COALESCE(NULLIF(ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1), 0), 0) AS `rating`,COALESCE(NULLIF(`v`.`rating_count`, 0), 0) AS `rating_count` FROM `has_content` AS `a` LEFT JOIN `has_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `has_users` AS `ua` ON `ua`.`id` = `a`.`created_by` LEFT JOIN `has_users` AS `uam` ON `uam`.`id` = `a`.`modified_by` LEFT JOIN `has_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `has_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `has_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE `a`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`access` IN (:preparedArray3,:preparedArray4) AND `c`.`published` = 1 AND `a`.`state` = :condition AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`language` IN (:preparedArray5,:preparedArray6) ORDER BY RAND() ASC LIMIT 10228ms167.16KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT MAX(`tag_id`) AS `tag_id`,COUNT(*) AS `count`,MAX(`t`.`title`) AS `title`,MAX(`t`.`access`) AS `access`,MAX(`t`.`alias`) AS `alias`,MAX(`t`.`params`) AS `params`,MAX(`t`.`language`) AS `language` FROM `has_contentitem_tag_map` AS `m` INNER JOIN `has_ucm_content` AS `ucm` ON `m`.`content_item_id` = `ucm`.`core_content_item_id` AND `m`.`type_id` = `ucm`.`core_type_id` INNER JOIN `has_categories` AS `cat` ON `ucm`.`core_catid` = `cat`.`id` INNER JOIN `has_tags` AS `t` ON `tag_id` = `t`.`id` INNER JOIN `has_ucm_content` AS `c` ON `m`.`core_content_id` = `c`.`core_content_id` WHERE `t`.`access` IN (:preparedArray1,:preparedArray2) AND `t`.`published` = 1 AND `cat`.`published` > 0 AND `t`.`language` IN (:preparedArray3,:preparedArray4) AND `m`.`type_alias` = `c`.`core_type_alias` AND `c`.`core_state` = 1 AND (`c`.`core_access` IN (:preparedArray5,:preparedArray6) OR `c`.`core_access` = 0) AND (`c`.`core_publish_up` IS NULL OR `c`.`core_publish_up` = :nullDate2 OR `c`.`core_publish_up` <= :nowDate2) AND (`c`.`core_publish_down` IS NULL OR `c`.`core_publish_down` = :nullDate3 OR `c`.`core_publish_down` >= :nowDate3) GROUP BY `tag_id`,`t`.`title`,`t`.`access`,`t`.`alias` ORDER BY RAND() LIMIT 15102ms2.75KBParams/modules/mod_tags_popular/src/Helper/TagsPopularHelper.php:183Copy
  • SELECT `c2`.`language`,`c2`.`id` FROM `has_menu` AS `c` INNER JOIN `has_associations` AS `a` ON `a`.`id` = `c`.`id` AND `a`.`context` = :context INNER JOIN `has_associations` AS `a2` ON `a`.`key` = `a2`.`key` INNER JOIN `has_menu` AS `c2` ON `a2`.`id` = `c2`.`id` WHERE `c`.`id` = :id308μs1.44KBParams/libraries/src/Language/Associations.php:145Copy
  • SELECT `name`,`element` FROM `has_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1229μs640B/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `has_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)160μs584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM has_fields AS a LEFT JOIN `has_languages` AS l ON l.lang_code = a.language LEFT JOIN has_users AS uc ON uc.id=a.checked_out LEFT JOIN has_viewlevels AS ag ON ag.id = a.access LEFT JOIN has_users AS ua ON ua.id = a.created_user_id LEFT JOIN has_fields_groups AS g ON g.id = a.group_id WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1,:preparedArray2)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray3,:preparedArray4)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform AND `a`.`language` IN (:preparedArray5,:preparedArray6) ORDER BY a.ordering ASC857μs4.75KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `title` FROM `has_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)145μs584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `has_scheduler_tasks` AS `a` WHERE `a`.`state` = 11.5ms1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `has_session` WHERE `session_id` = ?77μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `has_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?1.23ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy