expo-calendar 15.1.0-canary-20251216-3f01dbf → 15.1.0-canary-20251230-fc48ddc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/src/main/java/expo/modules/calendar/next/records/EventRecord.kt +2 -1
  3. package/android/src/main/java/expo/modules/calendar/next/utils/CalendarNextUtils.kt +27 -1
  4. package/expo-module.config.json +1 -1
  5. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf-sources.jar → 15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc-sources.jar} +0 -0
  6. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc-sources.jar.md5 +1 -0
  7. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc-sources.jar.sha1 +1 -0
  8. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc-sources.jar.sha256 +1 -0
  9. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc-sources.jar.sha512 +1 -0
  10. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.aar +0 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.aar.md5 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.aar.sha1 +1 -0
  13. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.aar.sha256 +1 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.aar.sha512 +1 -0
  15. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.module → 15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.module} +22 -22
  16. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.module.md5 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.module.sha1 +1 -0
  18. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.module.sha256 +1 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.module.sha512 +1 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.pom → 15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.pom} +1 -1
  21. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.pom.md5 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.pom.sha1 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.pom.sha256 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251230-fc48ddc/expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.pom.sha512 +1 -0
  25. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml +4 -4
  26. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.md5 +1 -1
  27. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.sha1 +1 -1
  28. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.sha256 +1 -1
  29. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.sha512 +1 -1
  30. package/package.json +3 -3
  31. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf-sources.jar.md5 +0 -1
  32. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf-sources.jar.sha1 +0 -1
  33. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf-sources.jar.sha256 +0 -1
  34. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf-sources.jar.sha512 +0 -1
  35. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.aar +0 -0
  36. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.aar.md5 +0 -1
  37. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.aar.sha1 +0 -1
  38. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.aar.sha256 +0 -1
  39. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.aar.sha512 +0 -1
  40. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.module.md5 +0 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.module.sha1 +0 -1
  42. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.module.sha256 +0 -1
  43. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.module.sha512 +0 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.pom.md5 +0 -1
  45. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.pom.sha1 +0 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.pom.sha256 +0 -1
  47. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/15.1.0-canary-20251216-3f01dbf/expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.pom.sha512 +0 -1
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '15.1.0-canary-20251216-3f01dbf'
7
+ version = '15.1.0-canary-20251230-fc48ddc'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.calendar"
11
11
  defaultConfig {
12
12
  versionCode 17
13
- versionName '15.1.0-canary-20251216-3f01dbf'
13
+ versionName '15.1.0-canary-20251230-fc48ddc'
14
14
  }
15
15
  }
16
16
 
@@ -2,6 +2,7 @@ package expo.modules.calendar.next.records
2
2
 
3
3
  import android.provider.CalendarContract
4
4
  import expo.modules.calendar.domain.event.enums.Availability
5
+ import expo.modules.calendar.next.utils.parseRrDate
5
6
  import expo.modules.calendar.next.utils.rrFormat
6
7
  import expo.modules.calendar.next.utils.sdf
7
8
  import expo.modules.kotlin.records.Field
@@ -99,7 +100,7 @@ data class RecurrenceRuleRecord(
99
100
  return RecurrenceRuleRecord(
100
101
  endDate = ruleMap["UNTIL"]
101
102
  ?.takeIf { it.isNotBlank() }
102
- ?.let { rrFormat.parse(it) }
103
+ ?.let { parseRrDate(it) }
103
104
  ?.let { sdf.format(it) },
104
105
  frequency = ruleMap["FREQ"]?.lowercase(Locale.getDefault()),
105
106
  interval = ruleMap["INTERVAL"]?.toIntOrNull(),
@@ -11,11 +11,37 @@ import expo.modules.calendar.next.exceptions.EventDateTimeInvalidException
11
11
  import java.text.SimpleDateFormat
12
12
  import kotlinx.coroutines.Dispatchers
13
13
  import kotlinx.coroutines.withContext
14
+ import java.util.Date
14
15
 
15
16
  val sdf = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").apply {
16
17
  timeZone = TimeZone.getTimeZone("GMT")
17
18
  }
18
- val rrFormat = SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'")
19
+
20
+ /**
21
+ * [SimpleDateFormat] used in native recurrence rule string.
22
+ * The format corresponds to the 'date-time' type defined by RFC-5455 section 3.3.5.
23
+ */
24
+ val rrFormat = SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'").apply {
25
+ timeZone = TimeZone.getTimeZone("GMT")
26
+ }
27
+
28
+ /**
29
+ * [SimpleDateFormat] used in native recurrence rule string for all-day events.
30
+ * The format corresponds to the 'date' type defined by RFC-5455 section 3.3.4.
31
+ */
32
+ val allDayRrFormat = SimpleDateFormat("yyyyMMdd").apply {
33
+ timeZone = TimeZone.getTimeZone("GMT")
34
+ }
35
+
36
+ /**
37
+ * @param dateString RFC-5455 date or date-time string (RFC sections 3.3.4 and 3.3.5).
38
+ */
39
+ fun parseRrDate(dateString: String): Date? =
40
+ runCatching {
41
+ rrFormat.parse(dateString)
42
+ }.recover {
43
+ allDayRrFormat.parse(dateString)
44
+ }.getOrNull()
19
45
 
20
46
  suspend fun findEvents(contentResolver: ContentResolver, startDate: Any, endDate: Any, calendars: List<String>): Cursor {
21
47
  return withContext(Dispatchers.IO) {
@@ -11,7 +11,7 @@
11
11
  "publication": {
12
12
  "groupId": "host.exp.exponent",
13
13
  "artifactId": "expo.modules.calendar",
14
- "version": "15.1.0-canary-20251216-3f01dbf",
14
+ "version": "15.1.0-canary-20251230-fc48ddc",
15
15
  "repository": "local-maven-repo"
16
16
  }
17
17
  }
@@ -0,0 +1 @@
1
+ 50a767009697cf54f4856cf1378df2b823f61c1f5b9b15a8c9ebb423576cf24ed31e26761769d61d0cc6498c914e2fb71b780e398c4dca5361ec509eced67cf6
@@ -0,0 +1 @@
1
+ 6aa46098ce9dd8e6c4d87d85f9212711b9455efa87a23e5aab18eb2665d0e9a68044812240dc6c2b4529dd3db9c58876bb3050d2ca417210404cc467ba8cfabe
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.calendar",
6
- "version": "15.1.0-canary-20251216-3f01dbf",
6
+ "version": "15.1.0-canary-20251230-fc48ddc",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -24,13 +24,13 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.aar",
28
- "url": "expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.aar",
29
- "size": 507576,
30
- "sha512": "a9502afdcc5ed3f6a9522883047adee116b44c0976df4febeb44e092a16421264f13b1527406869008d0ba0f4b6980cd01c6b65e56e8d1373ca870309cb1a1eb",
31
- "sha256": "5587954bf22f221056b8a376e4f25c7d884bca06285675177b6ed57f86fce4d3",
32
- "sha1": "54650a91ab201d85518bc42dd56ff89730573b8e",
33
- "md5": "4f6427111b5edfa31238971123b04ac0"
27
+ "name": "expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.aar",
28
+ "url": "expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.aar",
29
+ "size": 508090,
30
+ "sha512": "6aa46098ce9dd8e6c4d87d85f9212711b9455efa87a23e5aab18eb2665d0e9a68044812240dc6c2b4529dd3db9c58876bb3050d2ca417210404cc467ba8cfabe",
31
+ "sha256": "ef213c84c4fab0739b11c344e5ebed88095abad425ec929e27634b037aeda6ef",
32
+ "sha1": "da129ebb3864fbb697c6a79a4cb729a541db77b3",
33
+ "md5": "543df03bb85320434de87f25e26f723c"
34
34
  }
35
35
  ]
36
36
  },
@@ -67,13 +67,13 @@
67
67
  ],
68
68
  "files": [
69
69
  {
70
- "name": "expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.aar",
71
- "url": "expo.modules.calendar-15.1.0-canary-20251216-3f01dbf.aar",
72
- "size": 507576,
73
- "sha512": "a9502afdcc5ed3f6a9522883047adee116b44c0976df4febeb44e092a16421264f13b1527406869008d0ba0f4b6980cd01c6b65e56e8d1373ca870309cb1a1eb",
74
- "sha256": "5587954bf22f221056b8a376e4f25c7d884bca06285675177b6ed57f86fce4d3",
75
- "sha1": "54650a91ab201d85518bc42dd56ff89730573b8e",
76
- "md5": "4f6427111b5edfa31238971123b04ac0"
70
+ "name": "expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.aar",
71
+ "url": "expo.modules.calendar-15.1.0-canary-20251230-fc48ddc.aar",
72
+ "size": 508090,
73
+ "sha512": "6aa46098ce9dd8e6c4d87d85f9212711b9455efa87a23e5aab18eb2665d0e9a68044812240dc6c2b4529dd3db9c58876bb3050d2ca417210404cc467ba8cfabe",
74
+ "sha256": "ef213c84c4fab0739b11c344e5ebed88095abad425ec929e27634b037aeda6ef",
75
+ "sha1": "da129ebb3864fbb697c6a79a4cb729a541db77b3",
76
+ "md5": "543df03bb85320434de87f25e26f723c"
77
77
  }
78
78
  ]
79
79
  },
@@ -87,13 +87,13 @@
87
87
  },
88
88
  "files": [
89
89
  {
90
- "name": "expo.modules.calendar-15.1.0-canary-20251216-3f01dbf-sources.jar",
91
- "url": "expo.modules.calendar-15.1.0-canary-20251216-3f01dbf-sources.jar",
92
- "size": 53734,
93
- "sha512": "109df9a383a035eac8ddc46a7a71d00c50ba28455b37cfee1462477806162b731527eff058421aff237ee964c3636eb1b94a4bfaf0c1dc50438f7c9c1d25e6e0",
94
- "sha256": "c59d3c2f945d80706d7c6c4962a23084470539607d802ddf552049b60455c8ef",
95
- "sha1": "8d2f6a402e20eb02622552181092c1a988ba2a7a",
96
- "md5": "fe16582699a9daa0cc639fbd9a727da9"
90
+ "name": "expo.modules.calendar-15.1.0-canary-20251230-fc48ddc-sources.jar",
91
+ "url": "expo.modules.calendar-15.1.0-canary-20251230-fc48ddc-sources.jar",
92
+ "size": 53972,
93
+ "sha512": "50a767009697cf54f4856cf1378df2b823f61c1f5b9b15a8c9ebb423576cf24ed31e26761769d61d0cc6498c914e2fb71b780e398c4dca5361ec509eced67cf6",
94
+ "sha256": "972d33bb46b60556f3b6ae8b1635833919af0dc1050788a2e22fc653878549a8",
95
+ "sha1": "62fbcf8b71a890dbbe2e5a5aec64e2938132879b",
96
+ "md5": "5c58e103193b5c717095a638449262d1"
97
97
  }
98
98
  ]
99
99
  }
@@ -0,0 +1 @@
1
+ a63768410855454b61d2369966f59c5ee2a8ab581308381ae8b175c18fa3b13eb49e171a159651696913f0e405bde55011c542b3c5494c691ca84c3f8903b80b
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.calendar</artifactId>
12
- <version>15.1.0-canary-20251216-3f01dbf</version>
12
+ <version>15.1.0-canary-20251230-fc48ddc</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.calendar</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ 07d3efe4207a844ce560e73c9a1bdc2450adabfe930d0c619b8a0d8392f526ebc030855f63b8b36f6a017cbb538336ce4336ac72db004193bdd4b4f91e8406a6
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.calendar</artifactId>
5
5
  <versioning>
6
- <latest>15.1.0-canary-20251216-3f01dbf</latest>
7
- <release>15.1.0-canary-20251216-3f01dbf</release>
6
+ <latest>15.1.0-canary-20251230-fc48ddc</latest>
7
+ <release>15.1.0-canary-20251230-fc48ddc</release>
8
8
  <versions>
9
- <version>15.1.0-canary-20251216-3f01dbf</version>
9
+ <version>15.1.0-canary-20251230-fc48ddc</version>
10
10
  </versions>
11
- <lastUpdated>20251216100810</lastUpdated>
11
+ <lastUpdated>20251230163103</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 8b2686a82bc2fa4d0f991d69393aff39
1
+ 7881471a1c49162b9af9d4da548b5b1f
@@ -1 +1 @@
1
- ea2d6b557fae2eeaa0b10dcd892944a262b31011
1
+ 40e78dc8838023f3f04524cf79be5d450b62f284
@@ -1 +1 @@
1
- 27b0f3db9c84ef78127ffc5a4f8aced8be7803c25e5402c41adc133ae7e6963d
1
+ 864580534d4d3b8d30daf4d04889401af1788eddb29a7652033aad3d36d167ff
@@ -1 +1 @@
1
- ad5cfe66517d367cdb22bb662a4b93554ab4973c48740bddf65f20bc541dc01192ca8b9643acc6d950a116ff845c768c82a0fdf3911ad901f35430f2dfe2444e
1
+ e46a147223a586d65252e47b397a8ff9281ef2bf2a869f87e3ead3b0682affe764c7a46111bd2deb1c101bafe4c9275f5fcb0a4d8f9fb6c1198791caf366f058
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-calendar",
3
- "version": "15.1.0-canary-20251216-3f01dbf",
3
+ "version": "15.1.0-canary-20251230-fc48ddc",
4
4
  "description": "Provides an API for interacting with the device's system calendars, events, reminders, and associated records.",
5
5
  "main": "build/Calendar.js",
6
6
  "types": "build/Calendar.d.ts",
@@ -35,10 +35,10 @@
35
35
  "preset": "expo-module-scripts"
36
36
  },
37
37
  "devDependencies": {
38
- "expo-module-scripts": "5.1.0-canary-20251216-3f01dbf"
38
+ "expo-module-scripts": "5.1.0-canary-20251230-fc48ddc"
39
39
  },
40
40
  "peerDependencies": {
41
- "expo": "55.0.0-canary-20251216-3f01dbf",
41
+ "expo": "55.0.0-canary-20251230-fc48ddc",
42
42
  "react-native": "*"
43
43
  }
44
44
  }
@@ -1 +0,0 @@
1
- 109df9a383a035eac8ddc46a7a71d00c50ba28455b37cfee1462477806162b731527eff058421aff237ee964c3636eb1b94a4bfaf0c1dc50438f7c9c1d25e6e0
@@ -1 +0,0 @@
1
- a9502afdcc5ed3f6a9522883047adee116b44c0976df4febeb44e092a16421264f13b1527406869008d0ba0f4b6980cd01c6b65e56e8d1373ca870309cb1a1eb
@@ -1 +0,0 @@
1
- d27716c5699a42dcd37466269a34ef31b60d10d5bd6977a8024cd4630462b70f6e0e23fe32ff28355aecefd0cc85edae8067148f1b818a357af3e51957731d5c
@@ -1 +0,0 @@
1
- 5ea07da2b486ad6f4ffbf37d26b116e8ea511e14eb6d20134b396b3e633e5884e4979d277fcd8bf17e3a9fa6319f30f4d9cfc09bd23e805debac0b7d6f477025