We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Update Denmark holidays
I've received an email with a link to https://www.norden.org/en/info-norden/public-holidays-denmark

The author complained about absence of June 5th in the list of holiday dates:

> The calendar for Denmark does not include 5 June.

Denmark holidays need to be extended using categories approach.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `holidays/countries/denmark.py`
Content:
```
1 #  python-holidays
2 #  ---------------
3 #  A fast, efficient Python library for generating country, province and state
4 #  specific sets of holidays on the fly. It aims to make determining whether a
5 #  specific date is a holiday as fast and flexible as possible.
6 #
7 #  Authors: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
8 #           ryanss <ryanssdev@icloud.com> (c) 2014-2017
9 #  Website: https://github.com/dr-prodigy/python-holidays
10 #  License: MIT (see LICENSE file)
11 
12 from datetime import timedelta as td
13 from gettext import gettext as tr
14 
15 from holidays.groups import ChristianHolidays, InternationalHolidays
16 from holidays.holiday_base import HolidayBase
17 
18 
19 class Denmark(HolidayBase, ChristianHolidays, InternationalHolidays):
20     """
21     Denmark holidays.
22 
23     References:
24     - https://en.wikipedia.org/wiki/Public_holidays_in_Denmark
25     - https://www.ft.dk/samling/20222/lovforslag/l13/index.htm
26     """
27 
28     country = "DK"
29     default_language = "da"
30     supported_languages = ("da", "en_US", "uk")
31 
32     def __init__(self, *args, **kwargs):
33         ChristianHolidays.__init__(self)
34         InternationalHolidays.__init__(self)
35         super().__init__(*args, **kwargs)
36 
37     def _populate(self, year):
38         super()._populate(year)
39 
40         # New Year's Day.
41         self._add_new_years_day(tr("Nytårsdag"))
42 
43         # Holy Thursday.
44         self._add_holy_thursday(tr("Skærtorsdag"))
45 
46         # Good Friday.
47         self._add_good_friday(tr("Langfredag"))
48 
49         # Easter Sunday.
50         self._add_easter_sunday(tr("Påskedag"))
51 
52         # Easter Monday.
53         self._add_easter_monday(tr("Anden påskedag"))
54 
55         # See https://www.ft.dk/samling/20222/lovforslag/l13/index.htm
56         if year <= 2023:
57             # Great Day of Prayers.
58             self._add_holiday(tr("Store bededag"), self._easter_sunday + td(days=+26))
59 
60         # Ascension Day.
61         self._add_ascension_thursday(tr("Kristi himmelfartsdag"))
62 
63         # Whit Sunday.
64         self._add_whit_sunday(tr("Pinsedag"))
65 
66         # Whit Monday.
67         self._add_whit_monday(tr("Anden pinsedag"))
68 
69         # Christmas Day.
70         self._add_christmas_day(tr("Juledag"))
71 
72         # Second Day of Christmas.
73         self._add_christmas_day_two(tr("Anden juledag"))
74 
75 
76 class DK(Denmark):
77     pass
78 
79 
80 class DNK(Denmark):
81     pass
82
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/holidays/countries/denmark.py b/holidays/countries/denmark.py
--- a/holidays/countries/denmark.py
+++ b/holidays/countries/denmark.py
@@ -12,6 +12,7 @@
 from datetime import timedelta as td
 from gettext import gettext as tr
 
+from holidays.constants import OPTIONAL, PUBLIC
 from holidays.groups import ChristianHolidays, InternationalHolidays
 from holidays.holiday_base import HolidayBase
 
@@ -22,11 +23,13 @@
 
     References:
     - https://en.wikipedia.org/wiki/Public_holidays_in_Denmark
+    - https://www.norden.org/en/info-norden/public-holidays-denmark
     - https://www.ft.dk/samling/20222/lovforslag/l13/index.htm
     """
 
     country = "DK"
     default_language = "da"
+    supported_categories = {OPTIONAL, PUBLIC}
     supported_languages = ("da", "en_US", "uk")
 
     def __init__(self, *args, **kwargs):
@@ -34,9 +37,7 @@
         InternationalHolidays.__init__(self)
         super().__init__(*args, **kwargs)
 
-    def _populate(self, year):
-        super()._populate(year)
-
+    def _populate_public_holidays(self):
         # New Year's Day.
         self._add_new_years_day(tr("Nytårsdag"))
 
@@ -53,7 +54,7 @@
         self._add_easter_monday(tr("Anden påskedag"))
 
         # See https://www.ft.dk/samling/20222/lovforslag/l13/index.htm
-        if year <= 2023:
+        if self._year <= 2023:
             # Great Day of Prayers.
             self._add_holiday(tr("Store bededag"), self._easter_sunday + td(days=+26))
 
@@ -72,6 +73,19 @@
         # Second Day of Christmas.
         self._add_christmas_day_two(tr("Anden juledag"))
 
+    def _populate_optional_holidays(self):
+        # International Workers' Day.
+        self._add_labor_day(tr("Arbejdernes kampdag"))
+
+        # Constitution Day.
+        self._add_holiday_jun_5(tr("Grundlovsdag"))
+
+        # Christmas Eve.
+        self._add_christmas_eve(tr("Juleaftensdag"))
+
+        # New Year's Eve.
+        self._add_new_years_eve(tr("Nytårsaften"))
+
 
 class DK(Denmark):
     pass

{"golden_diff": "diff --git a/holidays/countries/denmark.py b/holidays/countries/denmark.py\n--- a/holidays/countries/denmark.py\n+++ b/holidays/countries/denmark.py\n@@ -12,6 +12,7 @@\n from datetime import timedelta as td\n from gettext import gettext as tr\n \n+from holidays.constants import OPTIONAL, PUBLIC\n from holidays.groups import ChristianHolidays, InternationalHolidays\n from holidays.holiday_base import HolidayBase\n \n@@ -22,11 +23,13 @@\n \n     References:\n     - https://en.wikipedia.org/wiki/Public_holidays_in_Denmark\n+    - https://www.norden.org/en/info-norden/public-holidays-denmark\n     - https://www.ft.dk/samling/20222/lovforslag/l13/index.htm\n     \"\"\"\n \n     country = \"DK\"\n     default_language = \"da\"\n+    supported_categories = {OPTIONAL, PUBLIC}\n     supported_languages = (\"da\", \"en_US\", \"uk\")\n \n     def __init__(self, *args, **kwargs):\n@@ -34,9 +37,7 @@\n         InternationalHolidays.__init__(self)\n         super().__init__(*args, **kwargs)\n \n-    def _populate(self, year):\n-        super()._populate(year)\n-\n+    def _populate_public_holidays(self):\n         # New Year's Day.\n         self._add_new_years_day(tr(\"Nyt\u00e5rsdag\"))\n \n@@ -53,7 +54,7 @@\n         self._add_easter_monday(tr(\"Anden p\u00e5skedag\"))\n \n         # See https://www.ft.dk/samling/20222/lovforslag/l13/index.htm\n-        if year <= 2023:\n+        if self._year <= 2023:\n             # Great Day of Prayers.\n             self._add_holiday(tr(\"Store bededag\"), self._easter_sunday + td(days=+26))\n \n@@ -72,6 +73,19 @@\n         # Second Day of Christmas.\n         self._add_christmas_day_two(tr(\"Anden juledag\"))\n \n+    def _populate_optional_holidays(self):\n+        # International Workers' Day.\n+        self._add_labor_day(tr(\"Arbejdernes kampdag\"))\n+\n+        # Constitution Day.\n+        self._add_holiday_jun_5(tr(\"Grundlovsdag\"))\n+\n+        # Christmas Eve.\n+        self._add_christmas_eve(tr(\"Juleaftensdag\"))\n+\n+        # New Year's Eve.\n+        self._add_new_years_eve(tr(\"Nyt\u00e5rsaften\"))\n+\n \n class DK(Denmark):\n     pass\n", "issue": "Update Denmark holidays\nI've received an email with a link to https://www.norden.org/en/info-norden/public-holidays-denmark\r\n\r\nThe author complained about absence of June 5th in the list of holiday dates:\r\n\r\n> The calendar for Denmark does not include 5 June.\r\n\r\nDenmark holidays need to be extended using categories approach.\n", "before_files": [{"content": "#  python-holidays\n#  ---------------\n#  A fast, efficient Python library for generating country, province and state\n#  specific sets of holidays on the fly. It aims to make determining whether a\n#  specific date is a holiday as fast and flexible as possible.\n#\n#  Authors: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023\n#           ryanss <ryanssdev@icloud.com> (c) 2014-2017\n#  Website: https://github.com/dr-prodigy/python-holidays\n#  License: MIT (see LICENSE file)\n\nfrom datetime import timedelta as td\nfrom gettext import gettext as tr\n\nfrom holidays.groups import ChristianHolidays, InternationalHolidays\nfrom holidays.holiday_base import HolidayBase\n\n\nclass Denmark(HolidayBase, ChristianHolidays, InternationalHolidays):\n    \"\"\"\n    Denmark holidays.\n\n    References:\n    - https://en.wikipedia.org/wiki/Public_holidays_in_Denmark\n    - https://www.ft.dk/samling/20222/lovforslag/l13/index.htm\n    \"\"\"\n\n    country = \"DK\"\n    default_language = \"da\"\n    supported_languages = (\"da\", \"en_US\", \"uk\")\n\n    def __init__(self, *args, **kwargs):\n        ChristianHolidays.__init__(self)\n        InternationalHolidays.__init__(self)\n        super().__init__(*args, **kwargs)\n\n    def _populate(self, year):\n        super()._populate(year)\n\n        # New Year's Day.\n        self._add_new_years_day(tr(\"Nyt\u00e5rsdag\"))\n\n        # Holy Thursday.\n        self._add_holy_thursday(tr(\"Sk\u00e6rtorsdag\"))\n\n        # Good Friday.\n        self._add_good_friday(tr(\"Langfredag\"))\n\n        # Easter Sunday.\n        self._add_easter_sunday(tr(\"P\u00e5skedag\"))\n\n        # Easter Monday.\n        self._add_easter_monday(tr(\"Anden p\u00e5skedag\"))\n\n        # See https://www.ft.dk/samling/20222/lovforslag/l13/index.htm\n        if year <= 2023:\n            # Great Day of Prayers.\n            self._add_holiday(tr(\"Store bededag\"), self._easter_sunday + td(days=+26))\n\n        # Ascension Day.\n        self._add_ascension_thursday(tr(\"Kristi himmelfartsdag\"))\n\n        # Whit Sunday.\n        self._add_whit_sunday(tr(\"Pinsedag\"))\n\n        # Whit Monday.\n        self._add_whit_monday(tr(\"Anden pinsedag\"))\n\n        # Christmas Day.\n        self._add_christmas_day(tr(\"Juledag\"))\n\n        # Second Day of Christmas.\n        self._add_christmas_day_two(tr(\"Anden juledag\"))\n\n\nclass DK(Denmark):\n    pass\n\n\nclass DNK(Denmark):\n    pass\n", "path": "holidays/countries/denmark.py"}], "after_files": [{"content": "#  python-holidays\n#  ---------------\n#  A fast, efficient Python library for generating country, province and state\n#  specific sets of holidays on the fly. It aims to make determining whether a\n#  specific date is a holiday as fast and flexible as possible.\n#\n#  Authors: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023\n#           ryanss <ryanssdev@icloud.com> (c) 2014-2017\n#  Website: https://github.com/dr-prodigy/python-holidays\n#  License: MIT (see LICENSE file)\n\nfrom datetime import timedelta as td\nfrom gettext import gettext as tr\n\nfrom holidays.constants import OPTIONAL, PUBLIC\nfrom holidays.groups import ChristianHolidays, InternationalHolidays\nfrom holidays.holiday_base import HolidayBase\n\n\nclass Denmark(HolidayBase, ChristianHolidays, InternationalHolidays):\n    \"\"\"\n    Denmark holidays.\n\n    References:\n    - https://en.wikipedia.org/wiki/Public_holidays_in_Denmark\n    - https://www.norden.org/en/info-norden/public-holidays-denmark\n    - https://www.ft.dk/samling/20222/lovforslag/l13/index.htm\n    \"\"\"\n\n    country = \"DK\"\n    default_language = \"da\"\n    supported_categories = {OPTIONAL, PUBLIC}\n    supported_languages = (\"da\", \"en_US\", \"uk\")\n\n    def __init__(self, *args, **kwargs):\n        ChristianHolidays.__init__(self)\n        InternationalHolidays.__init__(self)\n        super().__init__(*args, **kwargs)\n\n    def _populate_public_holidays(self):\n        # New Year's Day.\n        self._add_new_years_day(tr(\"Nyt\u00e5rsdag\"))\n\n        # Holy Thursday.\n        self._add_holy_thursday(tr(\"Sk\u00e6rtorsdag\"))\n\n        # Good Friday.\n        self._add_good_friday(tr(\"Langfredag\"))\n\n        # Easter Sunday.\n        self._add_easter_sunday(tr(\"P\u00e5skedag\"))\n\n        # Easter Monday.\n        self._add_easter_monday(tr(\"Anden p\u00e5skedag\"))\n\n        # See https://www.ft.dk/samling/20222/lovforslag/l13/index.htm\n        if self._year <= 2023:\n            # Great Day of Prayers.\n            self._add_holiday(tr(\"Store bededag\"), self._easter_sunday + td(days=+26))\n\n        # Ascension Day.\n        self._add_ascension_thursday(tr(\"Kristi himmelfartsdag\"))\n\n        # Whit Sunday.\n        self._add_whit_sunday(tr(\"Pinsedag\"))\n\n        # Whit Monday.\n        self._add_whit_monday(tr(\"Anden pinsedag\"))\n\n        # Christmas Day.\n        self._add_christmas_day(tr(\"Juledag\"))\n\n        # Second Day of Christmas.\n        self._add_christmas_day_two(tr(\"Anden juledag\"))\n\n    def _populate_optional_holidays(self):\n        # International Workers' Day.\n        self._add_labor_day(tr(\"Arbejdernes kampdag\"))\n\n        # Constitution Day.\n        self._add_holiday_jun_5(tr(\"Grundlovsdag\"))\n\n        # Christmas Eve.\n        self._add_christmas_eve(tr(\"Juleaftensdag\"))\n\n        # New Year's Eve.\n        self._add_new_years_eve(tr(\"Nyt\u00e5rsaften\"))\n\n\nclass DK(Denmark):\n    pass\n\n\nclass DNK(Denmark):\n    pass\n", "path": "holidays/countries/denmark.py"}]}