Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mcs/class/corlib/System/TimeZoneInfo.WebAssembly.cs30
-rw-r--r--mcs/class/corlib/System/TimeZoneInfo.cs21
-rw-r--r--mcs/class/corlib/corlib.csproj13
-rw-r--r--mcs/class/corlib/corlib.dll.sources1
-rw-r--r--mcs/class/corlib/win32_build_corlib.dll.exclude.sources1
-rw-r--r--mcs/class/corlib/win32_monodroid_corlib.dll.exclude.sources1
-rw-r--r--mono/metadata/icall-decl.h4
-rw-r--r--mono/metadata/icall-def.h5
-rw-r--r--mono/metadata/icall.c15
-rw-r--r--sdks/wasm/Makefile30
-rw-r--r--sdks/wasm/runtime-tests.js39
-rw-r--r--sdks/wasm/src/driver.c24
-rw-r--r--sdks/wasm/tests/src/tzdtest.cs114
-rw-r--r--sdks/wasm/zoneinfo/mono-webassembly-zoneinfo-fs-smd.js.metadata1
-rw-r--r--sdks/wasm/zoneinfo/mono-webassembly-zoneinfo-fs.js199
-rw-r--r--sdks/wasm/zoneinfo/zoneinfo.databin0 -> 767577 bytes
16 files changed, 449 insertions, 49 deletions
diff --git a/mcs/class/corlib/System/TimeZoneInfo.WebAssembly.cs b/mcs/class/corlib/System/TimeZoneInfo.WebAssembly.cs
deleted file mode 100644
index e58cb8e5c21..00000000000
--- a/mcs/class/corlib/System/TimeZoneInfo.WebAssembly.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-#if WASM
-
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.IO;
-using System.Runtime.InteropServices;
-
-namespace System {
-
- public partial class TimeZoneInfo {
-
- static TimeZoneInfo CreateLocal ()
- {
- return TimeZoneInfo.Utc;
- }
-
- static TimeZoneInfo FindSystemTimeZoneByIdCore (string id)
- {
- throw new NotImplementedException ();
- }
-
- static void GetSystemTimeZonesCore (List<TimeZoneInfo> systemTimeZones)
- {
- }
- }
-}
-
-#endif
-
diff --git a/mcs/class/corlib/System/TimeZoneInfo.cs b/mcs/class/corlib/System/TimeZoneInfo.cs
index e41d897c017..fdc48336673 100644
--- a/mcs/class/corlib/System/TimeZoneInfo.cs
+++ b/mcs/class/corlib/System/TimeZoneInfo.cs
@@ -149,7 +149,11 @@ namespace System
return true;
}
-#if (!MONODROID && !MONOTOUCH && !XAMMAC && !WASM) || MOBILE_DESKTOP_HOST
+#if (!MONODROID && !MONOTOUCH && !XAMMAC) || MOBILE_DESKTOP_HOST
+#if WASM
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ extern static void mono_timezone_get_local_name (ref string name);
+#endif
static TimeZoneInfo CreateLocal ()
{
#if WIN_PLATFORM
@@ -164,7 +168,15 @@ namespace System
return GetLocalTimeZoneInfoWinRTFallback ();
}
#endif
-
+#if WASM
+ string localName = null;
+ mono_timezone_get_local_name (ref localName);
+ try {
+ return FindSystemTimeZoneByFileName (localName, Path.Combine (TimeZoneDirectory, localName));
+ } catch {
+ return Utc;
+ }
+#else
var tz = Environment.GetEnvironmentVariable ("TZ");
if (tz != null) {
if (tz == String.Empty)
@@ -192,6 +204,7 @@ namespace System
}
return Utc;
+#endif
}
static TimeZoneInfo FindSystemTimeZoneByIdCore (string id)
@@ -266,7 +279,11 @@ namespace System
}
}
#if LIBC
+#if WASM
+ const string DefaultTimeZoneDirectory = "/zoneinfo";
+#else
const string DefaultTimeZoneDirectory = "/usr/share/zoneinfo";
+#endif
static string timeZoneDirectory;
static string TimeZoneDirectory {
get {
diff --git a/mcs/class/corlib/corlib.csproj b/mcs/class/corlib/corlib.csproj
index 5d62786d32e..ab4310c65b8 100644
--- a/mcs/class/corlib/corlib.csproj
+++ b/mcs/class/corlib/corlib.csproj
@@ -2172,7 +2172,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
@@ -2527,7 +2526,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
@@ -2791,7 +2789,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
@@ -3047,7 +3044,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
@@ -3615,7 +3611,6 @@
<Compile Include="System\AndroidPlatform.cs" />
<Compile Include="System\Console.iOS.cs" />
<Compile Include="System\MarshalByRefObject.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
<Compile Include="corefx\Mono.SafePasswordHandle.Unix.cs" />
<Compile Include="corert\PreAllocatedOverlapped.platformnotsupported.cs" />
@@ -3872,7 +3867,6 @@
<Compile Include="System\AndroidPlatform.cs" />
<Compile Include="System\Console.iOS.cs" />
<Compile Include="System\MarshalByRefObject.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
<Compile Include="corefx\Mono.SafePasswordHandle.Unix.cs" />
<Compile Include="corert\PreAllocatedOverlapped.platformnotsupported.cs" />
@@ -4129,7 +4123,6 @@
<Compile Include="System\AndroidPlatform.cs" />
<Compile Include="System\Console.iOS.cs" />
<Compile Include="System\MarshalByRefObject.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
<Compile Include="corefx\Mono.SafePasswordHandle.Unix.cs" />
<Compile Include="corert\PreAllocatedOverlapped.platformnotsupported.cs" />
@@ -4381,7 +4374,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
@@ -4633,7 +4625,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
@@ -4885,7 +4876,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
@@ -5422,7 +5412,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
@@ -5678,7 +5667,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
@@ -5934,7 +5922,6 @@
<Compile Include="System\TimeZoneInfo.Android.cs" />
<Compile Include="System\TimeZoneInfo.MonoTouch.cs" />
<Compile Include="System\TimeZoneInfo.Serialization.cs" />
- <Compile Include="System\TimeZoneInfo.WebAssembly.cs" />
<Compile Include="System\TimeZoneInfo.WinRT.cs" />
<Compile Include="System\TimeZoneInfo.cs" />
<Compile Include="corefx\DriveInfoInternal.Unix.cs" />
diff --git a/mcs/class/corlib/corlib.dll.sources b/mcs/class/corlib/corlib.dll.sources
index 85ce092a173..e0040459b5d 100644
--- a/mcs/class/corlib/corlib.dll.sources
+++ b/mcs/class/corlib/corlib.dll.sources
@@ -136,7 +136,6 @@ corefx/TimeZoneInfo.cs
System/TimeZoneInfo.cs
System/TimeZoneInfo.Android.cs
System/TimeZoneInfo.MonoTouch.cs
-System/TimeZoneInfo.WebAssembly.cs
System/TimeZoneInfo.Serialization.cs
System/TimeZoneInfo.WinRT.cs
../../build/common/MonoTODOAttribute.cs
diff --git a/mcs/class/corlib/win32_build_corlib.dll.exclude.sources b/mcs/class/corlib/win32_build_corlib.dll.exclude.sources
index 94b0ce3521f..e252804be49 100644
--- a/mcs/class/corlib/win32_build_corlib.dll.exclude.sources
+++ b/mcs/class/corlib/win32_build_corlib.dll.exclude.sources
@@ -8,7 +8,6 @@ corefx/Mono.SafePasswordHandle.Unix.cs
System/TimeZoneInfo.Android.cs
System/TimeZoneInfo.MonoTouch.cs
-System/TimeZoneInfo.WebAssembly.cs
corefx/Interop.GetRandomBytes.Mono.cs
diff --git a/mcs/class/corlib/win32_monodroid_corlib.dll.exclude.sources b/mcs/class/corlib/win32_monodroid_corlib.dll.exclude.sources
index 3b782bfeaaa..52d1cf7812d 100644
--- a/mcs/class/corlib/win32_monodroid_corlib.dll.exclude.sources
+++ b/mcs/class/corlib/win32_monodroid_corlib.dll.exclude.sources
@@ -7,7 +7,6 @@ corefx/Mono.SafePasswordHandle.Unix.cs
../../../external/corefx/src/System.Security.Cryptography.X509Certificates/src/Microsoft/Win32/SafeHandles/SafePasswordHandle.Unix.cs
System/TimeZoneInfo.MonoTouch.cs
-System/TimeZoneInfo.WebAssembly.cs
System/TimeZoneInfo.Android.cs
corefx/Interop.GetRandomBytes.Mono.cs
diff --git a/mono/metadata/icall-decl.h b/mono/metadata/icall-decl.h
index 34e9e6547c8..ee95b4009c6 100644
--- a/mono/metadata/icall-decl.h
+++ b/mono/metadata/icall-decl.h
@@ -204,6 +204,10 @@ ICALL_EXPORT gint32 ves_icall_System_IO_Compression_DeflateStreamNative_ReadZStr
ICALL_EXPORT gint32 ves_icall_System_IO_Compression_DeflateStreamNative_WriteZStream (gpointer stream, gpointer buffer, gint32 length);
#endif
+#if defined(TARGET_WASM)
+ICALL_EXPORT void ves_icall_System_TimeZoneInfo_mono_timezone_get_local_name (MonoString result);
+#endif
+
#if defined(ENABLE_MONODROID)
ICALL_EXPORT gpointer ves_icall_System_Net_NetworkInformation_LinuxNetworkChange_CreateNLSocket (void);
ICALL_EXPORT gint32 ves_icall_System_Net_NetworkInformation_LinuxNetworkChange_ReadEvents (gpointer sock, gpointer buffer, gint32 count, gint32 size);
diff --git a/mono/metadata/icall-def.h b/mono/metadata/icall-def.h
index 05cc9bf7f15..5b003c65b32 100644
--- a/mono/metadata/icall-def.h
+++ b/mono/metadata/icall-def.h
@@ -1106,6 +1106,11 @@ ICALL_TYPE(WAITH, "System.Threading.WaitHandle", WAITH_1)
HANDLES(WAITH_1, "SignalAndWait_Internal", ves_icall_System_Threading_WaitHandle_SignalAndWait_Internal, gint32, 3, (gpointer, gpointer, gint32))
HANDLES(WAITH_2, "Wait_internal", ves_icall_System_Threading_WaitHandle_Wait_internal, gint32, 4, (gpointer_ptr, gint32, MonoBoolean, gint32))
+#if defined(TARGET_WASM)
+ICALL_TYPE(TZINFO, "System.TimeZoneInfo", TZINFO_1)
+NOHANDLES(ICALL(TZINFO_1, "mono_timezone_get_local_name", ves_icall_System_TimeZoneInfo_mono_timezone_get_local_name))
+#endif
+
ICALL_TYPE(TYPE, "System.Type", TYPE_1)
HANDLES(TYPE_1, "internal_from_handle", ves_icall_System_Type_internal_from_handle, MonoReflectionType, 1, (MonoType_ref))
diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c
index 3b8bfde6e7f..35ab2bb3422 100644
--- a/mono/metadata/icall.c
+++ b/mono/metadata/icall.c
@@ -8208,6 +8208,21 @@ ves_icall_System_IO_Compression_DeflateStreamNative_WriteZStream (gpointer strea
}
#endif
+
+#if defined(TARGET_WASM)
+G_EXTERN_C void mono_timezone_get_local_name (MonoString result);
+void
+ves_icall_System_TimeZoneInfo_mono_timezone_get_local_name (MonoString result)
+{
+ // MONO_CROSS_COMPILE returns undefined symbol "_mono_timezone_get_local_name"
+ // The icall offsets will be generated and linked at build time
+ // This is defined outside the runtime within the webassembly sdk
+#ifndef MONO_CROSS_COMPILE
+ return mono_timezone_get_local_name (result);
+#endif
+}
+#endif
+
#endif /* ENABLE_NETCORE */
#ifndef PLATFORM_NO_DRIVEINFO
diff --git a/sdks/wasm/Makefile b/sdks/wasm/Makefile
index cca2b009656..a7ff4c04dca 100644
--- a/sdks/wasm/Makefile
+++ b/sdks/wasm/Makefile
@@ -90,6 +90,8 @@ BROWSER_TEST_ASSETS = \
WASM_TESTS_SRC=$(TOP)/sdks/wasm/tests/src
WASM_TESTS_BIN=$(TOP)/sdks/wasm/bin
+TEST_SOURCE_DIR=$(TOP)/sdks/wasm/tests/src/
+
UNAME := $(shell uname -s)
ifeq ($(UNAME),Linux)
JSVU_OS=linux64
@@ -498,6 +500,34 @@ build-zlib-aot-hello: packager.exe $(WASM_TESTS_BIN)/zlibtest.exe
run-zlib-aot-hello: build-zlib-aot-hello
(cd bin/aot-zlib-sample && $(SM) runtime.js --run zlibtest.exe)
+# TimeZoneInfo tests
+
+$(TEST_SOURCE_DIR)/tzdtest.exe: $(TEST_SOURCE_DIR)/tzdtest.cs
+ $(CSC) $(CSC_FLAGS) -out:$@ $(BCL_DEPS) $(TEST_SOURCE_DIR)/tzdtest.cs
+
+run-tzd-sample: build-tzd-sample
+ (cd bin/tzdtest-sample && $(SM) runtime.js --enable-zoneinfo --run tzdtest.exe)
+
+build-tzd-sample: packager.exe $(TEST_SOURCE_DIR)/tzdtest.exe
+ mono packager.exe --nobinding --template=runtime-tests.js --out=bin/tzdtest-sample --copy=ifnewer --asset=zoneinfo/zoneinfo.data --asset=zoneinfo/mono-webassembly-zoneinfo-fs-smd.js.metadata $(TEST_SOURCE_DIR)/tzdtest.exe
+ cp -r /usr/share/zoneinfo ./bin/tzdtest-sample/zoneinfo
+
+build-tzd-interp-sample: packager.exe $(TEST_SOURCE_DIR)/tzdtest.exe
+ mono --debug packager.exe --emscripten-sdkdir=$(EMSCRIPTEN_SDK_DIR) --mono-sdkdir=$(TOP)/sdks/out --copy=ifnewer --asset=zoneinfo/zoneinfo.data --asset=zoneinfo/mono-webassembly-zoneinfo-fs-smd.js.metadata -appdir=bin/interp-tzd-sample --enable-fs --nobinding --builddir=obj/interp-tzd-sample --template=runtime-tests.js $(TEST_SOURCE_DIR)/tzdtest.exe --linker --link-icalls
+ ninja -v -C obj/interp-tzd-sample
+
+run-tzd-interp-sample: build-tzd-interp-sample
+ (cd bin/interp-tzd-sample && $(SM) runtime.js --enable-zoneinfo --run tzdtest.exe)
+
+build-tzd-aot-sample: packager.exe $(TEST_SOURCE_DIR)/tzdtest.exe
+ mono --debug packager.exe --emscripten-sdkdir=$(EMSCRIPTEN_SDK_DIR) --mono-sdkdir=$(TOP)/sdks/out -appdir=bin/aot-tzd-sample --enable-fs --nobinding --copy=ifnewer --asset=zoneinfo/zoneinfo.data --asset=zoneinfo/mono-webassembly-zoneinfo-fs-smd.js.metadata --builddir=obj/aot-tzd-sample --aot --template=runtime-tests.js $(TEST_SOURCE_DIR)/tzdtest.exe
+ ninja -v -C obj/aot-tzd-sample
+
+run-tzd-aot-sample: build-tzd-aot-sample
+ (cd bin/aot-tzd-sample && $(SM) runtime.js --enable-zoneinfo --run tzdtest.exe)
+
+# end TimeZoneInfo tests
+
build-mixed-sample: packager.exe hello.exe
$(PACKAGER) --emscripten-sdkdir=$(EMSCRIPTEN_SDK_DIR) --aot-interp --aot-assemblies=mscorlib --mono-sdkdir=$(TOP)/sdks/out -appdir=bin/mixed-sample --nobinding --builddir=obj/mixed-sample --template=runtime-tests.js hello.exe
ninja -v -C obj/mixed-sample
diff --git a/sdks/wasm/runtime-tests.js b/sdks/wasm/runtime-tests.js
index 7f3504a76e4..c42dff199b0 100644
--- a/sdks/wasm/runtime-tests.js
+++ b/sdks/wasm/runtime-tests.js
@@ -99,6 +99,7 @@ profilers = [];
setenv = {};
runtime_args = [];
enable_gc = false;
+enable_zoneinfo = false;
while (true) {
if (args [0].startsWith ("--profile=")) {
var arg = args [0].substring ("--profile=".length);
@@ -120,6 +121,9 @@ while (true) {
} else if (args [0] == "--enable-gc") {
enable_gc = true;
args = args.slice (1);
+ } else if (args [0] == "--enable-zoneinfo") {
+ enable_zoneinfo = true;
+ args = args.slice (1);
} else {
break;
}
@@ -154,7 +158,40 @@ var Module = {
var f = Module.cwrap ('mono_wasm_enable_on_demand_gc', 'void', []);
f ();
}
-
+ if (enable_zoneinfo) {
+ // Load the zoneinfo data into the VFS rooted at /zoneinfo
+ FS.mkdir("zoneinfo");
+ Module['FS_createPath']('/', 'zoneinfo', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Indian', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Atlantic', true, true);
+ Module['FS_createPath']('/zoneinfo', 'US', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Brazil', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Pacific', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Arctic', true, true);
+ Module['FS_createPath']('/zoneinfo', 'America', true, true);
+ Module['FS_createPath']('/zoneinfo/America', 'Indiana', true, true);
+ Module['FS_createPath']('/zoneinfo/America', 'Argentina', true, true);
+ Module['FS_createPath']('/zoneinfo/America', 'Kentucky', true, true);
+ Module['FS_createPath']('/zoneinfo/America', 'North_Dakota', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Australia', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Etc', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Asia', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Antarctica', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Europe', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Mexico', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Africa', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Chile', true, true);
+ Module['FS_createPath']('/zoneinfo', 'Canada', true, true);
+ var zoneInfoData = read ('zoneinfo.data', 'binary');
+ var metadata = JSON.parse(read ("mono-webassembly-zoneinfo-fs-smd.js.metadata", 'utf-8'));
+ var files = metadata.files;
+ for (var i = 0; i < files.length; ++i) {
+ var byteArray = zoneInfoData.subarray(files[i].start, files[i].end);
+ var stream = FS.open(files[i].filename, 'w+');
+ FS.write(stream, byteArray, 0, byteArray.length, 0);
+ FS.close(stream);
+ }
+ }
MONO.mono_load_runtime_and_bcl (
config.vfs_prefix,
config.deploy_prefix,
diff --git a/sdks/wasm/src/driver.c b/sdks/wasm/src/driver.c
index ae030b18b06..1a6ff36d448 100644
--- a/sdks/wasm/src/driver.c
+++ b/sdks/wasm/src/driver.c
@@ -733,3 +733,27 @@ mono_wasm_enable_on_demand_gc (void)
{
mono_wasm_enable_gc = 1;
}
+
+// Returns the local timezone default is UTC.
+EM_JS(size_t, mono_wasm_timezone_get_local_name, (),
+{
+ var res = "UTC";
+ try {
+ res = Intl.DateTimeFormat().resolvedOptions().timeZone;
+ } catch(e) {}
+
+ var buff = Module._malloc((res.length + 1) * 2);
+ stringToUTF16 (res, buff, (res.length + 1) * 2);
+ return buff;
+})
+
+void
+mono_timezone_get_local_name (MonoString *result)
+{
+ // WASM returns back an int pointer to a string UTF16 buffer.
+ // We then cast to `mono_unichar2*`. Returning `mono_unichar2*` from the JavaScript call will
+ // result in cast warnings from the compiler.
+ mono_unichar2 *tzd_local_name = (mono_unichar2*)mono_wasm_timezone_get_local_name ();
+ result = mono_string_from_utf16 (tzd_local_name);
+ free (tzd_local_name);
+}
diff --git a/sdks/wasm/tests/src/tzdtest.cs b/sdks/wasm/tests/src/tzdtest.cs
new file mode 100644
index 00000000000..b00070c694f
--- /dev/null
+++ b/sdks/wasm/tests/src/tzdtest.cs
@@ -0,0 +1,114 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+
+public class TZDTest {
+ static TimeZoneInfo _timeZoneInstance;
+ static string _timeZone;
+ public static void Main (String [] args)
+ {
+ var local = TimeZoneInfo.Local;
+ Console.WriteLine($"TimeZone: {local}");
+ var dt = DateTime.Now;
+ Console.WriteLine($"DateLocal: {dt}");
+ var utc = DateTime.UtcNow;
+ Console.WriteLine($"DateUTC: {utc}");
+
+ Console.WriteLine($"GetUserTime: {GetUserTime()}");
+ Console.WriteLine($"GetUtcUserTime: {GetUtcUserTime(dt)}");
+
+ DateTime localDate = DateTime.Now;
+ DateTime utcDate = DateTime.UtcNow;
+ String[] cultureNames = { "en-US", "en-GB", "fr-FR",
+ "de-DE", "ru-RU" } ;
+
+ foreach (var cultureName in cultureNames) {
+ var culture = new CultureInfo(cultureName);
+ Console.WriteLine("{0}:", culture.NativeName);
+ Console.WriteLine(" Local date and time: {0}, {1:G}",
+ localDate.ToString(culture), localDate.Kind);
+ Console.WriteLine(" UTC date and time: {0}, {1:G}\n",
+ utcDate.ToString(culture), utcDate.Kind);
+ }
+
+ var tzd = TimeZoneInfo.FindSystemTimeZoneById("US/Eastern");
+ Console.WriteLine($"TimeZone: {tzd}");
+
+ Console.WriteLine($"TimeZone: {TimeZoneInfo.FindSystemTimeZoneById("Pacific/Honolulu")}");
+
+ var tzs = TimeZoneInfo.GetSystemTimeZones();
+ foreach(var tzi in tzs)
+ {
+ Console.WriteLine(tzi);
+ }
+ }
+
+ /// <summary>
+ /// Returns a UTC time in the user's specified timezone.
+ /// </summary>
+ /// <param name="utcTime">The utc time to convert</param>
+ /// <param name="timeZoneName">Name of the timezone (Eastern Standard Time)</param>
+ /// <returns>New local time</returns>
+ public static DateTime GetUserTime(DateTime? utcTime = null)
+ {
+ if (utcTime == null)
+ utcTime = DateTime.UtcNow;
+
+ return TimeZoneInfo.ConvertTimeFromUtc(utcTime.Value, TimeZoneInstance);
+ }
+
+ /// <summary>
+ /// Converts local server time to the user's timezone and
+ /// returns the UTC date.
+ ///
+ /// Use this to convert user captured date inputs and convert
+ /// them to UTC.
+ ///
+ /// User input (their local time) comes in as local server time
+ /// -> convert to user's timezone from server time
+ /// -> convert to UTC
+ /// </summary>
+ /// <param name="localServerTime"></param>
+ /// <returns></returns>
+ public static DateTime GetUtcUserTime(DateTime? localServerTime)
+ {
+ if (localServerTime == null)
+ localServerTime = DateTime.Now;
+
+ return TimeZoneInfo.ConvertTime(localServerTime.Value, TimeZoneInstance).ToUniversalTime();
+ }
+
+ /// <summary>
+ /// The users TimeZone using .NET TimeZoneNames
+ /// </summary>
+ public static string TimeZone
+ {
+ get { return _timeZone; }
+ set
+ {
+ TimeZoneInstance = null;
+ _timeZone = value;
+ }
+ }
+ public static TimeZoneInfo TimeZoneInstance
+ {
+ get
+ {
+ if (_timeZoneInstance == null)
+ {
+ try
+ {
+ _timeZoneInstance = TimeZoneInfo.FindSystemTimeZoneById(TimeZone);
+ }
+ catch
+ {
+ TimeZone = "Pacific/Honolulu";
+ _timeZoneInstance = TimeZoneInfo.FindSystemTimeZoneById(TimeZone);
+ }
+ }
+ return _timeZoneInstance;
+ }
+ private set { _timeZoneInstance = value; }
+ }
+} \ No newline at end of file
diff --git a/sdks/wasm/zoneinfo/mono-webassembly-zoneinfo-fs-smd.js.metadata b/sdks/wasm/zoneinfo/mono-webassembly-zoneinfo-fs-smd.js.metadata
new file mode 100644
index 00000000000..d8784d221bc
--- /dev/null
+++ b/sdks/wasm/zoneinfo/mono-webassembly-zoneinfo-fs-smd.js.metadata
@@ -0,0 +1 @@
+{"files":[{"start":0,"audio":0,"end":2294,"filename":"/zoneinfo/CST6CDT"},{"start":2294,"audio":0,"end":4973,"filename":"/zoneinfo/Poland"},{"start":4973,"audio":0,"end":5282,"filename":"/zoneinfo/Kwajalein"},{"start":5282,"audio":0,"end":5400,"filename":"/zoneinfo/MST"},{"start":5400,"audio":0,"end":7834,"filename":"/zoneinfo/NZ"},{"start":7834,"audio":0,"end":7952,"filename":"/zoneinfo/Universal"},{"start":7952,"audio":0,"end":8593,"filename":"/zoneinfo/Libya"},{"start":8593,"audio":0,"end":10523,"filename":"/zoneinfo/Turkey"},{"start":10523,"audio":0,"end":12817,"filename":"/zoneinfo/EST5EDT"},{"start":12817,"audio":0,"end":12935,"filename":"/zoneinfo/Greenwich"},{"start":12935,"audio":0,"end":14982,"filename":"/zoneinfo/NZ-CHAT"},{"start":14982,"audio":0,"end":17084,"filename":"/zoneinfo/MET"},{"start":17084,"audio":0,"end":20539,"filename":"/zoneinfo/Portugal"},{"start":20539,"audio":0,"end":20657,"filename":"/zoneinfo/GMT-0"},{"start":20657,"audio":0,"end":22759,"filename":"/zoneinfo/CET"},{"start":22759,"audio":0,"end":26264,"filename":"/zoneinfo/Eire"},{"start":26264,"audio":0,"end":28558,"filename":"/zoneinfo/PST8PDT"},{"start":28558,"audio":0,"end":29039,"filename":"/zoneinfo/Jamaica"},{"start":29039,"audio":0,"end":29157,"filename":"/zoneinfo/GMT"},{"start":29157,"audio":0,"end":29275,"filename":"/zoneinfo/Zulu"},{"start":29275,"audio":0,"end":29567,"filename":"/zoneinfo/Japan"},{"start":29567,"audio":0,"end":30331,"filename":"/zoneinfo/ROC"},{"start":30331,"audio":0,"end":33992,"filename":"/zoneinfo/GB-Eire"},{"start":33992,"audio":0,"end":34637,"filename":"/zoneinfo/ROK"},{"start":34637,"audio":0,"end":34643,"filename":"/zoneinfo/version"},{"start":34643,"audio":0,"end":37070,"filename":"/zoneinfo/Navajo"},{"start":37070,"audio":0,"end":37454,"filename":"/zoneinfo/Singapore"},{"start":37454,"audio":0,"end":41115,"filename":"/zoneinfo/GB"},{"start":41115,"audio":0,"end":41233,"filename":"/zoneinfo/EST"},{"start":41233,"audio":0,"end":41351,"filename":"/zoneinfo/GMT0"},{"start":41351,"audio":0,"end":42568,"filename":"/zoneinfo/Hongkong"},{"start":42568,"audio":0,"end":43096,"filename":"/zoneinfo/PRC"},{"start":43096,"audio":0,"end":52872,"filename":"/zoneinfo/Iran"},{"start":52872,"audio":0,"end":55166,"filename":"/zoneinfo/MST7MDT"},{"start":55166,"audio":0,"end":57039,"filename":"/zoneinfo/WET"},{"start":57039,"audio":0,"end":58557,"filename":"/zoneinfo/W-SU"},{"start":58557,"audio":0,"end":58675,"filename":"/zoneinfo/UCT"},{"start":58675,"audio":0,"end":61086,"filename":"/zoneinfo/Cuba"},{"start":61086,"audio":0,"end":63032,"filename":"/zoneinfo/Egypt"},{"start":63032,"audio":0,"end":63150,"filename":"/zoneinfo/GMT+0"},{"start":63150,"audio":0,"end":65026,"filename":"/zoneinfo/EET"},{"start":65026,"audio":0,"end":74063,"filename":"/zoneinfo/Israel"},{"start":74063,"audio":0,"end":74181,"filename":"/zoneinfo/UTC"},{"start":74181,"audio":0,"end":74300,"filename":"/zoneinfo/HST"},{"start":74300,"audio":0,"end":75474,"filename":"/zoneinfo/Iceland"},{"start":75474,"audio":0,"end":75713,"filename":"/zoneinfo/Indian/Mauritius"},{"start":75713,"audio":0,"end":75910,"filename":"/zoneinfo/Indian/Chagos"},{"start":75910,"audio":0,"end":76181,"filename":"/zoneinfo/Indian/Mayotte"},{"start":76181,"audio":0,"end":76323,"filename":"/zoneinfo/Indian/Christmas"},{"start":76323,"audio":0,"end":76474,"filename":"/zoneinfo/Indian/Cocos"},{"start":76474,"audio":0,"end":76654,"filename":"/zoneinfo/Indian/Maldives"},{"start":76654,"audio":0,"end":76925,"filename":"/zoneinfo/Indian/Comoro"},{"start":76925,"audio":0,"end":77084,"filename":"/zoneinfo/Indian/Reunion"},{"start":77084,"audio":0,"end":77243,"filename":"/zoneinfo/Indian/Mahe"},{"start":77243,"audio":0,"end":77402,"filename":"/zoneinfo/Indian/Kerguelen"},{"start":77402,"audio":0,"end":77673,"filename":"/zoneinfo/Indian/Antananarivo"},{"start":77673,"audio":0,"end":79488,"filename":"/zoneinfo/Atlantic/Faroe"},{"start":79488,"audio":0,"end":81385,"filename":"/zoneinfo/Atlantic/Canary"},{"start":81385,"audio":0,"end":82596,"filename":"/zoneinfo/Atlantic/Stanley"},{"start":82596,"audio":0,"end":84586,"filename":"/zoneinfo/Atlantic/Bermuda"},{"start":84586,"audio":0,"end":84727,"filename":"/zoneinfo/Atlantic/South_Georgia"},{"start":84727,"audio":0,"end":84883,"filename":"/zoneinfo/Atlantic/St_Helena"},{"start":84883,"audio":0,"end":87108,"filename":"/zoneinfo/Atlantic/Jan_Mayen"},{"start":87108,"audio":0,"end":88923,"filename":"/zoneinfo/Atlantic/Faeroe"},{"start":88923,"audio":0,"end":90097,"filename":"/zoneinfo/Atlantic/Reykjavik"},{"start":90097,"audio":0,"end":90353,"filename":"/zoneinfo/Atlantic/Cape_Verde"},{"start":90353,"audio":0,"end":93806,"filename":"/zoneinfo/Atlantic/Azores"},{"start":93806,"audio":0,"end":97264,"filename":"/zoneinfo/Atlantic/Madeira"},{"start":97264,"audio":0,"end":99618,"filename":"/zoneinfo/US/Alaska"},{"start":99618,"audio":0,"end":102437,"filename":"/zoneinfo/US/Pacific"},{"start":102437,"audio":0,"end":105956,"filename":"/zoneinfo/US/Eastern"},{"start":105956,"audio":0,"end":108186,"filename":"/zoneinfo/US/Michigan"},{"start":108186,"audio":0,"end":108513,"filename":"/zoneinfo/US/Arizona"},{"start":108513,"audio":0,"end":110924,"filename":"/zoneinfo/US/Indiana-Starke"},{"start":110924,"audio":0,"end":113263,"filename":"/zoneinfo/US/Aleutian"},{"start":113263,"audio":0,"end":113575,"filename":"/zoneinfo/US/Hawaii"},{"start":113575,"audio":0,"end":115224,"filename":"/zoneinfo/US/East-Indiana"},{"start":115224,"audio":0,"end":118783,"filename":"/zoneinfo/US/Central"},{"start":118783,"audio":0,"end":121210,"filename":"/zoneinfo/US/Mountain"},{"start":121210,"audio":0,"end":121384,"filename":"/zoneinfo/US/Samoa"},{"start":121384,"audio":0,"end":122098,"filename":"/zoneinfo/Brazil/DeNoronha"},{"start":122098,"audio":0,"end":122732,"filename":"/zoneinfo/Brazil/Acre"},{"start":122732,"audio":0,"end":124174,"filename":"/zoneinfo/Brazil/East"},{"start":124174,"audio":0,"end":124776,"filename":"/zoneinfo/Brazil/West"},{"start":124776,"audio":0,"end":124941,"filename":"/zoneinfo/Pacific/Port_Moresby"},{"start":124941,"audio":0,"end":125197,"filename":"/zoneinfo/Pacific/Chuuk"},{"start":125197,"audio":0,"end":134244,"filename":"/zoneinfo/Pacific/Easter"},{"start":134244,"audio":0,"end":134553,"filename":"/zoneinfo/Pacific/Kwajalein"},{"start":134553,"audio":0,"end":134906,"filename":"/zoneinfo/Pacific/Tongatapu"},{"start":134906,"audio":0,"end":135162,"filename":"/zoneinfo/Pacific/Yap"},{"start":135162,"audio":0,"end":135305,"filename":"/zoneinfo/Pacific/Wallis"},{"start":135305,"audio":0,"end":136403,"filename":"/zoneinfo/Pacific/Apia"},{"start":136403,"audio":0,"end":137296,"filename":"/zoneinfo/Pacific/Norfolk"},{"start":137296,"audio":0,"end":137760,"filename":"/zoneinfo/Pacific/Efate"},{"start":137760,"audio":0,"end":145671,"filename":"/zoneinfo/Pacific/Fiji"},{"start":145671,"audio":0,"end":145814,"filename":"/zoneinfo/Pacific/Funafuti"},{"start":145814,"audio":0,"end":145973,"filename":"/zoneinfo/Pacific/Palau"},{"start":145973,"audio":0,"end":146472,"filename":"/zoneinfo/Pacific/Guam"},{"start":146472,"audio":0,"end":146971,"filename":"/zoneinfo/Pacific/Saipan"},{"start":146971,"audio":0,"end":147317,"filename":"/zoneinfo/Pacific/Kosrae"},{"start":147317,"audio":0,"end":147543,"filename":"/zoneinfo/Pacific/Niue"},{"start":147543,"audio":0,"end":147837,"filename":"/zoneinfo/Pacific/Ponape"},{"start":147837,"audio":0,"end":147980,"filename":"/zoneinfo/Pacific/Wake"},{"start":147980,"audio":0,"end":148220,"filename":"/zoneinfo/Pacific/Galapagos"},{"start":148220,"audio":0,"end":148532,"filename":"/zoneinfo/Pacific/Johnston"},{"start":148532,"audio":0,"end":148706,"filename":"/zoneinfo/Pacific/Midway"},{"start":148706,"audio":0,"end":148960,"filename":"/zoneinfo/Pacific/Nauru"},{"start":148960,"audio":0,"end":149120,"filename":"/zoneinfo/Pacific/Guadalcanal"},{"start":149120,"audio":0,"end":151167,"filename":"/zoneinfo/Pacific/Chatham"},{"start":151167,"audio":0,"end":153601,"filename":"/zoneinfo/Pacific/Auckland"},{"start":153601,"audio":0,"end":153901,"filename":"/zoneinfo/Pacific/Noumea"},{"start":153901,"audio":0,"end":154082,"filename":"/zoneinfo/Pacific/Fakaofo"},{"start":154082,"audio":0,"end":154241,"filename":"/zoneinfo/Pacific/Tahiti"},{"start":154241,"audio":0,"end":154399,"filename":"/zoneinfo/Pacific/Gambier"},{"start":154399,"audio":0,"end":154698,"filename":"/zoneinfo/Pacific/Majuro"},{"start":154698,"audio":0,"end":155010,"filename":"/zoneinfo/Pacific/Honolulu"},{"start":155010,"audio":0,"end":155304,"filename":"/zoneinfo/Pacific/Pohnpei"},{"start":155304,"audio":0,"end":155478,"filename":"/zoneinfo/Pacific/Pago_Pago"},{"start":155478,"audio":0,"end":155734,"filename":"/zoneinfo/Pacific/Truk"},{"start":155734,"audio":0,"end":155917,"filename":"/zoneinfo/Pacific/Pitcairn"},{"start":155917,"audio":0,"end":156084,"filename":"/zoneinfo/Pacific/Marquesas"},{"start":156084,"audio":0,"end":156339,"filename":"/zoneinfo/Pacific/Bougainville"},{"start":156339,"audio":0,"end":156482,"filename":"/zoneinfo/Pacific/Tarawa"},{"start":156482,"audio":0,"end":157044,"filename":"/zoneinfo/Pacific/Rarotonga"},{"start":157044,"audio":0,"end":157218,"filename":"/zoneinfo/Pacific/Samoa"},{"start":157218,"audio":0,"end":157441,"filename":"/zoneinfo/Pacific/Kiritimati"},{"start":157441,"audio":0,"end":157660,"filename":"/zoneinfo/Pacific/Enderbury"},{"start":157660,"audio":0,"end":159885,"filename":"/zoneinfo/Arctic/Longyearbyen"},{"start":159885,"audio":0,"end":160114,"filename":"/zoneinfo/America/Puerto_Rico"},{"start":160114,"audio":0,"end":160828,"filename":"/zoneinfo/America/Recife"},{"start":160828,"audio":0,"end":162744,"filename":"/zoneinfo/America/Resolute"},{"start":162744,"audio":0,"end":163346,"filename":"/zoneinfo/America/Manaus"},{"start":163346,"audio":0,"end":166865,"filename":"/zoneinfo/America/New_York"},{"start":166865,"audio":0,"end":168781,"filename":"/zoneinfo/America/Rankin_Inlet"},{"start":168781,"audio":0,"end":169176,"filename":"/zoneinfo/America/Lima"},{"start":169176,"audio":0,"end":169332,"filename":"/zoneinfo/America/St_Barthelemy"},{"start":169332,"audio":0,"end":169797,"filename":"/zoneinfo/America/Santo_Domingo"},{"start":169797,"audio":0,"end":172027,"filename":"/zoneinfo/America/Detroit"},{"start":172027,"audio":0,"end":172295,"filename":"/zoneinfo/America/Paramaribo"},{"start":172295,"audio":0,"end":174583,"filename":"/zoneinfo/America/Yakutat"},{"start":174583,"audio":0,"end":175187,"filename":"/zoneinfo/America/Santarem"},{"start":175187,"audio":0,"end":177058,"filename":"/zoneinfo/America/Punta_Arenas"},{"start":177058,"audio":0,"end":178960,"filename":"/zoneinfo/America/Scoresbysund"},{"start":178960,"audio":0,"end":188303,"filename":"/zoneinfo/America/Santiago"},{"start":188303,"audio":0,"end":188541,"filename":"/zoneinfo/America/Guyana"},{"start":188541,"audio":0,"end":188860,"filename":"/zoneinfo/America/Coral_Harbour"},{"start":188860,"audio":0,"end":189494,"filename":"/zoneinfo/America/Rio_Branco"},{"start":189494,"audio":0,"end":190128,"filename":"/zoneinfo/America/Porto_Acre"},{"start":190128,"audio":0,"end":192233,"filename":"/zoneinfo/America/Nipigon"},{"start":192233,"audio":0,"end":194565,"filename":"/zoneinfo/America/Edmonton"},{"start":194565,"audio":0,"end":194721,"filename":"/zoneinfo/America/Port_of_Spain"},{"start":194721,"audio":0,"end":194919,"filename":"/zoneinfo/America/Lower_Princes"},{"start":194919,"audio":0,"end":195075,"filename":"/zoneinfo/America/St_Thomas"},{"start":195075,"audio":0,"end":195367,"filename":"/zoneinfo/America/Guatemala"},{"start":195367,"audio":0,"end":196436,"filename":"/zoneinfo/America/Catamarca"},{"start":196436,"audio":0,"end":196592,"filename":"/zoneinfo/America/Antigua"},{"start":196592,"audio":0,"end":197166,"filename":"/zoneinfo/America/Porto_Velho"},{"start":197166,"audio":0,"end":198235,"filename":"/zoneinfo/America/Rosario"},{"start":198235,"audio":0,"end":201794,"filename":"/zoneinfo/America/Chicago"},{"start":201794,"audio":0,"end":202001,"filename":"/zoneinfo/America/Creston"},{"start":202001,"audio":0,"end":202438,"filename":"/zoneinfo/America/Managua"},{"start":202438,"audio":0,"end":204708,"filename":"/zoneinfo/America/Nassau"},{"start":204708,"audio":0,"end":204939,"filename":"/zoneinfo/America/Bogota"},{"start":204939,"audio":0,"end":205741,"filename":"/zoneinfo/America/Cancun"},{"start":205741,"audio":0,"end":207249,"filename":"/zoneinfo/America/Chihuahua"},{"start":207249,"audio":0,"end":208691,"filename":"/zoneinfo/America/Campo_Grande"},{"start":208691,"audio":0,"end":212115,"filename":"/zoneinfo/America/Halifax"},{"start":212115,"audio":0,"end":214492,"filename":"/zoneinfo/America/Boise"},{"start":214492,"audio":0,"end":217969,"filename":"/zoneinfo/America/Montreal"},{"start":217969,"audio":0,"end":221162,"filename":"/zoneinfo/America/Goose_Bay"},{"start":221162,"audio":0,"end":222604,"filename":"/zoneinfo/America/Sao_Paulo"},{"start":222604,"audio":0,"end":222885,"filename":"/zoneinfo/America/Blanc-Sablon"},{"start":222885,"audio":0,"end":223212,"filename":"/zoneinfo/America/Phoenix"},{"start":223212,"audio":0,"end":223531,"filename":"/zoneinfo/America/Atikokan"},{"start":223531,"audio":0,"end":223727,"filename":"/zoneinfo/America/Cayenne"},{"start":223727,"audio":0,"end":226069,"filename":"/zoneinfo/America/Santa_Isabel"},{"start":226069,"audio":0,"end":226699,"filename":"/zoneinfo/America/Boa_Vista"},{"start":226699,"audio":0,"end":228273,"filename":"/zoneinfo/America/Bahia_Banderas"},{"start":228273,"audio":0,"end":229922,"filename":"/zoneinfo/America/Indianapolis"},{"start":229922,"audio":0,"end":230078,"filename":"/zoneinfo/America/Dominica"},{"start":230078,"audio":0,"end":230295,"filename":"/zoneinfo/America/La_Paz"},{"start":230295,"audio":0,"end":232362,"filename":"/zoneinfo/America/Dawson"},{"start":232362,"audio":0,"end":235499,"filename":"/zoneinfo/America/Moncton"},{"start":235499,"audio":0,"end":236901,"filename":"/zoneinfo/America/Matamoros"},{"start":236901,"audio":0,"end":237057,"filename":"/zoneinfo/America/St_Vincent"},{"start":237057,"audio":0,"end":238037,"filename":"/zoneinfo/America/Regina"},{"start":238037,"audio":0,"end":240003,"filename":"/zoneinfo/America/Yellowknife"},{"start":240003,"audio":0,"end":242108,"filename":"/zoneinfo/America/Rainy_River"},{"start":242108,"audio":0,"end":242306,"filename":"/zoneinfo/America/Kralendijk"},{"start":242306,"audio":0,"end":243708,"filename":"/zoneinfo/America/Monterrey"},{"start":243708,"audio":0,"end":244189,"filename":"/zoneinfo/America/Jamaica"},{"start":244189,"audio":0,"end":246600,"filename":"/zoneinfo/America/Havana"},{"start":246600,"audio":0,"end":246864,"filename":"/zoneinfo/America/Tegucigalpa"},{"start":246864,"audio":0,"end":247095,"filename":"/zoneinfo/America/Guayaquil"},{"start":247095,"audio":0,"end":248501,"filename":"/zoneinfo/America/Metlakatla"},{"start":248501,"audio":0,"end":250051,"filename":"/zoneinfo/America/Mazatlan"},{"start":250051,"audio":0,"end":251015,"filename":"/zoneinfo/America/Belize"},{"start":251015,"audio":0,"end":253426,"filename":"/zoneinfo/America/Knox_IN"},{"start":253426,"audio":0,"end":254840,"filename":"/zoneinfo/America/Cuiaba"},{"start":254840,"audio":0,"end":256282,"filename":"/zoneinfo/America/Merida"},{"start":256282,"audio":0,"end":257323,"filename":"/zoneinfo/America/Jujuy"},{"start":257323,"audio":0,"end":257500,"filename":"/zoneinfo/America/Cayman"},{"start":257500,"audio":0,"end":258074,"filename":"/zoneinfo/America/Belem"},{"start":258074,"audio":0,"end":258736,"filename":"/zoneinfo/America/Eirunepe"},{"start":258736,"audio":0,"end":258892,"filename":"/zoneinfo/America/St_Lucia"},{"start":258892,"audio":0,"end":259914,"filename":"/zoneinfo/America/Bahia"},{"start":259914,"audio":0,"end":261981,"filename":"/zoneinfo/America/Whitehorse"},{"start":261981,"audio":0,"end":262137,"filename":"/zoneinfo/America/Tortola"},{"start":262137,"audio":0,"end":265012,"filename":"/zoneinfo/America/Vancouver"},{"start":265012,"audio":0,"end":266926,"filename":"/zoneinfo/America/Inuvik"},{"start":266926,"audio":0,"end":268355,"filename":"/zoneinfo/America/Port-au-Prince"},{"start":268355,"audio":0,"end":269069,"filename":"/zoneinfo/America/Fortaleza"},{"start":269069,"audio":0,"end":269783,"filename":"/zoneinfo/America/Noronha"},{"start":269783,"audio":0,"end":270852,"filename":"/zoneinfo/America/Buenos_Aires"},{"start":270852,"audio":0,"end":273671,"filename":"/zoneinfo/America/Los_Angeles"},{"start":273671,"audio":0,"end":273907,"filename":"/zoneinfo/America/El_Salvador"},{"start":273907,"audio":0,"end":276334,"filename":"/zoneinfo/America/Denver"},{"start":276334,"audio":0,"end":277983,"filename":"/zoneinfo/America/Fort_Wayne"},{"start":277983,"audio":0,"end":280175,"filename":"/zoneinfo/America/Glace_Bay"},{"start":280175,"audio":0,"end":280331,"filename":"/zoneinfo/America/Montserrat"},{"start":280331,"audio":0,"end":283808,"filename":"/zoneinfo/America/Toronto"},{"start":283808,"audio":0,"end":283985,"filename":"/zoneinfo/America/Panama"},{"start":283985,"audio":0,"end":285054,"filename":"/zoneinfo/America/Cordoba"},{"start":285054,"audio":0,"end":287809,"filename":"/zoneinfo/America/Louisville"},{"start":287809,"audio":0,"end":290151,"filename":"/zoneinfo/America/Ensenada"},{"start":290151,"audio":0,"end":292578,"filename":"/zoneinfo/America/Shiprock"},{"start":292578,"audio":0,"end":294086,"filename":"/zoneinfo/America/Ojinaga"},{"start":294086,"audio":0,"end":295600,"filename":"/zoneinfo/America/Thule"},{"start":295600,"audio":0,"end":295849,"filename":"/zoneinfo/America/Caracas"},{"start":295849,"audio":0,"end":296731,"filename":"/zoneinfo/America/Araguaina"},{"start":296731,"audio":0,"end":298815,"filename":"/zoneinfo/America/Cambridge_Bay"},{"start":298815,"audio":0,"end":301680,"filename":"/zoneinfo/America/Winnipeg"},{"start":301680,"audio":0,"end":303535,"filename":"/zoneinfo/America/Grand_Turk"},{"start":303535,"audio":0,"end":303691,"filename":"/zoneinfo/America/Virgin"},{"start":303691,"audio":0,"end":306045,"filename":"/zoneinfo/America/Anchorage"},{"start":306045,"audio":0,"end":306360,"filename":"/zoneinfo/America/Costa_Rica"},{"start":306360,"audio":0,"end":308710,"filename":"/zoneinfo/America/Nome"},{"start":308710,"audio":0,"end":308866,"filename":"/zoneinfo/America/Grenada"},{"start":308866,"audio":0,"end":312504,"filename":"/zoneinfo/America/St_Johns"},{"start":312504,"audio":0,"end":314843,"filename":"/zoneinfo/America/Atka"},{"start":314843,"audio":0,"end":316880,"filename":"/zoneinfo/America/Asuncion"},{"start":316880,"audio":0,"end":317320,"filename":"/zoneinfo/America/Hermosillo"},{"start":317320,"audio":0,"end":319662,"filename":"/zoneinfo/America/Tijuana"},{"start":319662,"audio":0,"end":319818,"filename":"/zoneinfo/America/Marigot"},{"start":319818,"audio":0,"end":322154,"filename":"/zoneinfo/America/Juneau"},{"start":322154,"audio":0,"end":323690,"filename":"/zoneinfo/America/Montevideo"},{"start":323690,"audio":0,"end":331984,"filename":"/zoneinfo/America/Godthab"},{"start":331984,"audio":0,"end":332140,"filename":"/zoneinfo/America/Guadeloupe"},{"start":332140,"audio":0,"end":332882,"filename":"/zoneinfo/America/Maceio"},{"start":332882,"audio":0,"end":334976,"filename":"/zoneinfo/America/Pangnirtung"},{"start":334976,"audio":0,"end":335132,"filename":"/zoneinfo/America/St_Kitts"},{"start":335132,"audio":0,"end":335462,"filename":"/zoneinfo/America/Barbados"},{"start":335462,"audio":0,"end":337494,"filename":"/zoneinfo/America/Iqaluit"},{"start":337494,"audio":0,"end":339751,"filename":"/zoneinfo/America/Menominee"},{"start":339751,"audio":0,"end":339982,"filename":"/zoneinfo/America/Martinique"},{"start":339982,"audio":0,"end":341586,"filename":"/zoneinfo/America/Mexico_City"},{"start":341586,"audio":0,"end":342146,"filename":"/zoneinfo/America/Swift_Current"},{"start":342146,"audio":0,"end":343814,"filename":"/zoneinfo/America/Miquelon"},{"start":343814,"audio":0,"end":344012,"filename":"/zoneinfo/America/Curacao"},{"start":344012,"audio":0,"end":345045,"filename":"/zoneinfo/America/Dawson_Creek"},{"start":345045,"audio":0,"end":346114,"filename":"/zoneinfo/America/Mendoza"},{"start":346114,"audio":0,"end":348453,"filename":"/zoneinfo/America/Adak"},{"start":348453,"audio":0,"end":350638,"filename":"/zoneinfo/America/Thunder_Bay"},{"start":350638,"audio":0,"end":350836,"filename":"/zoneinfo/America/Aruba"},{"start":350836,"audio":0,"end":353059,"filename":"/zoneinfo/America/Fort_Nelson"},{"start":353059,"audio":0,"end":355383,"filename":"/zoneinfo/America/Sitka"},{"start":355383,"audio":0,"end":355539,"filename":"/zoneinfo/America/Anguilla"},{"start":355539,"audio":0,"end":356237,"filename":"/zoneinfo/America/Danmarkshavn"},{"start":356237,"audio":0,"end":357634,"filename":"/zoneinfo/America/Indiana/Vevay"},{"start":357634,"audio":0,"end":359283,"filename":"/zoneinfo/America/Indiana/Indianapolis"},{"start":359283,"audio":0,"end":361044,"filename":"/zoneinfo/America/Indiana/Winamac"},{"start":361044,"audio":0,"end":362711,"filename":"/zoneinfo/America/Indiana/Tell_City"},{"start":362711,"audio":0,"end":364598,"filename":"/zoneinfo/America/Indiana/Petersburg"},{"start":364598,"audio":0,"end":366275,"filename":"/zoneinfo/America/Indiana/Vincennes"},{"start":366275,"audio":0,"end":368686,"filename":"/zoneinfo/America/Indiana/Knox"},{"start":368686,"audio":0,"end":370391,"filename":"/zoneinfo/America/Indiana/Marengo"},{"start":370391,"audio":0,"end":371432,"filename":"/zoneinfo/America/Argentina/Salta"},{"start":371432,"audio":0,"end":372501,"filename":"/zoneinfo/America/Argentina/Ushuaia"},{"start":372501,"audio":0,"end":373570,"filename":"/zoneinfo/America/Argentina/Catamarca"},{"start":373570,"audio":0,"end":374639,"filename":"/zoneinfo/America/Argentina/ComodRivadavia"},{"start":374639,"audio":0,"end":375722,"filename":"/zoneinfo/America/Argentina/San_Juan"},{"start":375722,"audio":0,"end":376821,"filename":"/zoneinfo/America/Argentina/San_Luis"},{"start":376821,"audio":0,"end":377890,"filename":"/zoneinfo/America/Argentina/Rio_Gallegos"},{"start":377890,"audio":0,"end":378931,"filename":"/zoneinfo/America/Argentina/Jujuy"},{"start":378931,"audio":0,"end":380028,"filename":"/zoneinfo/America/Argentina/Tucuman"},{"start":380028,"audio":0,"end":381097,"filename":"/zoneinfo/America/Argentina/Buenos_Aires"},{"start":381097,"audio":0,"end":382166,"filename":"/zoneinfo/America/Argentina/Cordoba"},{"start":382166,"audio":0,"end":383249,"filename":"/zoneinfo/America/Argentina/La_Rioja"},{"start":383249,"audio":0,"end":384318,"filename":"/zoneinfo/America/Argentina/Mendoza"},{"start":384318,"audio":0,"end":387073,"filename":"/zoneinfo/America/Kentucky/Louisville"},{"start":387073,"audio":0,"end":389408,"filename":"/zoneinfo/America/Kentucky/Monticello"},{"start":389408,"audio":0,"end":391771,"filename":"/zoneinfo/America/North_Dakota/New_Salem"},{"start":391771,"audio":0,"end":394134,"filename":"/zoneinfo/America/North_Dakota/Center"},{"start":394134,"audio":0,"end":396497,"filename":"/zoneinfo/America/North_Dakota/Beulah"},{"start":396497,"audio":0,"end":398694,"filename":"/zoneinfo/Australia/Melbourne"},{"start":398694,"audio":0,"end":399120,"filename":"/zoneinfo/Australia/Queensland"},{"start":399120,"audio":0,"end":399421,"filename":"/zoneinfo/Australia/North"},{"start":399421,"audio":0,"end":401270,"filename":"/zoneinfo/Australia/Lord_Howe"},{"start":401270,"audio":0,"end":403486,"filename":"/zoneinfo/Australia/Adelaide"},{"start":403486,"audio":0,"end":405738,"filename":"/zoneinfo/Australia/Yancowinna"},{"start":405738,"audio":0,"end":407935,"filename":"/zoneinfo/Australia/Victoria"},{"start":407935,"audio":0,"end":410132,"filename":"/zoneinfo/Australia/Canberra"},{"start":410132,"audio":0,"end":412329,"filename":"/zoneinfo/Australia/Sydney"},{"start":412329,"audio":0,"end":414526,"filename":"/zoneinfo/Australia/ACT"},{"start":414526,"audio":0,"end":414989,"filename":"/zoneinfo/Australia/Eucla"},{"start":414989,"audio":0,"end":415415,"filename":"/zoneinfo/Australia/Brisbane"},{"start":415415,"audio":0,"end":417724,"filename":"/zoneinfo/Australia/Tasmania"},{"start":417724,"audio":0,"end":420033,"filename":"/zoneinfo/Australia/Hobart"},{"start":420033,"audio":0,"end":420486,"filename":"/zoneinfo/Australia/Perth"},{"start":420486,"audio":0,"end":422702,"filename":"/zoneinfo/Australia/South"},{"start":422702,"audio":0,"end":423198,"filename":"/zoneinfo/Australia/Lindeman"},{"start":423198,"audio":0,"end":423499,"filename":"/zoneinfo/Australia/Darwin"},{"start":423499,"audio":0,"end":423952,"filename":"/zoneinfo/Australia/West"},{"start":423952,"audio":0,"end":425801,"filename":"/zoneinfo/Australia/LHI"},{"start":425801,"audio":0,"end":427998,"filename":"/zoneinfo/Australia/NSW"},{"start":427998,"audio":0,"end":430250,"filename":"/zoneinfo/Australia/Broken_Hill"},{"start":430250,"audio":0,"end":432447,"filename":"/zoneinfo/Australia/Currie"},{"start":432447,"audio":0,"end":432569,"filename":"/zoneinfo/Etc/GMT-10"},{"start":432569,"audio":0,"end":432690,"filename":"/zoneinfo/Etc/GMT+12"},{"start":432690,"audio":0,"end":432812,"filename":"/zoneinfo/Etc/GMT-11"},{"start":432812,"audio":0,"end":432930,"filename":"/zoneinfo/Etc/Universal"},{"start":432930,"audio":0,"end":433048,"filename":"/zoneinfo/Etc/Greenwich"},{"start":433048,"audio":0,"end":433169,"filename":"/zoneinfo/Etc/GMT-6"},{"start":433169,"audio":0,"end":433290,"filename":"/zoneinfo/Etc/GMT-1"},{"start":433290,"audio":0,"end":433411,"filename":"/zoneinfo/Etc/GMT-8"},{"start":433411,"audio":0,"end":433531,"filename":"/zoneinfo/Etc/GMT+4"},{"start":433531,"audio":0,"end":433651,"filename":"/zoneinfo/Etc/GMT+3"},{"start":433651,"audio":0,"end":433772,"filename":"/zoneinfo/Etc/GMT-9"},{"start":433772,"audio":0,"end":433890,"filename":"/zoneinfo/Etc/GMT-0"},{"start":433890,"audio":0,"end":434011,"filename":"/zoneinfo/Etc/GMT-7"},{"start":434011,"audio":0,"end":434131,"filename":"/zoneinfo/Etc/GMT+2"},{"start":434131,"audio":0,"end":434251,"filename":"/zoneinfo/Etc/GMT+5"},{"start":434251,"audio":0,"end":434369,"filename":"/zoneinfo/Etc/GMT"},{"start":434369,"audio":0,"end":434487,"filename":"/zoneinfo/Etc/Zulu"},{"start":434487,"audio":0,"end":434608,"filename":"/zoneinfo/Etc/GMT+11"},{"start":434608,"audio":0,"end":434730,"filename":"/zoneinfo/Etc/GMT-13"},{"start":434730,"audio":0,"end":434852,"filename":"/zoneinfo/Etc/GMT-14"},{"start":434852,"audio":0,"end":434973,"filename":"/zoneinfo/Etc/GMT+10"},{"start":434973,"audio":0,"end":435095,"filename":"/zoneinfo/Etc/GMT-12"},{"start":435095,"audio":0,"end":435213,"filename":"/zoneinfo/Etc/GMT0"},{"start":435213,"audio":0,"end":435331,"filename":"/zoneinfo/Etc/UCT"},{"start":435331,"audio":0,"end":435449,"filename":"/zoneinfo/Etc/GMT+0"},{"start":435449,"audio":0,"end":435569,"filename":"/zoneinfo/Etc/GMT+7"},{"start":435569,"audio":0,"end":435689,"filename":"/zoneinfo/Etc/GMT+9"},{"start":435689,"audio":0,"end":435810,"filename":"/zoneinfo/Etc/GMT-2"},{"start":435810,"audio":0,"end":435931,"filename":"/zoneinfo/Etc/GMT-5"},{"start":435931,"audio":0,"end":436051,"filename":"/zoneinfo/Etc/GMT+8"},{"start":436051,"audio":0,"end":436171,"filename":"/zoneinfo/Etc/GMT+6"},{"start":436171,"audio":0,"end":436291,"filename":"/zoneinfo/Etc/GMT+1"},{"start":436291,"audio":0,"end":436409,"filename":"/zoneinfo/Etc/UTC"},{"start":436409,"audio":0,"end":436530,"filename":"/zoneinfo/Etc/GMT-4"},{"start":436530,"audio":0,"end":436651,"filename":"/zoneinfo/Etc/GMT-3"},{"start":436651,"audio":0,"end":437244,"filename":"/zoneinfo/Asia/Dushanbe"},{"start":437244,"audio":0,"end":438263,"filename":"/zoneinfo/Asia/Qostanay"},{"start":438263,"audio":0,"end":438549,"filename":"/zoneinfo/Asia/Calcutta"},{"start":438549,"audio":0,"end":438708,"filename":"/zoneinfo/Asia/Urumqi"},{"start":438708,"audio":0,"end":439111,"filename":"/zoneinfo/Asia/Karachi"},{"start":439111,"audio":0,"end":440394,"filename":"/zoneinfo/Asia/Khandyga"},{"start":440394,"audio":0,"end":440595,"filename":"/zoneinfo/Asia/Thimbu"},{"start":440595,"audio":0,"end":440796,"filename":"/zoneinfo/Asia/Thimphu"},{"start":440796,"audio":0,"end":442012,"filename":"/zoneinfo/Asia/Vladivostok"},{"start":442012,"audio":0,"end":442192,"filename":"/zoneinfo/Asia/Vientiane"},{"start":442192,"audio":0,"end":442720,"filename":"/zoneinfo/Asia/Shanghai"},{"start":442720,"audio":0,"end":443613,"filename":"/zoneinfo/Asia/Ulan_Bator"},{"start":443613,"audio":0,"end":443772,"filename":"/zoneinfo/Asia/Aden"},{"start":443772,"audio":0,"end":443931,"filename":"/zoneinfo/Asia/Muscat"},{"start":443931,"audio":0,"end":446237,"filename":"/zoneinfo/Asia/Damascus"},{"start":446237,"audio":0,"end":455274,"filename":"/zoneinfo/Asia/Jerusalem"},{"start":455274,"audio":0,"end":455475,"filename":"/zoneinfo/Asia/Brunei"},{"start":455475,"audio":0,"end":456368,"filename":"/zoneinfo/Asia/Ulaanbaatar"},{"start":456368,"audio":0,"end":464988,"filename":"/zoneinfo/Asia/Amman"},{"start":464988,"audio":0,"end":465481,"filename":"/zoneinfo/Asia/Kuching"},{"start":465481,"audio":0,"end":474518,"filename":"/zoneinfo/Asia/Tel_Aviv"},{"start":474518,"audio":0,"end":475163,"filename":"/zoneinfo/Asia/Seoul"},{"start":475163,"audio":0,"end":476160,"filename":"/zoneinfo/Asia/Atyrau"},{"start":476160,"audio":0,"end":476413,"filename":"/zoneinfo/Asia/Pyongyang"},{"start":476413,"audio":0,"end":477306,"filename":"/zoneinfo/Asia/Hovd"},{"start":477306,"audio":0,"end":479659,"filename":"/zoneinfo/Asia/Hebron"},{"start":479659,"audio":0,"end":479818,"filename":"/zoneinfo/Asia/Kuwait"},{"start":479818,"audio":0,"end":481045,"filename":"/zoneinfo/Asia/Tomsk"},{"start":481045,"audio":0,"end":481378,"filename":"/zoneinfo/Asia/Manila"},{"start":481378,"audio":0,"end":482607,"filename":"/zoneinfo/Asia/Chita"},{"start":482607,"audio":0,"end":482817,"filename":"/zoneinfo/Asia/Katmandu"},{"start":482817,"audio":0,"end":485142,"filename":"/zoneinfo/Asia/Gaza"},{"start":485142,"audio":0,"end":485733,"filename":"/zoneinfo/Asia/Samarkand"},{"start":485733,"audio":0,"end":486497,"filename":"/zoneinfo/Asia/Taipei"},{"start":486497,"audio":0,"end":487104,"filename":"/zoneinfo/Asia/Tashkent"},{"start":487104,"audio":0,"end":488357,"filename":"/zoneinfo/Asia/Yekaterinburg"},{"start":488357,"audio":0,"end":489598,"filename":"/zoneinfo/Asia/Macau"},{"start":489598,"audio":0,"end":490647,"filename":"/zoneinfo/Asia/Qyzylorda"},{"start":490647,"audio":0,"end":491888,"filename":"/zoneinfo/Asia/Macao"},{"start":491888,"audio":0,"end":492180,"filename":"/zoneinfo/Asia/Tokyo"},{"start":492180,"audio":0,"end":493421,"filename":"/zoneinfo/Asia/Baku"},{"start":493421,"audio":0,"end":494648,"filename":"/zoneinfo/Asia/Barnaul"},{"start":494648,"audio":0,"end":496578,"filename":"/zoneinfo/Asia/Istanbul"},{"start":496578,"audio":0,"end":497814,"filename":"/zoneinfo/Asia/Irkutsk"},{"start":497814,"audio":0,"end":498011,"filename":"/zoneinfo/Asia/Qatar"},{"start":498011,"audio":0,"end":498208,"filename":"/zoneinfo/Asia/Bahrain"},{"start":498208,"audio":0,"end":498465,"filename":"/zoneinfo/Asia/Yangon"},{"start":498465,"audio":0,"end":499650,"filename":"/zoneinfo/Asia/Yerevan"},{"start":499650,"audio":0,"end":500653,"filename":"/zoneinfo/Asia/Almaty"},{"start":500653,"audio":0,"end":500878,"filename":"/zoneinfo/Asia/Dili"},{"start":500878,"audio":0,"end":501208,"filename":"/zoneinfo/Asia/Dacca"},{"start":501208,"audio":0,"end":501736,"filename":"/zoneinfo/Asia/Chongqing"},{"start":501736,"audio":0,"end":502998,"filename":"/zoneinfo/Asia/Ust-Nera"},{"start":502998,"audio":0,"end":504228,"filename":"/zoneinfo/Asia/Magadan"},{"start":504228,"audio":0,"end":504601,"filename":"/zoneinfo/Asia/Colombo"},{"start":504601,"audio":0,"end":505816,"filename":"/zoneinfo/Asia/Krasnoyarsk"},{"start":505816,"audio":0,"end":506986,"filename":"/zoneinfo/Asia/Kamchatka"},{"start":506986,"audio":0,"end":507260,"filename":"/zoneinfo/Asia/Ujung_Pandang"},{"start":507260,"audio":0,"end":507626,"filename":"/zoneinfo/Asia/Jakarta"},{"start":507626,"audio":0,"end":507912,"filename":"/zoneinfo/Asia/Kolkata"},{"start":507912,"audio":0,"end":508101,"filename":"/zoneinfo/Asia/Kabul"},{"start":508101,"audio":0,"end":509112,"filename":"/zoneinfo/Asia/Oral"},{"start":509112,"audio":0,"end":509349,"filename":"/zoneinfo/Asia/Jayapura"},{"start":509349,"audio":0,"end":509730,"filename":"/zoneinfo/Asia/Pontianak"},{"start":509730,"audio":0,"end":510004,"filename":"/zoneinfo/Asia/Makassar"},{"start":510004,"audio":0,"end":511044,"filename":"/zoneinfo/Asia/Tbilisi"},{"start":511044,"audio":0,"end":511428,"filename":"/zoneinfo/Asia/Singapore"},{"start":511428,"audio":0,"end":511956,"filename":"/zoneinfo/Asia/Harbin"},{"start":511956,"audio":0,"end":512115,"filename":"/zoneinfo/Asia/Kashgar"},{"start":512115,"audio":0,"end":512445,"filename":"/zoneinfo/Asia/Dhaka"},{"start":512445,"audio":0,"end":513660,"filename":"/zoneinfo/Asia/Yakutsk"},{"start":513660,"audio":0,"end":514044,"filename":"/zoneinfo/Asia/Kuala_Lumpur"},{"start":514044,"audio":0,"end":523820,"filename":"/zoneinfo/Asia/Tehran"},{"start":523820,"audio":0,"end":525969,"filename":"/zoneinfo/Asia/Beirut"},{"start":525969,"audio":0,"end":526988,"filename":"/zoneinfo/Asia/Aqtobe"},{"start":526988,"audio":0,"end":528182,"filename":"/zoneinfo/Asia/Anadyr"},{"start":528182,"audio":0,"end":529199,"filename":"/zoneinfo/Asia/Bishkek"},{"start":529199,"audio":0,"end":529358,"filename":"/zoneinfo/Asia/Dubai"},{"start":529358,"audio":0,"end":529517,"filename":"/zoneinfo/Asia/Riyadh"},{"start":529517,"audio":0,"end":530686,"filename":"/zoneinfo/Asia/Novokuznetsk"},{"start":530686,"audio":0,"end":531675,"filename":"/zoneinfo/Asia/Aqtau"},{"start":531675,"audio":0,"end":532890,"filename":"/zoneinfo/Asia/Omsk"},{"start":532890,"audio":0,"end":533513,"filename":"/zoneinfo/Asia/Ashkhabad"},{"start":533513,"audio":0,"end":533874,"filename":"/zoneinfo/Asia/Saigon"},{"start":533874,"audio":0,"end":535080,"filename":"/zoneinfo/Asia/Sakhalin"},{"start":535080,"audio":0,"end":536297,"filename":"/zoneinfo/Asia/Hong_Kong"},{"start":536297,"audio":0,"end":536477,"filename":"/zoneinfo/Asia/Phnom_Penh"},{"start":536477,"audio":0,"end":538479,"filename":"/zoneinfo/Asia/Nicosia"},{"start":538479,"audio":0,"end":539443,"filename":"/zoneinfo/Asia/Baghdad"},{"start":539443,"audio":0,"end":540659,"filename":"/zoneinfo/Asia/Srednekolymsk"},{"start":540659,"audio":0,"end":541282,"filename":"/zoneinfo/Asia/Ashgabat"},{"start":541282,"audio":0,"end":541492,"filename":"/zoneinfo/Asia/Kathmandu"},{"start":541492,"audio":0,"end":542455,"filename":"/zoneinfo/Asia/Choibalsan"},{"start":542455,"audio":0,"end":542635,"filename":"/zoneinfo/Asia/Bangkok"},{"start":542635,"audio":0,"end":543163,"filename":"/zoneinfo/Asia/Chungking"},{"start":543163,"audio":0,"end":544390,"filename":"/zoneinfo/Asia/Novosibirsk"},{"start":544390,"audio":0,"end":546418,"filename":"/zoneinfo/Asia/Famagusta"},{"start":546418,"audio":0,"end":546675,"filename":"/zoneinfo/Asia/Rangoon"},{"start":546675,"audio":0,"end":547036,"filename":"/zoneinfo/Asia/Ho_Chi_Minh"},{"start":547036,"audio":0,"end":548440,"filename":"/zoneinfo/Antarctica/Palmer"},{"start":548440,"audio":0,"end":548723,"filename":"/zoneinfo/Antarctica/Davis"},{"start":548723,"audio":0,"end":548881,"filename":"/zoneinfo/Antarctica/Rothera"},{"start":548881,"audio":0,"end":549040,"filename":"/zoneinfo/Antarctica/Vostok"},{"start":549040,"audio":0,"end":549199,"filename":"/zoneinfo/Antarctica/Syowa"},{"start":549199,"audio":0,"end":549387,"filename":"/zoneinfo/Antarctica/DumontDUrville"},{"start":549387,"audio":0,"end":551821,"filename":"/zoneinfo/Antarctica/McMurdo"},{"start":551821,"audio":0,"end":553328,"filename":"/zoneinfo/Antarctica/Macquarie"},{"start":553328,"audio":0,"end":555762,"filename":"/zoneinfo/Antarctica/South_Pole"},{"start":555762,"audio":0,"end":556910,"filename":"/zoneinfo/Antarctica/Troll"},{"start":556910,"audio":0,"end":557107,"filename":"/zoneinfo/Antarctica/Mawson"},{"start":557107,"audio":0,"end":557390,"filename":"/zoneinfo/Antarctica/Casey"},{"start":557390,"audio":0,"end":559282,"filename":"/zoneinfo/Europe/Zurich"},{"start":559282,"audio":0,"end":562227,"filename":"/zoneinfo/Europe/Paris"},{"start":562227,"audio":0,"end":563745,"filename":"/zoneinfo/Europe/Moscow"},{"start":563745,"audio":0,"end":566705,"filename":"/zoneinfo/Europe/Luxembourg"},{"start":566705,"audio":0,"end":568636,"filename":"/zoneinfo/Europe/Ljubljana"},{"start":568636,"audio":0,"end":570519,"filename":"/zoneinfo/Europe/Helsinki"},{"start":570519,"audio":0,"end":571849,"filename":"/zoneinfo/Europe/Minsk"},{"start":571849,"audio":0,"end":573780,"filename":"/zoneinfo/Europe/Skopje"},{"start":573780,"audio":0,"end":577285,"filename":"/zoneinfo/Europe/Dublin"},{"start":577285,"audio":0,"end":580946,"filename":"/zoneinfo/Europe/Jersey"},{"start":580946,"audio":0,"end":583612,"filename":"/zoneinfo/Europe/San_Marino"},{"start":583612,"audio":0,"end":586647,"filename":"/zoneinfo/Europe/Gibraltar"},{"start":586647,"audio":0,"end":588578,"filename":"/zoneinfo/Europe/Belgrade"},{"start":588578,"audio":0,"end":592239,"filename":"/zoneinfo/Europe/Guernsey"},{"start":592239,"audio":0,"end":593492,"filename":"/zoneinfo/Europe/Ulyanovsk"},{"start":593492,"audio":0,"end":594661,"filename":"/zoneinfo/Europe/Saratov"},{"start":594661,"audio":0,"end":596553,"filename":"/zoneinfo/Europe/Vaduz"},{"start":596553,"audio":0,"end":598483,"filename":"/zoneinfo/Europe/Istanbul"},{"start":598483,"audio":0,"end":601938,"filename":"/zoneinfo/Europe/Lisbon"},{"start":601938,"audio":0,"end":604015,"filename":"/zoneinfo/Europe/Uzhgorod"},{"start":604015,"audio":0,"end":605154,"filename":"/zoneinfo/Europe/Kirov"},{"start":605154,"audio":0,"end":607238,"filename":"/zoneinfo/Europe/Tirane"},{"start":607238,"audio":0,"end":609657,"filename":"/zoneinfo/Europe/Tiraspol"},{"start":609657,"audio":0,"end":611588,"filename":"/zoneinfo/Europe/Sarajevo"},{"start":611588,"audio":0,"end":614199,"filename":"/zoneinfo/Europe/Madrid"},{"start":614199,"audio":0,"end":616130,"filename":"/zoneinfo/Europe/Podgorica"},{"start":616130,"audio":0,"end":618022,"filename":"/zoneinfo/Europe/Busingen"},{"start":618022,"audio":0,"end":620688,"filename":"/zoneinfo/Europe/Vatican"},{"start":620688,"audio":0,"end":624349,"filename":"/zoneinfo/Europe/Belfast"},{"start":624349,"audio":0,"end":626661,"filename":"/zoneinfo/Europe/Bratislava"},{"start":626661,"audio":0,"end":628732,"filename":"/zoneinfo/Europe/Kiev"},{"start":628732,"audio":0,"end":630238,"filename":"/zoneinfo/Europe/Kaliningrad"},{"start":630238,"audio":0,"end":632327,"filename":"/zoneinfo/Europe/Zaporozhye"},{"start":632327,"audio":0,"end":634538,"filename":"/zoneinfo/Europe/Vienna"},{"start":634538,"audio":0,"end":636917,"filename":"/zoneinfo/Europe/Budapest"},{"start":636917,"audio":0,"end":639090,"filename":"/zoneinfo/Europe/Vilnius"},{"start":639090,"audio":0,"end":642017,"filename":"/zoneinfo/Europe/Monaco"},{"start":642017,"audio":0,"end":644242,"filename":"/zoneinfo/Europe/Oslo"},{"start":644242,"audio":0,"end":645411,"filename":"/zoneinfo/Europe/Astrakhan"},{"start":645411,"audio":0,"end":646875,"filename":"/zoneinfo/Europe/Simferopol"},{"start":646875,"audio":0,"end":648044,"filename":"/zoneinfo/Europe/Volgograd"},{"start":648044,"audio":0,"end":651705,"filename":"/zoneinfo/Europe/Isle_of_Man"},{"start":651705,"audio":0,"end":655366,"filename":"/zoneinfo/Europe/London"},{"start":655366,"audio":0,"end":657575,"filename":"/zoneinfo/Europe/Riga"},{"start":657575,"audio":0,"end":659300,"filename":"/zoneinfo/Europe/Andorra"},{"start":659300,"audio":0,"end":661612,"filename":"/zoneinfo/Europe/Prague"},{"start":661612,"audio":0,"end":663921,"filename":"/zoneinfo/Europe/Berlin"},{"start":663921,"audio":0,"end":666082,"filename":"/zoneinfo/Europe/Tallinn"},{"start":666082,"audio":0,"end":668748,"filename":"/zoneinfo/Europe/Rome"},{"start":668748,"audio":0,"end":671351,"filename":"/zoneinfo/Europe/Malta"},{"start":671351,"audio":0,"end":673282,"filename":"/zoneinfo/Europe/Zagreb"},{"start":673282,"audio":0,"end":676205,"filename":"/zoneinfo/Europe/Amsterdam"},{"start":676205,"audio":0,"end":678207,"filename":"/zoneinfo/Europe/Nicosia"},{"start":678207,"audio":0,"end":680402,"filename":"/zoneinfo/Europe/Bucharest"},{"start":680402,"audio":0,"end":682536,"filename":"/zoneinfo/Europe/Copenhagen"},{"start":682536,"audio":0,"end":684955,"filename":"/zoneinfo/Europe/Chisinau"},{"start":684955,"audio":0,"end":686838,"filename":"/zoneinfo/Europe/Mariehamn"},{"start":686838,"audio":0,"end":688942,"filename":"/zoneinfo/Europe/Sofia"},{"start":688942,"audio":0,"end":691187,"filename":"/zoneinfo/Europe/Athens"},{"start":691187,"audio":0,"end":693079,"filename":"/zoneinfo/Europe/Stockholm"},{"start":693079,"audio":0,"end":694304,"filename":"/zoneinfo/Europe/Samara"},{"start":694304,"audio":0,"end":697248,"filename":"/zoneinfo/Europe/Brussels"},{"start":697248,"audio":0,"end":699927,"filename":"/zoneinfo/Europe/Warsaw"},{"start":699927,"audio":0,"end":702269,"filename":"/zoneinfo/Mexico/BajaNorte"},{"start":702269,"audio":0,"end":703873,"filename":"/zoneinfo/Mexico/General"},{"start":703873,"audio":0,"end":705423,"filename":"/zoneinfo/Mexico/BajaSur"},{"start":705423,"audio":0,"end":705664,"filename":"/zoneinfo/Africa/Sao_Tome"},{"start":705664,"audio":0,"end":705820,"filename":"/zoneinfo/Africa/Conakry"},{"start":705820,"audio":0,"end":705976,"filename":"/zoneinfo/Africa/Dakar"},{"start":705976,"audio":0,"end":706187,"filename":"/zoneinfo/Africa/Ndjamena"},{"start":706187,"audio":0,"end":708636,"filename":"/zoneinfo/Africa/Casablanca"},{"start":708636,"audio":0,"end":708792,"filename":"/zoneinfo/Africa/Lome"},{"start":708792,"audio":0,"end":709526,"filename":"/zoneinfo/Africa/Algiers"},{"start":709526,"audio":0,"end":709797,"filename":"/zoneinfo/Africa/Mogadishu"},{"start":709797,"audio":0,"end":709954,"filename":"/zoneinfo/Africa/Lagos"},{"start":709954,"audio":0,"end":710111,"filename":"/zoneinfo/Africa/Brazzaville"},{"start":710111,"audio":0,"end":710267,"filename":"/zoneinfo/Africa/Timbuktu"},{"start":710267,"audio":0,"end":710423,"filename":"/zoneinfo/Africa/Nouakchott"},{"start":710423,"audio":0,"end":710668,"filename":"/zoneinfo/Africa/Maseru"},{"start":710668,"audio":0,"end":710825,"filename":"/zoneinfo/Africa/Libreville"},{"start":710825,"audio":0,"end":710982,"filename":"/zoneinfo/Africa/Harare"},{"start":710982,"audio":0,"end":711139,"filename":"/zoneinfo/Africa/Malabo"},{"start":711139,"audio":0,"end":711296,"filename":"/zoneinfo/Africa/Bangui"},{"start":711296,"audio":0,"end":711567,"filename":"/zoneinfo/Africa/Nairobi"},{"start":711567,"audio":0,"end":711724,"filename":"/zoneinfo/Africa/Kinshasa"},{"start":711724,"audio":0,"end":711881,"filename":"/zoneinfo/Africa/Porto-Novo"},{"start":711881,"audio":0,"end":713827,"filename":"/zoneinfo/Africa/Cairo"},{"start":713827,"audio":0,"end":713984,"filename":"/zoneinfo/Africa/Douala"},{"start":713984,"audio":0,"end":714653,"filename":"/zoneinfo/Africa/Juba"},{"start":714653,"audio":0,"end":714810,"filename":"/zoneinfo/Africa/Gaborone"},{"start":714810,"audio":0,"end":715494,"filename":"/zoneinfo/Africa/Tunis"},{"start":715494,"audio":0,"end":715765,"filename":"/zoneinfo/Africa/Kampala"},{"start":715765,"audio":0,"end":716010,"filename":"/zoneinfo/Africa/Mbabane"},{"start":716010,"audio":0,"end":716281,"filename":"/zoneinfo/Africa/Addis_Ababa"},{"start":716281,"audio":0,"end":716438,"filename":"/zoneinfo/Africa/Maputo"},{"start":716438,"audio":0,"end":716632,"filename":"/zoneinfo/Africa/Bissau"},{"start":716632,"audio":0,"end":716789,"filename":"/zoneinfo/Africa/Blantyre"},{"start":716789,"audio":0,"end":716946,"filename":"/zoneinfo/Africa/Niamey"},{"start":716946,"audio":0,"end":717102,"filename":"/zoneinfo/Africa/Banjul"},{"start":717102,"audio":0,"end":717258,"filename":"/zoneinfo/Africa/Abidjan"},{"start":717258,"audio":0,"end":717529,"filename":"/zoneinfo/Africa/Asmara"},{"start":717529,"audio":0,"end":717685,"filename":"/zoneinfo/Africa/Bamako"},{"start":717685,"audio":0,"end":717841,"filename":"/zoneinfo/Africa/Ouagadougou"},{"start":717841,"audio":0,"end":717998,"filename":"/zoneinfo/Africa/Lusaka"},{"start":717998,"audio":0,"end":718155,"filename":"/zoneinfo/Africa/Luanda"},{"start":718155,"audio":0,"end":718426,"filename":"/zoneinfo/Africa/Asmera"},{"start":718426,"audio":0,"end":718583,"filename":"/zoneinfo/Africa/Lubumbashi"},{"start":718583,"audio":0,"end":719411,"filename":"/zoneinfo/Africa/Accra"},{"start":719411,"audio":0,"end":720110,"filename":"/zoneinfo/Africa/Khartoum"},{"start":720110,"audio":0,"end":722143,"filename":"/zoneinfo/Africa/Ceuta"},{"start":722143,"audio":0,"end":722300,"filename":"/zoneinfo/Africa/Bujumbura"},{"start":722300,"audio":0,"end":723262,"filename":"/zoneinfo/Africa/Windhoek"},{"start":723262,"audio":0,"end":725581,"filename":"/zoneinfo/Africa/El_Aaiun"},{"start":725581,"audio":0,"end":726222,"filename":"/zoneinfo/Africa/Tripoli"},{"start":726222,"audio":0,"end":726429,"filename":"/zoneinfo/Africa/Monrovia"},{"start":726429,"audio":0,"end":726700,"filename":"/zoneinfo/Africa/Dar_es_Salaam"},{"start":726700,"audio":0,"end":726945,"filename":"/zoneinfo/Africa/Johannesburg"},{"start":726945,"audio":0,"end":727102,"filename":"/zoneinfo/Africa/Kigali"},{"start":727102,"audio":0,"end":727373,"filename":"/zoneinfo/Africa/Djibouti"},{"start":727373,"audio":0,"end":727529,"filename":"/zoneinfo/Africa/Freetown"},{"start":727529,"audio":0,"end":736576,"filename":"/zoneinfo/Chile/EasterIsland"},{"start":736576,"audio":0,"end":745919,"filename":"/zoneinfo/Chile/Continental"},{"start":745919,"audio":0,"end":749343,"filename":"/zoneinfo/Canada/Atlantic"},{"start":749343,"audio":0,"end":752218,"filename":"/zoneinfo/Canada/Pacific"},{"start":752218,"audio":0,"end":755695,"filename":"/zoneinfo/Canada/Eastern"},{"start":755695,"audio":0,"end":757762,"filename":"/zoneinfo/Canada/Yukon"},{"start":757762,"audio":0,"end":758742,"filename":"/zoneinfo/Canada/Saskatchewan"},{"start":758742,"audio":0,"end":762380,"filename":"/zoneinfo/Canada/Newfoundland"},{"start":762380,"audio":0,"end":765245,"filename":"/zoneinfo/Canada/Central"},{"start":765245,"audio":0,"end":767577,"filename":"/zoneinfo/Canada/Mountain"}],"remote_package_size":767577,"package_uuid":"5aca2568-0669-41e7-bdd4-081a20cfe5f2"} \ No newline at end of file
diff --git a/sdks/wasm/zoneinfo/mono-webassembly-zoneinfo-fs.js b/sdks/wasm/zoneinfo/mono-webassembly-zoneinfo-fs.js
new file mode 100644
index 00000000000..656b486939d
--- /dev/null
+++ b/sdks/wasm/zoneinfo/mono-webassembly-zoneinfo-fs.js
@@ -0,0 +1,199 @@
+
+var Module = typeof Module !== 'undefined' ? Module : {};
+
+if (!Module.expectedDataFileDownloads) {
+ Module.expectedDataFileDownloads = 0;
+ Module.finishedDataFileDownloads = 0;
+}
+Module.expectedDataFileDownloads++;
+(function() {
+ var loadPackage = function(metadata) {
+
+ var PACKAGE_PATH;
+ if (typeof window === 'object') {
+ PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
+ } else if (typeof location !== 'undefined') {
+ // worker
+ PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
+ } else {
+ throw 'using preloaded data can only be done on a web page or in a web worker';
+ }
+ var PACKAGE_NAME = 'dist/zoneinfo.data';
+ var REMOTE_PACKAGE_BASE = 'zoneinfo.data';
+ if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
+ Module['locateFile'] = Module['locateFilePackage'];
+ err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
+ }
+ var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
+
+ var REMOTE_PACKAGE_SIZE = metadata.remote_package_size;
+ var PACKAGE_UUID = metadata.package_uuid;
+
+ function fetchRemotePackage(packageName, packageSize, callback, errback) {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', packageName, true);
+ xhr.responseType = 'arraybuffer';
+ xhr.onprogress = function(event) {
+ var url = packageName;
+ var size = packageSize;
+ if (event.total) size = event.total;
+ if (event.loaded) {
+ if (!xhr.addedTotal) {
+ xhr.addedTotal = true;
+ if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
+ Module.dataFileDownloads[url] = {
+ loaded: event.loaded,
+ total: size
+ };
+ } else {
+ Module.dataFileDownloads[url].loaded = event.loaded;
+ }
+ var total = 0;
+ var loaded = 0;
+ var num = 0;
+ for (var download in Module.dataFileDownloads) {
+ var data = Module.dataFileDownloads[download];
+ total += data.total;
+ loaded += data.loaded;
+ num++;
+ }
+ total = Math.ceil(total * Module.expectedDataFileDownloads/num);
+ if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
+ } else if (!Module.dataFileDownloads) {
+ if (Module['setStatus']) Module['setStatus']('Downloading data...');
+ }
+ };
+ xhr.onerror = function(event) {
+ throw new Error("NetworkError for: " + packageName);
+ }
+ xhr.onload = function(event) {
+ if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
+ var packageData = xhr.response;
+ callback(packageData);
+ } else {
+ throw new Error(xhr.statusText + " : " + xhr.responseURL);
+ }
+ };
+ xhr.send(null);
+ };
+
+ function handleError(error) {
+ console.error('package error:', error);
+ };
+
+ var fetchedCallback = null;
+ var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
+
+ if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
+ if (fetchedCallback) {
+ fetchedCallback(data);
+ fetchedCallback = null;
+ } else {
+ fetched = data;
+ }
+ }, handleError);
+
+ function runWithFS() {
+
+ function assert(check, msg) {
+ if (!check) throw msg + new Error().stack;
+ }
+Module['FS_createPath']('/', 'zoneinfo', true, true);
+Module['FS_createPath']('/zoneinfo', 'Indian', true, true);
+Module['FS_createPath']('/zoneinfo', 'Atlantic', true, true);
+Module['FS_createPath']('/zoneinfo', 'US', true, true);
+Module['FS_createPath']('/zoneinfo', 'Brazil', true, true);
+Module['FS_createPath']('/zoneinfo', 'Pacific', true, true);
+Module['FS_createPath']('/zoneinfo', 'Arctic', true, true);
+Module['FS_createPath']('/zoneinfo', 'America', true, true);
+Module['FS_createPath']('/zoneinfo/America', 'Indiana', true, true);
+Module['FS_createPath']('/zoneinfo/America', 'Argentina', true, true);
+Module['FS_createPath']('/zoneinfo/America', 'Kentucky', true, true);
+Module['FS_createPath']('/zoneinfo/America', 'North_Dakota', true, true);
+Module['FS_createPath']('/zoneinfo', 'Australia', true, true);
+Module['FS_createPath']('/zoneinfo', 'Etc', true, true);
+Module['FS_createPath']('/zoneinfo', 'Asia', true, true);
+Module['FS_createPath']('/zoneinfo', 'Antarctica', true, true);
+Module['FS_createPath']('/zoneinfo', 'Europe', true, true);
+Module['FS_createPath']('/zoneinfo', 'Mexico', true, true);
+Module['FS_createPath']('/zoneinfo', 'Africa', true, true);
+Module['FS_createPath']('/zoneinfo', 'Chile', true, true);
+Module['FS_createPath']('/zoneinfo', 'Canada', true, true);
+
+ function DataRequest(start, end, audio) {
+ this.start = start;
+ this.end = end;
+ this.audio = audio;
+ }
+ DataRequest.prototype = {
+ requests: {},
+ open: function(mode, name) {
+ this.name = name;
+ this.requests[name] = this;
+ Module['addRunDependency']('fp ' + this.name);
+ },
+ send: function() {},
+ onload: function() {
+ var byteArray = this.byteArray.subarray(this.start, this.end);
+ this.finish(byteArray);
+ },
+ finish: function(byteArray) {
+ var that = this;
+
+ Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
+ Module['removeRunDependency']('fp ' + that.name);
+
+ this.requests[this.name] = null;
+ }
+ };
+
+ var files = metadata.files;
+ for (var i = 0; i < files.length; ++i) {
+ new DataRequest(files[i].start, files[i].end, files[i].audio).open('GET', files[i].filename);
+ }
+
+
+ function processPackageData(arrayBuffer) {
+ Module.finishedDataFileDownloads++;
+ assert(arrayBuffer, 'Loading data file failed.');
+ assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
+ var byteArray = new Uint8Array(arrayBuffer);
+ var curr;
+
+ // copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though
+ // (we may be allocating before malloc is ready, during startup).
+ var ptr = Module['getMemory'](byteArray.length);
+ Module['HEAPU8'].set(byteArray, ptr);
+ DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length);
+
+ var files = metadata.files;
+ for (var i = 0; i < files.length; ++i) {
+ DataRequest.prototype.requests[files[i].filename].onload();
+ }
+ Module['removeRunDependency']('datafile_dist/zoneinfo.data');
+
+ };
+ Module['addRunDependency']('datafile_dist/zoneinfo.data');
+
+ if (!Module.preloadResults) Module.preloadResults = {};
+
+ Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
+ if (fetched) {
+ processPackageData(fetched);
+ fetched = null;
+ } else {
+ fetchedCallback = processPackageData;
+ }
+
+ }
+ if (Module['calledRun']) {
+ runWithFS();
+ } else {
+ if (!Module['preRun']) Module['preRun'] = [];
+ Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
+ }
+
+ }
+ loadPackage({"files": [{"start": 0, "audio": 0, "end": 2294, "filename": "/zoneinfo/CST6CDT"}, {"start": 2294, "audio": 0, "end": 4973, "filename": "/zoneinfo/Poland"}, {"start": 4973, "audio": 0, "end": 5282, "filename": "/zoneinfo/Kwajalein"}, {"start": 5282, "audio": 0, "end": 5400, "filename": "/zoneinfo/MST"}, {"start": 5400, "audio": 0, "end": 7834, "filename": "/zoneinfo/NZ"}, {"start": 7834, "audio": 0, "end": 7952, "filename": "/zoneinfo/Universal"}, {"start": 7952, "audio": 0, "end": 8593, "filename": "/zoneinfo/Libya"}, {"start": 8593, "audio": 0, "end": 10523, "filename": "/zoneinfo/Turkey"}, {"start": 10523, "audio": 0, "end": 12817, "filename": "/zoneinfo/EST5EDT"}, {"start": 12817, "audio": 0, "end": 12935, "filename": "/zoneinfo/Greenwich"}, {"start": 12935, "audio": 0, "end": 14982, "filename": "/zoneinfo/NZ-CHAT"}, {"start": 14982, "audio": 0, "end": 17084, "filename": "/zoneinfo/MET"}, {"start": 17084, "audio": 0, "end": 20539, "filename": "/zoneinfo/Portugal"}, {"start": 20539, "audio": 0, "end": 20657, "filename": "/zoneinfo/GMT-0"}, {"start": 20657, "audio": 0, "end": 22759, "filename": "/zoneinfo/CET"}, {"start": 22759, "audio": 0, "end": 26264, "filename": "/zoneinfo/Eire"}, {"start": 26264, "audio": 0, "end": 28558, "filename": "/zoneinfo/PST8PDT"}, {"start": 28558, "audio": 0, "end": 29039, "filename": "/zoneinfo/Jamaica"}, {"start": 29039, "audio": 0, "end": 29157, "filename": "/zoneinfo/GMT"}, {"start": 29157, "audio": 0, "end": 29275, "filename": "/zoneinfo/Zulu"}, {"start": 29275, "audio": 0, "end": 29567, "filename": "/zoneinfo/Japan"}, {"start": 29567, "audio": 0, "end": 30331, "filename": "/zoneinfo/ROC"}, {"start": 30331, "audio": 0, "end": 33992, "filename": "/zoneinfo/GB-Eire"}, {"start": 33992, "audio": 0, "end": 34637, "filename": "/zoneinfo/ROK"}, {"start": 34637, "audio": 0, "end": 34643, "filename": "/zoneinfo/version"}, {"start": 34643, "audio": 0, "end": 37070, "filename": "/zoneinfo/Navajo"}, {"start": 37070, "audio": 0, "end": 37454, "filename": "/zoneinfo/Singapore"}, {"start": 37454, "audio": 0, "end": 41115, "filename": "/zoneinfo/GB"}, {"start": 41115, "audio": 0, "end": 41233, "filename": "/zoneinfo/EST"}, {"start": 41233, "audio": 0, "end": 41351, "filename": "/zoneinfo/GMT0"}, {"start": 41351, "audio": 0, "end": 42568, "filename": "/zoneinfo/Hongkong"}, {"start": 42568, "audio": 0, "end": 43096, "filename": "/zoneinfo/PRC"}, {"start": 43096, "audio": 0, "end": 52872, "filename": "/zoneinfo/Iran"}, {"start": 52872, "audio": 0, "end": 55166, "filename": "/zoneinfo/MST7MDT"}, {"start": 55166, "audio": 0, "end": 57039, "filename": "/zoneinfo/WET"}, {"start": 57039, "audio": 0, "end": 58557, "filename": "/zoneinfo/W-SU"}, {"start": 58557, "audio": 0, "end": 58675, "filename": "/zoneinfo/UCT"}, {"start": 58675, "audio": 0, "end": 61086, "filename": "/zoneinfo/Cuba"}, {"start": 61086, "audio": 0, "end": 63032, "filename": "/zoneinfo/Egypt"}, {"start": 63032, "audio": 0, "end": 63150, "filename": "/zoneinfo/GMT+0"}, {"start": 63150, "audio": 0, "end": 65026, "filename": "/zoneinfo/EET"}, {"start": 65026, "audio": 0, "end": 74063, "filename": "/zoneinfo/Israel"}, {"start": 74063, "audio": 0, "end": 74181, "filename": "/zoneinfo/UTC"}, {"start": 74181, "audio": 0, "end": 74300, "filename": "/zoneinfo/HST"}, {"start": 74300, "audio": 0, "end": 75474, "filename": "/zoneinfo/Iceland"}, {"start": 75474, "audio": 0, "end": 75713, "filename": "/zoneinfo/Indian/Mauritius"}, {"start": 75713, "audio": 0, "end": 75910, "filename": "/zoneinfo/Indian/Chagos"}, {"start": 75910, "audio": 0, "end": 76181, "filename": "/zoneinfo/Indian/Mayotte"}, {"start": 76181, "audio": 0, "end": 76323, "filename": "/zoneinfo/Indian/Christmas"}, {"start": 76323, "audio": 0, "end": 76474, "filename": "/zoneinfo/Indian/Cocos"}, {"start": 76474, "audio": 0, "end": 76654, "filename": "/zoneinfo/Indian/Maldives"}, {"start": 76654, "audio": 0, "end": 76925, "filename": "/zoneinfo/Indian/Comoro"}, {"start": 76925, "audio": 0, "end": 77084, "filename": "/zoneinfo/Indian/Reunion"}, {"start": 77084, "audio": 0, "end": 77243, "filename": "/zoneinfo/Indian/Mahe"}, {"start": 77243, "audio": 0, "end": 77402, "filename": "/zoneinfo/Indian/Kerguelen"}, {"start": 77402, "audio": 0, "end": 77673, "filename": "/zoneinfo/Indian/Antananarivo"}, {"start": 77673, "audio": 0, "end": 79488, "filename": "/zoneinfo/Atlantic/Faroe"}, {"start": 79488, "audio": 0, "end": 81385, "filename": "/zoneinfo/Atlantic/Canary"}, {"start": 81385, "audio": 0, "end": 82596, "filename": "/zoneinfo/Atlantic/Stanley"}, {"start": 82596, "audio": 0, "end": 84586, "filename": "/zoneinfo/Atlantic/Bermuda"}, {"start": 84586, "audio": 0, "end": 84727, "filename": "/zoneinfo/Atlantic/South_Georgia"}, {"start": 84727, "audio": 0, "end": 84883, "filename": "/zoneinfo/Atlantic/St_Helena"}, {"start": 84883, "audio": 0, "end": 87108, "filename": "/zoneinfo/Atlantic/Jan_Mayen"}, {"start": 87108, "audio": 0, "end": 88923, "filename": "/zoneinfo/Atlantic/Faeroe"}, {"start": 88923, "audio": 0, "end": 90097, "filename": "/zoneinfo/Atlantic/Reykjavik"}, {"start": 90097, "audio": 0, "end": 90353, "filename": "/zoneinfo/Atlantic/Cape_Verde"}, {"start": 90353, "audio": 0, "end": 93806, "filename": "/zoneinfo/Atlantic/Azores"}, {"start": 93806, "audio": 0, "end": 97264, "filename": "/zoneinfo/Atlantic/Madeira"}, {"start": 97264, "audio": 0, "end": 99618, "filename": "/zoneinfo/US/Alaska"}, {"start": 99618, "audio": 0, "end": 102437, "filename": "/zoneinfo/US/Pacific"}, {"start": 102437, "audio": 0, "end": 105956, "filename": "/zoneinfo/US/Eastern"}, {"start": 105956, "audio": 0, "end": 108186, "filename": "/zoneinfo/US/Michigan"}, {"start": 108186, "audio": 0, "end": 108513, "filename": "/zoneinfo/US/Arizona"}, {"start": 108513, "audio": 0, "end": 110924, "filename": "/zoneinfo/US/Indiana-Starke"}, {"start": 110924, "audio": 0, "end": 113263, "filename": "/zoneinfo/US/Aleutian"}, {"start": 113263, "audio": 0, "end": 113575, "filename": "/zoneinfo/US/Hawaii"}, {"start": 113575, "audio": 0, "end": 115224, "filename": "/zoneinfo/US/East-Indiana"}, {"start": 115224, "audio": 0, "end": 118783, "filename": "/zoneinfo/US/Central"}, {"start": 118783, "audio": 0, "end": 121210, "filename": "/zoneinfo/US/Mountain"}, {"start": 121210, "audio": 0, "end": 121384, "filename": "/zoneinfo/US/Samoa"}, {"start": 121384, "audio": 0, "end": 122098, "filename": "/zoneinfo/Brazil/DeNoronha"}, {"start": 122098, "audio": 0, "end": 122732, "filename": "/zoneinfo/Brazil/Acre"}, {"start": 122732, "audio": 0, "end": 124174, "filename": "/zoneinfo/Brazil/East"}, {"start": 124174, "audio": 0, "end": 124776, "filename": "/zoneinfo/Brazil/West"}, {"start": 124776, "audio": 0, "end": 124941, "filename": "/zoneinfo/Pacific/Port_Moresby"}, {"start": 124941, "audio": 0, "end": 125197, "filename": "/zoneinfo/Pacific/Chuuk"}, {"start": 125197, "audio": 0, "end": 134244, "filename": "/zoneinfo/Pacific/Easter"}, {"start": 134244, "audio": 0, "end": 134553, "filename": "/zoneinfo/Pacific/Kwajalein"}, {"start": 134553, "audio": 0, "end": 134906, "filename": "/zoneinfo/Pacific/Tongatapu"}, {"start": 134906, "audio": 0, "end": 135162, "filename": "/zoneinfo/Pacific/Yap"}, {"start": 135162, "audio": 0, "end": 135305, "filename": "/zoneinfo/Pacific/Wallis"}, {"start": 135305, "audio": 0, "end": 136403, "filename": "/zoneinfo/Pacific/Apia"}, {"start": 136403, "audio": 0, "end": 137296, "filename": "/zoneinfo/Pacific/Norfolk"}, {"start": 137296, "audio": 0, "end": 137760, "filename": "/zoneinfo/Pacific/Efate"}, {"start": 137760, "audio": 0, "end": 145671, "filename": "/zoneinfo/Pacific/Fiji"}, {"start": 145671, "audio": 0, "end": 145814, "filename": "/zoneinfo/Pacific/Funafuti"}, {"start": 145814, "audio": 0, "end": 145973, "filename": "/zoneinfo/Pacific/Palau"}, {"start": 145973, "audio": 0, "end": 146472, "filename": "/zoneinfo/Pacific/Guam"}, {"start": 146472, "audio": 0, "end": 146971, "filename": "/zoneinfo/Pacific/Saipan"}, {"start": 146971, "audio": 0, "end": 147317, "filename": "/zoneinfo/Pacific/Kosrae"}, {"start": 147317, "audio": 0, "end": 147543, "filename": "/zoneinfo/Pacific/Niue"}, {"start": 147543, "audio": 0, "end": 147837, "filename": "/zoneinfo/Pacific/Ponape"}, {"start": 147837, "audio": 0, "end": 147980, "filename": "/zoneinfo/Pacific/Wake"}, {"start": 147980, "audio": 0, "end": 148220, "filename": "/zoneinfo/Pacific/Galapagos"}, {"start": 148220, "audio": 0, "end": 148532, "filename": "/zoneinfo/Pacific/Johnston"}, {"start": 148532, "audio": 0, "end": 148706, "filename": "/zoneinfo/Pacific/Midway"}, {"start": 148706, "audio": 0, "end": 148960, "filename": "/zoneinfo/Pacific/Nauru"}, {"start": 148960, "audio": 0, "end": 149120, "filename": "/zoneinfo/Pacific/Guadalcanal"}, {"start": 149120, "audio": 0, "end": 151167, "filename": "/zoneinfo/Pacific/Chatham"}, {"start": 151167, "audio": 0, "end": 153601, "filename": "/zoneinfo/Pacific/Auckland"}, {"start": 153601, "audio": 0, "end": 153901, "filename": "/zoneinfo/Pacific/Noumea"}, {"start": 153901, "audio": 0, "end": 154082, "filename": "/zoneinfo/Pacific/Fakaofo"}, {"start": 154082, "audio": 0, "end": 154241, "filename": "/zoneinfo/Pacific/Tahiti"}, {"start": 154241, "audio": 0, "end": 154399, "filename": "/zoneinfo/Pacific/Gambier"}, {"start": 154399, "audio": 0, "end": 154698, "filename": "/zoneinfo/Pacific/Majuro"}, {"start": 154698, "audio": 0, "end": 155010, "filename": "/zoneinfo/Pacific/Honolulu"}, {"start": 155010, "audio": 0, "end": 155304, "filename": "/zoneinfo/Pacific/Pohnpei"}, {"start": 155304, "audio": 0, "end": 155478, "filename": "/zoneinfo/Pacific/Pago_Pago"}, {"start": 155478, "audio": 0, "end": 155734, "filename": "/zoneinfo/Pacific/Truk"}, {"start": 155734, "audio": 0, "end": 155917, "filename": "/zoneinfo/Pacific/Pitcairn"}, {"start": 155917, "audio": 0, "end": 156084, "filename": "/zoneinfo/Pacific/Marquesas"}, {"start": 156084, "audio": 0, "end": 156339, "filename": "/zoneinfo/Pacific/Bougainville"}, {"start": 156339, "audio": 0, "end": 156482, "filename": "/zoneinfo/Pacific/Tarawa"}, {"start": 156482, "audio": 0, "end": 157044, "filename": "/zoneinfo/Pacific/Rarotonga"}, {"start": 157044, "audio": 0, "end": 157218, "filename": "/zoneinfo/Pacific/Samoa"}, {"start": 157218, "audio": 0, "end": 157441, "filename": "/zoneinfo/Pacific/Kiritimati"}, {"start": 157441, "audio": 0, "end": 157660, "filename": "/zoneinfo/Pacific/Enderbury"}, {"start": 157660, "audio": 0, "end": 159885, "filename": "/zoneinfo/Arctic/Longyearbyen"}, {"start": 159885, "audio": 0, "end": 160114, "filename": "/zoneinfo/America/Puerto_Rico"}, {"start": 160114, "audio": 0, "end": 160828, "filename": "/zoneinfo/America/Recife"}, {"start": 160828, "audio": 0, "end": 162744, "filename": "/zoneinfo/America/Resolute"}, {"start": 162744, "audio": 0, "end": 163346, "filename": "/zoneinfo/America/Manaus"}, {"start": 163346, "audio": 0, "end": 166865, "filename": "/zoneinfo/America/New_York"}, {"start": 166865, "audio": 0, "end": 168781, "filename": "/zoneinfo/America/Rankin_Inlet"}, {"start": 168781, "audio": 0, "end": 169176, "filename": "/zoneinfo/America/Lima"}, {"start": 169176, "audio": 0, "end": 169332, "filename": "/zoneinfo/America/St_Barthelemy"}, {"start": 169332, "audio": 0, "end": 169797, "filename": "/zoneinfo/America/Santo_Domingo"}, {"start": 169797, "audio": 0, "end": 172027, "filename": "/zoneinfo/America/Detroit"}, {"start": 172027, "audio": 0, "end": 172295, "filename": "/zoneinfo/America/Paramaribo"}, {"start": 172295, "audio": 0, "end": 174583, "filename": "/zoneinfo/America/Yakutat"}, {"start": 174583, "audio": 0, "end": 175187, "filename": "/zoneinfo/America/Santarem"}, {"start": 175187, "audio": 0, "end": 177058, "filename": "/zoneinfo/America/Punta_Arenas"}, {"start": 177058, "audio": 0, "end": 178960, "filename": "/zoneinfo/America/Scoresbysund"}, {"start": 178960, "audio": 0, "end": 188303, "filename": "/zoneinfo/America/Santiago"}, {"start": 188303, "audio": 0, "end": 188541, "filename": "/zoneinfo/America/Guyana"}, {"start": 188541, "audio": 0, "end": 188860, "filename": "/zoneinfo/America/Coral_Harbour"}, {"start": 188860, "audio": 0, "end": 189494, "filename": "/zoneinfo/America/Rio_Branco"}, {"start": 189494, "audio": 0, "end": 190128, "filename": "/zoneinfo/America/Porto_Acre"}, {"start": 190128, "audio": 0, "end": 192233, "filename": "/zoneinfo/America/Nipigon"}, {"start": 192233, "audio": 0, "end": 194565, "filename": "/zoneinfo/America/Edmonton"}, {"start": 194565, "audio": 0, "end": 194721, "filename": "/zoneinfo/America/Port_of_Spain"}, {"start": 194721, "audio": 0, "end": 194919, "filename": "/zoneinfo/America/Lower_Princes"}, {"start": 194919, "audio": 0, "end": 195075, "filename": "/zoneinfo/America/St_Thomas"}, {"start": 195075, "audio": 0, "end": 195367, "filename": "/zoneinfo/America/Guatemala"}, {"start": 195367, "audio": 0, "end": 196436, "filename": "/zoneinfo/America/Catamarca"}, {"start": 196436, "audio": 0, "end": 196592, "filename": "/zoneinfo/America/Antigua"}, {"start": 196592, "audio": 0, "end": 197166, "filename": "/zoneinfo/America/Porto_Velho"}, {"start": 197166, "audio": 0, "end": 198235, "filename": "/zoneinfo/America/Rosario"}, {"start": 198235, "audio": 0, "end": 201794, "filename": "/zoneinfo/America/Chicago"}, {"start": 201794, "audio": 0, "end": 202001, "filename": "/zoneinfo/America/Creston"}, {"start": 202001, "audio": 0, "end": 202438, "filename": "/zoneinfo/America/Managua"}, {"start": 202438, "audio": 0, "end": 204708, "filename": "/zoneinfo/America/Nassau"}, {"start": 204708, "audio": 0, "end": 204939, "filename": "/zoneinfo/America/Bogota"}, {"start": 204939, "audio": 0, "end": 205741, "filename": "/zoneinfo/America/Cancun"}, {"start": 205741, "audio": 0, "end": 207249, "filename": "/zoneinfo/America/Chihuahua"}, {"start": 207249, "audio": 0, "end": 208691, "filename": "/zoneinfo/America/Campo_Grande"}, {"start": 208691, "audio": 0, "end": 212115, "filename": "/zoneinfo/America/Halifax"}, {"start": 212115, "audio": 0, "end": 214492, "filename": "/zoneinfo/America/Boise"}, {"start": 214492, "audio": 0, "end": 217969, "filename": "/zoneinfo/America/Montreal"}, {"start": 217969, "audio": 0, "end": 221162, "filename": "/zoneinfo/America/Goose_Bay"}, {"start": 221162, "audio": 0, "end": 222604, "filename": "/zoneinfo/America/Sao_Paulo"}, {"start": 222604, "audio": 0, "end": 222885, "filename": "/zoneinfo/America/Blanc-Sablon"}, {"start": 222885, "audio": 0, "end": 223212, "filename": "/zoneinfo/America/Phoenix"}, {"start": 223212, "audio": 0, "end": 223531, "filename": "/zoneinfo/America/Atikokan"}, {"start": 223531, "audio": 0, "end": 223727, "filename": "/zoneinfo/America/Cayenne"}, {"start": 223727, "audio": 0, "end": 226069, "filename": "/zoneinfo/America/Santa_Isabel"}, {"start": 226069, "audio": 0, "end": 226699, "filename": "/zoneinfo/America/Boa_Vista"}, {"start": 226699, "audio": 0, "end": 228273, "filename": "/zoneinfo/America/Bahia_Banderas"}, {"start": 228273, "audio": 0, "end": 229922, "filename": "/zoneinfo/America/Indianapolis"}, {"start": 229922, "audio": 0, "end": 230078, "filename": "/zoneinfo/America/Dominica"}, {"start": 230078, "audio": 0, "end": 230295, "filename": "/zoneinfo/America/La_Paz"}, {"start": 230295, "audio": 0, "end": 232362, "filename": "/zoneinfo/America/Dawson"}, {"start": 232362, "audio": 0, "end": 235499, "filename": "/zoneinfo/America/Moncton"}, {"start": 235499, "audio": 0, "end": 236901, "filename": "/zoneinfo/America/Matamoros"}, {"start": 236901, "audio": 0, "end": 237057, "filename": "/zoneinfo/America/St_Vincent"}, {"start": 237057, "audio": 0, "end": 238037, "filename": "/zoneinfo/America/Regina"}, {"start": 238037, "audio": 0, "end": 240003, "filename": "/zoneinfo/America/Yellowknife"}, {"start": 240003, "audio": 0, "end": 242108, "filename": "/zoneinfo/America/Rainy_River"}, {"start": 242108, "audio": 0, "end": 242306, "filename": "/zoneinfo/America/Kralendijk"}, {"start": 242306, "audio": 0, "end": 243708, "filename": "/zoneinfo/America/Monterrey"}, {"start": 243708, "audio": 0, "end": 244189, "filename": "/zoneinfo/America/Jamaica"}, {"start": 244189, "audio": 0, "end": 246600, "filename": "/zoneinfo/America/Havana"}, {"start": 246600, "audio": 0, "end": 246864, "filename": "/zoneinfo/America/Tegucigalpa"}, {"start": 246864, "audio": 0, "end": 247095, "filename": "/zoneinfo/America/Guayaquil"}, {"start": 247095, "audio": 0, "end": 248501, "filename": "/zoneinfo/America/Metlakatla"}, {"start": 248501, "audio": 0, "end": 250051, "filename": "/zoneinfo/America/Mazatlan"}, {"start": 250051, "audio": 0, "end": 251015, "filename": "/zoneinfo/America/Belize"}, {"start": 251015, "audio": 0, "end": 253426, "filename": "/zoneinfo/America/Knox_IN"}, {"start": 253426, "audio": 0, "end": 254840, "filename": "/zoneinfo/America/Cuiaba"}, {"start": 254840, "audio": 0, "end": 256282, "filename": "/zoneinfo/America/Merida"}, {"start": 256282, "audio": 0, "end": 257323, "filename": "/zoneinfo/America/Jujuy"}, {"start": 257323, "audio": 0, "end": 257500, "filename": "/zoneinfo/America/Cayman"}, {"start": 257500, "audio": 0, "end": 258074, "filename": "/zoneinfo/America/Belem"}, {"start": 258074, "audio": 0, "end": 258736, "filename": "/zoneinfo/America/Eirunepe"}, {"start": 258736, "audio": 0, "end": 258892, "filename": "/zoneinfo/America/St_Lucia"}, {"start": 258892, "audio": 0, "end": 259914, "filename": "/zoneinfo/America/Bahia"}, {"start": 259914, "audio": 0, "end": 261981, "filename": "/zoneinfo/America/Whitehorse"}, {"start": 261981, "audio": 0, "end": 262137, "filename": "/zoneinfo/America/Tortola"}, {"start": 262137, "audio": 0, "end": 265012, "filename": "/zoneinfo/America/Vancouver"}, {"start": 265012, "audio": 0, "end": 266926, "filename": "/zoneinfo/America/Inuvik"}, {"start": 266926, "audio": 0, "end": 268355, "filename": "/zoneinfo/America/Port-au-Prince"}, {"start": 268355, "audio": 0, "end": 269069, "filename": "/zoneinfo/America/Fortaleza"}, {"start": 269069, "audio": 0, "end": 269783, "filename": "/zoneinfo/America/Noronha"}, {"start": 269783, "audio": 0, "end": 270852, "filename": "/zoneinfo/America/Buenos_Aires"}, {"start": 270852, "audio": 0, "end": 273671, "filename": "/zoneinfo/America/Los_Angeles"}, {"start": 273671, "audio": 0, "end": 273907, "filename": "/zoneinfo/America/El_Salvador"}, {"start": 273907, "audio": 0, "end": 276334, "filename": "/zoneinfo/America/Denver"}, {"start": 276334, "audio": 0, "end": 277983, "filename": "/zoneinfo/America/Fort_Wayne"}, {"start": 277983, "audio": 0, "end": 280175, "filename": "/zoneinfo/America/Glace_Bay"}, {"start": 280175, "audio": 0, "end": 280331, "filename": "/zoneinfo/America/Montserrat"}, {"start": 280331, "audio": 0, "end": 283808, "filename": "/zoneinfo/America/Toronto"}, {"start": 283808, "audio": 0, "end": 283985, "filename": "/zoneinfo/America/Panama"}, {"start": 283985, "audio": 0, "end": 285054, "filename": "/zoneinfo/America/Cordoba"}, {"start": 285054, "audio": 0, "end": 287809, "filename": "/zoneinfo/America/Louisville"}, {"start": 287809, "audio": 0, "end": 290151, "filename": "/zoneinfo/America/Ensenada"}, {"start": 290151, "audio": 0, "end": 292578, "filename": "/zoneinfo/America/Shiprock"}, {"start": 292578, "audio": 0, "end": 294086, "filename": "/zoneinfo/America/Ojinaga"}, {"start": 294086, "audio": 0, "end": 295600, "filename": "/zoneinfo/America/Thule"}, {"start": 295600, "audio": 0, "end": 295849, "filename": "/zoneinfo/America/Caracas"}, {"start": 295849, "audio": 0, "end": 296731, "filename": "/zoneinfo/America/Araguaina"}, {"start": 296731, "audio": 0, "end": 298815, "filename": "/zoneinfo/America/Cambridge_Bay"}, {"start": 298815, "audio": 0, "end": 301680, "filename": "/zoneinfo/America/Winnipeg"}, {"start": 301680, "audio": 0, "end": 303535, "filename": "/zoneinfo/America/Grand_Turk"}, {"start": 303535, "audio": 0, "end": 303691, "filename": "/zoneinfo/America/Virgin"}, {"start": 303691, "audio": 0, "end": 306045, "filename": "/zoneinfo/America/Anchorage"}, {"start": 306045, "audio": 0, "end": 306360, "filename": "/zoneinfo/America/Costa_Rica"}, {"start": 306360, "audio": 0, "end": 308710, "filename": "/zoneinfo/America/Nome"}, {"start": 308710, "audio": 0, "end": 308866, "filename": "/zoneinfo/America/Grenada"}, {"start": 308866, "audio": 0, "end": 312504, "filename": "/zoneinfo/America/St_Johns"}, {"start": 312504, "audio": 0, "end": 314843, "filename": "/zoneinfo/America/Atka"}, {"start": 314843, "audio": 0, "end": 316880, "filename": "/zoneinfo/America/Asuncion"}, {"start": 316880, "audio": 0, "end": 317320, "filename": "/zoneinfo/America/Hermosillo"}, {"start": 317320, "audio": 0, "end": 319662, "filename": "/zoneinfo/America/Tijuana"}, {"start": 319662, "audio": 0, "end": 319818, "filename": "/zoneinfo/America/Marigot"}, {"start": 319818, "audio": 0, "end": 322154, "filename": "/zoneinfo/America/Juneau"}, {"start": 322154, "audio": 0, "end": 323690, "filename": "/zoneinfo/America/Montevideo"}, {"start": 323690, "audio": 0, "end": 331984, "filename": "/zoneinfo/America/Godthab"}, {"start": 331984, "audio": 0, "end": 332140, "filename": "/zoneinfo/America/Guadeloupe"}, {"start": 332140, "audio": 0, "end": 332882, "filename": "/zoneinfo/America/Maceio"}, {"start": 332882, "audio": 0, "end": 334976, "filename": "/zoneinfo/America/Pangnirtung"}, {"start": 334976, "audio": 0, "end": 335132, "filename": "/zoneinfo/America/St_Kitts"}, {"start": 335132, "audio": 0, "end": 335462, "filename": "/zoneinfo/America/Barbados"}, {"start": 335462, "audio": 0, "end": 337494, "filename": "/zoneinfo/America/Iqaluit"}, {"start": 337494, "audio": 0, "end": 339751, "filename": "/zoneinfo/America/Menominee"}, {"start": 339751, "audio": 0, "end": 339982, "filename": "/zoneinfo/America/Martinique"}, {"start": 339982, "audio": 0, "end": 341586, "filename": "/zoneinfo/America/Mexico_City"}, {"start": 341586, "audio": 0, "end": 342146, "filename": "/zoneinfo/America/Swift_Current"}, {"start": 342146, "audio": 0, "end": 343814, "filename": "/zoneinfo/America/Miquelon"}, {"start": 343814, "audio": 0, "end": 344012, "filename": "/zoneinfo/America/Curacao"}, {"start": 344012, "audio": 0, "end": 345045, "filename": "/zoneinfo/America/Dawson_Creek"}, {"start": 345045, "audio": 0, "end": 346114, "filename": "/zoneinfo/America/Mendoza"}, {"start": 346114, "audio": 0, "end": 348453, "filename": "/zoneinfo/America/Adak"}, {"start": 348453, "audio": 0, "end": 350638, "filename": "/zoneinfo/America/Thunder_Bay"}, {"start": 350638, "audio": 0, "end": 350836, "filename": "/zoneinfo/America/Aruba"}, {"start": 350836, "audio": 0, "end": 353059, "filename": "/zoneinfo/America/Fort_Nelson"}, {"start": 353059, "audio": 0, "end": 355383, "filename": "/zoneinfo/America/Sitka"}, {"start": 355383, "audio": 0, "end": 355539, "filename": "/zoneinfo/America/Anguilla"}, {"start": 355539, "audio": 0, "end": 356237, "filename": "/zoneinfo/America/Danmarkshavn"}, {"start": 356237, "audio": 0, "end": 357634, "filename": "/zoneinfo/America/Indiana/Vevay"}, {"start": 357634, "audio": 0, "end": 359283, "filename": "/zoneinfo/America/Indiana/Indianapolis"}, {"start": 359283, "audio": 0, "end": 361044, "filename": "/zoneinfo/America/Indiana/Winamac"}, {"start": 361044, "audio": 0, "end": 362711, "filename": "/zoneinfo/America/Indiana/Tell_City"}, {"start": 362711, "audio": 0, "end": 364598, "filename": "/zoneinfo/America/Indiana/Petersburg"}, {"start": 364598, "audio": 0, "end": 366275, "filename": "/zoneinfo/America/Indiana/Vincennes"}, {"start": 366275, "audio": 0, "end": 368686, "filename": "/zoneinfo/America/Indiana/Knox"}, {"start": 368686, "audio": 0, "end": 370391, "filename": "/zoneinfo/America/Indiana/Marengo"}, {"start": 370391, "audio": 0, "end": 371432, "filename": "/zoneinfo/America/Argentina/Salta"}, {"start": 371432, "audio": 0, "end": 372501, "filename": "/zoneinfo/America/Argentina/Ushuaia"}, {"start": 372501, "audio": 0, "end": 373570, "filename": "/zoneinfo/America/Argentina/Catamarca"}, {"start": 373570, "audio": 0, "end": 374639, "filename": "/zoneinfo/America/Argentina/ComodRivadavia"}, {"start": 374639, "audio": 0, "end": 375722, "filename": "/zoneinfo/America/Argentina/San_Juan"}, {"start": 375722, "audio": 0, "end": 376821, "filename": "/zoneinfo/America/Argentina/San_Luis"}, {"start": 376821, "audio": 0, "end": 377890, "filename": "/zoneinfo/America/Argentina/Rio_Gallegos"}, {"start": 377890, "audio": 0, "end": 378931, "filename": "/zoneinfo/America/Argentina/Jujuy"}, {"start": 378931, "audio": 0, "end": 380028, "filename": "/zoneinfo/America/Argentina/Tucuman"}, {"start": 380028, "audio": 0, "end": 381097, "filename": "/zoneinfo/America/Argentina/Buenos_Aires"}, {"start": 381097, "audio": 0, "end": 382166, "filename": "/zoneinfo/America/Argentina/Cordoba"}, {"start": 382166, "audio": 0, "end": 383249, "filename": "/zoneinfo/America/Argentina/La_Rioja"}, {"start": 383249, "audio": 0, "end": 384318, "filename": "/zoneinfo/America/Argentina/Mendoza"}, {"start": 384318, "audio": 0, "end": 387073, "filename": "/zoneinfo/America/Kentucky/Louisville"}, {"start": 387073, "audio": 0, "end": 389408, "filename": "/zoneinfo/America/Kentucky/Monticello"}, {"start": 389408, "audio": 0, "end": 391771, "filename": "/zoneinfo/America/North_Dakota/New_Salem"}, {"start": 391771, "audio": 0, "end": 394134, "filename": "/zoneinfo/America/North_Dakota/Center"}, {"start": 394134, "audio": 0, "end": 396497, "filename": "/zoneinfo/America/North_Dakota/Beulah"}, {"start": 396497, "audio": 0, "end": 398694, "filename": "/zoneinfo/Australia/Melbourne"}, {"start": 398694, "audio": 0, "end": 399120, "filename": "/zoneinfo/Australia/Queensland"}, {"start": 399120, "audio": 0, "end": 399421, "filename": "/zoneinfo/Australia/North"}, {"start": 399421, "audio": 0, "end": 401270, "filename": "/zoneinfo/Australia/Lord_Howe"}, {"start": 401270, "audio": 0, "end": 403486, "filename": "/zoneinfo/Australia/Adelaide"}, {"start": 403486, "audio": 0, "end": 405738, "filename": "/zoneinfo/Australia/Yancowinna"}, {"start": 405738, "audio": 0, "end": 407935, "filename": "/zoneinfo/Australia/Victoria"}, {"start": 407935, "audio": 0, "end": 410132, "filename": "/zoneinfo/Australia/Canberra"}, {"start": 410132, "audio": 0, "end": 412329, "filename": "/zoneinfo/Australia/Sydney"}, {"start": 412329, "audio": 0, "end": 414526, "filename": "/zoneinfo/Australia/ACT"}, {"start": 414526, "audio": 0, "end": 414989, "filename": "/zoneinfo/Australia/Eucla"}, {"start": 414989, "audio": 0, "end": 415415, "filename": "/zoneinfo/Australia/Brisbane"}, {"start": 415415, "audio": 0, "end": 417724, "filename": "/zoneinfo/Australia/Tasmania"}, {"start": 417724, "audio": 0, "end": 420033, "filename": "/zoneinfo/Australia/Hobart"}, {"start": 420033, "audio": 0, "end": 420486, "filename": "/zoneinfo/Australia/Perth"}, {"start": 420486, "audio": 0, "end": 422702, "filename": "/zoneinfo/Australia/South"}, {"start": 422702, "audio": 0, "end": 423198, "filename": "/zoneinfo/Australia/Lindeman"}, {"start": 423198, "audio": 0, "end": 423499, "filename": "/zoneinfo/Australia/Darwin"}, {"start": 423499, "audio": 0, "end": 423952, "filename": "/zoneinfo/Australia/West"}, {"start": 423952, "audio": 0, "end": 425801, "filename": "/zoneinfo/Australia/LHI"}, {"start": 425801, "audio": 0, "end": 427998, "filename": "/zoneinfo/Australia/NSW"}, {"start": 427998, "audio": 0, "end": 430250, "filename": "/zoneinfo/Australia/Broken_Hill"}, {"start": 430250, "audio": 0, "end": 432447, "filename": "/zoneinfo/Australia/Currie"}, {"start": 432447, "audio": 0, "end": 432569, "filename": "/zoneinfo/Etc/GMT-10"}, {"start": 432569, "audio": 0, "end": 432690, "filename": "/zoneinfo/Etc/GMT+12"}, {"start": 432690, "audio": 0, "end": 432812, "filename": "/zoneinfo/Etc/GMT-11"}, {"start": 432812, "audio": 0, "end": 432930, "filename": "/zoneinfo/Etc/Universal"}, {"start": 432930, "audio": 0, "end": 433048, "filename": "/zoneinfo/Etc/Greenwich"}, {"start": 433048, "audio": 0, "end": 433169, "filename": "/zoneinfo/Etc/GMT-6"}, {"start": 433169, "audio": 0, "end": 433290, "filename": "/zoneinfo/Etc/GMT-1"}, {"start": 433290, "audio": 0, "end": 433411, "filename": "/zoneinfo/Etc/GMT-8"}, {"start": 433411, "audio": 0, "end": 433531, "filename": "/zoneinfo/Etc/GMT+4"}, {"start": 433531, "audio": 0, "end": 433651, "filename": "/zoneinfo/Etc/GMT+3"}, {"start": 433651, "audio": 0, "end": 433772, "filename": "/zoneinfo/Etc/GMT-9"}, {"start": 433772, "audio": 0, "end": 433890, "filename": "/zoneinfo/Etc/GMT-0"}, {"start": 433890, "audio": 0, "end": 434011, "filename": "/zoneinfo/Etc/GMT-7"}, {"start": 434011, "audio": 0, "end": 434131, "filename": "/zoneinfo/Etc/GMT+2"}, {"start": 434131, "audio": 0, "end": 434251, "filename": "/zoneinfo/Etc/GMT+5"}, {"start": 434251, "audio": 0, "end": 434369, "filename": "/zoneinfo/Etc/GMT"}, {"start": 434369, "audio": 0, "end": 434487, "filename": "/zoneinfo/Etc/Zulu"}, {"start": 434487, "audio": 0, "end": 434608, "filename": "/zoneinfo/Etc/GMT+11"}, {"start": 434608, "audio": 0, "end": 434730, "filename": "/zoneinfo/Etc/GMT-13"}, {"start": 434730, "audio": 0, "end": 434852, "filename": "/zoneinfo/Etc/GMT-14"}, {"start": 434852, "audio": 0, "end": 434973, "filename": "/zoneinfo/Etc/GMT+10"}, {"start": 434973, "audio": 0, "end": 435095, "filename": "/zoneinfo/Etc/GMT-12"}, {"start": 435095, "audio": 0, "end": 435213, "filename": "/zoneinfo/Etc/GMT0"}, {"start": 435213, "audio": 0, "end": 435331, "filename": "/zoneinfo/Etc/UCT"}, {"start": 435331, "audio": 0, "end": 435449, "filename": "/zoneinfo/Etc/GMT+0"}, {"start": 435449, "audio": 0, "end": 435569, "filename": "/zoneinfo/Etc/GMT+7"}, {"start": 435569, "audio": 0, "end": 435689, "filename": "/zoneinfo/Etc/GMT+9"}, {"start": 435689, "audio": 0, "end": 435810, "filename": "/zoneinfo/Etc/GMT-2"}, {"start": 435810, "audio": 0, "end": 435931, "filename": "/zoneinfo/Etc/GMT-5"}, {"start": 435931, "audio": 0, "end": 436051, "filename": "/zoneinfo/Etc/GMT+8"}, {"start": 436051, "audio": 0, "end": 436171, "filename": "/zoneinfo/Etc/GMT+6"}, {"start": 436171, "audio": 0, "end": 436291, "filename": "/zoneinfo/Etc/GMT+1"}, {"start": 436291, "audio": 0, "end": 436409, "filename": "/zoneinfo/Etc/UTC"}, {"start": 436409, "audio": 0, "end": 436530, "filename": "/zoneinfo/Etc/GMT-4"}, {"start": 436530, "audio": 0, "end": 436651, "filename": "/zoneinfo/Etc/GMT-3"}, {"start": 436651, "audio": 0, "end": 437244, "filename": "/zoneinfo/Asia/Dushanbe"}, {"start": 437244, "audio": 0, "end": 438263, "filename": "/zoneinfo/Asia/Qostanay"}, {"start": 438263, "audio": 0, "end": 438549, "filename": "/zoneinfo/Asia/Calcutta"}, {"start": 438549, "audio": 0, "end": 438708, "filename": "/zoneinfo/Asia/Urumqi"}, {"start": 438708, "audio": 0, "end": 439111, "filename": "/zoneinfo/Asia/Karachi"}, {"start": 439111, "audio": 0, "end": 440394, "filename": "/zoneinfo/Asia/Khandyga"}, {"start": 440394, "audio": 0, "end": 440595, "filename": "/zoneinfo/Asia/Thimbu"}, {"start": 440595, "audio": 0, "end": 440796, "filename": "/zoneinfo/Asia/Thimphu"}, {"start": 440796, "audio": 0, "end": 442012, "filename": "/zoneinfo/Asia/Vladivostok"}, {"start": 442012, "audio": 0, "end": 442192, "filename": "/zoneinfo/Asia/Vientiane"}, {"start": 442192, "audio": 0, "end": 442720, "filename": "/zoneinfo/Asia/Shanghai"}, {"start": 442720, "audio": 0, "end": 443613, "filename": "/zoneinfo/Asia/Ulan_Bator"}, {"start": 443613, "audio": 0, "end": 443772, "filename": "/zoneinfo/Asia/Aden"}, {"start": 443772, "audio": 0, "end": 443931, "filename": "/zoneinfo/Asia/Muscat"}, {"start": 443931, "audio": 0, "end": 446237, "filename": "/zoneinfo/Asia/Damascus"}, {"start": 446237, "audio": 0, "end": 455274, "filename": "/zoneinfo/Asia/Jerusalem"}, {"start": 455274, "audio": 0, "end": 455475, "filename": "/zoneinfo/Asia/Brunei"}, {"start": 455475, "audio": 0, "end": 456368, "filename": "/zoneinfo/Asia/Ulaanbaatar"}, {"start": 456368, "audio": 0, "end": 464988, "filename": "/zoneinfo/Asia/Amman"}, {"start": 464988, "audio": 0, "end": 465481, "filename": "/zoneinfo/Asia/Kuching"}, {"start": 465481, "audio": 0, "end": 474518, "filename": "/zoneinfo/Asia/Tel_Aviv"}, {"start": 474518, "audio": 0, "end": 475163, "filename": "/zoneinfo/Asia/Seoul"}, {"start": 475163, "audio": 0, "end": 476160, "filename": "/zoneinfo/Asia/Atyrau"}, {"start": 476160, "audio": 0, "end": 476413, "filename": "/zoneinfo/Asia/Pyongyang"}, {"start": 476413, "audio": 0, "end": 477306, "filename": "/zoneinfo/Asia/Hovd"}, {"start": 477306, "audio": 0, "end": 479659, "filename": "/zoneinfo/Asia/Hebron"}, {"start": 479659, "audio": 0, "end": 479818, "filename": "/zoneinfo/Asia/Kuwait"}, {"start": 479818, "audio": 0, "end": 481045, "filename": "/zoneinfo/Asia/Tomsk"}, {"start": 481045, "audio": 0, "end": 481378, "filename": "/zoneinfo/Asia/Manila"}, {"start": 481378, "audio": 0, "end": 482607, "filename": "/zoneinfo/Asia/Chita"}, {"start": 482607, "audio": 0, "end": 482817, "filename": "/zoneinfo/Asia/Katmandu"}, {"start": 482817, "audio": 0, "end": 485142, "filename": "/zoneinfo/Asia/Gaza"}, {"start": 485142, "audio": 0, "end": 485733, "filename": "/zoneinfo/Asia/Samarkand"}, {"start": 485733, "audio": 0, "end": 486497, "filename": "/zoneinfo/Asia/Taipei"}, {"start": 486497, "audio": 0, "end": 487104, "filename": "/zoneinfo/Asia/Tashkent"}, {"start": 487104, "audio": 0, "end": 488357, "filename": "/zoneinfo/Asia/Yekaterinburg"}, {"start": 488357, "audio": 0, "end": 489598, "filename": "/zoneinfo/Asia/Macau"}, {"start": 489598, "audio": 0, "end": 490647, "filename": "/zoneinfo/Asia/Qyzylorda"}, {"start": 490647, "audio": 0, "end": 491888, "filename": "/zoneinfo/Asia/Macao"}, {"start": 491888, "audio": 0, "end": 492180, "filename": "/zoneinfo/Asia/Tokyo"}, {"start": 492180, "audio": 0, "end": 493421, "filename": "/zoneinfo/Asia/Baku"}, {"start": 493421, "audio": 0, "end": 494648, "filename": "/zoneinfo/Asia/Barnaul"}, {"start": 494648, "audio": 0, "end": 496578, "filename": "/zoneinfo/Asia/Istanbul"}, {"start": 496578, "audio": 0, "end": 497814, "filename": "/zoneinfo/Asia/Irkutsk"}, {"start": 497814, "audio": 0, "end": 498011, "filename": "/zoneinfo/Asia/Qatar"}, {"start": 498011, "audio": 0, "end": 498208, "filename": "/zoneinfo/Asia/Bahrain"}, {"start": 498208, "audio": 0, "end": 498465, "filename": "/zoneinfo/Asia/Yangon"}, {"start": 498465, "audio": 0, "end": 499650, "filename": "/zoneinfo/Asia/Yerevan"}, {"start": 499650, "audio": 0, "end": 500653, "filename": "/zoneinfo/Asia/Almaty"}, {"start": 500653, "audio": 0, "end": 500878, "filename": "/zoneinfo/Asia/Dili"}, {"start": 500878, "audio": 0, "end": 501208, "filename": "/zoneinfo/Asia/Dacca"}, {"start": 501208, "audio": 0, "end": 501736, "filename": "/zoneinfo/Asia/Chongqing"}, {"start": 501736, "audio": 0, "end": 502998, "filename": "/zoneinfo/Asia/Ust-Nera"}, {"start": 502998, "audio": 0, "end": 504228, "filename": "/zoneinfo/Asia/Magadan"}, {"start": 504228, "audio": 0, "end": 504601, "filename": "/zoneinfo/Asia/Colombo"}, {"start": 504601, "audio": 0, "end": 505816, "filename": "/zoneinfo/Asia/Krasnoyarsk"}, {"start": 505816, "audio": 0, "end": 506986, "filename": "/zoneinfo/Asia/Kamchatka"}, {"start": 506986, "audio": 0, "end": 507260, "filename": "/zoneinfo/Asia/Ujung_Pandang"}, {"start": 507260, "audio": 0, "end": 507626, "filename": "/zoneinfo/Asia/Jakarta"}, {"start": 507626, "audio": 0, "end": 507912, "filename": "/zoneinfo/Asia/Kolkata"}, {"start": 507912, "audio": 0, "end": 508101, "filename": "/zoneinfo/Asia/Kabul"}, {"start": 508101, "audio": 0, "end": 509112, "filename": "/zoneinfo/Asia/Oral"}, {"start": 509112, "audio": 0, "end": 509349, "filename": "/zoneinfo/Asia/Jayapura"}, {"start": 509349, "audio": 0, "end": 509730, "filename": "/zoneinfo/Asia/Pontianak"}, {"start": 509730, "audio": 0, "end": 510004, "filename": "/zoneinfo/Asia/Makassar"}, {"start": 510004, "audio": 0, "end": 511044, "filename": "/zoneinfo/Asia/Tbilisi"}, {"start": 511044, "audio": 0, "end": 511428, "filename": "/zoneinfo/Asia/Singapore"}, {"start": 511428, "audio": 0, "end": 511956, "filename": "/zoneinfo/Asia/Harbin"}, {"start": 511956, "audio": 0, "end": 512115, "filename": "/zoneinfo/Asia/Kashgar"}, {"start": 512115, "audio": 0, "end": 512445, "filename": "/zoneinfo/Asia/Dhaka"}, {"start": 512445, "audio": 0, "end": 513660, "filename": "/zoneinfo/Asia/Yakutsk"}, {"start": 513660, "audio": 0, "end": 514044, "filename": "/zoneinfo/Asia/Kuala_Lumpur"}, {"start": 514044, "audio": 0, "end": 523820, "filename": "/zoneinfo/Asia/Tehran"}, {"start": 523820, "audio": 0, "end": 525969, "filename": "/zoneinfo/Asia/Beirut"}, {"start": 525969, "audio": 0, "end": 526988, "filename": "/zoneinfo/Asia/Aqtobe"}, {"start": 526988, "audio": 0, "end": 528182, "filename": "/zoneinfo/Asia/Anadyr"}, {"start": 528182, "audio": 0, "end": 529199, "filename": "/zoneinfo/Asia/Bishkek"}, {"start": 529199, "audio": 0, "end": 529358, "filename": "/zoneinfo/Asia/Dubai"}, {"start": 529358, "audio": 0, "end": 529517, "filename": "/zoneinfo/Asia/Riyadh"}, {"start": 529517, "audio": 0, "end": 530686, "filename": "/zoneinfo/Asia/Novokuznetsk"}, {"start": 530686, "audio": 0, "end": 531675, "filename": "/zoneinfo/Asia/Aqtau"}, {"start": 531675, "audio": 0, "end": 532890, "filename": "/zoneinfo/Asia/Omsk"}, {"start": 532890, "audio": 0, "end": 533513, "filename": "/zoneinfo/Asia/Ashkhabad"}, {"start": 533513, "audio": 0, "end": 533874, "filename": "/zoneinfo/Asia/Saigon"}, {"start": 533874, "audio": 0, "end": 535080, "filename": "/zoneinfo/Asia/Sakhalin"}, {"start": 535080, "audio": 0, "end": 536297, "filename": "/zoneinfo/Asia/Hong_Kong"}, {"start": 536297, "audio": 0, "end": 536477, "filename": "/zoneinfo/Asia/Phnom_Penh"}, {"start": 536477, "audio": 0, "end": 538479, "filename": "/zoneinfo/Asia/Nicosia"}, {"start": 538479, "audio": 0, "end": 539443, "filename": "/zoneinfo/Asia/Baghdad"}, {"start": 539443, "audio": 0, "end": 540659, "filename": "/zoneinfo/Asia/Srednekolymsk"}, {"start": 540659, "audio": 0, "end": 541282, "filename": "/zoneinfo/Asia/Ashgabat"}, {"start": 541282, "audio": 0, "end": 541492, "filename": "/zoneinfo/Asia/Kathmandu"}, {"start": 541492, "audio": 0, "end": 542455, "filename": "/zoneinfo/Asia/Choibalsan"}, {"start": 542455, "audio": 0, "end": 542635, "filename": "/zoneinfo/Asia/Bangkok"}, {"start": 542635, "audio": 0, "end": 543163, "filename": "/zoneinfo/Asia/Chungking"}, {"start": 543163, "audio": 0, "end": 544390, "filename": "/zoneinfo/Asia/Novosibirsk"}, {"start": 544390, "audio": 0, "end": 546418, "filename": "/zoneinfo/Asia/Famagusta"}, {"start": 546418, "audio": 0, "end": 546675, "filename": "/zoneinfo/Asia/Rangoon"}, {"start": 546675, "audio": 0, "end": 547036, "filename": "/zoneinfo/Asia/Ho_Chi_Minh"}, {"start": 547036, "audio": 0, "end": 548440, "filename": "/zoneinfo/Antarctica/Palmer"}, {"start": 548440, "audio": 0, "end": 548723, "filename": "/zoneinfo/Antarctica/Davis"}, {"start": 548723, "audio": 0, "end": 548881, "filename": "/zoneinfo/Antarctica/Rothera"}, {"start": 548881, "audio": 0, "end": 549040, "filename": "/zoneinfo/Antarctica/Vostok"}, {"start": 549040, "audio": 0, "end": 549199, "filename": "/zoneinfo/Antarctica/Syowa"}, {"start": 549199, "audio": 0, "end": 549387, "filename": "/zoneinfo/Antarctica/DumontDUrville"}, {"start": 549387, "audio": 0, "end": 551821, "filename": "/zoneinfo/Antarctica/McMurdo"}, {"start": 551821, "audio": 0, "end": 553328, "filename": "/zoneinfo/Antarctica/Macquarie"}, {"start": 553328, "audio": 0, "end": 555762, "filename": "/zoneinfo/Antarctica/South_Pole"}, {"start": 555762, "audio": 0, "end": 556910, "filename": "/zoneinfo/Antarctica/Troll"}, {"start": 556910, "audio": 0, "end": 557107, "filename": "/zoneinfo/Antarctica/Mawson"}, {"start": 557107, "audio": 0, "end": 557390, "filename": "/zoneinfo/Antarctica/Casey"}, {"start": 557390, "audio": 0, "end": 559282, "filename": "/zoneinfo/Europe/Zurich"}, {"start": 559282, "audio": 0, "end": 562227, "filename": "/zoneinfo/Europe/Paris"}, {"start": 562227, "audio": 0, "end": 563745, "filename": "/zoneinfo/Europe/Moscow"}, {"start": 563745, "audio": 0, "end": 566705, "filename": "/zoneinfo/Europe/Luxembourg"}, {"start": 566705, "audio": 0, "end": 568636, "filename": "/zoneinfo/Europe/Ljubljana"}, {"start": 568636, "audio": 0, "end": 570519, "filename": "/zoneinfo/Europe/Helsinki"}, {"start": 570519, "audio": 0, "end": 571849, "filename": "/zoneinfo/Europe/Minsk"}, {"start": 571849, "audio": 0, "end": 573780, "filename": "/zoneinfo/Europe/Skopje"}, {"start": 573780, "audio": 0, "end": 577285, "filename": "/zoneinfo/Europe/Dublin"}, {"start": 577285, "audio": 0, "end": 580946, "filename": "/zoneinfo/Europe/Jersey"}, {"start": 580946, "audio": 0, "end": 583612, "filename": "/zoneinfo/Europe/San_Marino"}, {"start": 583612, "audio": 0, "end": 586647, "filename": "/zoneinfo/Europe/Gibraltar"}, {"start": 586647, "audio": 0, "end": 588578, "filename": "/zoneinfo/Europe/Belgrade"}, {"start": 588578, "audio": 0, "end": 592239, "filename": "/zoneinfo/Europe/Guernsey"}, {"start": 592239, "audio": 0, "end": 593492, "filename": "/zoneinfo/Europe/Ulyanovsk"}, {"start": 593492, "audio": 0, "end": 594661, "filename": "/zoneinfo/Europe/Saratov"}, {"start": 594661, "audio": 0, "end": 596553, "filename": "/zoneinfo/Europe/Vaduz"}, {"start": 596553, "audio": 0, "end": 598483, "filename": "/zoneinfo/Europe/Istanbul"}, {"start": 598483, "audio": 0, "end": 601938, "filename": "/zoneinfo/Europe/Lisbon"}, {"start": 601938, "audio": 0, "end": 604015, "filename": "/zoneinfo/Europe/Uzhgorod"}, {"start": 604015, "audio": 0, "end": 605154, "filename": "/zoneinfo/Europe/Kirov"}, {"start": 605154, "audio": 0, "end": 607238, "filename": "/zoneinfo/Europe/Tirane"}, {"start": 607238, "audio": 0, "end": 609657, "filename": "/zoneinfo/Europe/Tiraspol"}, {"start": 609657, "audio": 0, "end": 611588, "filename": "/zoneinfo/Europe/Sarajevo"}, {"start": 611588, "audio": 0, "end": 614199, "filename": "/zoneinfo/Europe/Madrid"}, {"start": 614199, "audio": 0, "end": 616130, "filename": "/zoneinfo/Europe/Podgorica"}, {"start": 616130, "audio": 0, "end": 618022, "filename": "/zoneinfo/Europe/Busingen"}, {"start": 618022, "audio": 0, "end": 620688, "filename": "/zoneinfo/Europe/Vatican"}, {"start": 620688, "audio": 0, "end": 624349, "filename": "/zoneinfo/Europe/Belfast"}, {"start": 624349, "audio": 0, "end": 626661, "filename": "/zoneinfo/Europe/Bratislava"}, {"start": 626661, "audio": 0, "end": 628732, "filename": "/zoneinfo/Europe/Kiev"}, {"start": 628732, "audio": 0, "end": 630238, "filename": "/zoneinfo/Europe/Kaliningrad"}, {"start": 630238, "audio": 0, "end": 632327, "filename": "/zoneinfo/Europe/Zaporozhye"}, {"start": 632327, "audio": 0, "end": 634538, "filename": "/zoneinfo/Europe/Vienna"}, {"start": 634538, "audio": 0, "end": 636917, "filename": "/zoneinfo/Europe/Budapest"}, {"start": 636917, "audio": 0, "end": 639090, "filename": "/zoneinfo/Europe/Vilnius"}, {"start": 639090, "audio": 0, "end": 642017, "filename": "/zoneinfo/Europe/Monaco"}, {"start": 642017, "audio": 0, "end": 644242, "filename": "/zoneinfo/Europe/Oslo"}, {"start": 644242, "audio": 0, "end": 645411, "filename": "/zoneinfo/Europe/Astrakhan"}, {"start": 645411, "audio": 0, "end": 646875, "filename": "/zoneinfo/Europe/Simferopol"}, {"start": 646875, "audio": 0, "end": 648044, "filename": "/zoneinfo/Europe/Volgograd"}, {"start": 648044, "audio": 0, "end": 651705, "filename": "/zoneinfo/Europe/Isle_of_Man"}, {"start": 651705, "audio": 0, "end": 655366, "filename": "/zoneinfo/Europe/London"}, {"start": 655366, "audio": 0, "end": 657575, "filename": "/zoneinfo/Europe/Riga"}, {"start": 657575, "audio": 0, "end": 659300, "filename": "/zoneinfo/Europe/Andorra"}, {"start": 659300, "audio": 0, "end": 661612, "filename": "/zoneinfo/Europe/Prague"}, {"start": 661612, "audio": 0, "end": 663921, "filename": "/zoneinfo/Europe/Berlin"}, {"start": 663921, "audio": 0, "end": 666082, "filename": "/zoneinfo/Europe/Tallinn"}, {"start": 666082, "audio": 0, "end": 668748, "filename": "/zoneinfo/Europe/Rome"}, {"start": 668748, "audio": 0, "end": 671351, "filename": "/zoneinfo/Europe/Malta"}, {"start": 671351, "audio": 0, "end": 673282, "filename": "/zoneinfo/Europe/Zagreb"}, {"start": 673282, "audio": 0, "end": 676205, "filename": "/zoneinfo/Europe/Amsterdam"}, {"start": 676205, "audio": 0, "end": 678207, "filename": "/zoneinfo/Europe/Nicosia"}, {"start": 678207, "audio": 0, "end": 680402, "filename": "/zoneinfo/Europe/Bucharest"}, {"start": 680402, "audio": 0, "end": 682536, "filename": "/zoneinfo/Europe/Copenhagen"}, {"start": 682536, "audio": 0, "end": 684955, "filename": "/zoneinfo/Europe/Chisinau"}, {"start": 684955, "audio": 0, "end": 686838, "filename": "/zoneinfo/Europe/Mariehamn"}, {"start": 686838, "audio": 0, "end": 688942, "filename": "/zoneinfo/Europe/Sofia"}, {"start": 688942, "audio": 0, "end": 691187, "filename": "/zoneinfo/Europe/Athens"}, {"start": 691187, "audio": 0, "end": 693079, "filename": "/zoneinfo/Europe/Stockholm"}, {"start": 693079, "audio": 0, "end": 694304, "filename": "/zoneinfo/Europe/Samara"}, {"start": 694304, "audio": 0, "end": 697248, "filename": "/zoneinfo/Europe/Brussels"}, {"start": 697248, "audio": 0, "end": 699927, "filename": "/zoneinfo/Europe/Warsaw"}, {"start": 699927, "audio": 0, "end": 702269, "filename": "/zoneinfo/Mexico/BajaNorte"}, {"start": 702269, "audio": 0, "end": 703873, "filename": "/zoneinfo/Mexico/General"}, {"start": 703873, "audio": 0, "end": 705423, "filename": "/zoneinfo/Mexico/BajaSur"}, {"start": 705423, "audio": 0, "end": 705664, "filename": "/zoneinfo/Africa/Sao_Tome"}, {"start": 705664, "audio": 0, "end": 705820, "filename": "/zoneinfo/Africa/Conakry"}, {"start": 705820, "audio": 0, "end": 705976, "filename": "/zoneinfo/Africa/Dakar"}, {"start": 705976, "audio": 0, "end": 706187, "filename": "/zoneinfo/Africa/Ndjamena"}, {"start": 706187, "audio": 0, "end": 708636, "filename": "/zoneinfo/Africa/Casablanca"}, {"start": 708636, "audio": 0, "end": 708792, "filename": "/zoneinfo/Africa/Lome"}, {"start": 708792, "audio": 0, "end": 709526, "filename": "/zoneinfo/Africa/Algiers"}, {"start": 709526, "audio": 0, "end": 709797, "filename": "/zoneinfo/Africa/Mogadishu"}, {"start": 709797, "audio": 0, "end": 709954, "filename": "/zoneinfo/Africa/Lagos"}, {"start": 709954, "audio": 0, "end": 710111, "filename": "/zoneinfo/Africa/Brazzaville"}, {"start": 710111, "audio": 0, "end": 710267, "filename": "/zoneinfo/Africa/Timbuktu"}, {"start": 710267, "audio": 0, "end": 710423, "filename": "/zoneinfo/Africa/Nouakchott"}, {"start": 710423, "audio": 0, "end": 710668, "filename": "/zoneinfo/Africa/Maseru"}, {"start": 710668, "audio": 0, "end": 710825, "filename": "/zoneinfo/Africa/Libreville"}, {"start": 710825, "audio": 0, "end": 710982, "filename": "/zoneinfo/Africa/Harare"}, {"start": 710982, "audio": 0, "end": 711139, "filename": "/zoneinfo/Africa/Malabo"}, {"start": 711139, "audio": 0, "end": 711296, "filename": "/zoneinfo/Africa/Bangui"}, {"start": 711296, "audio": 0, "end": 711567, "filename": "/zoneinfo/Africa/Nairobi"}, {"start": 711567, "audio": 0, "end": 711724, "filename": "/zoneinfo/Africa/Kinshasa"}, {"start": 711724, "audio": 0, "end": 711881, "filename": "/zoneinfo/Africa/Porto-Novo"}, {"start": 711881, "audio": 0, "end": 713827, "filename": "/zoneinfo/Africa/Cairo"}, {"start": 713827, "audio": 0, "end": 713984, "filename": "/zoneinfo/Africa/Douala"}, {"start": 713984, "audio": 0, "end": 714653, "filename": "/zoneinfo/Africa/Juba"}, {"start": 714653, "audio": 0, "end": 714810, "filename": "/zoneinfo/Africa/Gaborone"}, {"start": 714810, "audio": 0, "end": 715494, "filename": "/zoneinfo/Africa/Tunis"}, {"start": 715494, "audio": 0, "end": 715765, "filename": "/zoneinfo/Africa/Kampala"}, {"start": 715765, "audio": 0, "end": 716010, "filename": "/zoneinfo/Africa/Mbabane"}, {"start": 716010, "audio": 0, "end": 716281, "filename": "/zoneinfo/Africa/Addis_Ababa"}, {"start": 716281, "audio": 0, "end": 716438, "filename": "/zoneinfo/Africa/Maputo"}, {"start": 716438, "audio": 0, "end": 716632, "filename": "/zoneinfo/Africa/Bissau"}, {"start": 716632, "audio": 0, "end": 716789, "filename": "/zoneinfo/Africa/Blantyre"}, {"start": 716789, "audio": 0, "end": 716946, "filename": "/zoneinfo/Africa/Niamey"}, {"start": 716946, "audio": 0, "end": 717102, "filename": "/zoneinfo/Africa/Banjul"}, {"start": 717102, "audio": 0, "end": 717258, "filename": "/zoneinfo/Africa/Abidjan"}, {"start": 717258, "audio": 0, "end": 717529, "filename": "/zoneinfo/Africa/Asmara"}, {"start": 717529, "audio": 0, "end": 717685, "filename": "/zoneinfo/Africa/Bamako"}, {"start": 717685, "audio": 0, "end": 717841, "filename": "/zoneinfo/Africa/Ouagadougou"}, {"start": 717841, "audio": 0, "end": 717998, "filename": "/zoneinfo/Africa/Lusaka"}, {"start": 717998, "audio": 0, "end": 718155, "filename": "/zoneinfo/Africa/Luanda"}, {"start": 718155, "audio": 0, "end": 718426, "filename": "/zoneinfo/Africa/Asmera"}, {"start": 718426, "audio": 0, "end": 718583, "filename": "/zoneinfo/Africa/Lubumbashi"}, {"start": 718583, "audio": 0, "end": 719411, "filename": "/zoneinfo/Africa/Accra"}, {"start": 719411, "audio": 0, "end": 720110, "filename": "/zoneinfo/Africa/Khartoum"}, {"start": 720110, "audio": 0, "end": 722143, "filename": "/zoneinfo/Africa/Ceuta"}, {"start": 722143, "audio": 0, "end": 722300, "filename": "/zoneinfo/Africa/Bujumbura"}, {"start": 722300, "audio": 0, "end": 723262, "filename": "/zoneinfo/Africa/Windhoek"}, {"start": 723262, "audio": 0, "end": 725581, "filename": "/zoneinfo/Africa/El_Aaiun"}, {"start": 725581, "audio": 0, "end": 726222, "filename": "/zoneinfo/Africa/Tripoli"}, {"start": 726222, "audio": 0, "end": 726429, "filename": "/zoneinfo/Africa/Monrovia"}, {"start": 726429, "audio": 0, "end": 726700, "filename": "/zoneinfo/Africa/Dar_es_Salaam"}, {"start": 726700, "audio": 0, "end": 726945, "filename": "/zoneinfo/Africa/Johannesburg"}, {"start": 726945, "audio": 0, "end": 727102, "filename": "/zoneinfo/Africa/Kigali"}, {"start": 727102, "audio": 0, "end": 727373, "filename": "/zoneinfo/Africa/Djibouti"}, {"start": 727373, "audio": 0, "end": 727529, "filename": "/zoneinfo/Africa/Freetown"}, {"start": 727529, "audio": 0, "end": 736576, "filename": "/zoneinfo/Chile/EasterIsland"}, {"start": 736576, "audio": 0, "end": 745919, "filename": "/zoneinfo/Chile/Continental"}, {"start": 745919, "audio": 0, "end": 749343, "filename": "/zoneinfo/Canada/Atlantic"}, {"start": 749343, "audio": 0, "end": 752218, "filename": "/zoneinfo/Canada/Pacific"}, {"start": 752218, "audio": 0, "end": 755695, "filename": "/zoneinfo/Canada/Eastern"}, {"start": 755695, "audio": 0, "end": 757762, "filename": "/zoneinfo/Canada/Yukon"}, {"start": 757762, "audio": 0, "end": 758742, "filename": "/zoneinfo/Canada/Saskatchewan"}, {"start": 758742, "audio": 0, "end": 762380, "filename": "/zoneinfo/Canada/Newfoundland"}, {"start": 762380, "audio": 0, "end": 765245, "filename": "/zoneinfo/Canada/Central"}, {"start": 765245, "audio": 0, "end": 767577, "filename": "/zoneinfo/Canada/Mountain"}], "remote_package_size": 767577, "package_uuid": "d640eb58-4a61-42ca-85f3-d36dae8c35e5"});
+
+})();
diff --git a/sdks/wasm/zoneinfo/zoneinfo.data b/sdks/wasm/zoneinfo/zoneinfo.data
new file mode 100644
index 00000000000..94d444b6cb2
--- /dev/null
+++ b/sdks/wasm/zoneinfo/zoneinfo.data
Binary files differ