diff --git a/MacSample/MacSample/AppDelegate.swift b/MacSample/MacSample/AppDelegate.swift
index ae0f03762..58bd5d725 100644
--- a/MacSample/MacSample/AppDelegate.swift
+++ b/MacSample/MacSample/AppDelegate.swift
@@ -15,7 +15,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
/* Uncomment to run all the examples */
-// SoulverCoreExamples.runAllExamples()
+ SoulverCoreExamples.runAllExamples()
}
diff --git a/README.md b/README.md
index e241923ef..b764903a1 100644
--- a/README.md
+++ b/README.md
@@ -9,14 +9,13 @@ SoulverCore is a Swift framework that lets you easily evaluate mathematical expr
## Supported Platforms
-SoulverCore is distributed as a Binary Framework (.xcframework) and supports macOS & iOS.
+SoulverCore is distributed as a binary framework (.xcframework) and supports macOS, iOS, & iPadOS.
- macOS 10.14.4+
-- iOS 12.2+
+- iOS/iPadOS 12.2+
## Installation
-
Drag `SoulverCore.xcframework` into the `Frameworks, Libraries, and Embedded Content` section of the General settings for your Mac or iOS target.
@@ -42,6 +41,8 @@ calculator.evaluate("$150 is 25% on what") // $120
calculator.evaluate("$25/hour * 14 hours of work") // $350.00
calculator.evaluate("January 30 2020 + 3 months 2 weeks 5 days") // 19 May
calculator.evaluate("9:35am in New York to Japan") // 10:35 pm
+calculator.evaluate("$25k over 10 years at 7.5%") // $51,525.79 (compound interest)
+
```
## Variables
@@ -186,10 +187,11 @@ binary "https://soulver.app/core/SoulverCore.json"
SoulverCore has all the calculation features of [Soulver](https://soulver.app). Check out [Soulver's documentation](https://documentation.soulver.app) for more information on supported syntaxes.
-## Authors
+## Examples of SoulverCore in Use
-* **Zac Cohan** (zac@soulver.app)
+- [Lacona](https://lacona.app) - a powerful natural language assistant/launcher for macOS
+- [Toolbox Pro](https://toolboxpro.app) - calculate with Soulver as part of your Siri Shortcuts on iOS
## License
-You may use SoulverCore in personal/private projects. Please [email us](mailto:contact@soulver.app) if you wish to use SoulverCore in a publically available or commerical project.
+You may use SoulverCore in personal/private projects. Please [email us](mailto:contact@soulver.app) if you wish to use SoulverCore in a publically available or commerical project.
\ No newline at end of file
diff --git a/SoulverCore.xcframework/Info.plist b/SoulverCore.xcframework/Info.plist
index 417546fd3..16d6fd7f5 100644
--- a/SoulverCore.xcframework/Info.plist
+++ b/SoulverCore.xcframework/Info.plist
@@ -18,29 +18,29 @@
LibraryIdentifier
- ios-arm64
+ ios-x86_64-simulator
LibraryPath
SoulverCore.framework
SupportedArchitectures
- arm64
+ x86_64
SupportedPlatform
ios
+ SupportedPlatformVariant
+ simulator
LibraryIdentifier
- ios-x86_64-simulator
+ ios-arm64
LibraryPath
SoulverCore.framework
SupportedArchitectures
- x86_64
+ arm64
SupportedPlatform
ios
- SupportedPlatformVariant
- simulator
CFBundlePackageType
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/Info.plist b/SoulverCore.xcframework/SoulverCore.xcframework/Info.plist
new file mode 100644
index 000000000..656186d9a
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/Info.plist
@@ -0,0 +1,51 @@
+
+
+
+
+ AvailableLibraries
+
+
+ LibraryIdentifier
+ ios-arm64
+ LibraryPath
+ SoulverCore.framework
+ SupportedArchitectures
+
+ arm64
+
+ SupportedPlatform
+ ios
+
+
+ LibraryIdentifier
+ macos-x86_64
+ LibraryPath
+ SoulverCore.framework
+ SupportedArchitectures
+
+ x86_64
+
+ SupportedPlatform
+ macos
+
+
+ LibraryIdentifier
+ ios-x86_64-simulator
+ LibraryPath
+ SoulverCore.framework
+ SupportedArchitectures
+
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Cities.json
new file mode 100644
index 000000000..e00ce82fe
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Cities.json
@@ -0,0 +1,3569 @@
+[
+ {
+ "identifier": "shanghai",
+ "name": "Shanghai",
+ "population": "22,315,474",
+ "elevation": 12,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "istanbul",
+ "name": "Istanbul",
+ "population": "14,804,116",
+ "elevation": 39,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "buenos aires",
+ "name": "Buenos Aires",
+ "population": "13,076,300",
+ "elevation": 31,
+ "timezone_id": "America/Argentina/Buenos_Aires"
+ },
+ {
+ "identifier": "mumbai",
+ "name": "Mumbai",
+ "population": "12,691,836",
+ "elevation": 8,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "mexico city",
+ "name": "Mexico City",
+ "population": "12,294,193",
+ "elevation": 2240,
+ "timezone_id": "America/Mexico_City"
+ },
+ {
+ "identifier": "beijing",
+ "name": "Beijing",
+ "population": "11,716,620",
+ "elevation": 49,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "karachi",
+ "name": "Karachi",
+ "population": "11,624,219",
+ "elevation": 8,
+ "timezone_id": "Asia/Karachi"
+ },
+ {
+ "identifier": "tianjin",
+ "name": "Tianjin",
+ "population": "11,090,314",
+ "elevation": 11,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "guangzhou",
+ "name": "Guangzhou",
+ "population": "11,071,424",
+ "elevation": 15,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "delhi",
+ "name": "Delhi",
+ "population": "10,927,986",
+ "elevation": 227,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "moscow",
+ "name": "Moscow",
+ "population": "10,381,222",
+ "elevation": 144,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "shenzhen",
+ "name": "Shenzhen",
+ "population": "10,358,381",
+ "elevation": 4,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "dhaka",
+ "name": "Dhaka",
+ "population": "10,356,500",
+ "elevation": 23,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "seoul",
+ "name": "Seoul",
+ "population": "10,349,312",
+ "elevation": 38,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "sao paulo",
+ "name": "Sao Paulo",
+ "population": "10,021,295",
+ "elevation": 769,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "wuhan",
+ "name": "Wuhan",
+ "population": "9,785,388",
+ "elevation": 20,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "lagos",
+ "name": "Lagos",
+ "population": "9,000,000",
+ "elevation": 11,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "jakarta",
+ "name": "Jakarta",
+ "population": "8,540,121",
+ "elevation": 16,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "tokyo",
+ "name": "Tokyo",
+ "population": "8,336,599",
+ "elevation": 44,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "new york",
+ "name": "New York",
+ "population": "8,175,133",
+ "elevation": 57,
+ "aliases" : ["NYC"],
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "dongguan",
+ "name": "Dongguan",
+ "population": "8,000,000",
+ "elevation": 1,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "taipei",
+ "name": "Taipei",
+ "population": "7,871,900",
+ "elevation": 10,
+ "timezone_id": "Asia/Taipei"
+ },
+ {
+ "identifier": "kinshasa",
+ "name": "Kinshasa",
+ "population": "7,785,965",
+ "elevation": 281,
+ "timezone_id": "Africa/Kinshasa"
+ },
+ {
+ "identifier": "cairo",
+ "name": "Cairo",
+ "population": "7,734,614",
+ "elevation": 23,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "bogota",
+ "name": "Bogota",
+ "population": "7,674,366",
+ "elevation": 2582,
+ "timezone_id": "America/Bogota"
+ },
+ {
+ "identifier": "london",
+ "name": "London",
+ "population": "7,556,900",
+ "elevation": 25,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "chongqing",
+ "name": "Chongqing",
+ "population": "7,457,600",
+ "elevation": 225,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "chengdu",
+ "name": "Chengdu",
+ "population": "7,415,590",
+ "elevation": 499,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "baghdad",
+ "name": "Baghdad",
+ "population": "7,216,000",
+ "elevation": 41,
+ "timezone_id": "Asia/Baghdad"
+ },
+ {
+ "identifier": "nanjing",
+ "name": "Nanjing",
+ "population": "7,165,292",
+ "elevation": 22,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "tehran",
+ "name": "Tehran",
+ "population": "7,153,309",
+ "elevation": 1178,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "nanchong",
+ "name": "Nanchong",
+ "population": "7,150,000",
+ "elevation": 287,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "hong kong",
+ "name": "Hong Kong",
+ "population": "7,012,738",
+ "elevation": 60,
+ "timezone_id": "Asia/Hong_Kong"
+ },
+ {
+ "identifier": "xi'an",
+ "name": "Xi'an",
+ "population": "6,501,190",
+ "elevation": 416,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "rio de janeiro",
+ "name": "Rio de Janeiro",
+ "population": "6,023,699",
+ "elevation": 6,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "bangkok",
+ "name": "Bangkok",
+ "population": "5,104,476",
+ "elevation": 12,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "bengaluru",
+ "name": "Bengaluru",
+ "population": "5,104,047",
+ "elevation": 914,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "saint petersburg",
+ "name": "Saint Petersburg",
+ "population": "5,028,000",
+ "elevation": 11,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "santiago",
+ "name": "Santiago",
+ "population": "4,837,295",
+ "elevation": 556,
+ "timezone_id": "America/Santiago"
+ },
+ {
+ "identifier": "kolkata",
+ "name": "Kolkata",
+ "population": "4,631,392",
+ "elevation": 11,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "sydney",
+ "name": "Sydney",
+ "population": "4,627,345",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "yangon",
+ "name": "Yangon",
+ "population": "4,477,638",
+ "elevation": 30,
+ "timezone_id": "Asia/Yangon"
+ },
+ {
+ "identifier": "chennai",
+ "name": "Chennai",
+ "population": "4,328,063",
+ "elevation": 14,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "melbourne",
+ "name": "Melbourne",
+ "population": "4,246,375",
+ "elevation": 58,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "riyadh",
+ "name": "Riyadh",
+ "population": "4,205,961",
+ "elevation": 612,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "los angeles",
+ "name": "Los Angeles",
+ "population": "3,971,883",
+ "elevation": 96,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "chittagong",
+ "name": "Chittagong",
+ "population": "3,920,222",
+ "elevation": 15,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "alexandria",
+ "name": "Alexandria",
+ "population": "3,811,516",
+ "elevation": 9,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "ahmedabad",
+ "name": "Ahmedabad",
+ "population": "3,719,710",
+ "elevation": 56,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "busan",
+ "name": "Busan",
+ "population": "3,678,555",
+ "elevation": 26,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "abidjan",
+ "name": "Abidjan",
+ "population": "3,677,115",
+ "elevation": 76,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "kano",
+ "name": "Kano",
+ "population": "3,626,068",
+ "elevation": 484,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hyderabad",
+ "name": "Hyderabad",
+ "population": "3,597,816",
+ "elevation": 515,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "yokohama",
+ "name": "Yokohama",
+ "population": "3,574,443",
+ "elevation": 21,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "ibadan",
+ "name": "Ibadan",
+ "population": "3,565,108",
+ "elevation": 181,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "singapore",
+ "name": "Singapore",
+ "population": "3,547,809",
+ "elevation": 23,
+ "timezone_id": "Asia/Singapore"
+ },
+ {
+ "identifier": "ankara",
+ "name": "Ankara",
+ "population": "3,517,182",
+ "elevation": 874,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "ho chi minh city",
+ "name": "Ho Chi Minh City",
+ "population": "3,467,331",
+ "elevation": 7,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "cape town",
+ "name": "Cape Town",
+ "population": "3,433,441",
+ "elevation": 25,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "berlin",
+ "name": "Berlin",
+ "population": "3,426,354",
+ "elevation": 43,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "madrid",
+ "name": "Madrid",
+ "population": "3,255,944",
+ "elevation": 665,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pyongyang",
+ "name": "Pyongyang",
+ "population": "3,222,000",
+ "elevation": 43,
+ "timezone_id": "Asia/Pyongyang"
+ },
+ {
+ "identifier": "casablanca",
+ "name": "Casablanca",
+ "population": "3,144,909",
+ "elevation": 27,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "zhongshan",
+ "name": "Zhongshan",
+ "population": "3,121,275",
+ "elevation": 14,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "durban",
+ "name": "Durban",
+ "population": "3,120,282",
+ "elevation": 21,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "kabul",
+ "name": "Kabul",
+ "population": "3,043,532",
+ "elevation": 1798,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "urumqi",
+ "name": "Urumqi",
+ "population": "3,029,372",
+ "elevation": 862,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "caracas",
+ "name": "Caracas",
+ "population": "3,000,000",
+ "elevation": 887,
+ "timezone_id": "America/Caracas"
+ },
+ {
+ "identifier": "dubai",
+ "name": "Dubai",
+ "population": "2,956,587",
+ "elevation": 24,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "jeddah",
+ "name": "Jeddah",
+ "population": "2,867,446",
+ "elevation": 22,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "kyiv",
+ "name": "Kiev",
+ "population": "2,797,553",
+ "elevation": 187,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "luanda",
+ "name": "Luanda",
+ "population": "2,776,168",
+ "elevation": 73,
+ "timezone_id": "Africa/Luanda"
+ },
+ {
+ "identifier": "quezon city",
+ "name": "Quezon City",
+ "population": "2,761,720",
+ "elevation": 49,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "addis ababa",
+ "name": "Addis Ababa",
+ "population": "2,757,729",
+ "elevation": 2405,
+ "timezone_id": "Africa/Addis_Ababa"
+ },
+ {
+ "identifier": "nairobi",
+ "name": "Nairobi",
+ "population": "2,750,547",
+ "elevation": 1684,
+ "timezone_id": "Africa/Nairobi"
+ },
+ {
+ "identifier": "chicago",
+ "name": "Chicago",
+ "population": "2,720,546",
+ "elevation": 180,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "salvador",
+ "name": "Salvador",
+ "population": "2,711,840",
+ "elevation": 10,
+ "timezone_id": "America/Bahia"
+ },
+ {
+ "identifier": "dar es salaam",
+ "name": "Dar es Salaam",
+ "population": "2,698,652",
+ "elevation": 24,
+ "timezone_id": "Africa/Dar_es_Salaam"
+ },
+ {
+ "identifier": "toronto",
+ "name": "Toronto",
+ "population": "2,600,000",
+ "elevation": 175,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "osaka",
+ "name": "Osaka",
+ "population": "2,592,413",
+ "elevation": 24,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "mogadishu",
+ "name": "Mogadishu",
+ "population": "2,587,183",
+ "elevation": 12,
+ "timezone_id": "Africa/Mogadishu"
+ },
+ {
+ "identifier": "izmir",
+ "name": "Izmir",
+ "population": "2,500,603",
+ "elevation": 122,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "dakar",
+ "name": "Dakar",
+ "population": "2,476,400",
+ "elevation": 12,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "giza",
+ "name": "Giza",
+ "population": "2,443,203",
+ "elevation": 26,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "fortaleza",
+ "name": "Fortaleza",
+ "population": "2,400,000",
+ "elevation": 18,
+ "timezone_id": "America/Fortaleza"
+ },
+ {
+ "identifier": "surabaya",
+ "name": "Surabaya",
+ "population": "2,374,658",
+ "elevation": 8,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "belo horizonte",
+ "name": "Belo Horizonte",
+ "population": "2,373,224",
+ "elevation": 872,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "rome",
+ "name": "Rome",
+ "population": "2,318,895",
+ "elevation": 52,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "mashhad",
+ "name": "Mashhad",
+ "population": "2,307,177",
+ "elevation": 1003,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "brooklyn",
+ "name": "Brooklyn",
+ "population": "2,300,664",
+ "elevation": 18,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "houston",
+ "name": "Houston",
+ "population": "2,296,224",
+ "elevation": 30,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "queens",
+ "name": "Queens",
+ "population": "2,272,771",
+ "elevation": 13,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brasilia",
+ "name": "Brasilia",
+ "population": "2,207,718",
+ "elevation": 1136,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "santo domingo",
+ "name": "Santo Domingo",
+ "population": "2,201,941",
+ "elevation": 9,
+ "timezone_id": "America/Santo_Domingo"
+ },
+ {
+ "identifier": "nagoya",
+ "name": "Nagoya",
+ "population": "2,191,279",
+ "elevation": 23,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "brisbane",
+ "name": "Brisbane",
+ "population": "2,189,878",
+ "elevation": 27,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "havana",
+ "name": "Havana",
+ "population": "2,163,824",
+ "elevation": 41,
+ "timezone_id": "America/Havana"
+ },
+ {
+ "identifier": "paris",
+ "name": "Paris",
+ "population": "2,138,551",
+ "elevation": 42,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "johannesburg",
+ "name": "Johannesburg",
+ "population": "2,026,469",
+ "elevation": 1767,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "almaty",
+ "name": "Almaty",
+ "population": "2,000,900",
+ "elevation": 787,
+ "timezone_id": "Asia/Almaty"
+ },
+ {
+ "identifier": "tashkent",
+ "name": "Tashkent",
+ "population": "1,978,028",
+ "elevation": 424,
+ "timezone_id": "Asia/Tashkent"
+ },
+ {
+ "identifier": "algiers",
+ "name": "Algiers",
+ "population": "1,977,663",
+ "elevation": 113,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "khartoum",
+ "name": "Khartoum",
+ "population": "1,974,647",
+ "elevation": 381,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "accra",
+ "name": "Accra",
+ "population": "1,963,264",
+ "elevation": 33,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "guayaquil",
+ "name": "Guayaquil",
+ "population": "1,952,029",
+ "elevation": 1,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "sanaa",
+ "name": "Sanaa",
+ "population": "1,937,451",
+ "elevation": 2253,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "beirut",
+ "name": "Beirut",
+ "population": "1,916,100",
+ "elevation": 40,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "perth",
+ "name": "Perth",
+ "population": "1,896,548",
+ "elevation": 46,
+ "timezone_id": "Australia/Perth"
+ },
+ {
+ "identifier": "sapporo",
+ "name": "Sapporo",
+ "population": "1,883,027",
+ "elevation": 26,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "bucharest",
+ "name": "Bucharest",
+ "population": "1,877,155",
+ "elevation": 83,
+ "timezone_id": "Europe/Bucharest"
+ },
+ {
+ "identifier": "camayenne",
+ "name": "Camayenne",
+ "population": "1,871,242",
+ "elevation": 6,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "conakry",
+ "name": "Conakry",
+ "population": "1,767,200",
+ "elevation": 13,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "minsk",
+ "name": "Minsk",
+ "population": "1,742,124",
+ "elevation": 222,
+ "timezone_id": "Europe/Minsk"
+ },
+ {
+ "identifier": "budapest",
+ "name": "Budapest",
+ "population": "1,741,041",
+ "elevation": 75,
+ "timezone_id": "Europe/Budapest"
+ },
+ {
+ "identifier": "hamburg",
+ "name": "Hamburg",
+ "population": "1,739,117",
+ "elevation": 2,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "warsaw",
+ "name": "Warsaw",
+ "population": "1,702,139",
+ "elevation": 113,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "soweto",
+ "name": "Soweto",
+ "population": "1,695,047",
+ "elevation": 1632,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "vienna",
+ "name": "Vienna",
+ "population": "1,691,468",
+ "elevation": 193,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "rabat",
+ "name": "Rabat",
+ "population": "1,655,753",
+ "elevation": 46,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "barcelona",
+ "name": "Barcelona",
+ "population": "1,621,537",
+ "elevation": 47,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pretoria",
+ "name": "Pretoria",
+ "population": "1,619,438",
+ "elevation": 1332,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "aleppo",
+ "name": "Aleppo",
+ "population": "1,602,264",
+ "elevation": 401,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "manila",
+ "name": "Manila",
+ "population": "1,600,000",
+ "elevation": 13,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "montreal",
+ "name": "Montreal",
+ "population": "1,600,000",
+ "elevation": 216,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "kaduna",
+ "name": "Kaduna",
+ "population": "1,582,102",
+ "elevation": 626,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "phnom penh",
+ "name": "Phnom Penh",
+ "population": "1,573,544",
+ "elevation": 20,
+ "timezone_id": "Asia/Phnom_Penh"
+ },
+ {
+ "identifier": "damascus",
+ "name": "Damascus",
+ "population": "1,569,394",
+ "elevation": 701,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "philadelphia",
+ "name": "Philadelphia",
+ "population": "1,567,442",
+ "elevation": 40,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "phoenix",
+ "name": "Phoenix",
+ "population": "1,563,025",
+ "elevation": 366,
+ "timezone_id": "America/Phoenix"
+ },
+ {
+ "identifier": "isfahan",
+ "name": "Isfahan",
+ "population": "1,547,164",
+ "elevation": 1578,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "harare",
+ "name": "Harare",
+ "population": "1,542,813",
+ "elevation": 1494,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "kobe",
+ "name": "Kobe",
+ "population": "1,528,478",
+ "elevation": 35,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "stockholm",
+ "name": "Stockholm",
+ "population": "1,515,017",
+ "elevation": 12,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "manhattan",
+ "name": "Manhattan",
+ "population": "1,487,536",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "asuncion",
+ "name": "Asuncion",
+ "population": "1,482,200",
+ "elevation": 107,
+ "timezone_id": "America/Asuncion"
+ },
+ {
+ "identifier": "recife",
+ "name": "Recife",
+ "population": "1,478,098",
+ "elevation": 8,
+ "timezone_id": "America/Recife"
+ },
+ {
+ "identifier": "san antonio",
+ "name": "San Antonio",
+ "population": "1,469,845",
+ "elevation": 202,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kumasi",
+ "name": "Kumasi",
+ "population": "1,468,609",
+ "elevation": 270,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "kota bharu",
+ "name": "Kota Bharu",
+ "population": "1,459,994",
+ "elevation": 1,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "kyoto",
+ "name": "Kyoto",
+ "population": "1,459,640",
+ "elevation": 50,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "kuala lumpur",
+ "name": "Kuala Lumpur",
+ "population": "1,453,975",
+ "elevation": 56,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "karaj",
+ "name": "Karaj",
+ "population": "1,448,075",
+ "elevation": 1341,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kathmandu",
+ "name": "Kathmandu",
+ "population": "1,442,271",
+ "elevation": 1296,
+ "timezone_id": "Asia/Kathmandu"
+ },
+ {
+ "identifier": "hanoi",
+ "name": "Hanoi",
+ "population": "1,431,270",
+ "elevation": 10,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "kharkiv",
+ "name": "Kharkiv",
+ "population": "1,430,885",
+ "elevation": 113,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "cordoba",
+ "name": "Cordoba",
+ "population": "1,428,214",
+ "elevation": 395,
+ "timezone_id": "America/Argentina/Cordoba"
+ },
+ {
+ "identifier": "tabriz",
+ "name": "Tabriz",
+ "population": "1,424,641",
+ "elevation": 1396,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "novosibirsk",
+ "name": "Novosibirsk",
+ "population": "1,419,007",
+ "elevation": 164,
+ "timezone_id": "Asia/Novosibirsk"
+ },
+ {
+ "identifier": "belem",
+ "name": "Belem",
+ "population": "1,407,737",
+ "elevation": 15,
+ "timezone_id": "America/Belem"
+ },
+ {
+ "identifier": "quito",
+ "name": "Quito",
+ "population": "1,399,814",
+ "elevation": 2854,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "san diego",
+ "name": "San Diego",
+ "population": "1,394,928",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "fukuoka",
+ "name": "Fukuoka",
+ "population": "1,392,289",
+ "elevation": 3,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "antananarivo",
+ "name": "Antananarivo",
+ "population": "1,391,433",
+ "elevation": 1274,
+ "timezone_id": "Indian/Antananarivo"
+ },
+ {
+ "identifier": "the bronx",
+ "name": "The Bronx",
+ "population": "1,385,108",
+ "elevation": 19,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "lubumbashi",
+ "name": "Lubumbashi",
+ "population": "1,373,770",
+ "elevation": 1260,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "santa cruz de la sierra",
+ "name": "Santa Cruz de la Sierra",
+ "population": "1,364,389",
+ "elevation": 433,
+ "timezone_id": "America/La_Paz"
+ },
+ {
+ "identifier": "kampala",
+ "name": "Kampala",
+ "population": "1,353,189",
+ "elevation": 1223,
+ "timezone_id": "Africa/Kampala"
+ },
+ {
+ "identifier": "yekaterinburg",
+ "name": "Yekaterinburg",
+ "population": "1,349,772",
+ "elevation": 255,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "douala",
+ "name": "Douala",
+ "population": "1,338,082",
+ "elevation": 19,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "sharjah",
+ "name": "Sharjah",
+ "population": "1,324,473",
+ "elevation": 6,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "mecca",
+ "name": "Mecca",
+ "population": "1,323,624",
+ "elevation": 333,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "makassar",
+ "name": "Makassar",
+ "population": "1,321,717",
+ "elevation": 6,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "juarez",
+ "name": "Juarez",
+ "population": "1,321,004",
+ "elevation": 1124,
+ "timezone_id": "America/Ojinaga"
+ },
+ {
+ "identifier": "kawasaki",
+ "name": "Kawasaki",
+ "population": "1,306,785",
+ "elevation": 1,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "tijuana",
+ "name": "Tijuana",
+ "population": "1,300,983",
+ "elevation": 97,
+ "timezone_id": "America/Tijuana"
+ },
+ {
+ "identifier": "dallas",
+ "name": "Dallas",
+ "population": "1,300,092",
+ "elevation": 139,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "medina",
+ "name": "Medina",
+ "population": "1,300,000",
+ "elevation": 603,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "yaounde",
+ "name": "Yaounde",
+ "population": "1,299,369",
+ "elevation": 726,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "bamako",
+ "name": "Bamako",
+ "population": "1,297,281",
+ "elevation": 338,
+ "timezone_id": "Africa/Bamako"
+ },
+ {
+ "identifier": "brazzaville",
+ "name": "Brazzaville",
+ "population": "1,284,609",
+ "elevation": 284,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "nizhniy novgorod",
+ "name": "Nizhniy Novgorod",
+ "population": "1,284,164",
+ "elevation": 141,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "amman",
+ "name": "Amman",
+ "population": "1,275,857",
+ "elevation": 757,
+ "timezone_id": "Asia/Amman"
+ },
+ {
+ "identifier": "belgrade",
+ "name": "Belgrade",
+ "population": "1,273,651",
+ "elevation": 120,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "montevideo",
+ "name": "Montevideo",
+ "population": "1,270,737",
+ "elevation": 34,
+ "timezone_id": "America/Montevideo"
+ },
+ {
+ "identifier": "lusaka",
+ "name": "Lusaka",
+ "population": "1,267,440",
+ "elevation": 1277,
+ "timezone_id": "Africa/Lusaka"
+ },
+ {
+ "identifier": "munich",
+ "name": "Munich",
+ "population": "1,260,391",
+ "elevation": 524,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "shiraz",
+ "name": "Shiraz",
+ "population": "1,249,942",
+ "elevation": 1545,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "milan",
+ "name": "Milan",
+ "population": "1,236,837",
+ "elevation": 127,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "port-au-prince",
+ "name": "Port-au-Prince",
+ "population": "1,234,742",
+ "elevation": 53,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "adelaide",
+ "name": "Adelaide",
+ "population": "1,225,235",
+ "elevation": 56,
+ "timezone_id": "Australia/Adelaide"
+ },
+ {
+ "identifier": "omdurman",
+ "name": "Omdurman",
+ "population": "1,200,000",
+ "elevation": 391,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "saitama",
+ "name": "Saitama",
+ "population": "1,193,350",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "maputo",
+ "name": "Maputo",
+ "population": "1,191,613",
+ "elevation": 70,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "prague",
+ "name": "Prague",
+ "population": "1,165,581",
+ "elevation": 202,
+ "timezone_id": "Europe/Prague"
+ },
+ {
+ "identifier": "copenhagen",
+ "name": "Copenhagen",
+ "population": "1,153,615",
+ "elevation": 14,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "sofia",
+ "name": "Sofia",
+ "population": "1,152,556",
+ "elevation": 562,
+ "timezone_id": "Europe/Sofia"
+ },
+ {
+ "identifier": "tripoli",
+ "name": "Tripoli",
+ "population": "229,398",
+ "elevation": 51,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "port harcourt",
+ "name": "Port Harcourt",
+ "population": "1,148,665",
+ "elevation": 16,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hiroshima",
+ "name": "Hiroshima",
+ "population": "1,143,841",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "monterrey",
+ "name": "Monterrey",
+ "population": "1,135,512",
+ "elevation": 543,
+ "timezone_id": "America/Monterrey"
+ },
+ {
+ "identifier": "samara",
+ "name": "Samara",
+ "population": "1,134,730",
+ "elevation": 117,
+ "timezone_id": "Europe/Samara"
+ },
+ {
+ "identifier": "omsk",
+ "name": "Omsk",
+ "population": "1,129,281",
+ "elevation": 90,
+ "timezone_id": "Asia/Omsk"
+ },
+ {
+ "identifier": "benin city",
+ "name": "Benin City",
+ "population": "1,125,058",
+ "elevation": 88,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "baku",
+ "name": "Baku",
+ "population": "1,116,513",
+ "elevation": -23,
+ "timezone_id": "Asia/Baku"
+ },
+ {
+ "identifier": "maiduguri",
+ "name": "Maiduguri",
+ "population": "1,112,449",
+ "elevation": 325,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "kazan",
+ "name": "Kazan",
+ "population": "1,104,738",
+ "elevation": 61,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "yerevan",
+ "name": "Yerevan",
+ "population": "1,093,485",
+ "elevation": 994,
+ "timezone_id": "Asia/Yerevan"
+ },
+ {
+ "identifier": "ouagadougou",
+ "name": "Ouagadougou",
+ "population": "1,086,505",
+ "elevation": 299,
+ "timezone_id": "Africa/Ouagadougou"
+ },
+ {
+ "identifier": "rostov-na-donu",
+ "name": "Rostov-na-Donu",
+ "population": "1,074,482",
+ "elevation": 74,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chelyabinsk",
+ "name": "Chelyabinsk",
+ "population": "1,062,919",
+ "elevation": 219,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "tbilisi",
+ "name": "Tbilisi",
+ "population": "1,049,498",
+ "elevation": 491,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "ufa",
+ "name": "Ufa",
+ "population": "1,033,338",
+ "elevation": 158,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "san jose",
+ "name": "San Jose",
+ "population": "335,007",
+ "elevation": 1161,
+ "timezone_id": "America/Costa_Rica"
+ },
+ {
+ "identifier": "dublin",
+ "name": "Dublin",
+ "population": "1,024,027",
+ "elevation": 17,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "calgary",
+ "name": "Calgary",
+ "population": "1,019,942",
+ "elevation": 1042,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "brussels",
+ "name": "Brussels",
+ "population": "1,019,022",
+ "elevation": 28,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "volgograd",
+ "name": "Volgograd",
+ "population": "1,011,417",
+ "elevation": 65,
+ "timezone_id": "Europe/Volgograd"
+ },
+ {
+ "identifier": "odessa",
+ "name": "Odessa",
+ "population": "1,001,558",
+ "elevation": 58,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "guatemala city",
+ "name": "Guatemala City",
+ "population": "994,938",
+ "elevation": 1508,
+ "timezone_id": "America/Guatemala"
+ },
+ {
+ "identifier": "birmingham",
+ "name": "Birmingham",
+ "population": "984,333",
+ "elevation": 149,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "perm",
+ "name": "Perm",
+ "population": "982,419",
+ "elevation": 149,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "zaria",
+ "name": "Zaria",
+ "population": "975,153",
+ "elevation": 644,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "port elizabeth",
+ "name": "Port Elizabeth",
+ "population": "967,677",
+ "elevation": 75,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "fes",
+ "name": "Fes",
+ "population": "964,891",
+ "elevation": 406,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "cologne",
+ "name": "Cologne",
+ "population": "963,395",
+ "elevation": 58,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "naples",
+ "name": "Naples",
+ "population": "959,470",
+ "elevation": 14,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "maceio",
+ "name": "Maceio",
+ "population": "954,991",
+ "elevation": 11,
+ "timezone_id": "America/Maceio"
+ },
+ {
+ "identifier": "monrovia",
+ "name": "Monrovia",
+ "population": "939,524",
+ "elevation": 32,
+ "timezone_id": "Africa/Monrovia"
+ },
+ {
+ "identifier": "kingston",
+ "name": "Kingston",
+ "population": "937,700",
+ "elevation": 65,
+ "timezone_id": "America/Jamaica"
+ },
+ {
+ "identifier": "austin",
+ "name": "Austin",
+ "population": "931,830",
+ "elevation": 165,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "krasnoyarsk",
+ "name": "Krasnoyarsk",
+ "population": "927,200",
+ "elevation": 140,
+ "timezone_id": "Asia/Krasnoyarsk"
+ },
+ {
+ "identifier": "sale",
+ "name": "Sale",
+ "population": "903,485",
+ "elevation": 34,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "qom",
+ "name": "Qom",
+ "population": "900,000",
+ "elevation": 935,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bishkek",
+ "name": "Bishkek",
+ "population": "900,000",
+ "elevation": 767,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "abobo",
+ "name": "Abobo",
+ "population": "900,000",
+ "elevation": 105,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "aba",
+ "name": "Aba",
+ "population": "897,560",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "mendoza",
+ "name": "Mendoza",
+ "population": "876,884",
+ "elevation": 746,
+ "timezone_id": "America/Argentina/Mendoza"
+ },
+ {
+ "identifier": "mbuji-mayi",
+ "name": "Mbuji-Mayi",
+ "population": "874,761",
+ "elevation": 621,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "pikine",
+ "name": "Pikine",
+ "population": "874,062",
+ "elevation": 17,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "turin",
+ "name": "Turin",
+ "population": "870,456",
+ "elevation": 245,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san francisco",
+ "name": "San Francisco",
+ "aliases": ["San Fran"],
+ "population": "864,816",
+ "elevation": 28,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "liverpool",
+ "name": "Liverpool",
+ "population": "864,122",
+ "elevation": 30,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "saratov",
+ "name": "Saratov",
+ "population": "863,725",
+ "elevation": 72,
+ "timezone_id": "Europe/Saratov"
+ },
+ {
+ "identifier": "tegucigalpa",
+ "name": "Tegucigalpa",
+ "population": "850,848",
+ "elevation": 944,
+ "timezone_id": "America/Tegucigalpa"
+ },
+ {
+ "identifier": "voronezh",
+ "name": "Voronezh",
+ "population": "848,752",
+ "elevation": 156,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "ulan bator",
+ "name": "Ulan Bator",
+ "population": "844,818",
+ "elevation": 1284,
+ "timezone_id": "Asia/Ulaanbaatar"
+ },
+ {
+ "identifier": "ahvaz",
+ "name": "Ahvaz",
+ "population": "841,145",
+ "elevation": 23,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "marrakesh",
+ "name": "Marrakesh",
+ "population": "839,296",
+ "elevation": 457,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "denpasar",
+ "name": "Denpasar",
+ "aliases" : ["Bali"],
+ "population": "834,881",
+ "elevation": 33,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "fort worth",
+ "name": "Fort Worth",
+ "population": "833,319",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "indianapolis",
+ "name": "Indianapolis",
+ "population": "829,718",
+ "elevation": 248,
+ "timezone_id": "America/Indiana/Indianapolis"
+ },
+ {
+ "identifier": "jos",
+ "name": "Jos",
+ "population": "816,824",
+ "elevation": 1186,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "valencia",
+ "name": "Valencia",
+ "population": "814,208",
+ "elevation": 23,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "ilorin",
+ "name": "Ilorin",
+ "population": "814,192",
+ "elevation": 320,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "la paz",
+ "name": "La Paz",
+ "population": "215,178",
+ "elevation": 47,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "ottawa",
+ "name": "Ottawa",
+ "population": "812,129",
+ "elevation": 71,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "freetown",
+ "name": "Freetown",
+ "population": "802,639",
+ "elevation": 21,
+ "timezone_id": "Africa/Freetown"
+ },
+ {
+ "identifier": "jerusalem",
+ "name": "Jerusalem",
+ "population": "801,000",
+ "elevation": 786,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "muscat",
+ "name": "Muscat",
+ "population": "797,000",
+ "elevation": 14,
+ "timezone_id": "Asia/Muscat"
+ },
+ {
+ "identifier": "marseille",
+ "name": "Marseille",
+ "population": "794,811",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "pasragad branch",
+ "name": "Pasragad Branch",
+ "population": "787,878",
+ "elevation": 2010,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "boumerdas",
+ "name": "Boumerdas",
+ "population": "786,499",
+ "elevation": 5,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "san miguel de tucuman",
+ "name": "San Miguel de Tucuman",
+ "population": "781,023",
+ "elevation": 452,
+ "timezone_id": "America/Argentina/Tucuman"
+ },
+ {
+ "identifier": "merida",
+ "name": "Merida",
+ "population": "777,615",
+ "elevation": 14,
+ "timezone_id": "America/Merida"
+ },
+ {
+ "identifier": "niamey",
+ "name": "Niamey",
+ "population": "774,235",
+ "elevation": 206,
+ "timezone_id": "Africa/Niamey"
+ },
+ {
+ "identifier": "kahriz",
+ "name": "Kahriz",
+ "population": "766,706",
+ "elevation": 1302,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "krakow",
+ "name": "Krakow",
+ "population": "755,050",
+ "elevation": 219,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "da nang",
+ "name": "Da Nang",
+ "population": "752,493",
+ "elevation": 11,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "pietermaritzburg",
+ "name": "Pietermaritzburg",
+ "population": "750,845",
+ "elevation": 636,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "lome",
+ "name": "Lome",
+ "population": "749,700",
+ "elevation": 64,
+ "timezone_id": "Africa/Lome"
+ },
+ {
+ "identifier": "kigali",
+ "name": "Kigali",
+ "population": "745,261",
+ "elevation": 1542,
+ "timezone_id": "Africa/Kigali"
+ },
+ {
+ "identifier": "riga",
+ "name": "Riga",
+ "population": "742,572",
+ "elevation": 6,
+ "timezone_id": "Europe/Riga"
+ },
+ {
+ "identifier": "amsterdam",
+ "name": "Amsterdam",
+ "population": "741,636",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "oyo",
+ "name": "Oyo",
+ "population": "736,072",
+ "elevation": 298,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "nottingham",
+ "name": "Nottingham",
+ "population": "729,977",
+ "elevation": 46,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "campo grande",
+ "name": "Campo Grande",
+ "population": "729,151",
+ "elevation": 592,
+ "timezone_id": "America/Campo_Grande"
+ },
+ {
+ "identifier": "ashgabat",
+ "name": "Ashgabat",
+ "population": "727,700",
+ "elevation": 219,
+ "timezone_id": "Asia/Ashgabat"
+ },
+ {
+ "identifier": "n'djamena",
+ "name": "N'Djamena",
+ "population": "721,081",
+ "elevation": 299,
+ "timezone_id": "Africa/Ndjamena"
+ },
+ {
+ "identifier": "lviv",
+ "name": "Lviv",
+ "population": "717,803",
+ "elevation": 284,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "hermosillo",
+ "name": "Hermosillo",
+ "population": "715,061",
+ "elevation": 212,
+ "timezone_id": "America/Hermosillo"
+ },
+ {
+ "identifier": "edmonton",
+ "name": "Edmonton",
+ "population": "712,391",
+ "elevation": 610,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "bulawayo",
+ "name": "Bulawayo",
+ "population": "699,385",
+ "elevation": 1348,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "zagreb",
+ "name": "Zagreb",
+ "population": "698,966",
+ "elevation": 135,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "agadir",
+ "name": "Agadir",
+ "population": "698,310",
+ "elevation": 31,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sarajevo",
+ "name": "Sarajevo",
+ "population": "696,731",
+ "elevation": 509,
+ "timezone_id": "Europe/Sarajevo"
+ },
+ {
+ "identifier": "enugu",
+ "name": "Enugu",
+ "population": "688,862",
+ "elevation": 192,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "tangier",
+ "name": "Tangier",
+ "population": "688,356",
+ "elevation": 20,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sheffield",
+ "name": "Sheffield",
+ "population": "685,368",
+ "elevation": 75,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "seattle",
+ "name": "Seattle",
+ "population": "684,451",
+ "elevation": 56,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "denver",
+ "name": "Denver",
+ "population": "682,545",
+ "elevation": 1636,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "el paso",
+ "name": "El Paso",
+ "population": "681,124",
+ "elevation": 1137,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "dushanbe",
+ "name": "Dushanbe",
+ "population": "679,400",
+ "elevation": 767,
+ "timezone_id": "Asia/Dushanbe"
+ },
+ {
+ "identifier": "detroit",
+ "name": "Detroit",
+ "population": "677,116",
+ "elevation": 192,
+ "timezone_id": "America/Detroit"
+ },
+ {
+ "identifier": "culiacan",
+ "name": "Culiacan",
+ "population": "675,773",
+ "elevation": 95,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "matola",
+ "name": "Matola",
+ "population": "675,422",
+ "elevation": 42,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "boston",
+ "name": "Boston",
+ "population": "667,137",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "athens",
+ "name": "Athens",
+ "population": "664,046",
+ "elevation": 126,
+ "timezone_id": "Europe/Athens"
+ },
+ {
+ "identifier": "nouakchott",
+ "name": "Nouakchott",
+ "population": "661,400",
+ "elevation": 10,
+ "timezone_id": "Africa/Nouakchott"
+ },
+ {
+ "identifier": "pointe-noire",
+ "name": "Pointe-Noire",
+ "population": "659,084",
+ "elevation": 12,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "memphis",
+ "name": "Memphis",
+ "population": "655,770",
+ "elevation": 84,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "frankfurt am main",
+ "name": "Frankfurt am Main",
+ "aliases" : ["Frankfurt"],
+ "population": "650,000",
+ "elevation": 113,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "krasnodar",
+ "name": "Krasnodar",
+ "population": "649,851",
+ "elevation": 28,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "palermo",
+ "name": "Palermo",
+ "population": "648,260",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "colombo",
+ "name": "Colombo",
+ "population": "648,034",
+ "elevation": 1,
+ "timezone_id": "Asia/Colombo"
+ },
+ {
+ "identifier": "lilongwe",
+ "name": "Lilongwe",
+ "population": "646,750",
+ "elevation": 1056,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "oran",
+ "name": "Oran",
+ "population": "645,984",
+ "elevation": 118,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "chisinau",
+ "name": "Chisinau",
+ "population": "635,994",
+ "elevation": 55,
+ "timezone_id": "Europe/Chisinau"
+ },
+ {
+ "identifier": "tebessa",
+ "name": "Tebessa",
+ "population": "634,332",
+ "elevation": 867,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "portland",
+ "name": "Portland",
+ "population": "632,309",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "winnipeg",
+ "name": "Winnipeg",
+ "population": "632,063",
+ "elevation": 245,
+ "timezone_id": "America/Winnipeg"
+ },
+ {
+ "identifier": "oklahoma city",
+ "name": "Oklahoma City",
+ "population": "631,346",
+ "elevation": 395,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "cancun",
+ "name": "Cancun",
+ "population": "628,306",
+ "elevation": 11,
+ "timezone_id": "America/Cancun"
+ },
+ {
+ "identifier": "djibouti",
+ "name": "Djibouti",
+ "population": "623,891",
+ "elevation": 6,
+ "timezone_id": "Africa/Djibouti"
+ },
+ {
+ "identifier": "baltimore",
+ "name": "Baltimore",
+ "population": "621,849",
+ "elevation": 35,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kermanshah",
+ "name": "Kermanshah",
+ "population": "621,100",
+ "elevation": 1392,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bristol",
+ "name": "Bristol",
+ "population": "617,280",
+ "elevation": 21,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "benoni",
+ "name": "Benoni",
+ "population": "605,344",
+ "elevation": 1641,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "abu dhabi",
+ "name": "Abu Dhabi",
+ "population": "603,492",
+ "elevation": 13,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "washington",
+ "name": "Washington",
+ "population": "601,723",
+ "elevation": 6,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "milwaukee",
+ "name": "Milwaukee",
+ "population": "600,155",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vancouver",
+ "name": "Vancouver",
+ "population": "600,000",
+ "elevation": 70,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "barnaul",
+ "name": "Barnaul",
+ "population": "599,579",
+ "elevation": 189,
+ "timezone_id": "Asia/Barnaul"
+ },
+ {
+ "identifier": "rotterdam",
+ "name": "Rotterdam",
+ "population": "598,199",
+ "elevation": 9,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "rasht",
+ "name": "Rasht",
+ "population": "594,590",
+ "elevation": 4,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "abeokuta",
+ "name": "Abeokuta",
+ "population": "593,100",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "essen",
+ "name": "Essen",
+ "population": "593,085",
+ "elevation": 83,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "glasgow",
+ "name": "Glasgow",
+ "population": "591,620",
+ "elevation": 40,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "gold coast",
+ "name": "Gold Coast",
+ "population": "591,473",
+ "elevation": 12,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "abuja",
+ "name": "Abuja",
+ "population": "590,400",
+ "elevation": 476,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "stuttgart",
+ "name": "Stuttgart",
+ "population": "589,793",
+ "elevation": 252,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dortmund",
+ "name": "Dortmund",
+ "population": "588,462",
+ "elevation": 96,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vladivostok",
+ "name": "Vladivostok",
+ "population": "587,022",
+ "elevation": 40,
+ "timezone_id": "Asia/Vladivostok"
+ },
+ {
+ "identifier": "irkutsk",
+ "name": "Irkutsk",
+ "population": "586,695",
+ "elevation": 428,
+ "timezone_id": "Asia/Irkutsk"
+ },
+ {
+ "identifier": "blantyre",
+ "name": "Blantyre",
+ "population": "584,877",
+ "elevation": 1041,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "genoa",
+ "name": "Genoa",
+ "population": "580,223",
+ "elevation": 17,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "oslo",
+ "name": "Oslo",
+ "population": "580,000",
+ "elevation": 26,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "libreville",
+ "name": "Libreville",
+ "population": "578,156",
+ "elevation": 8,
+ "timezone_id": "Africa/Libreville"
+ },
+ {
+ "identifier": "kerman",
+ "name": "Kerman",
+ "population": "577,514",
+ "elevation": 1760,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "duesseldorf",
+ "name": "Duesseldorf",
+ "population": "573,057",
+ "elevation": 45,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "kuching",
+ "name": "Kuching",
+ "population": "570,407",
+ "elevation": 8,
+ "timezone_id": "Asia/Kuching"
+ },
+ {
+ "identifier": "albuquerque",
+ "name": "Albuquerque",
+ "population": "559,121",
+ "elevation": 1513,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "helsinki",
+ "name": "Helsinki",
+ "population": "558,457",
+ "elevation": 26,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "aden",
+ "name": "Aden",
+ "population": "550,602",
+ "elevation": 16,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "orenburg",
+ "name": "Orenburg",
+ "population": "550,204",
+ "elevation": 107,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "pristina",
+ "name": "Pristina",
+ "population": "550,000",
+ "elevation": 597,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bremen",
+ "name": "Bremen",
+ "population": "546,501",
+ "elevation": 3,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vilnius",
+ "name": "Vilnius",
+ "population": "542,366",
+ "elevation": 98,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "nashville",
+ "name": "Nashville",
+ "population": "530,852",
+ "elevation": 171,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "quebec",
+ "name": "Quebec",
+ "population": "528,595",
+ "elevation": 54,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "san salvador",
+ "name": "San Salvador",
+ "population": "525,990",
+ "elevation": 653,
+ "timezone_id": "America/El_Salvador"
+ },
+ {
+ "identifier": "macau",
+ "name": "Macau",
+ "population": "520,400",
+ "elevation": 22,
+ "timezone_id": "Asia/Macau"
+ },
+ {
+ "identifier": "tyumen",
+ "name": "Tyumen",
+ "population": "519,119",
+ "elevation": 81,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "lisbon",
+ "name": "Lisbon",
+ "population": "517,802",
+ "elevation": 45,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "hannover",
+ "name": "Hannover",
+ "population": "515,140",
+ "elevation": 57,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "salta",
+ "name": "Salta",
+ "population": "512,686",
+ "elevation": 1183,
+ "timezone_id": "America/Argentina/Salta"
+ },
+ {
+ "identifier": "leicester",
+ "name": "Leicester",
+ "population": "508,916",
+ "elevation": 65,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "leipzig",
+ "name": "Leipzig",
+ "population": "504,971",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "duisburg",
+ "name": "Duisburg",
+ "population": "504,358",
+ "elevation": 38,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "astrakhan",
+ "name": "Astrakhan",
+ "population": "502,533",
+ "elevation": -12,
+ "timezone_id": "Europe/Astrakhan"
+ },
+ {
+ "identifier": "nuernberg",
+ "name": "Nuernberg",
+ "population": "499,237",
+ "elevation": 300,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dresden",
+ "name": "Dresden",
+ "population": "486,854",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "tomsk",
+ "name": "Tomsk",
+ "population": "485,519",
+ "elevation": 117,
+ "timezone_id": "Asia/Tomsk"
+ },
+ {
+ "identifier": "yazd",
+ "name": "Yazd",
+ "population": "477,905",
+ "elevation": 1216,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kansas city",
+ "name": "Kansas City",
+ "population": "151,306",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "skopje",
+ "name": "Skopje",
+ "population": "474,889",
+ "elevation": 247,
+ "timezone_id": "Europe/Skopje"
+ },
+ {
+ "identifier": "the hague",
+ "name": "The Hague",
+ "population": "474,292",
+ "elevation": 4,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "lyon",
+ "name": "Lyon",
+ "population": "472,317",
+ "elevation": 173,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "edinburgh",
+ "name": "Edinburgh",
+ "population": "464,990",
+ "elevation": 66,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "antwerpen",
+ "name": "Antwerpen",
+ "population": "459,805",
+ "elevation": 2,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "pontianak",
+ "name": "Pontianak",
+ "population": "455,173",
+ "elevation": 2,
+ "timezone_id": "Asia/Pontianak"
+ },
+ {
+ "identifier": "leeds",
+ "name": "Leeds",
+ "population": "455,123",
+ "elevation": 50,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "cardiff",
+ "name": "Cardiff",
+ "population": "447,287",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "san juan",
+ "name": "San Juan",
+ "population": "418,140",
+ "elevation": 11,
+ "timezone_id": "America/Puerto_Rico"
+ },
+ {
+ "identifier": "omaha",
+ "name": "Omaha",
+ "population": "443,885",
+ "elevation": 315,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "carrefour",
+ "name": "Carrefour",
+ "population": "442,156",
+ "elevation": 32,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "miami",
+ "name": "Miami",
+ "population": "441,003",
+ "elevation": 25,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kaliningrad",
+ "name": "Kaliningrad",
+ "population": "434,954",
+ "elevation": 2,
+ "timezone_id": "Europe/Kaliningrad"
+ },
+ {
+ "identifier": "toulouse",
+ "name": "Toulouse",
+ "population": "433,055",
+ "elevation": 150,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tel aviv",
+ "name": "Tel Aviv",
+ "population": "432,892",
+ "elevation": 15,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "east jerusalem",
+ "name": "East Jerusalem",
+ "population": "428,304",
+ "elevation": 759,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "bratislava",
+ "name": "Bratislava",
+ "population": "423,737",
+ "elevation": 157,
+ "timezone_id": "Europe/Bratislava"
+ },
+ {
+ "identifier": "auckland",
+ "name": "Auckland",
+ "population": "417,910",
+ "elevation": 43,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "sevastopol",
+ "name": "Sevastopol",
+ "population": "416,263",
+ "elevation": 1,
+ "timezone_id": "Europe/Zaporozhye"
+ },
+ {
+ "identifier": "minneapolis",
+ "name": "Minneapolis",
+ "population": "410,939",
+ "elevation": 262,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "gaza",
+ "name": "Gaza",
+ "population": "410,000",
+ "elevation": 38,
+ "timezone_id": "Asia/Gaza"
+ },
+ {
+ "identifier": "kursk",
+ "name": "Kursk",
+ "population": "409,431",
+ "elevation": 219,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "panama",
+ "name": "Panama",
+ "population": "408,168",
+ "elevation": 17,
+ "timezone_id": "America/Panama"
+ },
+ {
+ "identifier": "tulsa",
+ "name": "Tulsa",
+ "population": "403,505",
+ "elevation": 226,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "tver",
+ "name": "Tver",
+ "population": "400,212",
+ "elevation": 132,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "manchester",
+ "name": "Manchester",
+ "population": "395,515",
+ "elevation": 51,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "tallinn",
+ "name": "Tallinn",
+ "population": "394,024",
+ "elevation": 12,
+ "timezone_id": "Europe/Tallinn"
+ },
+ {
+ "identifier": "kandahar",
+ "name": "Kandahar",
+ "population": "391,190",
+ "elevation": 1007,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "wichita",
+ "name": "Wichita",
+ "population": "389,965",
+ "elevation": 402,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "new orleans",
+ "name": "New Orleans",
+ "population": "389,617",
+ "elevation": 18,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "wellington",
+ "name": "Wellington",
+ "population": "381,900",
+ "elevation": 31,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "las palmas de gran canaria",
+ "name": "Las Palmas de Gran Canaria",
+ "population": "381,847",
+ "elevation": 23,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "mazatlan",
+ "name": "Mazatlan",
+ "population": "381,583",
+ "elevation": 10,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "tirana",
+ "name": "Tirana",
+ "population": "374,801",
+ "elevation": 113,
+ "timezone_id": "Europe/Tirane"
+ },
+ {
+ "identifier": "kaunas",
+ "name": "Kaunas",
+ "population": "374,643",
+ "elevation": 74,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "honolulu",
+ "name": "Honolulu",
+ "population": "371,657",
+ "elevation": 18,
+ "timezone_id": "Pacific/Honolulu"
+ },
+ {
+ "identifier": "canberra",
+ "name": "Canberra",
+ "population": "367,752",
+ "elevation": 571,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "bologna",
+ "name": "Bologna",
+ "population": "366,133",
+ "elevation": 71,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "christchurch",
+ "name": "Christchurch",
+ "population": "363,926",
+ "elevation": 14,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "halifax",
+ "name": "Halifax",
+ "population": "359,111",
+ "elevation": 6,
+ "timezone_id": "America/Halifax"
+ },
+ {
+ "identifier": "ambon",
+ "name": "Ambon",
+ "population": "355,596",
+ "elevation": 12,
+ "timezone_id": "Asia/Jayapura"
+ },
+ {
+ "identifier": "florence",
+ "name": "Florence",
+ "population": "349,296",
+ "elevation": 51,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "doha",
+ "name": "Doha",
+ "population": "344,939",
+ "elevation": 11,
+ "timezone_id": "Asia/Qatar"
+ },
+ {
+ "identifier": "zurich",
+ "name": "Zurich",
+ "population": "341,730",
+ "elevation": 429,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "nice",
+ "name": "Nice",
+ "population": "338,620",
+ "elevation": 18,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "simferopol",
+ "name": "Simferopol",
+ "population": "336,460",
+ "elevation": 247,
+ "timezone_id": "Europe/Simferopol"
+ },
+ {
+ "identifier": "tepic",
+ "name": "Tepic",
+ "population": "332,863",
+ "elevation": 932,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "sochi",
+ "name": "Sochi",
+ "population": "327,608",
+ "elevation": 14,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "smolensk",
+ "name": "Smolensk",
+ "population": "320,991",
+ "elevation": 250,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "samarkand",
+ "name": "Samarkand",
+ "population": "319,366",
+ "elevation": 719,
+ "timezone_id": "Asia/Samarkand"
+ },
+ {
+ "identifier": "murmansk",
+ "name": "Murmansk",
+ "population": "319,263",
+ "elevation": 96,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "vladikavkaz",
+ "name": "Vladikavkaz",
+ "population": "317,370",
+ "elevation": 671,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chita",
+ "name": "Chita",
+ "population": "308,500",
+ "elevation": 668,
+ "timezone_id": "Asia/Chita"
+ },
+ {
+ "identifier": "newcastle",
+ "name": "Newcastle",
+ "population": "308,308",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "porto velho",
+ "name": "Porto Velho",
+ "population": "306,180",
+ "elevation": 90,
+ "timezone_id": "America/Porto_Velho"
+ },
+ {
+ "identifier": "san salvador de jujuy",
+ "name": "San Salvador de Jujuy",
+ "population": "305,891",
+ "elevation": 1260,
+ "timezone_id": "America/Argentina/Jujuy"
+ },
+ {
+ "identifier": "pittsburgh",
+ "name": "Pittsburgh",
+ "population": "304,391",
+ "elevation": 239,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brest",
+ "name": "Brest",
+ "population": "144,899",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "anchorage",
+ "name": "Anchorage",
+ "population": "298,695",
+ "elevation": 16,
+ "timezone_id": "America/Anchorage"
+ },
+ {
+ "identifier": "cincinnati",
+ "name": "Cincinnati",
+ "population": "296,943",
+ "elevation": 267,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "wollongong",
+ "name": "Wollongong",
+ "population": "292,190",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "catania",
+ "name": "Catania",
+ "population": "290,927",
+ "elevation": 40,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "utrecht",
+ "name": "Utrecht",
+ "population": "290,529",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "victoria",
+ "name": "Victoria",
+ "population": "289,625",
+ "elevation": 41,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "port moresby",
+ "name": "Port Moresby",
+ "population": "283,733",
+ "elevation": 1,
+ "timezone_id": "Pacific/Port_Moresby"
+ },
+ {
+ "identifier": "logan city",
+ "name": "Logan City",
+ "population": "282,673",
+ "elevation": 39,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "bari",
+ "name": "Bari",
+ "population": "277,387",
+ "elevation": -9999,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "nantes",
+ "name": "Nantes",
+ "population": "277,269",
+ "elevation": 19,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "strasbourg",
+ "name": "Strasbourg",
+ "population": "274,845",
+ "elevation": 147,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "belfast",
+ "name": "Belfast",
+ "population": "274,770",
+ "elevation": 7,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "ljubljana",
+ "name": "Ljubljana",
+ "population": "272,220",
+ "elevation": 295,
+ "timezone_id": "Europe/Ljubljana"
+ },
+ {
+ "identifier": "orlando",
+ "name": "Orlando",
+ "population": "270,934",
+ "elevation": 54,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "petrozavodsk",
+ "name": "Petrozavodsk",
+ "population": "265,025",
+ "elevation": 73,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "plymouth",
+ "name": "Plymouth",
+ "population": "260,203",
+ "elevation": 14,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "rio branco",
+ "name": "Rio Branco",
+ "population": "257,642",
+ "elevation": 153,
+ "timezone_id": "America/Rio_Branco"
+ },
+ {
+ "identifier": "los mochis",
+ "name": "Los Mochis",
+ "population": "256,613",
+ "elevation": 14,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "porto",
+ "name": "Porto",
+ "population": "249,633",
+ "elevation": 97,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "madison",
+ "name": "Madison",
+ "population": "248,951",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "montpellier",
+ "name": "Montpellier",
+ "population": "248,252",
+ "elevation": 56,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "arhus",
+ "name": "Arhus",
+ "population": "237,551",
+ "elevation": 10,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "yakutsk",
+ "name": "Yakutsk",
+ "population": "235,600",
+ "elevation": 126,
+ "timezone_id": "Asia/Yakutsk"
+ },
+ {
+ "identifier": "georgetown",
+ "name": "Georgetown",
+ "population": "235,017",
+ "elevation": 3,
+ "timezone_id": "America/Guyana"
+ },
+ {
+ "identifier": "bordeaux",
+ "name": "Bordeaux",
+ "population": "231,844",
+ "elevation": 20,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "gent",
+ "name": "Gent",
+ "population": "231,493",
+ "elevation": 10,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "baton rouge",
+ "name": "Baton Rouge",
+ "population": "228,590",
+ "elevation": 10,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "lille",
+ "name": "Lille",
+ "population": "228,328",
+ "elevation": 27,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "nassau",
+ "name": "Nassau",
+ "population": "227,940",
+ "elevation": 5,
+ "timezone_id": "America/Nassau"
+ },
+ {
+ "identifier": "geelong",
+ "name": "Geelong",
+ "population": "226,034",
+ "elevation": -9999,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "paramaribo",
+ "name": "Paramaribo",
+ "population": "223,757",
+ "elevation": 5,
+ "timezone_id": "America/Paramaribo"
+ },
+ {
+ "identifier": "santa cruz de tenerife",
+ "name": "Santa Cruz de Tenerife",
+ "population": "222,417",
+ "elevation": 55,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "graz",
+ "name": "Graz",
+ "population": "222,326",
+ "elevation": 363,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "messina",
+ "name": "Messina",
+ "population": "219,948",
+ "elevation": 29,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "verona",
+ "name": "Verona",
+ "population": "219,103",
+ "elevation": 62,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "hobart",
+ "name": "Hobart",
+ "population": "216,656",
+ "elevation": 1,
+ "timezone_id": "Australia/Hobart"
+ },
+ {
+ "identifier": "novi sad",
+ "name": "Novi Sad",
+ "population": "215,400",
+ "elevation": 79,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bergen",
+ "name": "Bergen",
+ "population": "213,585",
+ "elevation": 20,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "des moines",
+ "name": "Des Moines",
+ "population": "210,330",
+ "elevation": 264,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kostanay",
+ "name": "Kostanay",
+ "population": "210,000",
+ "elevation": 167,
+ "timezone_id": "Asia/Qostanay"
+ },
+ {
+ "identifier": "linz",
+ "name": "Linz",
+ "population": "204,846",
+ "elevation": 268,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "padova",
+ "name": "Padova",
+ "population": "203,725",
+ "elevation": 18,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "pskov",
+ "name": "Pskov",
+ "population": "201,990",
+ "elevation": 51,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chiang mai",
+ "name": "Chiang Mai",
+ "population": "200,952",
+ "elevation": 313,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "nicosia",
+ "name": "Nicosia",
+ "population": "200,452",
+ "elevation": 147,
+ "timezone_id": "Asia/Nicosia"
+ },
+ {
+ "identifier": "oral",
+ "name": "Oral",
+ "population": "200,000",
+ "elevation": 35,
+ "timezone_id": "Asia/Oral"
+ },
+ {
+ "identifier": "osh",
+ "name": "Osh",
+ "population": "200,000",
+ "elevation": 988,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "saskatoon",
+ "name": "Saskatoon",
+ "population": "198,958",
+ "elevation": 484,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "little rock",
+ "name": "Little Rock",
+ "population": "197,992",
+ "elevation": 105,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vientiane",
+ "name": "Vientiane",
+ "population": "196,731",
+ "elevation": 174,
+ "timezone_id": "Asia/Vientiane"
+ },
+ {
+ "identifier": "aberdeen",
+ "name": "Aberdeen",
+ "population": "196,670",
+ "elevation": 13,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "palmas",
+ "name": "Palmas",
+ "population": "196,272",
+ "elevation": 271,
+ "timezone_id": "America/Araguaina"
+ },
+ {
+ "identifier": "townsville",
+ "name": "Townsville",
+ "population": "196,219",
+ "elevation": 15,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "salt lake city",
+ "name": "Salt Lake City",
+ "population": "192,672",
+ "elevation": 1311,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "cork",
+ "name": "Cork",
+ "population": "190,384",
+ "elevation": 10,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "tallahassee",
+ "name": "Tallahassee",
+ "population": "189,907",
+ "elevation": 71,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "santarem",
+ "name": "Santarem",
+ "population": "189,047",
+ "elevation": 51,
+ "timezone_id": "America/Santarem"
+ },
+ {
+ "identifier": "san fernando del valle de catamarca",
+ "name": "San Fernando del Valle de Catamarca",
+ "population": "188,812",
+ "elevation": 545,
+ "timezone_id": "America/Argentina/Catamarca"
+ },
+ {
+ "identifier": "trieste",
+ "name": "Trieste",
+ "population": "187,056",
+ "elevation": 19,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san luis",
+ "name": "San Luis",
+ "population": "183,982",
+ "elevation": 729,
+ "timezone_id": "America/Argentina/San_Luis"
+ },
+ {
+ "identifier": "geneva",
+ "name": "Geneva",
+ "population": "183,981",
+ "elevation": 400,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "atyrau",
+ "name": "Atyrau",
+ "population": "180,000",
+ "elevation": -25,
+ "timezone_id": "Asia/Atyrau"
+ },
+ {
+ "identifier": "kutaisi",
+ "name": "Kutaisi",
+ "population": "178,338",
+ "elevation": 153,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "yuzhno-sakhalinsk",
+ "name": "Yuzhno-Sakhalinsk",
+ "population": "176,484",
+ "elevation": 48,
+ "timezone_id": "Asia/Sakhalin"
+ },
+ {
+ "identifier": "split",
+ "name": "Split",
+ "population": "176,314",
+ "elevation": 12,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "regina",
+ "name": "Regina",
+ "population": "176,183",
+ "elevation": 577,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "turku",
+ "name": "Turku",
+ "population": "175,945",
+ "elevation": 22,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "oxford",
+ "name": "Oxford",
+ "population": "171,380",
+ "elevation": 72,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "jackson",
+ "name": "Jackson",
+ "population": "170,674",
+ "elevation": 100,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "springfield",
+ "name": "Springfield",
+ "population": "166,810",
+ "elevation": 399,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "basel",
+ "name": "Basel",
+ "population": "164,488",
+ "elevation": 279,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "la rioja",
+ "name": "La Rioja",
+ "population": "162,620",
+ "elevation": 502,
+ "timezone_id": "America/Argentina/La_Rioja"
+ },
+ {
+ "identifier": "hebron",
+ "name": "Hebron",
+ "population": "160,470",
+ "elevation": 903,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "modena",
+ "name": "Modena",
+ "population": "158,886",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "cambridge",
+ "name": "Cambridge",
+ "population": "158,434",
+ "elevation": 12,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "frisco",
+ "name": "Frisco",
+ "population": "154,407",
+ "elevation": 216,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "pasadena",
+ "name": "Pasadena",
+ "population": "153,784",
+ "elevation": 12,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "york",
+ "name": "York",
+ "population": "153,717",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "salzburg",
+ "name": "Salzburg",
+ "population": "153,377",
+ "elevation": 435,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "cairns",
+ "name": "Cairns",
+ "population": "153,075",
+ "elevation": 1,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "hamilton",
+ "name": "Hamilton",
+ "population": "152,641",
+ "elevation": 39,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "la laguna",
+ "name": "La Laguna",
+ "population": "150,661",
+ "elevation": 558,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "dili",
+ "name": "Dili",
+ "population": "150,000",
+ "elevation": 3,
+ "timezone_id": "Asia/Dili"
+ },
+ {
+ "identifier": "dijon",
+ "name": "Dijon",
+ "population": "149,782",
+ "elevation": 242,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "uppsala",
+ "name": "Uppsala",
+ "population": "149,245",
+ "elevation": 20,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "trondheim",
+ "name": "Trondheim",
+ "population": "147,139",
+ "elevation": 18,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "manama",
+ "name": "Manama",
+ "population": "147,074",
+ "elevation": 12,
+ "timezone_id": "Asia/Bahrain"
+ },
+ {
+ "identifier": "parma",
+ "name": "Parma",
+ "population": "146,299",
+ "elevation": 64,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "boise",
+ "name": "Boise",
+ "population": "145,987",
+ "elevation": 834,
+ "timezone_id": "America/Boise"
+ },
+ {
+ "identifier": "odense",
+ "name": "Odense",
+ "population": "145,931",
+ "elevation": 17,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "amiens",
+ "name": "Amiens",
+ "population": "143,086",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tours",
+ "name": "Tours",
+ "population": "141,621",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "podgorica",
+ "name": "Podgorica",
+ "population": "136,473",
+ "elevation": 49,
+ "timezone_id": "Europe/Podgorica"
+ },
+ {
+ "identifier": "innsbruck",
+ "name": "Innsbruck",
+ "population": "132,493",
+ "elevation": 587,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "toowoomba",
+ "name": "Toowoomba",
+ "population": "131,258",
+ "elevation": 599,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "darwin",
+ "name": "Darwin",
+ "population": "129,062",
+ "elevation": 31,
+ "timezone_id": "Australia/Darwin"
+ },
+ {
+ "identifier": "bern",
+ "name": "Bern",
+ "population": "121631",
+ "elevation": 549,
+ "timezone_id": "Europe/Zurich"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Countries.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Countries.json
new file mode 100644
index 000000000..fbf319baf
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Countries.json
@@ -0,0 +1,3392 @@
+[
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Kabul",
+ "code": "AF",
+ "capital": "Kabul",
+ "flagURL": "https://restcountries.eu/data/afg.svg",
+ "language": {
+ "name": "Pashto",
+ "code": "ps"
+ },
+ "currency": {
+ "name": "Afghan afghani",
+ "code": "AFN",
+ "symbol": "؋"
+ },
+ "name": "Afghanistan"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Tirane",
+ "code": "AL",
+ "capital": "Tirana",
+ "flagURL": "https://restcountries.eu/data/alb.svg",
+ "language": {
+ "name": "Albanian",
+ "code": "sq"
+ },
+ "currency": {
+ "name": "Albanian lek",
+ "code": "ALL",
+ "symbol": "L"
+ },
+ "name": "Albania"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Algiers",
+ "code": "DZ",
+ "capital": "Algiers",
+ "flagURL": "https://restcountries.eu/data/dza.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Algerian dinar",
+ "code": "DZD",
+ "symbol": "د.ج"
+ },
+ "name": "Algeria"
+ },
+ {
+ "region": "OC",
+ "code": "AS",
+ "capital": "Pago Pago",
+ "flagURL": "https://restcountries.eu/data/asm.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "United State Dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "American Samoa"
+ },
+ {
+ "region": "EU",
+ "code": "AD",
+ "capital": "Andorra la Vella",
+ "flagURL": "https://restcountries.eu/data/and.svg",
+ "language": {
+ "name": "Catalan",
+ "code": "ca"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Andorra",
+ "capitalCityTimezoneID": "Europe/Andorra"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Luanda",
+ "code": "AO",
+ "capital": "Luanda",
+ "flagURL": "https://restcountries.eu/data/ago.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Angolan kwanza",
+ "code": "AOA",
+ "symbol": "Kz"
+ },
+ "name": "Angola"
+ },
+ {
+ "region": "NA",
+ "code": "AI",
+ "capital": "The Valley",
+ "flagURL": "https://restcountries.eu/data/aia.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Anguilla"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Argentina/Buenos_Aires",
+ "code": "AR",
+ "capital": "Buenos Aires",
+ "flagURL": "https://restcountries.eu/data/arg.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Argentine peso",
+ "code": "ARS",
+ "symbol": "$"
+ },
+ "name": "Argentina"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Yerevan",
+ "code": "AM",
+ "capital": "Yerevan",
+ "flagURL": "https://restcountries.eu/data/arm.svg",
+ "language": {
+ "name": "Armenian",
+ "code": "hy"
+ },
+ "currency": {
+ "name": "Armenian dram",
+ "code": "AMD"
+ },
+ "name": "Armenia"
+ },
+ {
+ "region": "SA",
+ "code": "AW",
+ "capital": "Oranjestad",
+ "flagURL": "https://restcountries.eu/data/abw.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Aruban florin",
+ "code": "AWG",
+ "symbol": "ƒ"
+ },
+ "name": "Aruba"
+ },
+ {
+ "region": "OC",
+ "capitalCityTimezoneID": "Australia/Sydney",
+ "code": "AU",
+ "capital": "Canberra",
+ "flagURL": "https://restcountries.eu/data/aus.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Australian dollar",
+ "code": "AUD",
+ "symbol": "$"
+ },
+ "name": "Australia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Vienna",
+ "code": "AT",
+ "capital": "Vienna",
+ "flagURL": "https://restcountries.eu/data/aut.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Austria"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Baku",
+ "code": "AZ",
+ "capital": "Baku",
+ "flagURL": "https://restcountries.eu/data/aze.svg",
+ "language": {
+ "name": "Azerbaijani",
+ "code": "az"
+ },
+ "currency": {
+ "name": "Azerbaijani manat",
+ "code": "AZN"
+ },
+ "name": "Azerbaijan"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Nassau",
+ "code": "BS",
+ "capital": "Nassau",
+ "flagURL": "https://restcountries.eu/data/bhs.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Bahamian dollar",
+ "code": "BSD",
+ "symbol": "$"
+ },
+ "name": "Bahamas"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Bahrain",
+ "code": "BH",
+ "capital": "Manama",
+ "flagURL": "https://restcountries.eu/data/bhr.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Bahraini dinar",
+ "code": "BHD",
+ "symbol": ".د.ب"
+ },
+ "name": "Bahrain"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dhaka",
+ "code": "BD",
+ "capital": "Dhaka",
+ "flagURL": "https://restcountries.eu/data/bgd.svg",
+ "language": {
+ "name": "Bengali",
+ "code": "bn"
+ },
+ "currency": {
+ "name": "Bangladeshi taka",
+ "code": "BDT",
+ "symbol": "৳"
+ },
+ "name": "Bangladesh"
+ },
+ {
+ "region": "NA",
+ "code": "BB",
+ "capital": "Bridgetown",
+ "flagURL": "https://restcountries.eu/data/brb.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Barbadian dollar",
+ "code": "BBD",
+ "symbol": "$"
+ },
+ "name": "Barbados"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Minsk",
+ "code": "BY",
+ "capital": "Minsk",
+ "flagURL": "https://restcountries.eu/data/blr.svg",
+ "language": {
+ "name": "Belarusian",
+ "code": "be"
+ },
+ "currency": {
+ "name": "New Belarusian ruble",
+ "code": "BYN",
+ "symbol": "Br"
+ },
+ "name": "Belarus"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Brussels",
+ "code": "BE",
+ "capital": "Brussels",
+ "flagURL": "https://restcountries.eu/data/bel.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Belgium"
+ },
+ {
+ "region": "NA",
+ "code": "BZ",
+ "capital": "Belmopan",
+ "flagURL": "https://restcountries.eu/data/blz.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Belize dollar",
+ "code": "BZD",
+ "symbol": "$"
+ },
+ "name": "Belize"
+ },
+ {
+ "region": "AF",
+ "code": "BJ",
+ "capital": "Porto-Novo",
+ "flagURL": "https://restcountries.eu/data/ben.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Benin"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "Pacific/Auckland",
+ "code": "BM",
+ "capital": "Hamilton",
+ "flagURL": "https://restcountries.eu/data/bmu.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Bermudian dollar",
+ "code": "BMD",
+ "symbol": "$"
+ },
+ "name": "Bermuda"
+ },
+ {
+ "region": "AS",
+ "code": "BT",
+ "capital": "Thimphu",
+ "flagURL": "https://restcountries.eu/data/btn.svg",
+ "language": {
+ "name": "Dzongkha",
+ "code": "dz"
+ },
+ "currency": {
+ "name": "Bhutanese ngultrum",
+ "code": "BTN",
+ "symbol": "Nu."
+ },
+ "name": "Bhutan"
+ },
+ {
+ "region": "SA",
+ "code": "BO",
+ "capital": "Sucre",
+ "flagURL": "https://restcountries.eu/data/bol.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Bolivian boliviano",
+ "code": "BOB",
+ "symbol": "Bs."
+ },
+ "capitalCityTimezoneID": "America/La_Paz",
+ "name": "Bolivia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Sarajevo",
+ "code": "BA",
+ "capital": "Sarajevo",
+ "flagURL": "https://restcountries.eu/data/bih.svg",
+ "language": {
+ "name": "Bosnian",
+ "code": "bs"
+ },
+ "currency": {
+ "name": "Bosnia and Herzegovina convertible mark",
+ "code": "BAM"
+ },
+ "name": "Bosnia and Herzegovina"
+ },
+ {
+ "region": "AF",
+ "code": "BW",
+ "capital": "Gaborone",
+ "flagURL": "https://restcountries.eu/data/bwa.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Botswana pula",
+ "code": "BWP",
+ "symbol": "P"
+ },
+ "name": "Botswana"
+ },
+ {
+ "region": "SA",
+ "code": "BR",
+ "capital": "Brasília",
+ "flagURL": "https://restcountries.eu/data/bra.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Brazilian real",
+ "code": "BRL",
+ "symbol": "R$"
+ },
+ "name": "Brazil",
+ "capitalCityTimezoneID": "America/Sao_Paulo"
+ },
+ {
+ "region": "AF",
+ "code": "IO",
+ "capital": "Diego Garcia",
+ "flagURL": "https://restcountries.eu/data/iot.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "British Indian Ocean Territory"
+ },
+ {
+ "region": "AS",
+ "code": "BN",
+ "capital": "Bandar Seri Begawan",
+ "flagURL": "https://restcountries.eu/data/brn.svg",
+ "language": {
+ "name": "Malay",
+ "code": "ms"
+ },
+ "currency": {
+ "name": "Brunei dollar",
+ "code": "BND",
+ "symbol": "$"
+ },
+ "name": "Brunei"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Sofia",
+ "code": "BG",
+ "capital": "Sofia",
+ "flagURL": "https://restcountries.eu/data/bgr.svg",
+ "language": {
+ "name": "Bulgarian",
+ "code": "bg"
+ },
+ "currency": {
+ "name": "Bulgarian lev",
+ "code": "BGN",
+ "symbol": "лв"
+ },
+ "name": "Bulgaria"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Ouagadougou",
+ "code": "BF",
+ "capital": "Ouagadougou",
+ "flagURL": "https://restcountries.eu/data/bfa.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Burkina Faso"
+ },
+ {
+ "region": "AF",
+ "code": "BI",
+ "capital": "Bujumbura",
+ "flagURL": "https://restcountries.eu/data/bdi.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Burundian franc",
+ "code": "BIF",
+ "symbol": "Fr"
+ },
+ "name": "Burundi"
+ },
+ {
+ "region": "AF",
+ "code": "CV",
+ "capital": "Praia",
+ "flagURL": "https://restcountries.eu/data/cpv.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Cape Verdean escudo",
+ "code": "CVE",
+ "symbol": "Esc"
+ },
+ "name": "Cabo Verde"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Phnom_Penh",
+ "code": "KH",
+ "capital": "Phnom Penh",
+ "flagURL": "https://restcountries.eu/data/khm.svg",
+ "language": {
+ "name": "Khmer",
+ "code": "km"
+ },
+ "currency": {
+ "name": "Cambodian riel",
+ "code": "KHR",
+ "symbol": "៛"
+ },
+ "name": "Cambodia"
+ },
+ {
+ "region": "AF",
+ "code": "CM",
+ "capital": "Yaoundé",
+ "flagURL": "https://restcountries.eu/data/cmr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Cameroon"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Toronto",
+ "code": "CA",
+ "capital": "Ottawa",
+ "flagURL": "https://restcountries.eu/data/can.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Canadian dollar",
+ "code": "CAD",
+ "symbol": "$"
+ },
+ "name": "Canada"
+ },
+ {
+ "region": "AF",
+ "code": "CF",
+ "capital": "Bangui",
+ "flagURL": "https://restcountries.eu/data/caf.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Central African Republic"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Ndjamena",
+ "code": "TD",
+ "capital": "N'Djamena",
+ "flagURL": "https://restcountries.eu/data/tcd.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Chad"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Santiago",
+ "code": "CL",
+ "capital": "Santiago",
+ "flagURL": "https://restcountries.eu/data/chl.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Chilean peso",
+ "code": "CLP",
+ "symbol": "$"
+ },
+ "name": "Chile"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Shanghai",
+ "code": "CN",
+ "capital": "Beijing",
+ "flagURL": "https://restcountries.eu/data/chn.svg",
+ "language": {
+ "name": "Chinese",
+ "code": "zh"
+ },
+ "currency": {
+ "name": "Chinese yuan",
+ "code": "CNY",
+ "symbol": "¥"
+ },
+ "name": "China"
+ },
+ {
+ "region": "SA",
+ "code": "CO",
+ "capital": "Bogotá",
+ "flagURL": "https://restcountries.eu/data/col.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Colombian peso",
+ "code": "COP",
+ "symbol": "$"
+ },
+ "name": "Colombia",
+ "capitalCityTimezoneID": "America/Bogota"
+ },
+ {
+ "region": "AF",
+ "code": "KM",
+ "capital": "Moroni",
+ "flagURL": "https://restcountries.eu/data/com.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Comorian franc",
+ "code": "KMF",
+ "symbol": "Fr"
+ },
+ "name": "Comoros"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Brazzaville",
+ "code": "CG",
+ "capital": "Brazzaville",
+ "flagURL": "https://restcountries.eu/data/cog.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Congo"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Kinshasa",
+ "code": "CD",
+ "capital": "Kinshasa",
+ "flagURL": "https://restcountries.eu/data/cod.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Congolese franc",
+ "code": "CDF",
+ "symbol": "Fr"
+ },
+ "name": "Congo"
+ },
+ {
+ "region": "NA",
+ "code": "CR",
+ "capital": "San José",
+ "flagURL": "https://restcountries.eu/data/cri.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Costa Rican colón",
+ "code": "CRC",
+ "symbol": "₡"
+ },
+ "capitalCityTimezoneID": "America/Costa_Rica",
+ "name": "Costa Rica"
+ },
+ {
+ "region": "AF",
+ "code": "CI",
+ "capital": "Yamoussoukro",
+ "flagURL": "https://restcountries.eu/data/civ.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Côte d'Ivoire"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Zagreb",
+ "code": "HR",
+ "capital": "Zagreb",
+ "flagURL": "https://restcountries.eu/data/hrv.svg",
+ "language": {
+ "name": "Croatian",
+ "code": "hr"
+ },
+ "currency": {
+ "name": "Croatian kuna",
+ "code": "HRK",
+ "symbol": "kn"
+ },
+ "name": "Croatia"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Havana",
+ "code": "CU",
+ "capital": "Havana",
+ "flagURL": "https://restcountries.eu/data/cub.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Cuban convertible peso",
+ "code": "CUC",
+ "symbol": "$"
+ },
+ "name": "Cuba"
+ },
+ {
+ "region": "SA",
+ "code": "CW",
+ "capital": "Willemstad",
+ "flagURL": "https://restcountries.eu/data/cuw.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Netherlands Antillean guilder",
+ "code": "ANG",
+ "symbol": "ƒ"
+ },
+ "name": "Curaçao"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Asia/Nicosia",
+ "code": "CY",
+ "capital": "Nicosia",
+ "flagURL": "https://restcountries.eu/data/cyp.svg",
+ "language": {
+ "name": "Turkish",
+ "code": "tr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Cyprus"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Prague",
+ "code": "CZ",
+ "capital": "Prague",
+ "flagURL": "https://restcountries.eu/data/cze.svg",
+ "language": {
+ "name": "Czech",
+ "code": "cs"
+ },
+ "currency": {
+ "name": "Czech koruna",
+ "code": "CZK",
+ "symbol": "Kč"
+ },
+ "name": "Czech Republic"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Copenhagen",
+ "code": "DK",
+ "capital": "Copenhagen",
+ "flagURL": "https://restcountries.eu/data/dnk.svg",
+ "language": {
+ "name": "Danish",
+ "code": "da"
+ },
+ "currency": {
+ "name": "Danish krone",
+ "code": "DKK",
+ "symbol": "kr"
+ },
+ "name": "Denmark"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Djibouti",
+ "code": "DJ",
+ "capital": "Djibouti",
+ "flagURL": "https://restcountries.eu/data/dji.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Djiboutian franc",
+ "code": "DJF",
+ "symbol": "Fr"
+ },
+ "name": "Djibouti"
+ },
+ {
+ "region": "NA",
+ "code": "DM",
+ "capital": "Roseau",
+ "flagURL": "https://restcountries.eu/data/dma.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Dominica"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Santo_Domingo",
+ "code": "DO",
+ "capital": "Santo Domingo",
+ "flagURL": "https://restcountries.eu/data/dom.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Dominican peso",
+ "code": "DOP",
+ "symbol": "$"
+ },
+ "name": "Dominican Republic"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Guayaquil",
+ "code": "EC",
+ "capital": "Quito",
+ "flagURL": "https://restcountries.eu/data/ecu.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "Ecuador"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Cairo",
+ "code": "EG",
+ "capital": "Cairo",
+ "flagURL": "https://restcountries.eu/data/egy.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Egyptian pound",
+ "code": "EGP",
+ "symbol": "£"
+ },
+ "name": "Egypt"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/El_Salvador",
+ "code": "SV",
+ "capital": "San Salvador",
+ "flagURL": "https://restcountries.eu/data/slv.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "El Salvador"
+ },
+ {
+ "region": "AF",
+ "code": "GQ",
+ "capital": "Malabo",
+ "flagURL": "https://restcountries.eu/data/gnq.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Equatorial Guinea"
+ },
+ {
+ "region": "AF",
+ "code": "ER",
+ "capital": "Asmara",
+ "flagURL": "https://restcountries.eu/data/eri.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Eritrean nakfa",
+ "code": "ERN",
+ "symbol": "Nfk"
+ },
+ "name": "Eritrea"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Tallinn",
+ "code": "EE",
+ "capital": "Tallinn",
+ "flagURL": "https://restcountries.eu/data/est.svg",
+ "language": {
+ "name": "Estonian",
+ "code": "et"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Estonia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Addis_Ababa",
+ "code": "ET",
+ "capital": "Addis Ababa",
+ "flagURL": "https://restcountries.eu/data/eth.svg",
+ "language": {
+ "name": "Amharic",
+ "code": "am"
+ },
+ "currency": {
+ "name": "Ethiopian birr",
+ "code": "ETB",
+ "symbol": "Br"
+ },
+ "name": "Ethiopia"
+ },
+ {
+ "region": "OC",
+ "code": "FJ",
+ "capital": "Suva",
+ "flagURL": "https://restcountries.eu/data/fji.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Fijian dollar",
+ "code": "FJD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "Pacific/Fiji",
+ "name": "Fiji"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Helsinki",
+ "code": "FI",
+ "capital": "Helsinki",
+ "flagURL": "https://restcountries.eu/data/fin.svg",
+ "language": {
+ "name": "Finnish",
+ "code": "fi"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Finland"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Paris",
+ "code": "FR",
+ "capital": "Paris",
+ "flagURL": "https://restcountries.eu/data/fra.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "France"
+ },
+ {
+ "region": "SA",
+ "code": "GF",
+ "capital": "Cayenne",
+ "flagURL": "https://restcountries.eu/data/guf.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "French Guiana"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Libreville",
+ "code": "GA",
+ "capital": "Libreville",
+ "flagURL": "https://restcountries.eu/data/gab.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Gabon"
+ },
+ {
+ "region": "AF",
+ "code": "GM",
+ "capital": "Banjul",
+ "flagURL": "https://restcountries.eu/data/gmb.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Gambian dalasi",
+ "code": "GMD",
+ "symbol": "D"
+ },
+ "name": "Gambia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tbilisi",
+ "code": "GE",
+ "capital": "Tbilisi",
+ "flagURL": "https://restcountries.eu/data/geo.svg",
+ "language": {
+ "name": "Georgian",
+ "code": "ka"
+ },
+ "currency": {
+ "name": "Georgian Lari",
+ "code": "GEL",
+ "symbol": "ლ"
+ },
+ "name": "Georgia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Berlin",
+ "code": "DE",
+ "capital": "Berlin",
+ "flagURL": "https://restcountries.eu/data/deu.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Germany"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Accra",
+ "code": "GH",
+ "capital": "Accra",
+ "flagURL": "https://restcountries.eu/data/gha.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Ghanaian cedi",
+ "code": "GHS",
+ "symbol": "₵"
+ },
+ "name": "Ghana"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Athens",
+ "code": "GR",
+ "capital": "Athens",
+ "flagURL": "https://restcountries.eu/data/grc.svg",
+ "language": {
+ "name": "Greek (modern)",
+ "code": "el"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Greece"
+ },
+ {
+ "region": "NA",
+ "code": "GL",
+ "capital": "Nuuk",
+ "flagURL": "https://restcountries.eu/data/grl.svg",
+ "language": {
+ "name": "Kalaallisut",
+ "code": "kl"
+ },
+ "currency": {
+ "name": "Danish krone",
+ "code": "DKK",
+ "symbol": "kr"
+ },
+ "capitalCityTimezoneID": "America/Godthab",
+ "name": "Greenland"
+ },
+ {
+ "region": "NA",
+ "code": "GD",
+ "capital": "St. George's",
+ "flagURL": "https://restcountries.eu/data/grd.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Grenada"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Guatemala",
+ "code": "GT",
+ "capital": "Guatemala City",
+ "flagURL": "https://restcountries.eu/data/gtm.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Guatemalan quetzal",
+ "code": "GTQ",
+ "symbol": "Q"
+ },
+ "name": "Guatemala"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Conakry",
+ "code": "GN",
+ "capital": "Conakry",
+ "flagURL": "https://restcountries.eu/data/gin.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Guinean franc",
+ "code": "GNF",
+ "symbol": "Fr"
+ },
+ "name": "Guinea"
+ },
+ {
+ "region": "AF",
+ "code": "GW",
+ "capital": "Bissau",
+ "flagURL": "https://restcountries.eu/data/gnb.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Guinea-Bissau"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Guyana",
+ "code": "GY",
+ "capital": "Georgetown",
+ "flagURL": "https://restcountries.eu/data/guy.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Guyanese dollar",
+ "code": "GYD",
+ "symbol": "$"
+ },
+ "name": "Guyana"
+ },
+ {
+ "region": "Americas",
+ "capitalCityTimezoneID": "America/Port-au-Prince",
+ "code": "HT",
+ "capital": "Port-au-Prince",
+ "flagURL": "https://restcountries.eu/data/hti.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Haitian gourde",
+ "code": "HTG",
+ "symbol": "G"
+ },
+ "name": "Haiti"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Rome",
+ "code": "VA",
+ "capital": "Rome",
+ "flagURL": "https://restcountries.eu/data/vat.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "The Vatican"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Tegucigalpa",
+ "code": "HN",
+ "capital": "Tegucigalpa",
+ "flagURL": "https://restcountries.eu/data/hnd.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Honduran lempira",
+ "code": "HNL",
+ "symbol": "L"
+ },
+ "name": "Honduras"
+ },
+ {
+ "region": "AS",
+ "code": "HK",
+ "capital": "City of Victoria",
+ "flagURL": "https://restcountries.eu/data/hkg.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Hong Kong dollar",
+ "code": "HKD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "Asia/Hong_Kong",
+ "name": "Hong Kong"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Budapest",
+ "code": "HU",
+ "capital": "Budapest",
+ "flagURL": "https://restcountries.eu/data/hun.svg",
+ "language": {
+ "name": "Hungarian",
+ "code": "hu"
+ },
+ "currency": {
+ "name": "Hungarian forint",
+ "code": "HUF",
+ "symbol": "Ft"
+ },
+ "name": "Hungary"
+ },
+ {
+ "region": "EU",
+ "code": "IS",
+ "capital": "Reykjavík",
+ "flagURL": "https://restcountries.eu/data/isl.svg",
+ "capitalCityTimezoneID": "Atlantic/Reykjavik",
+ "language": {
+ "name": "Icelandic",
+ "code": "is"
+ },
+ "currency": {
+ "name": "Icelandic króna",
+ "code": "ISK",
+ "symbol": "kr"
+ },
+ "name": "Iceland"
+ },
+ {
+ "region": "AS",
+ "code": "IN",
+ "capital": "New Delhi",
+ "flagURL": "https://restcountries.eu/data/ind.svg",
+ "language": {
+ "name": "Hindi",
+ "code": "hi"
+ },
+ "currency": {
+ "name": "Indian rupee",
+ "code": "INR",
+ "symbol": "₹"
+ },
+ "capitalCityTimezoneID": "Asia/Kolkata",
+ "name": "India"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Jakarta",
+ "code": "ID",
+ "capital": "Jakarta",
+ "flagURL": "https://restcountries.eu/data/idn.svg",
+ "language": {
+ "name": "Indonesian",
+ "code": "id"
+ },
+ "currency": {
+ "name": "Indonesian rupiah",
+ "code": "IDR",
+ "symbol": "Rp"
+ },
+ "name": "Indonesia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tehran",
+ "code": "IR",
+ "capital": "Tehran",
+ "flagURL": "https://restcountries.eu/data/irn.svg",
+ "language": {
+ "name": "Persian (Farsi)",
+ "code": "fa"
+ },
+ "currency": {
+ "name": "Iranian rial",
+ "code": "IRR",
+ "symbol": "﷼"
+ },
+ "name": "Iran"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Baghdad",
+ "code": "IQ",
+ "capital": "Baghdad",
+ "flagURL": "https://restcountries.eu/data/irq.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Iraqi dinar",
+ "code": "IQD",
+ "symbol": "ع.د"
+ },
+ "name": "Iraq"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Dublin",
+ "code": "IE",
+ "capital": "Dublin",
+ "flagURL": "https://restcountries.eu/data/irl.svg",
+ "language": {
+ "name": "Irish",
+ "code": "ga"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Ireland"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Jerusalem",
+ "code": "IL",
+ "capital": "Jerusalem",
+ "flagURL": "https://restcountries.eu/data/isr.svg",
+ "language": {
+ "name": "Hebrew (modern)",
+ "code": "he"
+ },
+ "currency": {
+ "name": "Israeli new shekel",
+ "code": "ILS",
+ "symbol": "₪"
+ },
+ "name": "Israel"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Rome",
+ "code": "IT",
+ "capital": "Rome",
+ "flagURL": "https://restcountries.eu/data/ita.svg",
+ "language": {
+ "name": "Italian",
+ "code": "it"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Italy"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Jamaica",
+ "code": "JM",
+ "capital": "Kingston",
+ "flagURL": "https://restcountries.eu/data/jam.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Jamaican dollar",
+ "code": "JMD",
+ "symbol": "$"
+ },
+ "name": "Jamaica"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tokyo",
+ "code": "JP",
+ "capital": "Tokyo",
+ "flagURL": "https://restcountries.eu/data/jpn.svg",
+ "language": {
+ "name": "Japanese",
+ "code": "ja"
+ },
+ "currency": {
+ "name": "Japanese yen",
+ "code": "JPY",
+ "symbol": "¥"
+ },
+ "name": "Japan"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Amman",
+ "code": "JO",
+ "capital": "Amman",
+ "flagURL": "https://restcountries.eu/data/jor.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Jordanian dinar",
+ "code": "JOD",
+ "symbol": "د.ا"
+ },
+ "name": "Jordan"
+ },
+ {
+ "region": "AS",
+ "code": "KZ",
+ "capital": "Astana",
+ "flagURL": "https://restcountries.eu/data/kaz.svg",
+ "language": {
+ "name": "Kazakh",
+ "code": "kk"
+ },
+ "currency": {
+ "name": "Kazakhstani tenge",
+ "code": "KZT"
+ },
+ "capitalCityTimezoneID": "Asia/Almaty",
+ "name": "Kazakhstan"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Nairobi",
+ "code": "KE",
+ "capital": "Nairobi",
+ "flagURL": "https://restcountries.eu/data/ken.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Kenyan shilling",
+ "code": "KES",
+ "symbol": "Sh"
+ },
+ "name": "Kenya"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Pyongyang",
+ "code": "KP",
+ "capital": "Pyongyang",
+ "flagURL": "https://restcountries.eu/data/prk.svg",
+ "language": {
+ "name": "Korean",
+ "code": "ko"
+ },
+ "currency": {
+ "name": "North Korean won",
+ "code": "KPW",
+ "symbol": "₩"
+ },
+ "name": "North Korea"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Seoul",
+ "code": "KR",
+ "capital": "Seoul",
+ "flagURL": "https://restcountries.eu/data/kor.svg",
+ "language": {
+ "name": "Korean",
+ "code": "ko"
+ },
+ "currency": {
+ "name": "South Korean won",
+ "code": "KRW",
+ "symbol": "₩"
+ },
+ "name": "South Korea"
+ },
+ {
+ "region": "AS",
+ "code": "KW",
+ "capital": "Kuwait City",
+ "flagURL": "https://restcountries.eu/data/kwt.svg",
+ "capitalCityTimezoneID": "Asia/Kuwait",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Kuwaiti dinar",
+ "code": "KWD",
+ "symbol": "د.ك"
+ },
+ "name": "Kuwait"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Bishkek",
+ "code": "KG",
+ "capital": "Bishkek",
+ "flagURL": "https://restcountries.eu/data/kgz.svg",
+ "language": {
+ "name": "Kyrgyz",
+ "code": "ky"
+ },
+ "currency": {
+ "name": "Kyrgyzstani som",
+ "code": "KGS",
+ "symbol": "с"
+ },
+ "name": "Kyrgyzstan"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Vientiane",
+ "code": "LA",
+ "capital": "Vientiane",
+ "flagURL": "https://restcountries.eu/data/lao.svg",
+ "language": {
+ "name": "Lao",
+ "code": "lo"
+ },
+ "currency": {
+ "name": "Lao kip",
+ "code": "LAK",
+ "symbol": "₭"
+ },
+ "name": "Lao People's Democratic Republic"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Riga",
+ "code": "LV",
+ "capital": "Riga",
+ "flagURL": "https://restcountries.eu/data/lva.svg",
+ "language": {
+ "name": "Latvian",
+ "code": "lv"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Latvia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Beirut",
+ "code": "LB",
+ "capital": "Beirut",
+ "flagURL": "https://restcountries.eu/data/lbn.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Lebanese pound",
+ "code": "LBP",
+ "symbol": "ل.ل"
+ },
+ "name": "Lebanon"
+ },
+ {
+ "region": "AF",
+ "code": "LS",
+ "capital": "Maseru",
+ "flagURL": "https://restcountries.eu/data/lso.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Lesotho loti",
+ "code": "LSL",
+ "symbol": "L"
+ },
+ "name": "Lesotho"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Monrovia",
+ "code": "LR",
+ "capital": "Monrovia",
+ "flagURL": "https://restcountries.eu/data/lbr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Liberian dollar",
+ "code": "LRD",
+ "symbol": "$"
+ },
+ "name": "Liberia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Asia/Beirut",
+ "code": "LY",
+ "capital": "Tripoli",
+ "flagURL": "https://restcountries.eu/data/lby.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Libyan dinar",
+ "code": "LYD",
+ "symbol": "ل.د"
+ },
+ "name": "Libya"
+ },
+ {
+ "region": "EU",
+ "code": "LI",
+ "capital": "Vaduz",
+ "flagURL": "https://restcountries.eu/data/lie.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Swiss franc",
+ "code": "CHF",
+ "symbol": "Fr"
+ },
+ "capitalCityTimezoneID": "Europe/Vaduz",
+ "name": "Liechtenstein"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Vilnius",
+ "code": "LT",
+ "capital": "Vilnius",
+ "flagURL": "https://restcountries.eu/data/ltu.svg",
+ "language": {
+ "name": "Lithuanian",
+ "code": "lt"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Lithuania"
+ },
+ {
+ "region": "EU",
+ "code": "LU",
+ "capital": "Luxembourg",
+ "flagURL": "https://restcountries.eu/data/lux.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "capitalCityTimezoneID": "Europe/Luxembourg",
+ "name": "Luxembourg"
+ },
+ {
+ "region": "AS",
+ "code": "MO",
+ "capital": "",
+ "flagURL": "https://restcountries.eu/data/mac.svg",
+ "language": {
+ "name": "Chinese",
+ "code": "zh"
+ },
+ "currency": {
+ "name": "Macanese pataca",
+ "code": "MOP",
+ "symbol": "P"
+ },
+ "capitalCityTimezoneID": "Asia/Macau",
+ "name": "Macao"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Skopje",
+ "code": "MK",
+ "capital": "Skopje",
+ "flagURL": "https://restcountries.eu/data/mkd.svg",
+ "language": {
+ "name": "Macedonian",
+ "code": "mk"
+ },
+ "currency": {
+ "name": "Macedonian denar",
+ "code": "MKD",
+ "symbol": "ден"
+ },
+ "name": "Macedonia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Indian/Antananarivo",
+ "code": "MG",
+ "capital": "Antananarivo",
+ "flagURL": "https://restcountries.eu/data/mdg.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Malagasy ariary",
+ "code": "MGA",
+ "symbol": "Ar"
+ },
+ "name": "Madagascar"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Blantyre",
+ "code": "MW",
+ "capital": "Lilongwe",
+ "flagURL": "https://restcountries.eu/data/mwi.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Malawian kwacha",
+ "code": "MWK",
+ "symbol": "MK"
+ },
+ "name": "Malawi"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Kuala_Lumpur",
+ "code": "MY",
+ "capital": "Kuala Lumpur",
+ "flagURL": "https://restcountries.eu/data/mys.svg",
+ "language": {
+ "name": "Malaysian"
+ },
+ "currency": {
+ "name": "Malaysian ringgit",
+ "code": "MYR",
+ "symbol": "RM"
+ },
+ "name": "Malaysia"
+ },
+ {
+ "region": "AS",
+ "code": "MV",
+ "capital": "Malé",
+ "flagURL": "https://restcountries.eu/data/mdv.svg",
+ "language": {
+ "name": "Divehi",
+ "code": "dv"
+ },
+ "currency": {
+ "name": "Maldivian rufiyaa",
+ "code": "MVR",
+ "symbol": ".ރ"
+ },
+ "name": "Maldives"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Bamako",
+ "code": "ML",
+ "capital": "Bamako",
+ "flagURL": "https://restcountries.eu/data/mli.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Mali"
+ },
+ {
+ "region": "EU",
+ "code": "MT",
+ "capital": "Valletta",
+ "flagURL": "https://restcountries.eu/data/mlt.svg",
+ "language": {
+ "name": "Maltese",
+ "code": "mt"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "capitalCityTimezoneID": "Europe/Malta",
+ "name": "Malta"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Nouakchott",
+ "code": "MR",
+ "capital": "Nouakchott",
+ "flagURL": "https://restcountries.eu/data/mrt.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Mauritanian ouguiya",
+ "code": "MRO",
+ "symbol": "UM"
+ },
+ "name": "Mauritania"
+ },
+ {
+ "region": "AF",
+ "code": "MU",
+ "capital": "Port Louis",
+ "flagURL": "https://restcountries.eu/data/mus.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Mauritian rupee",
+ "code": "MUR",
+ "symbol": "₨"
+ },
+ "name": "Mauritius"
+ },
+ {
+ "region": "AF",
+ "code": "YT",
+ "capital": "Mamoudzou",
+ "flagURL": "https://restcountries.eu/data/myt.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Mayotte"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Mexico_City",
+ "code": "MX",
+ "capital": "Mexico City",
+ "flagURL": "https://restcountries.eu/data/mex.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Mexican peso",
+ "code": "MXN",
+ "symbol": "$"
+ },
+ "name": "Mexico"
+ },
+ {
+ "region": "EU",
+ "code": "MD",
+ "capital": "Chișinău",
+ "flagURL": "https://restcountries.eu/data/mda.svg",
+ "language": {
+ "name": "Romanian",
+ "code": "ro"
+ },
+ "currency": {
+ "name": "Moldovan leu",
+ "code": "MDL",
+ "symbol": "L"
+ },
+ "capitalCityTimezoneID": "Europe/Chisinau",
+ "name": "Moldova"
+ },
+ {
+ "region": "EU",
+ "code": "MC",
+ "capital": "Monaco",
+ "capitalCityTimezoneID": "Europe/Monaco",
+ "flagURL": "https://restcountries.eu/data/mco.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Monaco"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Ulaanbaatar",
+ "code": "MN",
+ "capital": "Ulan Bator",
+ "flagURL": "https://restcountries.eu/data/mng.svg",
+ "language": {
+ "name": "Mongolian",
+ "code": "mn"
+ },
+ "currency": {
+ "name": "Mongolian tögrög",
+ "code": "MNT",
+ "symbol": "₮"
+ },
+ "name": "Mongolia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Podgorica",
+ "code": "ME",
+ "capital": "Podgorica",
+ "flagURL": "https://restcountries.eu/data/mne.svg",
+ "language": {
+ "name": "Serbian",
+ "code": "sr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Montenegro"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "Europe/London",
+ "code": "MS",
+ "capital": "Plymouth",
+ "flagURL": "https://restcountries.eu/data/msr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Montserrat"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Casablanca",
+ "code": "MA",
+ "capital": "Rabat",
+ "flagURL": "https://restcountries.eu/data/mar.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Moroccan dirham",
+ "code": "MAD",
+ "symbol": "د.م."
+ },
+ "name": "Morocco"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Maputo",
+ "code": "MZ",
+ "capital": "Maputo",
+ "flagURL": "https://restcountries.eu/data/moz.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Mozambican metical",
+ "code": "MZN",
+ "symbol": "MT"
+ },
+ "name": "Mozambique"
+ },
+ {
+ "region": "AS",
+ "code": "MM",
+ "capital": "Naypyidaw",
+ "flagURL": "https://restcountries.eu/data/mmr.svg",
+ "language": {
+ "name": "Burmese",
+ "code": "my"
+ },
+ "currency": {
+ "name": "Burmese kyat",
+ "code": "MMK",
+ "symbol": "Ks"
+ },
+ "capitalCityTimezoneID": "Asia/Rangoon",
+ "name": "Myanmar"
+ },
+ {
+ "region": "AF",
+ "code": "NA",
+ "capital": "Windhoek",
+ "flagURL": "https://restcountries.eu/data/nam.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Namibian dollar",
+ "code": "NAD",
+ "symbol": "$"
+ },
+ "name": "Namibia"
+ },
+ {
+ "region": "OC",
+ "code": "NR",
+ "capital": "Yaren",
+ "flagURL": "https://restcountries.eu/data/nru.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Australian dollar",
+ "code": "AUD",
+ "symbol": "$"
+ },
+ "name": "Nauru"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Kathmandu",
+ "code": "NP",
+ "capital": "Kathmandu",
+ "flagURL": "https://restcountries.eu/data/npl.svg",
+ "language": {
+ "name": "Nepali",
+ "code": "ne"
+ },
+ "currency": {
+ "name": "Nepalese rupee",
+ "code": "NPR",
+ "symbol": "₨"
+ },
+ "name": "Nepal"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Amsterdam",
+ "code": "NL",
+ "capital": "Amsterdam",
+ "flagURL": "https://restcountries.eu/data/nld.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Netherlands"
+ },
+ {
+ "region": "OC",
+ "code": "NC",
+ "capital": "Nouméa",
+ "flagURL": "https://restcountries.eu/data/ncl.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "CFP franc",
+ "code": "XPF",
+ "symbol": "Fr"
+ },
+ "name": "New Caledonia"
+ },
+ {
+ "region": "OC",
+ "capitalCityTimezoneID": "Pacific/Auckland",
+ "code": "NZ",
+ "capital": "Wellington",
+ "flagURL": "https://restcountries.eu/data/nzl.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "New Zealand dollar",
+ "code": "NZD",
+ "symbol": "$"
+ },
+ "name": "New Zealand"
+ },
+ {
+ "region": "NA",
+ "code": "NI",
+ "capital": "Managua",
+ "flagURL": "https://restcountries.eu/data/nic.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Nicaraguan córdoba",
+ "code": "NIO",
+ "symbol": "C$"
+ },
+ "name": "Nicaragua"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Niamey",
+ "code": "NE",
+ "capital": "Niamey",
+ "flagURL": "https://restcountries.eu/data/ner.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Niger"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Lagos",
+ "code": "NG",
+ "capital": "Abuja",
+ "flagURL": "https://restcountries.eu/data/nga.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Nigerian naira",
+ "code": "NGN",
+ "symbol": "₦"
+ },
+ "name": "Nigeria"
+ },
+ {
+ "region": "OC",
+ "code": "NU",
+ "capital": "Alofi",
+ "flagURL": "https://restcountries.eu/data/niu.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "New Zealand dollar",
+ "code": "NZD",
+ "symbol": "$"
+ },
+ "name": "Niue"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Oslo",
+ "code": "NO",
+ "capital": "Oslo",
+ "flagURL": "https://restcountries.eu/data/nor.svg",
+ "language": {
+ "name": "Norwegian",
+ "code": "no"
+ },
+ "currency": {
+ "name": "Norwegian krone",
+ "code": "NOK",
+ "symbol": "kr"
+ },
+ "name": "Norway"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Muscat",
+ "code": "OM",
+ "capital": "Muscat",
+ "flagURL": "https://restcountries.eu/data/omn.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Omani rial",
+ "code": "OMR",
+ "symbol": "ر.ع."
+ },
+ "name": "Oman"
+ },
+ {
+ "region": "AS",
+ "code": "PK",
+ "capital": "Islamabad",
+ "flagURL": "https://restcountries.eu/data/pak.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Pakistani rupee",
+ "code": "PKR",
+ "symbol": "₨"
+ },
+ "capitalCityTimezoneID": "Asia/Karachi",
+ "name": "Pakistan"
+ },
+ {
+ "region": "AS",
+ "code": "PS",
+ "capital": "Ramallah",
+ "flagURL": "https://restcountries.eu/data/pse.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Israeli new sheqel",
+ "code": "ILS",
+ "symbol": "₪"
+ },
+ "capitalCityTimezoneID": "Asia/Gaza",
+ "name": "Palestine"
+ },
+ {
+ "region": "NA",
+ "code": "PA",
+ "capital": "Panama City",
+ "flagURL": "https://restcountries.eu/data/pan.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "America/Panama",
+ "name": "Panama"
+ },
+ {
+ "region": "OC",
+ "capitalCityTimezoneID": "Pacific/Port_Moresby",
+ "code": "PG",
+ "capital": "Port Moresby",
+ "flagURL": "https://restcountries.eu/data/png.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Papua New Guinean kina",
+ "code": "PGK",
+ "symbol": "K"
+ },
+ "name": "Papua New Guinea"
+ },
+ {
+ "region": "SA",
+ "code": "PY",
+ "capital": "Asunción",
+ "flagURL": "https://restcountries.eu/data/pry.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Paraguayan guaraní",
+ "code": "PYG",
+ "symbol": "₲"
+ },
+ "capitalCityTimezoneID": "America/Asuncion",
+ "name": "Paraguay"
+ },
+ {
+ "region": "SA",
+ "code": "PE",
+ "capital": "Lima",
+ "flagURL": "https://restcountries.eu/data/per.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Peruvian sol",
+ "code": "PEN",
+ "symbol": "S/."
+ },
+ "capitalCityTimezoneID": "America/Lima",
+ "name": "Peru"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Manila",
+ "code": "PH",
+ "capital": "Manila",
+ "flagURL": "https://restcountries.eu/data/phl.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Philippine peso",
+ "code": "PHP",
+ "symbol": "₱"
+ },
+ "name": "Philippines"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Warsaw",
+ "code": "PL",
+ "capital": "Warsaw",
+ "flagURL": "https://restcountries.eu/data/pol.svg",
+ "language": {
+ "name": "Polish",
+ "code": "pl"
+ },
+ "currency": {
+ "name": "Polish złoty",
+ "code": "PLN",
+ "symbol": "zł"
+ },
+ "name": "Poland"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Lisbon",
+ "code": "PT",
+ "capital": "Lisbon",
+ "flagURL": "https://restcountries.eu/data/prt.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Portugal"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Puerto_Rico",
+ "code": "PR",
+ "capital": "San Juan",
+ "flagURL": "https://restcountries.eu/data/pri.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "Puerto Rico"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Qatar",
+ "code": "QA",
+ "capital": "Doha",
+ "flagURL": "https://restcountries.eu/data/qat.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Qatari riyal",
+ "code": "QAR",
+ "symbol": "ر.ق"
+ },
+ "name": "Qatar"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Belgrade",
+ "code": "XK",
+ "capital": "Pristina",
+ "flagURL": "https://restcountries.eu/data/kos.svg",
+ "language": {
+ "name": "Albanian",
+ "code": "sq"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Republic of Kosovo"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Bucharest",
+ "code": "RO",
+ "capital": "Bucharest",
+ "flagURL": "https://restcountries.eu/data/rou.svg",
+ "language": {
+ "name": "Romanian",
+ "code": "ro"
+ },
+ "currency": {
+ "name": "Romanian leu",
+ "code": "RON",
+ "symbol": "lei"
+ },
+ "name": "Romania"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Moscow",
+ "code": "RU",
+ "capital": "Moscow",
+ "flagURL": "https://restcountries.eu/data/rus.svg",
+ "language": {
+ "name": "Russian",
+ "code": "ru"
+ },
+ "currency": {
+ "name": "Russian ruble",
+ "code": "RUB",
+ "symbol": "₽"
+ },
+ "name": "Russia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Kigali",
+ "code": "RW",
+ "capital": "Kigali",
+ "flagURL": "https://restcountries.eu/data/rwa.svg",
+ "language": {
+ "name": "Kinyarwanda",
+ "code": "rw"
+ },
+ "currency": {
+ "name": "Rwandan franc",
+ "code": "RWF",
+ "symbol": "Fr"
+ },
+ "name": "Rwanda"
+ },
+ {
+ "region": "OC",
+ "code": "WS",
+ "capital": "Apia",
+ "flagURL": "https://restcountries.eu/data/wsm.svg",
+ "language": {
+ "name": "Samoan",
+ "code": "sm"
+ },
+ "currency": {
+ "name": "Samoan tālā",
+ "code": "WST",
+ "symbol": "T"
+ },
+ "name": "Samoa"
+ },
+ {
+ "region": "EU",
+ "code": "SM",
+ "capital": "City of San Marino",
+ "flagURL": "https://restcountries.eu/data/smr.svg",
+ "language": {
+ "name": "Italian",
+ "code": "it"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "San Marino"
+ },
+ {
+ "region": "AF",
+ "code": "ST",
+ "capital": "São Tomé",
+ "flagURL": "https://restcountries.eu/data/stp.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "São Tomé and Príncipe dobra",
+ "code": "STD",
+ "symbol": "Db"
+ },
+ "name": "Sao Tome and Principe"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Riyadh",
+ "code": "SA",
+ "capital": "Riyadh",
+ "flagURL": "https://restcountries.eu/data/sau.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Saudi riyal",
+ "code": "SAR",
+ "symbol": "ر.س"
+ },
+ "name": "Saudi Arabia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Dakar",
+ "code": "SN",
+ "capital": "Dakar",
+ "flagURL": "https://restcountries.eu/data/sen.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Senegal"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Belgrade",
+ "code": "RS",
+ "capital": "Belgrade",
+ "flagURL": "https://restcountries.eu/data/srb.svg",
+ "language": {
+ "name": "Serbian",
+ "code": "sr"
+ },
+ "currency": {
+ "name": "Serbian dinar",
+ "code": "RSD",
+ "symbol": "дин."
+ },
+ "name": "Serbia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "America/Vancouver",
+ "code": "SC",
+ "capital": "Victoria",
+ "flagURL": "https://restcountries.eu/data/syc.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Seychellois rupee",
+ "code": "SCR",
+ "symbol": "₨"
+ },
+ "name": "Seychelles"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Freetown",
+ "code": "SL",
+ "capital": "Freetown",
+ "flagURL": "https://restcountries.eu/data/sle.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Sierra Leonean leone",
+ "code": "SLL",
+ "symbol": "Le"
+ },
+ "name": "Sierra Leone"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Singapore",
+ "code": "SG",
+ "capital": "Singapore",
+ "flagURL": "https://restcountries.eu/data/sgp.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Singapore dollar",
+ "code": "SGD",
+ "symbol": "$"
+ },
+ "name": "Singapore"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Bratislava",
+ "code": "SK",
+ "capital": "Bratislava",
+ "flagURL": "https://restcountries.eu/data/svk.svg",
+ "language": {
+ "name": "Slovak",
+ "code": "sk"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Slovakia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Ljubljana",
+ "code": "SI",
+ "capital": "Ljubljana",
+ "flagURL": "https://restcountries.eu/data/svn.svg",
+ "language": {
+ "name": "Slovene",
+ "code": "sl"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Slovenia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Mogadishu",
+ "code": "SO",
+ "capital": "Mogadishu",
+ "flagURL": "https://restcountries.eu/data/som.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Somali shilling",
+ "code": "SOS",
+ "symbol": "Sh"
+ },
+ "name": "Somalia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Johannesburg",
+ "code": "ZA",
+ "capital": "Pretoria",
+ "flagURL": "https://restcountries.eu/data/zaf.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "South African rand",
+ "code": "ZAR",
+ "symbol": "R"
+ },
+ "name": "South Africa"
+ },
+ {
+ "region": "AF",
+ "code": "SS",
+ "capital": "Juba",
+ "flagURL": "https://restcountries.eu/data/ssd.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "South Sudanese pound",
+ "code": "SSP",
+ "symbol": "£"
+ },
+ "name": "South Sudan"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Madrid",
+ "code": "ES",
+ "capital": "Madrid",
+ "flagURL": "https://restcountries.eu/data/esp.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Spain"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Colombo",
+ "code": "LK",
+ "capital": "Colombo",
+ "flagURL": "https://restcountries.eu/data/lka.svg",
+ "language": {
+ "name": "Sinhalese",
+ "code": "si"
+ },
+ "currency": {
+ "name": "Sri Lankan rupee",
+ "code": "LKR",
+ "symbol": "Rs"
+ },
+ "name": "Sri Lanka"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Khartoum",
+ "code": "SD",
+ "capital": "Khartoum",
+ "flagURL": "https://restcountries.eu/data/sdn.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Sudanese pound",
+ "code": "SDG",
+ "symbol": "ج.س."
+ },
+ "name": "Sudan"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Paramaribo",
+ "code": "SR",
+ "capital": "Paramaribo",
+ "flagURL": "https://restcountries.eu/data/sur.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Surinamese dollar",
+ "code": "SRD",
+ "symbol": "$"
+ },
+ "name": "Suriname"
+ },
+ {
+ "region": "AF",
+ "code": "SZ",
+ "capital": "Lobamba",
+ "flagURL": "https://restcountries.eu/data/swz.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Swazi lilangeni",
+ "code": "SZL",
+ "symbol": "L"
+ },
+ "name": "Swaziland"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Stockholm",
+ "code": "SE",
+ "capital": "Stockholm",
+ "flagURL": "https://restcountries.eu/data/swe.svg",
+ "language": {
+ "name": "Swedish",
+ "code": "sv"
+ },
+ "currency": {
+ "name": "Swedish krona",
+ "code": "SEK",
+ "symbol": "kr"
+ },
+ "name": "Sweden"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Zurich",
+ "code": "CH",
+ "capital": "Bern",
+ "flagURL": "https://restcountries.eu/data/che.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Swiss franc",
+ "code": "CHF",
+ "symbol": "Fr"
+ },
+ "name": "Switzerland"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Damascus",
+ "code": "SY",
+ "capital": "Damascus",
+ "flagURL": "https://restcountries.eu/data/syr.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Syrian pound",
+ "code": "SYP",
+ "symbol": "£"
+ },
+ "name": "Syrian Arab Republic"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Taipei",
+ "code": "TW",
+ "capital": "Taipei",
+ "flagURL": "https://restcountries.eu/data/twn.svg",
+ "language": {
+ "name": "Chinese",
+ "code": "zh"
+ },
+ "currency": {
+ "name": "New Taiwan dollar",
+ "code": "TWD",
+ "symbol": "$"
+ },
+ "name": "Taiwan"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dushanbe",
+ "code": "TJ",
+ "capital": "Dushanbe",
+ "flagURL": "https://restcountries.eu/data/tjk.svg",
+ "language": {
+ "name": "Tajik",
+ "code": "tg"
+ },
+ "currency": {
+ "name": "Tajikistani somoni",
+ "code": "TJS",
+ "symbol": "ЅМ"
+ },
+ "name": "Tajikistan"
+ },
+ {
+ "region": "AF",
+ "code": "TZ",
+ "capital": "Dodoma",
+ "flagURL": "https://restcountries.eu/data/tza.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Tanzanian shilling",
+ "code": "TZS",
+ "symbol": "Sh"
+ },
+ "capitalCityTimezoneID": "Africa/Dar_es_Salaam",
+ "name": "Tanzania"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Bangkok",
+ "code": "TH",
+ "capital": "Bangkok",
+ "flagURL": "https://restcountries.eu/data/tha.svg",
+ "language": {
+ "name": "Thai",
+ "code": "th"
+ },
+ "currency": {
+ "name": "Thai baht",
+ "code": "THB",
+ "symbol": "฿"
+ },
+ "name": "Thailand"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dili",
+ "code": "TL",
+ "capital": "Dili",
+ "flagURL": "https://restcountries.eu/data/tls.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "East Timor"
+ },
+ {
+ "region": "AF",
+ "code": "TG",
+ "capital": "Lomé",
+ "flagURL": "https://restcountries.eu/data/tgo.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Togo"
+ },
+ {
+ "region": "OC",
+ "code": "TO",
+ "capital": "Nuku'alofa",
+ "flagURL": "https://restcountries.eu/data/ton.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Tongan paʻanga",
+ "code": "TOP",
+ "symbol": "T$"
+ },
+ "capitalCityTimezoneID": "Pacific/Tongatapu",
+ "name": "Tonga"
+ },
+ {
+ "region": "AF",
+ "code": "TN",
+ "capital": "Tunis",
+ "flagURL": "https://restcountries.eu/data/tun.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Tunisian dinar",
+ "code": "TND",
+ "symbol": "د.ت"
+ },
+ "capitalCityTimezoneID": "Africa/Tunis",
+ "name": "Tunisia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Europe/Istanbul",
+ "code": "TR",
+ "capital": "Ankara",
+ "flagURL": "https://restcountries.eu/data/tur.svg",
+ "language": {
+ "name": "Turkish",
+ "code": "tr"
+ },
+ "currency": {
+ "name": "Turkish lira",
+ "code": "TRY"
+ },
+ "name": "Turkey"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Ashgabat",
+ "code": "TM",
+ "capital": "Ashgabat",
+ "flagURL": "https://restcountries.eu/data/tkm.svg",
+ "language": {
+ "name": "Turkmen",
+ "code": "tk"
+ },
+ "currency": {
+ "name": "Turkmenistan manat",
+ "code": "TMT",
+ "symbol": "m"
+ },
+ "name": "Turkmenistan"
+ },
+ {
+ "region": "OC",
+ "code": "TV",
+ "capital": "Funafuti",
+ "flagURL": "https://restcountries.eu/data/tuv.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Australian dollar",
+ "code": "AUD",
+ "symbol": "$"
+ },
+ "name": "Tuvalu"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Kampala",
+ "code": "UG",
+ "capital": "Kampala",
+ "flagURL": "https://restcountries.eu/data/uga.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Ugandan shilling",
+ "code": "UGX",
+ "symbol": "Sh"
+ },
+ "name": "Uganda"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Kiev",
+ "code": "UA",
+ "capital": "Kiev",
+ "flagURL": "https://restcountries.eu/data/ukr.svg",
+ "language": {
+ "name": "Ukrainian",
+ "code": "uk"
+ },
+ "currency": {
+ "name": "Ukrainian hryvnia",
+ "code": "UAH",
+ "symbol": "₴"
+ },
+ "name": "Ukraine"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dubai",
+ "code": "AE",
+ "capital": "Abu Dhabi",
+ "flagURL": "https://restcountries.eu/data/are.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "United Arab Emirates dirham",
+ "code": "AED",
+ "symbol": "د.إ"
+ },
+ "aliases": ["UAE"],
+ "name": "United Arab Emirates"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/London",
+ "code": "GB",
+ "capital": "London",
+ "flagURL": "https://restcountries.eu/data/gbr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "British pound",
+ "code": "GBP",
+ "symbol": "£"
+ },
+ "aliases": ["Britain", "UK", "Scotland", "Ireland", "Wales"],
+ "name": "United Kingdom"
+ },
+ {
+ "region": "NA",
+ "code": "US",
+ "capital": "Washington, D.C.",
+ "flagURL": "https://restcountries.eu/data/usa.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "America/New_York",
+ "aliases": ["America", "USA", "United States"],
+ "name": "United States of America"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Montevideo",
+ "code": "UY",
+ "capital": "Montevideo",
+ "flagURL": "https://restcountries.eu/data/ury.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Uruguayan peso",
+ "code": "UYU",
+ "symbol": "$"
+ },
+ "name": "Uruguay"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tashkent",
+ "code": "UZ",
+ "capital": "Tashkent",
+ "flagURL": "https://restcountries.eu/data/uzb.svg",
+ "language": {
+ "name": "Uzbek",
+ "code": "uz"
+ },
+ "currency": {
+ "name": "Uzbekistani so'm",
+ "code": "UZS"
+ },
+ "name": "Uzbekistan"
+ },
+ {
+ "region": "OC",
+ "code": "VU",
+ "capital": "Port Vila",
+ "flagURL": "https://restcountries.eu/data/vut.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Vanuatu vatu",
+ "code": "VUV",
+ "symbol": "Vt"
+ },
+ "capitalCityTimezoneID": "Pacific/Efate",
+ "name": "Vanuatu"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Caracas",
+ "code": "VE",
+ "capital": "Caracas",
+ "flagURL": "https://restcountries.eu/data/ven.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Venezuelan bolívar",
+ "code": "VEF",
+ "symbol": "Bs F"
+ },
+ "name": "Venezuela"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Ho_Chi_Minh",
+ "code": "VN",
+ "capital": "Hanoi",
+ "flagURL": "https://restcountries.eu/data/vnm.svg",
+ "language": {
+ "name": "Vietnamese",
+ "code": "vi"
+ },
+ "currency": {
+ "name": "Vietnamese đồng",
+ "code": "VND",
+ "symbol": "₫"
+ },
+ "name": "Viet Nam"
+ },
+ {
+ "region": "AS",
+ "code": "YE",
+ "capital": "Sana'a",
+ "flagURL": "https://restcountries.eu/data/yem.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Yemeni rial",
+ "code": "YER",
+ "symbol": "﷼"
+ },
+ "capitalCityTimezoneID": "Asia/Aden",
+ "name": "Yemen"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Lusaka",
+ "code": "ZM",
+ "capital": "Lusaka",
+ "flagURL": "https://restcountries.eu/data/zmb.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Zambian kwacha",
+ "code": "ZMW",
+ "symbol": "ZK"
+ },
+ "name": "Zambia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Harare",
+ "code": "ZW",
+ "capital": "Harare",
+ "flagURL": "https://restcountries.eu/data/zwe.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Botswana pula",
+ "code": "BWP",
+ "symbol": "P"
+ },
+ "name": "Zimbabwe"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
new file mode 100644
index 000000000..0662876ef
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
@@ -0,0 +1,730 @@
+{
+ "HRK" : {
+ "value" : 0.14492904853499922,
+ "code" : "HRK"
+ },
+ "HUF" : {
+ "value" : 0.0031565724021449374,
+ "code" : "HUF"
+ },
+ "CDF" : {
+ "value" : 0.00055066070592531789,
+ "code" : "CDF"
+ },
+ "XMR" : {
+ "value" : 63.43125998,
+ "code" : "XMR"
+ },
+ "ILS" : {
+ "value" : 0.28450327719324997,
+ "code" : "ILS"
+ },
+ "NGN" : {
+ "value" : 0.0025791139662877049,
+ "code" : "NGN"
+ },
+ "GYD" : {
+ "value" : 0.0047774081337857727,
+ "code" : "GYD"
+ },
+ "BYR" : {
+ "value" : 5.1020408163265308e-05,
+ "code" : "BYR"
+ },
+ "BHD" : {
+ "value" : 2.6481437836148753,
+ "code" : "BHD"
+ },
+ "SZL" : {
+ "value" : 0.055832456624183194,
+ "code" : "SZL"
+ },
+ "INR" : {
+ "value" : 0.013244594900687922,
+ "code" : "INR"
+ },
+ "SDG" : {
+ "value" : 0.018066818937430035,
+ "code" : "SDG"
+ },
+ "PEN" : {
+ "value" : 0.29378894906992292,
+ "code" : "PEN"
+ },
+ "EUR" : {
+ "value" : 1.098520841686669,
+ "code" : "EUR"
+ },
+ "TRX" : {
+ "value" : 0.01492488,
+ "code" : "TRX"
+ },
+ "QAR" : {
+ "value" : 0.2746511792697684,
+ "code" : "QAR"
+ },
+ "PGK" : {
+ "value" : 0.28621131210141498,
+ "code" : "PGK"
+ },
+ "LRD" : {
+ "value" : 0.005039049204783614,
+ "code" : "LRD"
+ },
+ "ISK" : {
+ "value" : 0.0070283824144839668,
+ "code" : "ISK"
+ },
+ "SYP" : {
+ "value" : 0.0019491840506026894,
+ "code" : "SYP"
+ },
+ "TRY" : {
+ "value" : 0.14707169230248823,
+ "code" : "TRY"
+ },
+ "UAH" : {
+ "value" : 0.037400250260034594,
+ "code" : "UAH"
+ },
+ "SGD" : {
+ "value" : 0.70706106532890722,
+ "code" : "SGD"
+ },
+ "MMK" : {
+ "value" : 0.00071152292211045594,
+ "code" : "MMK"
+ },
+ "NIO" : {
+ "value" : 0.029644476461796555,
+ "code" : "NIO"
+ },
+ "BIF" : {
+ "value" : 0.00052823751756257687,
+ "code" : "BIF"
+ },
+ "AFN" : {
+ "value" : 0.013054842217218737,
+ "code" : "AFN"
+ },
+ "LKR" : {
+ "value" : 0.005360736560914881,
+ "code" : "LKR"
+ },
+ "LTC" : {
+ "value" : 43.582596539999997,
+ "code" : "LTC"
+ },
+ "GTQ" : {
+ "value" : 0.13004462611389725,
+ "code" : "GTQ"
+ },
+ "XRP" : {
+ "value" : 0.19793100999999999,
+ "code" : "XRP"
+ },
+ "CHF" : {
+ "value" : 1.033185932140348,
+ "code" : "CHF"
+ },
+ "THB" : {
+ "value" : 0.031427754396750697,
+ "code" : "THB"
+ },
+ "AMD" : {
+ "value" : 0.00207606734847182,
+ "code" : "AMD"
+ },
+ "AOA" : {
+ "value" : 0.0017316827353721443,
+ "code" : "AOA"
+ },
+ "SEK" : {
+ "value" : 0.10440434969401696,
+ "code" : "SEK"
+ },
+ "DASH" : {
+ "value" : 75.360202450000003,
+ "code" : "DASH"
+ },
+ "SAR" : {
+ "value" : 0.2663164782521969,
+ "code" : "SAR"
+ },
+ "KWD" : {
+ "value" : 3.2384363533911289,
+ "code" : "KWD"
+ },
+ "IRR" : {
+ "value" : 2.37501483391515e-05,
+ "code" : "IRR"
+ },
+ "WST" : {
+ "value" : 0.36509328498524657,
+ "code" : "WST"
+ },
+ "BNB" : {
+ "value" : 16.571442189999999,
+ "code" : "BNB"
+ },
+ "BMD" : {
+ "value" : 1,
+ "code" : "BMD"
+ },
+ "BGN" : {
+ "value" : 0.56184762467679716,
+ "code" : "BGN"
+ },
+ "PHP" : {
+ "value" : 0.01975697927641051,
+ "code" : "PHP"
+ },
+ "ZMW" : {
+ "value" : 0.055235914524189821,
+ "code" : "ZMW"
+ },
+ "XAF" : {
+ "value" : 0.0016747515577241058,
+ "code" : "XAF"
+ },
+ "BDT" : {
+ "value" : 0.011772159736906356,
+ "code" : "BDT"
+ },
+ "NOK" : {
+ "value" : 0.10110620296665822,
+ "code" : "NOK"
+ },
+ "BOB" : {
+ "value" : 0.1448300802807618,
+ "code" : "BOB"
+ },
+ "TZS" : {
+ "value" : 0.00043198346421901678,
+ "code" : "TZS"
+ },
+ "XAG" : {
+ "value" : 17.222968550859424,
+ "code" : "XAG"
+ },
+ "VEF" : {
+ "value" : 0.1001251664706049,
+ "code" : "VEF"
+ },
+ "ANG" : {
+ "value" : 0.55713813738692186,
+ "code" : "ANG"
+ },
+ "VUV" : {
+ "value" : 0.0083010903075365523,
+ "code" : "VUV"
+ },
+ "BND" : {
+ "value" : 0.70692710803896297,
+ "code" : "BND"
+ },
+ "XCD" : {
+ "value" : 0.37002090618119926,
+ "code" : "XCD"
+ },
+ "SCR" : {
+ "value" : 0.056999274342238344,
+ "code" : "SCR"
+ },
+ "KYD" : {
+ "value" : 1.2000926471523601,
+ "code" : "KYD"
+ },
+ "DJF" : {
+ "value" : 0.0056268309356187571,
+ "code" : "DJF"
+ },
+ "CLF" : {
+ "value" : 34.456619116532288,
+ "code" : "CLF"
+ },
+ "LSL" : {
+ "value" : 0.05535562028103716,
+ "code" : "LSL"
+ },
+ "MOP" : {
+ "value" : 0.12524683019059812,
+ "code" : "MOP"
+ },
+ "ALL" : {
+ "value" : 0.0088873476253140456,
+ "code" : "ALL"
+ },
+ "UZS" : {
+ "value" : 9.8725590760133264e-05,
+ "code" : "UZS"
+ },
+ "UYU" : {
+ "value" : 0.022942214686775337,
+ "code" : "UYU"
+ },
+ "PLN" : {
+ "value" : 0.24306948141126142,
+ "code" : "PLN"
+ },
+ "LTL" : {
+ "value" : 0.33866849096093798,
+ "code" : "LTL"
+ },
+ "LYD" : {
+ "value" : 0.70511220450510281,
+ "code" : "LYD"
+ },
+ "JPY" : {
+ "value" : 0.0092808717456008376,
+ "code" : "JPY"
+ },
+ "MNT" : {
+ "value" : 0.00035728175233808797,
+ "code" : "MNT"
+ },
+ "FJD" : {
+ "value" : 0.44498831905662473,
+ "code" : "FJD"
+ },
+ "ZWL" : {
+ "value" : 0.0031055900524671115,
+ "code" : "ZWL"
+ },
+ "KPW" : {
+ "value" : 0.0011110363173807097,
+ "code" : "KPW"
+ },
+ "PKR" : {
+ "value" : 0.0062037571938768415,
+ "code" : "PKR"
+ },
+ "MRO" : {
+ "value" : 0.0028011203383314152,
+ "code" : "MRO"
+ },
+ "OMR" : {
+ "value" : 2.5972002181648186,
+ "code" : "OMR"
+ },
+ "GBP" : {
+ "value" : 1.2235109871286642,
+ "code" : "GBP"
+ },
+ "LVL" : {
+ "value" : 1.6531931425548445,
+ "code" : "LVL"
+ },
+ "SHP" : {
+ "value" : 1.2239437671275633,
+ "code" : "SHP"
+ },
+ "GEL" : {
+ "value" : 0.31154094068540877,
+ "code" : "GEL"
+ },
+ "TND" : {
+ "value" : 0.34677069787602949,
+ "code" : "TND"
+ },
+ "DKK" : {
+ "value" : 0.14732205337477994,
+ "code" : "DKK"
+ },
+ "KRW" : {
+ "value" : 0.00081241596998828818,
+ "code" : "KRW"
+ },
+ "NPR" : {
+ "value" : 0.0082777496242315562,
+ "code" : "NPR"
+ },
+ "BSD" : {
+ "value" : 1.0000590034812054,
+ "code" : "BSD"
+ },
+ "CRC" : {
+ "value" : 0.0017559340209898735,
+ "code" : "CRC"
+ },
+ "EGP" : {
+ "value" : 0.063054473453215437,
+ "code" : "EGP"
+ },
+ "MAD" : {
+ "value" : 0.10204590820909329,
+ "code" : "MAD"
+ },
+ "AUD" : {
+ "value" : 0.65917014433848653,
+ "code" : "AUD"
+ },
+ "BTC" : {
+ "value" : 9318.9785578200008,
+ "code" : "BTC"
+ },
+ "SLL" : {
+ "value" : 0.00010261672298827924,
+ "code" : "SLL"
+ },
+ "MWK" : {
+ "value" : 0.0013577148194343087,
+ "code" : "MWK"
+ },
+ "RSD" : {
+ "value" : 0.0093423201844629912,
+ "code" : "RSD"
+ },
+ "NZD" : {
+ "value" : 0.61422797685588981,
+ "code" : "NZD"
+ },
+ "SRD" : {
+ "value" : 0.13408463636782955,
+ "code" : "SRD"
+ },
+ "CLP" : {
+ "value" : 0.0012487488753798847,
+ "code" : "CLP"
+ },
+ "RUB" : {
+ "value" : 0.014138171758795495,
+ "code" : "RUB"
+ },
+ "NAD" : {
+ "value" : 0.055355558996211078,
+ "code" : "NAD"
+ },
+ "HKD" : {
+ "value" : 0.12896486352293318,
+ "code" : "HKD"
+ },
+ "GMD" : {
+ "value" : 0.019454282096622998,
+ "code" : "GMD"
+ },
+ "VND" : {
+ "value" : 4.2961362827225422e-05,
+ "code" : "VND"
+ },
+ "LAK" : {
+ "value" : 0.0001112392094137459,
+ "code" : "LAK"
+ },
+ "CUC" : {
+ "value" : 1,
+ "code" : "CUC"
+ },
+ "RON" : {
+ "value" : 0.22687595217001175,
+ "code" : "RON"
+ },
+ "MUR" : {
+ "value" : 0.02510042743768888,
+ "code" : "MUR"
+ },
+ "XAU" : {
+ "value" : 1733.1022530329287,
+ "code" : "XAU"
+ },
+ "GGP" : {
+ "value" : 1.2239437671275633,
+ "code" : "GGP"
+ },
+ "MXN" : {
+ "value" : 0.043794314919838449,
+ "code" : "MXN"
+ },
+ "BRL" : {
+ "value" : 0.17892198786622648,
+ "code" : "BRL"
+ },
+ "STD" : {
+ "value" : 4.5350048495809031e-05,
+ "code" : "STD"
+ },
+ "AWG" : {
+ "value" : 0.55555555555555558,
+ "code" : "AWG"
+ },
+ "MVR" : {
+ "value" : 0.064725199779183507,
+ "code" : "MVR"
+ },
+ "PAB" : {
+ "value" : 1.0000590034812054,
+ "code" : "PAB"
+ },
+ "TJS" : {
+ "value" : 0.097589500306626206,
+ "code" : "TJS"
+ },
+ "GNF" : {
+ "value" : 0.00010461826968145518,
+ "code" : "GNF"
+ },
+ "MGA" : {
+ "value" : 0.00026213480308829283,
+ "code" : "MGA"
+ },
+ "XDR" : {
+ "value" : 1.3653554702966917,
+ "code" : "XDR"
+ },
+ "ETB" : {
+ "value" : 0.029248580851544938,
+ "code" : "ETB"
+ },
+ "ZAR" : {
+ "value" : 0.05703725998934886,
+ "code" : "ZAR"
+ },
+ "COP" : {
+ "value" : 0.00026235150904588007,
+ "code" : "COP"
+ },
+ "IDR" : {
+ "value" : 6.7932475119730993e-05,
+ "code" : "IDR"
+ },
+ "SVC" : {
+ "value" : 0.11429099126405379,
+ "code" : "SVC"
+ },
+ "CVE" : {
+ "value" : 0.0099629527601613407,
+ "code" : "CVE"
+ },
+ "ETC" : {
+ "value" : 6.34598935,
+ "code" : "ETC"
+ },
+ "TTD" : {
+ "value" : 0.14800871297691554,
+ "code" : "TTD"
+ },
+ "GIP" : {
+ "value" : 1.2239437671275633,
+ "code" : "GIP"
+ },
+ "PYG" : {
+ "value" : 0.00015129248329562634,
+ "code" : "PYG"
+ },
+ "DOGE" : {
+ "value" : 0.0024541300000000001,
+ "code" : "DOGE"
+ },
+ "MZN" : {
+ "value" : 0.014539099425791353,
+ "code" : "MZN"
+ },
+ "FKP" : {
+ "value" : 1.2239437671275633,
+ "code" : "FKP"
+ },
+ "KZT" : {
+ "value" : 0.0024216670033994636,
+ "code" : "KZT"
+ },
+ "USD" : {
+ "value" : 1,
+ "code" : "USD"
+ },
+ "UGX" : {
+ "value" : 0.00026407177766677375,
+ "code" : "UGX"
+ },
+ "RWF" : {
+ "value" : 0.0010487894766981003,
+ "code" : "RWF"
+ },
+ "GHS" : {
+ "value" : 0.1736202744033713,
+ "code" : "GHS"
+ },
+ "ARS" : {
+ "value" : 0.014687716887089395,
+ "code" : "ARS"
+ },
+ "JEP" : {
+ "value" : 1.2239437671275633,
+ "code" : "JEP"
+ },
+ "DOP" : {
+ "value" : 0.01807415144750818,
+ "code" : "DOP"
+ },
+ "LBP" : {
+ "value" : 0.00066138773607610235,
+ "code" : "LBP"
+ },
+ "BZD" : {
+ "value" : 0.49612280031553413,
+ "code" : "BZD"
+ },
+ "BTN" : {
+ "value" : 0.013244403345589262,
+ "code" : "BTN"
+ },
+ "ADA" : {
+ "value" : 0.055333640000000003,
+ "code" : "ADA"
+ },
+ "MYR" : {
+ "value" : 0.23022372450876591,
+ "code" : "MYR"
+ },
+ "YER" : {
+ "value" : 0.0039948065437631674,
+ "code" : "YER"
+ },
+ "JMD" : {
+ "value" : 0.006803018199842469,
+ "code" : "JMD"
+ },
+ "TOP" : {
+ "value" : 0.43508508741512031,
+ "code" : "TOP"
+ },
+ "SOS" : {
+ "value" : 0.0017182113785871572,
+ "code" : "SOS"
+ },
+ "TMT" : {
+ "value" : 0.28490028490028491,
+ "code" : "TMT"
+ },
+ "MDL" : {
+ "value" : 0.056627645877204424,
+ "code" : "MDL"
+ },
+ "XOF" : {
+ "value" : 0.0016747515577241058,
+ "code" : "XOF"
+ },
+ "ETH" : {
+ "value" : 205.71375277000001,
+ "code" : "ETH"
+ },
+ "TWD" : {
+ "value" : 0.03343811165620806,
+ "code" : "TWD"
+ },
+ "BBD" : {
+ "value" : 0.49529519098087271,
+ "code" : "BBD"
+ },
+ "CAD" : {
+ "value" : 0.71893310327474036,
+ "code" : "CAD"
+ },
+ "CNY" : {
+ "value" : 0.14072220606262223,
+ "code" : "CNY"
+ },
+ "JOD" : {
+ "value" : 1.4104392248790194,
+ "code" : "JOD"
+ },
+ "XPF" : {
+ "value" : 0.0092115128324525945,
+ "code" : "XPF"
+ },
+ "XLM" : {
+ "value" : 0.068425250000000007,
+ "code" : "XLM"
+ },
+ "IQD" : {
+ "value" : 0.00083769121244326632,
+ "code" : "IQD"
+ },
+ "HNL" : {
+ "value" : 0.040298045959840822,
+ "code" : "HNL"
+ },
+ "AED" : {
+ "value" : 0.27225404569511902,
+ "code" : "AED"
+ },
+ "EOS" : {
+ "value" : 2.5032196999999998,
+ "code" : "EOS"
+ },
+ "ERN" : {
+ "value" : 0.066665991117956666,
+ "code" : "ERN"
+ },
+ "KES" : {
+ "value" : 0.0093591569945238647,
+ "code" : "KES"
+ },
+ "KMF" : {
+ "value" : 0.0022294061217904768,
+ "code" : "KMF"
+ },
+ "MKD" : {
+ "value" : 0.017829505849539937,
+ "code" : "MKD"
+ },
+ "DZD" : {
+ "value" : 0.007789974800989515,
+ "code" : "DZD"
+ },
+ "BSV" : {
+ "value" : 193.44753942,
+ "code" : "BSV"
+ },
+ "BWP" : {
+ "value" : 0.082500865227824072,
+ "code" : "BWP"
+ },
+ "SBD" : {
+ "value" : 0.12014800311615861,
+ "code" : "SBD"
+ },
+ "AZN" : {
+ "value" : 0.58747986412765707,
+ "code" : "AZN"
+ },
+ "BCH" : {
+ "value" : 235.7315255,
+ "code" : "BCH"
+ },
+ "KGS" : {
+ "value" : 0.01332812612331113,
+ "code" : "KGS"
+ },
+ "BYN" : {
+ "value" : 0.4182779080248708,
+ "code" : "BYN"
+ },
+ "KHR" : {
+ "value" : 0.00024331990144781915,
+ "code" : "KHR"
+ },
+ "NEO" : {
+ "value" : 9.8775383399999992,
+ "code" : "NEO"
+ },
+ "ZMK" : {
+ "value" : 0.00011109625114812615,
+ "code" : "ZMK"
+ },
+ "HTG" : {
+ "value" : 0.009394342069601741,
+ "code" : "HTG"
+ },
+ "CZK" : {
+ "value" : 0.040534238014289292,
+ "code" : "CZK"
+ },
+ "IMP" : {
+ "value" : 1.2239437671275633,
+ "code" : "IMP"
+ },
+ "BAM" : {
+ "value" : 0.5616873086752604,
+ "code" : "BAM"
+ }
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..ea5261e51
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
@@ -0,0 +1,313 @@
+{
+ "financial": [
+ {
+ "prototypeExpressions": [
+ "present value of 1000 after __timespan at 10%",
+ "present value of 1000 over __timespan at 10%"
+ ],
+ "identifier": "presentValue"
+ },
+ {
+ "prototypeExpressions": [
+ "annual return on 500 invested 1000 returned after __timespan",
+ "yearly return on 500 invested 1000 returned after __timespan",
+ "annual return on 500 invested 1000 returned over __timespan",
+ "yearly return on 500 invested 1000 returned over __timespan"
+ ],
+ "identifier": "returnOnInvestmentAfter"
+ },
+ {
+ "identifier": "returnOnInvestment",
+ "prototypeExpressions": [
+ "500 invested 1000 returned"
+ ]
+ },
+ {
+ "identifier": "totalLoanRepayment",
+ "prototypeExpressions": [
+ "total repayment on 10000 for __timespan at 6%",
+ "total repayment on 10000 after __timespan at 6%",
+ "total repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "annual repayment on 10000 for __timespan at 6%",
+ "annual repayment on 10000 after __timespan at 6%",
+ "annual repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 after __timespan at 6%",
+ "yearly repayment on 10000 for __timespan at 6%"
+ ],
+ "identifier": "annualLoanRepayment"
+ },
+ {
+ "identifier": "monthlyLoanRepayment",
+ "prototypeExpressions": [
+ "monthly repayment on 10000 for __timespan at 6%",
+ "monthly repayment on 10000 after __timespan at 6%",
+ "monthly repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "total interest on 10000 for __timespan at 6%",
+ "total interest on 10000 after __timespan at 6%",
+ "total interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "totalInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "annualInterestOnLoanRepayment",
+ "prototypeExpressions": [
+ "annual interest on 10000 for __timespan at 6%",
+ "annual interest on 10000 after __timespan at 6%",
+ "annual interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 after __timespan at 6%",
+ "yearly interest on 10000 for __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "monthly interest on 10000 for __timespan at 6%",
+ "monthly interest on 10000 after __timespan at 6%",
+ "monthly interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "monthlyInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "compoundInterest",
+ "prototypeExpressions": [
+ "100 after __timespan at 10%",
+ "100 for __timespan at 10%",
+ "100 over __timespan at 10%"
+ ]
+ }
+ ],
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "10% of 100"
+ ],
+ "identifier": "percentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10% off 100"
+ ],
+ "identifier": "percentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "10% on 100"
+ ],
+ "identifier": "percentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30 is 20% of what"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% of what is 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 is 20% off what"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% off what is 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 is 20% on what"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% on what is 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10 is what % of 20",
+ "10 as a % of 20",
+ "10 as % of 20"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10 is what % off 20",
+ "10 as a % off 20",
+ "10 as % off 20"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20 is what % on 10",
+ "20 as a % on 10",
+ "20 as % on 10"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "remainder of 20 divided by 3"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "half of 20"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "smaller of 2 and 30",
+ "lesser of 2 and 30"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "larger of 2 and 30",
+ "greater of 2 and 30"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "midpoint between 2 and 32"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "6 is to 600 as what is to 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "6 is to 600 as 8 is to what"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "random number between 1 and 5",
+ "random between 1 and 5"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ],
+ "identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ],
+ "identifier": "unitInTimespan"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__unit between __datestamp and __datestamp",
+ "__unit from __datestamp to __datestamp",
+ "__unit in __datestamp to __datestamp"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit to __datestamp",
+ "__unit before __datestamp",
+ "__unit until __datestamp",
+ "__unit till __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp to __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp to __timestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitSinceDate",
+ "prototypeExpressions": [
+ "__unit since __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan from __datestamp",
+ "__timespan after __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan ago"
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
+ {
+ "prototypeExpressions": [
+ "new timestamp"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone time",
+ "time in __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "time difference between __timezone and __timezone",
+ "difference between __timezone and __timezone",
+ "time difference between __timezone & __timezone",
+ "difference between __timezone & __timezone"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..e3332a1d4
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
@@ -0,0 +1,139 @@
+{
+ "fixtures": {
+ "decimalPlacesTypes": [
+ "dp",
+ "digit",
+ "digits"
+ ],
+ "multiplierTypes": [
+ "multiplier"
+ ],
+ "divisionOperators": [
+ "÷",
+ "per"
+ ],
+ "roundingConverters": [
+ "rounded"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "tomorrowDateAliases": [
+ "tomorrow"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "laptime"
+ ],
+ "numberTypes": [
+ "number"
+ ],
+ "roundingDownConverters": [
+ "rounded down"
+ ],
+ "yesterdayDateAliases": [
+ "yesterday"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "todayDateAliases": [
+ "today"
+ ],
+ "timestampTypes": [
+ "timestamp"
+ ],
+ "roundingUpConverters": [
+ "rounded up"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "dateTypes": [
+ "date"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "monthOfYearDateAliases": [
+ "jan",
+ "feb",
+ "mar",
+ "apr",
+ "may",
+ "june",
+ "july",
+ "aug",
+ "sept",
+ "oct",
+ "nov",
+ "dec",
+ "january",
+ "february",
+ "march",
+ "april",
+ "may",
+ "june",
+ "july",
+ "august",
+ "september",
+ "october",
+ "november",
+ "december"
+ ],
+ "colons": [
+ ":",
+ ":"
+ ],
+ "additionOperators": [
+ "plus"
+ ],
+ "timespanTypes": [
+ "timespan"
+ ],
+ "nowDateAliases": [
+ "now"
+ ],
+ "converterSymbols": [
+ "to",
+ "as"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "fractionTypes": [
+ "fraction"
+ ],
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "percentTypes": [
+ "percent",
+ "percentage"
+ ],
+ "dayOfWeekDateAliases": [
+ "monday",
+ "tuesday",
+ "wednesday",
+ "thursday",
+ "friday",
+ "saturday",
+ "sunday",
+ "mon",
+ "tu",
+ "tues",
+ "wed",
+ "thur",
+ "fri",
+ "sat",
+ "sun"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/TimeZoneAbbrieviations.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/TimeZoneAbbrieviations.json
new file mode 100644
index 000000000..5614c4c42
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/TimeZoneAbbrieviations.json
@@ -0,0 +1,64 @@
+{
+ "ACDT": "10.5",
+ "ACST": "9.5",
+ "ADT": "-3.0",
+ "AEDT": "11.0",
+ "AEST": "10.0",
+ "AKDT": "-8.0",
+ "AKST": "-9.0",
+ "ART": "-3.0",
+ "AST": "-4.0",
+ "AWST": "8.0",
+ "AWDT": "9.0",
+ "BDT": "6.0",
+ "BRST": "-2.0",
+ "BRT": "-3.0",
+ "BST": "1.0",
+ "CAT": "2.0",
+ "CDT": "-5.0",
+ "CEST": "2.0",
+ "CET": "1.0",
+ "CLST": "-3.0",
+ "CLT": "-4.0",
+ "COT": "-5.0",
+ "CST": "-6.0",
+ "EAT": "3.0",
+ "EDT": "-4.0",
+ "EEST": "3.0",
+ "EET": "2.0",
+ "EST": "-5.0",
+ "GMT": "0.0",
+ "GST": "4.0",
+ "HKT": "8.0",
+ "HST": "-10.0",
+ "ICT": "7.0",
+ "IRST": "3.5",
+ "IST": "5.5",
+ "JST": "8.0",
+ "KST": "9.0",
+ "MDT": "-6.0",
+ "MSD": "-6.0",
+ "MSK": "3.0",
+ "MST": "-7.0",
+ "NDT": "-2.5",
+ "NST": "-3.5",
+ "NZDT": "13.0",
+ "NZST": "12.0",
+ "PDT": "-7.0",
+ "PET": "-5.0",
+ "PHT": "8.0",
+ "PKT": "5.0",
+ "PST": "-8.0",
+ "SAST": "2.0",
+ "SGT": "8.0",
+ "SST": "-11.0",
+ "TRT": "3.0",
+ "UTC": "0.0",
+ "WAT": "1.0",
+ "WEST": "1.0",
+ "WET": "0.0",
+ "WIB": "7.0",
+ "WIT": "9.0",
+ "WITA": "8.0"
+
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..025cac593
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/UnitDescriptions.json
@@ -0,0 +1,1647 @@
+{
+ "energy" : [
+ {
+ "symbol" : "J",
+ "aliases" : [
+ "joule",
+ "joules"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "kJ",
+ "aliases" : [
+ "kilojoule",
+ "kilojoules"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "mJ",
+ "aliases" : [
+ "megajoule",
+ "megajoules"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "gJ",
+ "aliases" : [
+ "gigajoule",
+ "gigajoules"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "cal",
+ "aliases" : [
+ "calorie",
+ "calories"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "kCal",
+ "aliases" : [
+ "kilocalorie",
+ "kilocalories"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "Wh",
+ "aliases" : [
+ "watt hour",
+ "watt hours"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "W m",
+ "aliases" : [
+ "watt minute",
+ "watt minutes"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "W s",
+ "aliases" : [
+ "watt second",
+ "watt seconds"
+ ],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "kWh",
+ "aliases" : [
+ "kilowatt hour",
+ "kilowatt hours"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "MWh",
+ "aliases" : [
+ "megawatt hour",
+ "megawatt hours"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "GWh",
+ "aliases" : [
+ "gigawatt hour",
+ "gigawatt hours"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "TWh",
+ "aliases" : [
+ "terawatt hour",
+ "terawatt hours"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "ML",
+ "aliases" : [
+ "megaliter",
+ "megaliters",
+ "megalitre",
+ "megalitres",
+ "ML"
+ ],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "kL",
+ "aliases" : [
+ "kiloliter",
+ "kiloliters",
+ "kilolitre",
+ "kilolitres",
+ "kL"
+ ],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "L",
+ "aliases" : [
+ "liter",
+ "liters",
+ "litre",
+ "litres",
+ "L"
+ ],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "mL",
+ "aliases" : [
+ "milliliter",
+ "milliliters",
+ "millilitre",
+ "millilitres",
+ "mL"
+ ],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "km³",
+ "aliases" : [
+ "cubic kilometer",
+ "cubic kilometers",
+ "cubic kilometre",
+ "cubic kilometres",
+ "kilometer^3",
+ "kilometers^3",
+ "kilometer³",
+ "kilometre³",
+ "kilometers³",
+ "kilometres³",
+ "km3",
+ "km^3"
+ ],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "m³",
+ "aliases" : [
+ "cubic meter",
+ "cubic meters",
+ "cubic metre",
+ "cubic metres",
+ "m3",
+ "m^3",
+ "meter³",
+ "metre³",
+ "meters³",
+ "metres³"
+ ],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "cm³",
+ "aliases" : [
+ "cubic centimeter",
+ "cubic centimeters",
+ "cubic centimetre",
+ "cubic centimetres",
+ "cm3",
+ "cm^3",
+ "centimeter³"
+ ],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "mm³",
+ "aliases" : [
+ "cubic millimeter",
+ "cubic millimeters",
+ "cubic millimetre",
+ "cubic millimetres",
+ "mm3",
+ "mm^3"
+ ],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "in³",
+ "aliases" : [
+ "cubic inch",
+ "inches^3",
+ "cubic inches",
+ "in³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "ft³",
+ "aliases" : [
+ "cubic foot",
+ "cubic feet",
+ "cuft",
+ "ft³",
+ "ft3",
+ "ft^3"
+ ],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "yd³",
+ "aliases" : [
+ "cubic yard",
+ "cubic yards",
+ "yd³",
+ "yard³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "mi³",
+ "aliases" : [
+ "cubic mile",
+ "cubic miles",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "mile³",
+ "mile^3",
+ "miles^3"
+ ],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "bsh",
+ "aliases" : [
+ "bushel",
+ "bushels"
+ ],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "metric cup",
+ "aliases" : [
+ "metric cup",
+ "metric cups"
+ ],
+ "identifier" : "metricCups"
+ },
+ {
+ "symbol" : "cup",
+ "aliases" : [
+ "cup",
+ "cups"
+ ],
+ "identifier" : "cups"
+ },
+ {
+ "symbol" : "af",
+ "aliases" : [
+ "acre feet",
+ "acre foot"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pint",
+ "pints"
+ ],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "qt",
+ "aliases" : [
+ "quart",
+ "quarts"
+ ],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "gal",
+ "aliases" : [
+ "gallon",
+ "gallons",
+ "gal"
+ ],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "tbsp",
+ "aliases" : [
+ "tablespoon",
+ "tablespoons",
+ "tbsp"
+ ],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "tsp",
+ "aliases" : [
+ "teaspoon",
+ "teaspoons",
+ "tsp"
+ ],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "fl oz",
+ "aliases" : [
+ "fluid ounce",
+ "fluid ounces",
+ "floz"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "B",
+ "aliases" : [
+ "byte",
+ "bytes"
+ ],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "bit",
+ "aliases" : [
+ "bit",
+ "bits"
+ ],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "YB",
+ "aliases" : [
+ "yottabyte",
+ "yottabytes"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "ZB",
+ "aliases" : [
+ "zettabyte",
+ "zettabytes"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "EB",
+ "aliases" : [
+ "exabyte",
+ "exabytes"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "petabyte",
+ "petabytes"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "terabyte",
+ "terabytes",
+ "TB",
+ "tb"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "gigabyte",
+ "gigabytes",
+ "GB",
+ "gb"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "megabyte",
+ "megabytes",
+ "MB",
+ "mb"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "kilobyte",
+ "kilobytes",
+ "KB",
+ "kb"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "yottabit",
+ "yottabits",
+ "Ybit"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "zettabit",
+ "zettabits",
+ "Zbit"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "exabit",
+ "exabits",
+ "Ebit"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "petabit",
+ "petabits",
+ "Pbit"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "terabit",
+ "terabits",
+ "Tbit"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "gigabit",
+ "gigabits",
+ "Gbit"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "megabit",
+ "megabits",
+ "Mbit"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "kilobit",
+ "kilobits",
+ "Kbit",
+ "Kb"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [
+ "yobibyte",
+ "yobibytes",
+ "YiB"
+ ],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [
+ "zebibyte",
+ "zebibytes",
+ "ZiB"
+ ],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [
+ "exbibyte",
+ "exbibytes",
+ "EiB"
+ ],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [
+ "pebibyte",
+ "pebibytes",
+ "PiB"
+ ],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [
+ "tebibyte",
+ "tebibytes",
+ "TiB"
+ ],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [
+ "gibibyte",
+ "gibibytes",
+ "GiB"
+ ],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [
+ "mebibyte",
+ "mebibytes",
+ "MiB"
+ ],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [
+ "kibibyte",
+ "kibibytes",
+ "KiB"
+ ],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [
+ "yobibit",
+ "yobibits",
+ "Yibit"
+ ],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [
+ "zebibit",
+ "zebibits",
+ "Zibit"
+ ],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "exbibit",
+ "exbibits",
+ "Eibit"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [
+ "pebibit",
+ "pebibits",
+ "Pibit"
+ ],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [
+ "tebibit",
+ "tebibits",
+ "Tibit"
+ ],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [
+ "gibibit",
+ "gibibits",
+ "Gibit"
+ ],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [
+ "mebibit",
+ "mebibits",
+ "Mibit"
+ ],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [
+ "kibibit",
+ "kibibits",
+ "Kibit"
+ ],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "kelvin"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "degree celsius",
+ "degrees celsius",
+ "ºC",
+ "C",
+ "degC",
+ "celcius"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "degree fahrenheit",
+ "degrees fahrenheit",
+ "ºF",
+ "F",
+ "degF",
+ "fahrenheit"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [
+
+ ],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [
+
+ ],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "gBps"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "mBps"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "kBps"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "Pbps"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "tbps"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "gbps"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "mbps"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "kbps"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "m\/s",
+ "aliases" : [
+ "meter per second",
+ "meters per second",
+ "metre per second",
+ "metres per second"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "km\/h",
+ "aliases" : [
+ "kilometer per hour",
+ "kilometers per hour",
+ "kilometre per hour",
+ "kilometres per hour",
+ "kph"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "mph",
+ "aliases" : [
+ "mile per hour",
+ "miles per hour"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "kn",
+ "aliases" : [
+ "knot",
+ "knots"
+ ],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "degree",
+ "degrees"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "radian",
+ "radians"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "meter",
+ "meters",
+ "metre",
+ "metres"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "kilometer",
+ "kilometers",
+ "kilometre",
+ "kilometres"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "centimeter",
+ "centimeters",
+ "centimetre",
+ "centimetres"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "millimeter",
+ "millimetres",
+ "millimetre",
+ "millimeters"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "micrometre",
+ "micrometres",
+ "micrometre",
+ "micrometers"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "nanometer",
+ "nanometers",
+ "nanometre",
+ "nanometres"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "inch",
+ "inches"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "foot",
+ "feet"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "yard",
+ "yards"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "mile",
+ "miles"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "light year",
+ "light years"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "parsec",
+ "parsecs"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "nautical mile",
+ "nautical miles"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "fathom",
+ "fathoms"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "furlong",
+ "furlongs"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "pixel",
+ "pixels"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [
+
+ ],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pts"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "square kilometer",
+ "square kilometers",
+ "square kilometre",
+ "square kilometres",
+ "kilometre²",
+ "kilometres²",
+ "kilometer²",
+ "kilometers²",
+ "km^2",
+ "km2"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "square meter",
+ "square meters",
+ "square metre",
+ "square metres",
+ "m^2",
+ "metre^2",
+ "metres^2",
+ "meter^2",
+ "meters^2",
+ "meter²",
+ "meters²",
+ "metres²",
+ "metre²",
+ "m2"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "square centimeter",
+ "square centimeters",
+ "square centimetre",
+ "square centimetres",
+ "centimetres^2",
+ "centimetres²",
+ "centimeters^2",
+ "centimeters²",
+ "cm^2",
+ "cm2"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "square millimeter",
+ "square millimeters",
+ "square millimetre",
+ "square millimetres",
+ "millimeters^2",
+ "millimeters²",
+ "millimetres^2",
+ "millimetres²",
+ "mm^2",
+ "mm2"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "square micrometer",
+ "square micrometers",
+ "square micrometre",
+ "square micrometres",
+ "micrometers^2",
+ "micrometers²",
+ "micrometres^2",
+ "micrometres²",
+ "µm^2",
+ "µm2"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "square inch",
+ "square inches",
+ "sqin",
+ "in^2",
+ "in2",
+ "inches²"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "square foot",
+ "square feet",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "feett^2",
+ "feet²"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "square yard",
+ "square yards",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "yard^2",
+ "yards²",
+ "sqyd"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "square mile",
+ "square miles",
+ "mi^2",
+ "mi2",
+ "mile^2",
+ "miles^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "miles²"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "acre",
+ "acres",
+ "ac"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "hectare",
+ "hectares",
+ "ha"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "ares",
+ "aliases" : [
+
+ ],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L\/100km",
+ "aliases" : [
+ "l\/100 km",
+ "l\/100km",
+ "l \/ 100km",
+ "liters \/ 100km",
+ "litres \/ 100km",
+ "l \/ 100 km",
+ "liters \/ 100 km",
+ "litres \/ 100 km"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "miles per gallon"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "watt",
+ "watts"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "milliwatt",
+ "milliwatts"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "kilowatt",
+ "kilowatts"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "megawatt",
+ "megawatts"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "gigawatt",
+ "gigawatts"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "terawatt",
+ "terawatts"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "horsepower"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "kilogram",
+ "kilograms"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "gram",
+ "grams"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "milligram",
+ "milligrams"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "nanogram",
+ "nanograms"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "ounce",
+ "ounces"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "lbs",
+ "pound",
+ "pounds"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "stone",
+ "stones"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "metric ton",
+ "metric tons"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "short ton",
+ "short tons",
+ "tons",
+ "tonne",
+ "tonnes"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "carat",
+ "carats"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "ounce troy",
+ "ounces troy"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "hour",
+ "hours",
+ "hrs",
+ "h"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "second",
+ "seconds",
+ "sec",
+ "secs"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "minute",
+ "minutes",
+ "mins"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "days"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "weekday",
+ "weekdays",
+ "workdays",
+ "week day",
+ "week days",
+ "work days"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "weeks"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "months"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "years"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "millisecond",
+ "milliseconds"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "microsecond",
+ "microseconds"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "nanosecond",
+ "nanoseconds"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "usd",
+ "US$"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "hertz",
+ "hz"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "kilohertz"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "megahertz"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "gigahertz"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "terahertz"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "millihertz"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "microhertz"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "nanohertz"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h
new file mode 100644
index 000000000..c8858af55
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore-Swift.h
@@ -0,0 +1,292 @@
+// Generated by Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgcc-compat"
+
+#if !defined(__has_include)
+# define __has_include(x) 0
+#endif
+#if !defined(__has_attribute)
+# define __has_attribute(x) 0
+#endif
+#if !defined(__has_feature)
+# define __has_feature(x) 0
+#endif
+#if !defined(__has_warning)
+# define __has_warning(x) 0
+#endif
+
+#if __has_include()
+# include
+#endif
+
+#pragma clang diagnostic ignored "-Wauto-import"
+#include
+#include
+#include
+#include
+
+#if !defined(SWIFT_TYPEDEFS)
+# define SWIFT_TYPEDEFS 1
+# if __has_include()
+# include
+# elif !defined(__cplusplus)
+typedef uint_least16_t char16_t;
+typedef uint_least32_t char32_t;
+# endif
+typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
+typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
+typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
+typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
+typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
+typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
+typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
+typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
+typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
+typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
+typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
+typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
+#endif
+
+#if !defined(SWIFT_PASTE)
+# define SWIFT_PASTE_HELPER(x, y) x##y
+# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
+#endif
+#if !defined(SWIFT_METATYPE)
+# define SWIFT_METATYPE(X) Class
+#endif
+#if !defined(SWIFT_CLASS_PROPERTY)
+# if __has_feature(objc_class_property)
+# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
+# else
+# define SWIFT_CLASS_PROPERTY(...)
+# endif
+#endif
+
+#if __has_attribute(objc_runtime_name)
+# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
+#else
+# define SWIFT_RUNTIME_NAME(X)
+#endif
+#if __has_attribute(swift_name)
+# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
+#else
+# define SWIFT_COMPILE_NAME(X)
+#endif
+#if __has_attribute(objc_method_family)
+# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
+#else
+# define SWIFT_METHOD_FAMILY(X)
+#endif
+#if __has_attribute(noescape)
+# define SWIFT_NOESCAPE __attribute__((noescape))
+#else
+# define SWIFT_NOESCAPE
+#endif
+#if __has_attribute(ns_consumed)
+# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
+#else
+# define SWIFT_RELEASES_ARGUMENT
+#endif
+#if __has_attribute(warn_unused_result)
+# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+# define SWIFT_WARN_UNUSED_RESULT
+#endif
+#if __has_attribute(noreturn)
+# define SWIFT_NORETURN __attribute__((noreturn))
+#else
+# define SWIFT_NORETURN
+#endif
+#if !defined(SWIFT_CLASS_EXTRA)
+# define SWIFT_CLASS_EXTRA
+#endif
+#if !defined(SWIFT_PROTOCOL_EXTRA)
+# define SWIFT_PROTOCOL_EXTRA
+#endif
+#if !defined(SWIFT_ENUM_EXTRA)
+# define SWIFT_ENUM_EXTRA
+#endif
+#if !defined(SWIFT_CLASS)
+# if __has_attribute(objc_subclassing_restricted)
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# else
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# endif
+#endif
+#if !defined(SWIFT_RESILIENT_CLASS)
+# if __has_attribute(objc_class_stub)
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# else
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# endif
+#endif
+
+#if !defined(SWIFT_PROTOCOL)
+# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+#endif
+
+#if !defined(SWIFT_EXTENSION)
+# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
+#endif
+
+#if !defined(OBJC_DESIGNATED_INITIALIZER)
+# if __has_attribute(objc_designated_initializer)
+# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+# else
+# define OBJC_DESIGNATED_INITIALIZER
+# endif
+#endif
+#if !defined(SWIFT_ENUM_ATTR)
+# if defined(__has_attribute) && __has_attribute(enum_extensibility)
+# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
+# else
+# define SWIFT_ENUM_ATTR(_extensibility)
+# endif
+#endif
+#if !defined(SWIFT_ENUM)
+# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# if __has_feature(generalized_swift_name)
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# else
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
+# endif
+#endif
+#if !defined(SWIFT_UNAVAILABLE)
+# define SWIFT_UNAVAILABLE __attribute__((unavailable))
+#endif
+#if !defined(SWIFT_UNAVAILABLE_MSG)
+# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
+#endif
+#if !defined(SWIFT_AVAILABILITY)
+# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
+#endif
+#if !defined(SWIFT_WEAK_IMPORT)
+# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
+#endif
+#if !defined(SWIFT_DEPRECATED)
+# define SWIFT_DEPRECATED __attribute__((deprecated))
+#endif
+#if !defined(SWIFT_DEPRECATED_MSG)
+# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
+#endif
+#if __has_feature(attribute_diagnose_if_objc)
+# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
+#else
+# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
+#endif
+#if !defined(IBSegueAction)
+# define IBSegueAction
+#endif
+#if __has_feature(modules)
+#if __has_warning("-Watimport-in-framework-header")
+#pragma clang diagnostic ignored "-Watimport-in-framework-header"
+#endif
+@import Foundation;
+#endif
+
+#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
+#pragma clang diagnostic ignored "-Wduplicate-method-arg"
+#if __has_warning("-Wpragma-clang-attribute")
+# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
+#endif
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wnullability"
+
+#if __has_attribute(external_source_symbol)
+# pragma push_macro("any")
+# undef any
+# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SoulverCore",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
+# pragma pop_macro("any")
+#endif
+
+
+/// Subclass of Operation
that add support of asynchronous operations.
+/// How to use:
+///
+/// -
+/// Call
super.main()
when override main
method, call super.start()
when override start
method.
+///
+/// -
+/// When operation is finished or cancelled set
self.state = .finished
+///
+///
+SWIFT_CLASS("_TtC11SoulverCore21AsynchronousOperation")
+@interface AsynchronousOperation : NSOperation
+@property (nonatomic, readonly, getter=isAsynchronous) BOOL asynchronous;
+@property (nonatomic, readonly, getter=isExecuting) BOOL executing;
+@property (nonatomic, readonly, getter=isFinished) BOOL finished;
+- (void)start;
+- (void)main;
+- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@class NSUnitConverter;
+@class NSCoder;
+
+SWIFT_CLASS("_TtC11SoulverCore8NullUnit")
+@interface NullUnit : NSDimension
++ (nonnull instancetype)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+
+
+
+
+SWIFT_CLASS("_TtC11SoulverCore19UnitComputerStorage")
+@interface UnitComputerStorage : NSDimension
++ (UnitComputerStorage * _Nonnull)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+SWIFT_CLASS("_TtC11SoulverCore12UnitCurrency")
+@interface UnitCurrency : NSDimension
++ (UnitCurrency * _Nonnull)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+SWIFT_CLASS("_TtC11SoulverCore16UnitDataTransfer")
+@interface UnitDataTransfer : NSDimension
++ (UnitDataTransfer * _Nonnull)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+
+
+
+
+
+#if __has_attribute(external_source_symbol)
+# pragma clang attribute pop
+#endif
+#pragma clang diagnostic pop
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore.h b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore.h
new file mode 100644
index 000000000..114ccaec8
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Headers/SoulverCore.h
@@ -0,0 +1,17 @@
+//
+// SoulverCore.h
+// SoulverCore
+//
+// Created by Zac Cohan on 3/10/18.
+// Copyright © 2020 Zac Cohan. All rights reserved.
+//
+
+#import
+// In this header, you should import all the public headers of your framework using statements like #import
+
+//! Project version number for SoulverCore.
+FOUNDATION_EXPORT double SoulverCoreVersionNumber;
+
+//! Project version string for SoulverCore.
+FOUNDATION_EXPORT const unsigned char SoulverCoreVersionString[];
+
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist
new file mode 100644
index 000000000..92234a8fa
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Info.plist differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc
new file mode 100644
index 000000000..7332b1f7f
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
new file mode 100644
index 000000000..73a30692b
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
@@ -0,0 +1,1600 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
+// swift-module-flags: -target arm64-apple-ios12.2 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
+import Foundation
+@_exported import SoulverCore
+import Swift
+import os
+import os.signpost
+public enum TokenType : Swift.CaseIterable {
+ case number
+ case `operator`
+ case percentageSymbol
+ case converterSymbol
+ case unit
+ case bracket
+ case whitespace
+ case variable
+ case variableDeclarationSymbol
+ case pi
+ case typeName
+ case conditionalKeyword
+ case colon
+ case function
+ case timezone
+ case object
+ case propertySelector
+ case label
+ case fraction
+ case converter
+ case timestamp
+ case datestamp
+ case iso8601
+ case timespan
+ case laptime
+ case dateWord
+ case unitExpression
+ case compoundUnitExpression
+ case conditionalExpression
+ case percentage
+ case multiplier
+ case boolean
+ case rate
+ case functionExpression
+ case wordFunction
+ case declaredVariable
+ case variableDeclaration
+ case subexpression
+ case comment
+ case wordComment
+ case bracketComment
+ case slashComment
+ case legacyQuotationComment
+ case labelExpression
+ case externalExpression
+ case evaluatedExternalExpression
+ case unidentified
+ case custom
+ case error
+ public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public typealias AllCases = [SoulverCore.TokenType]
+ public static var allCases: [SoulverCore.TokenType] {
+ get
+ }
+}
+public enum TokenSubType {
+ case additionOperator
+ case subtractionOperator
+ case multiplicationOperator
+ case divisionOperator
+ case reverseDivisionOperator
+ case powerOperator
+ case modOperator
+ case lesserOf
+ case greaterOf
+ case greaterThan
+ case greaterThanOrEqualTo
+ case lessThan
+ case lessThanOrEqualTo
+ case equalTo
+ case notEqualTo
+ case `false`
+ case `true`
+ case openBracket
+ case closeBracket
+ case numberConverter
+ case fractionConverter
+ case multiplierConveter
+ case percentageConverter
+ case unitConverter
+ case rateConverter
+ case dateConverter
+ case iso8601Converter
+ case timestampConverter
+ case timespanConverter
+ case laptimeConverter
+ case timezoneConverter
+ case roundingToDpConverter
+ case roundingUpConverter
+ case roundingConverter
+ case roundingDownConverter
+ case dateWordToday
+ case dateWordNow
+ case dateWordTomorrow
+ case dateWordYesterday
+ case dateWordDayOfWeek
+ case dateWordMonthOfYear
+ case numberTypeName
+ case fractionTypeName
+ case multiplierTypeName
+ case percentageTypeName
+ case rateTypeName
+ case timestampTypeName
+ case timespanTypeName
+ case laptimeTypeName
+ case dateTypeName
+ case iso8601TypeName
+ case decimalPlacesTypeName
+ case binaryTypeName
+ case hexTypeName
+ case conditionalKeywordIf
+ case conditionalKeywordThen
+ case conditionalKeywordElse
+ case conditionalKeywordUnless
+ case conditionalKeywordAnd
+ case conditionalKeywordOr
+ case unitMismatchError
+ case infinityError
+ case divideByZeroError
+ case imaginaryNumberError
+ case unsupportedUnitMultiplication
+ case unsupportedRate
+ case badDivision
+ case unknownError
+ case notSpecified
+ public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct Laptime {
+}
+public class LineCollection {
+ public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public var lineSheet: SoulverCore.LineSheet {
+ get
+ set
+ }
+ public var customization: SoulverCore.EngineCustomization
+ public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? {
+ get
+ set
+ }
+ public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? {
+ get
+ set
+ }
+ public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard)
+ public var currentPage: SoulverCore.PageIndex {
+ get
+ set
+ }
+ public func addPage(addStartingLine: Swift.Bool = true)
+ public func removeCurrentPage()
+ public func beginChanges()
+ public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line
+ public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression])
+ public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String)
+ public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String)
+ public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex)
+ public func removeLineAt(lineIndex: SoulverCore.LineIndex)
+ public subscript(index: Swift.Int) -> SoulverCore.Line {
+ get
+ set(newValue)
+ }
+ public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex)
+ public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex)
+ public func evaluateAll()
+ public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil)
+ public func evaluateExternallyLineAt(index: SoulverCore.LineIndex, evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference
+ @discardableResult
+ public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken
+ public func remove(observer: SoulverCore.LineCollectionObserverToken)
+ public var quickSum: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickAverage: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
+ public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
+ public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
+ public func clearStates()
+ public var lineCount: Swift.Int {
+ get
+ }
+ public var completeLineCount: Swift.Int {
+ get
+ }
+ public var hasMultiplePages: Swift.Bool {
+ get
+ }
+ public var pageCount: Swift.Int {
+ get
+ }
+ public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public var allIndexes: Foundation.IndexSet {
+ get
+ }
+ public var lastIndex: Swift.Int {
+ get
+ }
+ public var firstIndex: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public func linesInPage(pageIndex: SoulverCore.PageIndex) -> [SoulverCore.Line]
+ public var lines: [SoulverCore.Line] {
+ get
+ }
+ public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line]
+ public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList
+ public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token?
+ public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line?
+ public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line?
+ public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String?
+ @objc deinit
+}
+public typealias LineCollectionStateTicket = Swift.String
+extension LineCollection : Swift.CustomDebugStringConvertible {
+ public typealias MultiLineText = Swift.String
+ public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
+ convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ @objc deinit
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public enum EvaluationError : Swift.Error {
+ case UnitMismatch
+ case UnsupportedUnitMultiplication
+ case UnsupportedRate
+ case Infinity
+ case ImaginaryNumber
+ case DivideByZero
+ case BadDivision
+ case Other
+ public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+infix operator ~ : AdditionPrecedence
+public typealias CocoaUnit = Foundation.Dimension
+extension String {
+ public func foundationLocalized() -> Swift.String
+ public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
+}
+@_hasMissingDesignatedInitializers public class LineCollectionEnumerator {
+ public typealias EnumerationExpression = Swift.String
+ public typealias EnumerationResult = Swift.String
+ public enum ReferenceSubstituionPolicy {
+ case dontSubstitue
+ case formattedResult
+ case plainTextReference
+ case markdownLinkStyle
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public enum ResultFormatting {
+ case formatted
+ case raw
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public struct LineCollectionEnumerationOptions {
+ public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy
+ public var resultFormatting: SoulverCore.LineCollectionEnumerator.ResultFormatting
+ public init()
+ }
+ public typealias LineCollectionEnumerationHandler = ((SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: (SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: ((SoulverCore.LineIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult) -> T?)) -> T?
+ @objc deinit
+}
+public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
+ public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func < (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public let type: SoulverCore.TokenType
+ public let subType: SoulverCore.TokenSubType
+ public var stringValue: Swift.String
+ public var range: Foundation.NSRange
+ public var subtokens: SoulverCore.TokenList?
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Token : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class TokenList {
+ public var count: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public var tokens: [SoulverCore.Token] {
+ get
+ }
+ public var flattenedTokens: [SoulverCore.Token] {
+ get
+ }
+ public subscript(index: Swift.Int) -> SoulverCore.Token {
+ get
+ set(newValue)
+ }
+ public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token]
+ public func allTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func onlyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func anyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ @objc deinit
+}
+extension TokenList : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList {
+ public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
+ public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
+ public func tokenFor(characterIndex: Swift.Int) -> SoulverCore.Token?
+ public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token?
+}
+public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void
+public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
+public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
+public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
+extension TokenList {
+ public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
+ public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+}
+extension TokenList {
+ public func containsToken(token: SoulverCore.Token) -> Swift.Bool
+ public func scanForTokenWithType(_ tokenTypes: Swift.Set, ignoreParentsWithTypes parentTypes: Swift.Set? = nil) -> Swift.Bool
+}
+extension TokenList {
+ public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
+ public func typesPrecheck(_ types: Swift.Set) -> Swift.Bool
+}
+extension TokenList {
+ public static var EmptyList: SoulverCore.TokenList
+}
+public struct Timestamp {
+ public let decimalValue: Foundation.Decimal
+}
+public class VariableList : Swift.CustomDebugStringConvertible {
+ public init()
+ convenience public init(variables: [SoulverCore.Variable])
+ public func provideVariableDefinitionsVia(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult)
+ public func allVariables() -> [SoulverCore.Variable]
+ public func lineReferences() -> [SoulverCore.Variable]
+ public func isLineReference(variable: SoulverCore.Variable) -> Swift.Bool
+ public func variablesExludingLineReferences() -> [SoulverCore.Variable]
+ public func singleWordVariables() -> [SoulverCore.Variable]
+ public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable]
+ public func setVariable(_ variable: SoulverCore.Variable, isLineReference: Swift.Bool = false)
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct CalculationResult {
+ public let evaluationResult: SoulverCore.EvaluationResult
+ public let stringValue: Swift.String
+}
+extension CalculationResult {
+ public var isEmptyResult: Swift.Bool {
+ get
+ }
+}
+public let EmptyResult: SoulverCore.CalculationResult
+public struct ExportOptions {
+ public var plainTextSeparator: Swift.String
+ public var useUnformattedResults: Swift.Bool
+ public var substituteLineReferences: Swift.Bool
+ public var includeAnswers: Swift.Bool
+ public init()
+}
+@_hasMissingDesignatedInitializers public class LineCollectionExporter {
+ public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers public class ResultContextualMetadata {
+ public class func humanReadableMetadataFor(formattedResult: SoulverCore.CalculationResult, customization: SoulverCore.EngineCustomization) -> Swift.String?
+ @objc deinit
+}
+public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
+ public let locale: Foundation.Locale
+ public var unitSystem: SoulverCore.UnitMeasurementSystem
+ public var customVariables: [SoulverCore.Variable]
+ public var customUnits: [SoulverCore.CustomUnit] {
+ get
+ set
+ }
+ public var currencyUnits: [SoulverCore.UnitDescription] {
+ get
+ set
+ }
+ public var customSymbols: [SoulverCore.UnitSymbolReplacement] {
+ get
+ set
+ }
+ public var featureFlags: SoulverCore.EngineFeatureFlags
+ public init(locale: Foundation.Locale)
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var standard: SoulverCore.EngineCustomization {
+ get
+ }
+ public func convertTo(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+ public static func == (a: SoulverCore.EngineCustomization, b: SoulverCore.EngineCustomization) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension EngineCustomization {
+ public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+}
+extension EngineCustomization {
+ public func isOperator(text: Swift.String) -> Swift.Bool
+}
+public typealias Scalar = Swift.String
+@_hasMissingDesignatedInitializers public class LineCollectionArchiver {
+ public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?) throws -> SoulverCore.LineCollection
+ @objc deinit
+}
+public let UntokenizedLineReference: Swift.String
+public protocol RoutineOwner : AnyObject {
+ func routineCompleted(routine: SoulverCore.Routine)
+}
+public protocol Routine : AnyObject {
+ var routineOwner: SoulverCore.RoutineOwner? { get set }
+ func go()
+ func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+extension Routine {
+ public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+public typealias RawExpression = Swift.String
+infix operator *+* : AdditionPrecedence
+@_hasMissingDesignatedInitializers public class LineOperationsController {
+ public var baseVariables: SoulverCore.VariableList
+ public var externalEvaluators: [SoulverCore.ExternalEvaluator] {
+ get
+ set
+ }
+ public var beautifcationOptions: SoulverCore.ExpressionBeautificationOptions?
+ @objc deinit
+}
+extension NSNotification.Name {
+ public static let currenciesUpdateSucceeded: Foundation.Notification.Name
+ public static let currenciesUpdateFailed: Foundation.Notification.Name
+ public static let currenciesUpdateStarted: Foundation.Notification.Name
+}
+public enum CurrencySet : Swift.String {
+ case popular
+ case realWorld
+ case realWorldPlusCrypto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public struct CurrencySourceCredentials {
+ public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?)
+}
+@_hasMissingDesignatedInitializers public class CurrencyList {
+ public static let shared: SoulverCore.CurrencyList
+ public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials
+ public var defaultCurrencySet: SoulverCore.CurrencySet {
+ get
+ set
+ }
+ public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil)
+ public func saveCurrenciesTo(url: Foundation.URL)
+ public func loadCurrenciesFrom(url: Foundation.URL) throws
+ @objc deinit
+}
+public typealias PrivateUnicodeSymbol = Swift.String
+@_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator {
+ public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
+ @objc deinit
+}
+public typealias VariableName = Swift.String
+public typealias VariableValue = Swift.String
+public struct Variable : Swift.Codable {
+ public let name: SoulverCore.VariableName
+ public let value: SoulverCore.VariableValue?
+ public init(name: SoulverCore.VariableName, value: SoulverCore.VariableValue?)
+ public var declaringLineIndex: SoulverCore.LineIndex?
+ public var definition: SoulverCore.EvaluationResult?
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Variable : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public struct Datestamp {
+ public let date: Foundation.Date
+ public let hasTimeComponent: Swift.Bool
+ public var timezone: Foundation.TimeZone?
+}
+extension String {
+ public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
+ public func wrappedIn(_ character: Swift.String) -> Swift.String
+ public func bracketed() -> Swift.String
+ public func invertedCommad() -> Swift.String
+ public func spaced() -> Swift.String
+ public static var standardEasternEuropeanThousandsSeparator: Swift.String
+ public static var standardWhitespace: Swift.String
+ public static let standardDecimalPoint: Swift.String
+ public static let newlineSymbol: Swift.String
+ public var isNewline: Swift.Bool {
+ get
+ }
+ public var isSingleWhitespace: Swift.Bool {
+ get
+ }
+ public var isLowerecased: Swift.Bool {
+ get
+ }
+ public var isUppercased: Swift.Bool {
+ get
+ }
+ public var isMixedCase: Swift.Bool {
+ get
+ }
+ public func replaceCharactersFromSet(characterSet: Foundation.CharacterSet, replacementString: Swift.String = "") -> Swift.String
+ public var whitespaceStandardized: Swift.String {
+ get
+ }
+ public var whitespaceRemoved: Swift.String {
+ get
+ }
+ public var whitespaceTrimmed: Swift.String {
+ get
+ }
+}
+extension String {
+ public var completeStringRange: Foundation.NSRange {
+ get
+ }
+ public var completeRange: Swift.Range {
+ get
+ }
+ public var dirtyWordCount: Swift.Int {
+ get
+ }
+ public var dirtyLineCount: Swift.Int {
+ get
+ }
+ public var newLineCount: Swift.Int {
+ get
+ }
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func removingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func removingSuffix(_ suffix: Swift.String) -> Swift.String
+ public func addingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func addingSuffix(_ suffix: Swift.String) -> Swift.String
+}
+extension String {
+ public func enumerateLinguisticTags(invoking body: @escaping (Swift.String, Foundation.NSRange) -> Swift.Void)
+ public var words: [Swift.String] {
+ get
+ }
+ public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
+ public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public var lemma: Swift.String? {
+ get
+ }
+ public var lemmas: [Swift.String] {
+ get
+ }
+}
+extension String {
+ public func containsPattern(_ regex: Swift.String) -> Swift.Bool
+ public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
+ public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
+ public func erasingPattern(_ pattern: Swift.String) -> Swift.String
+ public var trailingDigit: Swift.Int? {
+ get
+ }
+}
+extension String {
+ public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
+ public func rangesOf(string: Swift.String) -> [Swift.Range]
+ public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
+}
+public enum LineStyle : Swift.Int {
+ case normal
+ case heading
+ case label
+ case comment
+ public typealias RawValue = Swift.Int
+ public init?(rawValue: Swift.Int)
+ public var rawValue: Swift.Int {
+ get
+ }
+}
+public class LineStyler {
+ public static let MARKDOWN_HEADING_CHARACTER: Swift.String
+ public static let HEADING_INDICATOR: Swift.String
+ public static let COMMENT_INDICATOR: Swift.String
+ public static let LABEL_INDICATOR: Swift.String
+ public init()
+ public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle
+ public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String
+ public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public var defaultLabel: Swift.String {
+ get
+ }
+ @objc deinit
+}
+extension Decimal {
+ public var doubleValue: Swift.Double {
+ get
+ }
+}
+extension Token {
+ public var number: Foundation.Decimal? {
+ get
+ }
+ public var scalar: SoulverCore.Scalar? {
+ get
+ }
+ public var variable: SoulverCore.Variable? {
+ get
+ }
+ public var isLineReference: Swift.Bool {
+ get
+ }
+}
+extension NumberFormatter {
+ open func string(from number: Foundation.Decimal) -> Swift.String?
+}
+public class Calculator {
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var customization: SoulverCore.EngineCustomization {
+ get
+ }
+ public init(customization: SoulverCore.EngineCustomization)
+ public func calculate(_ expression: SoulverCore.RawExpression, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult
+ @objc deinit
+}
+indirect public enum EvaluationResult {
+ case rawString(Swift.String)
+ case decimal(Foundation.Decimal)
+ case percentage(SoulverCore.Percentage)
+ case fraction(SoulverCore.Fraction)
+ case multiplier(SoulverCore.Multiplier)
+ case boolean(Swift.Bool)
+ case unitExpression(SoulverCore.UnitExpression)
+ case rate(SoulverCore.UnitRate)
+ case date(SoulverCore.Datestamp)
+ case iso8601(SoulverCore.iso8601)
+ case timestamp(SoulverCore.Timestamp)
+ case timespan(SoulverCore.Timespan)
+ case laptime(SoulverCore.Laptime)
+ case error(SoulverCore.EvaluationError)
+ case variable(SoulverCore.Variable)
+ case none
+ public var equivalentTokenType: SoulverCore.TokenType {
+ get
+ }
+}
+public protocol TokenMetadata {
+ func safeCopy() -> SoulverCore.TokenMetadata
+}
+public struct Fraction {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
+public struct Multiplier {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class LineCollectionCompletions {
+ public class func completionsFor(textFragment: Swift.String, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String]
+ @objc deinit
+}
+public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case before
+ case beforeWithSpace
+ case after
+ case afterWithSpace
+ public var description: Swift.String {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition]
+ public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] {
+ get
+ }
+}
+public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public let originalSymbol: Swift.String
+ public let replacementSymbol: Swift.String
+ public let position: SoulverCore.UnitSymbolReplacementPosition
+ public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before)
+ public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement]
+ public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
+ public let name: Swift.String
+ public let definition: Swift.Double
+ public let equivalentUnit: SoulverCore.UnitIdentifier
+ public let legacyDefinition: Swift.String?
+ public init(name: Swift.String, definition: Swift.Double, equivalentUnit: SoulverCore.UnitIdentifier)
+ public init(from decoder: Swift.Decoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct Percentage {
+ public let decimalValue: Foundation.Decimal
+}
+public typealias ExternalEvaluatorSymbol = Swift.String
+public protocol ExternalEvaluator {
+ var symbol: SoulverCore.ExternalEvaluatorSymbol { get }
+ func evaluate(_ expression: SoulverCore.RawExpression) -> SoulverCore.CalculationResult
+}
+@_hasMissingDesignatedInitializers public class LineSection : Swift.Codable {
+ public var lines: [SoulverCore.Line]
+ @objc deinit
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public typealias UID = Swift.String
+public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Swift.CustomStringConvertible {
+ public let UID: SoulverCore.UID
+ public init(UID: SoulverCore.UID)
+ public var description: Swift.String {
+ get
+ }
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct iso8601 {
+ public let datestamp: SoulverCore.Datestamp
+}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
+public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift.Equatable {
+ case customaryUS
+ case imperial
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LocaleProvider {
+ public class func localeWith(identifier: Swift.String) -> Foundation.Locale
+ @objc deinit
+}
+public enum SIThreshold : Swift.String {
+ case septillion
+ case sextillion
+ case quintillion
+ case quadrillion
+ case trillion
+ case billion
+ case million
+ case hundredThousand
+ case thousand
+ case hecto
+ case deca
+ case centi
+ case milli
+ case micro
+ case nano
+ case pico
+ case femto
+ case atto
+ case zetto
+ case yocto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public enum ApparentLineType {
+ case regular
+ case comment
+ case variableDeclaration
+ public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public enum LineCalculationBehaviour : Swift.String, Swift.Codable {
+ case evaluatesExpression
+ case sumsLinesAbove
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public class Line : Swift.Codable {
+ public var expression: SoulverCore.RawExpression {
+ get
+ set
+ }
+ public var behaviour: SoulverCore.LineCalculationBehaviour
+ public var skipStatistics: Swift.Bool
+ public var lineReference: SoulverCore.LineReference?
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var result: SoulverCore.CalculationResult?
+ public var parsedExpression: SoulverCore.TokenList?
+ public var apparentLineType: SoulverCore.ApparentLineType?
+ public var lineIndex: SoulverCore.LineIndex?
+ public var explicitDependencies: Foundation.IndexSet?
+ public var variableEnvironment: SoulverCore.VariableList?
+ public var rawResult: Swift.String {
+ get
+ }
+ public var formattedResult: Swift.String {
+ get
+ }
+ convenience public init(_ expression: SoulverCore.RawExpression)
+ public init()
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ @objc deinit
+}
+extension Line {
+ public var isSubtotal: Swift.Bool {
+ get
+ }
+ public var isHeading: Swift.Bool {
+ get
+ }
+}
+extension Line {
+ public var declaredVariable: SoulverCore.Variable? {
+ get
+ }
+}
+extension Line : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var EmptyLine: SoulverCore.Line {
+ get
+ }
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Line : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension Line {
+ public var includesLineReferences: Swift.Bool {
+ get
+ }
+}
+extension UnitLength {
+ public static let pixel: Foundation.UnitLength
+ public static let em: Foundation.UnitLength
+ public static let point: Foundation.UnitLength
+}
+@objc @_inheritsConvenienceInitializers final public class UnitCurrency : Foundation.Dimension {
+ convenience public init(symbol: Swift.String, coefficient: Swift.Double)
+ public static let usd: SoulverCore.UnitCurrency
+ public static let aud: SoulverCore.UnitCurrency
+ public static let eur: SoulverCore.UnitCurrency
+ @objc override final public class func baseUnit() -> SoulverCore.UnitCurrency
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitComputerStorage : Foundation.Dimension {
+ public static let bytes: SoulverCore.UnitComputerStorage
+ public static let bits: SoulverCore.UnitComputerStorage
+ public static let nibbles: SoulverCore.UnitComputerStorage
+ public static let yottabytes: SoulverCore.UnitComputerStorage
+ public static let zettabytes: SoulverCore.UnitComputerStorage
+ public static let exabytes: SoulverCore.UnitComputerStorage
+ public static let petabytes: SoulverCore.UnitComputerStorage
+ public static let terabytes: SoulverCore.UnitComputerStorage
+ public static let gigabytes: SoulverCore.UnitComputerStorage
+ public static let megabytes: SoulverCore.UnitComputerStorage
+ public static let kilobytes: SoulverCore.UnitComputerStorage
+ public static let yottabits: SoulverCore.UnitComputerStorage
+ public static let zettabits: SoulverCore.UnitComputerStorage
+ public static let exabits: SoulverCore.UnitComputerStorage
+ public static let petabits: SoulverCore.UnitComputerStorage
+ public static let terabits: SoulverCore.UnitComputerStorage
+ public static let gigabits: SoulverCore.UnitComputerStorage
+ public static let megabits: SoulverCore.UnitComputerStorage
+ public static let kilobits: SoulverCore.UnitComputerStorage
+ public static let yobibytes: SoulverCore.UnitComputerStorage
+ public static let zebibytes: SoulverCore.UnitComputerStorage
+ public static let exbibytes: SoulverCore.UnitComputerStorage
+ public static let pebibytes: SoulverCore.UnitComputerStorage
+ public static let tebibytes: SoulverCore.UnitComputerStorage
+ public static let gibibytes: SoulverCore.UnitComputerStorage
+ public static let mebibytes: SoulverCore.UnitComputerStorage
+ public static let kibibytes: SoulverCore.UnitComputerStorage
+ public static let yobibits: SoulverCore.UnitComputerStorage
+ public static let zebibits: SoulverCore.UnitComputerStorage
+ public static let exbibits: SoulverCore.UnitComputerStorage
+ public static let pebibits: SoulverCore.UnitComputerStorage
+ public static let tebibits: SoulverCore.UnitComputerStorage
+ public static let gibibits: SoulverCore.UnitComputerStorage
+ public static let mebibits: SoulverCore.UnitComputerStorage
+ public static let kibibits: SoulverCore.UnitComputerStorage
+ @objc override final public class func baseUnit() -> SoulverCore.UnitComputerStorage
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitDataTransfer : Foundation.Dimension {
+ public static let bytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let bitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibitsPerSecond: SoulverCore.UnitDataTransfer
+ @objc override final public class func baseUnit() -> SoulverCore.UnitDataTransfer
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class NullUnit : Foundation.Dimension {
+ @objc override final public class func baseUnit() -> Self
+ @objc deinit
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+}
+public typealias LineIndex = Swift.Int
+public typealias PageIndex = Swift.Int
+@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable {
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct Timespan {
+ public let dateComponents: Foundation.DateComponents
+}
+public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public var calendarCalculations: Swift.Bool
+ public var units: Swift.Bool
+ public var wordFunctions: Swift.Bool
+ public var variableDeclarations: Swift.Bool
+ public var bracketComments: Swift.Bool
+ public var inAmbiguityPreferSomethingToNothing: Swift.Bool
+ public var leftToRightOperatorEvaluation: Swift.Bool
+ public init()
+ public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Int {
+ public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
+}
+public struct UnitRate {
+ public let value: Foundation.Decimal
+ public let ofUnit: SoulverCore.CocoaUnit?
+ public let perUnit: SoulverCore.CocoaUnit
+}
+extension UnitRate : Swift.Comparable {
+ public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
+ public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
+}
+extension UnitRate : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension UnitExpression : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case metersPerSecondSquared
+ case gravity
+ case degrees
+ case arcMinutes
+ case arcSeconds
+ case radians
+ case gradians
+ case revolutions
+ case squareMegameters
+ case squareKilometers
+ case squareMeters
+ case squareCentimeters
+ case squareMillimeters
+ case squareMicrometers
+ case squareNanometers
+ case squareInches
+ case squareFeet
+ case squareYards
+ case squareMiles
+ case acres
+ case ares
+ case hectares
+ case gramsPerLiter
+ case milligramsPerDeciliter
+ case partsPerMillion
+ case picoseconds
+ case nanoseconds
+ case microseconds
+ case milliseconds
+ case seconds
+ case minutes
+ case hours
+ case days
+ case weekdays
+ case weeks
+ case months
+ case years
+ case coulombs
+ case megaampereHours
+ case kiloampereHours
+ case ampereHours
+ case milliampereHours
+ case microampereHours
+ case megaamperes
+ case kiloamperes
+ case amperes
+ case milliamperes
+ case microamperes
+ case megavolts
+ case kilovolts
+ case volts
+ case millivolts
+ case microvolts
+ case megaohms
+ case kiloohms
+ case ohms
+ case milliohms
+ case microohms
+ case joules
+ case kilojoules
+ case megajoules
+ case gigajoules
+ case kilocalories
+ case calories
+ case wattSeconds
+ case wattMinutes
+ case wattHours
+ case kilowattHours
+ case megawattHours
+ case gigawattHours
+ case terawattHours
+ case terahertz
+ case gigahertz
+ case megahertz
+ case kilohertz
+ case hertz
+ case millihertz
+ case microhertz
+ case nanohertz
+ case litersPer100Kilometers
+ case milesPerImperialGallon
+ case milesPerGallon
+ case megameters
+ case kilometers
+ case hectometers
+ case decameters
+ case meters
+ case decimeters
+ case centimeters
+ case millimeters
+ case micrometers
+ case nanometers
+ case picometers
+ case inches
+ case feet
+ case yards
+ case miles
+ case scandinavianMiles
+ case lightyears
+ case nauticalMiles
+ case fathoms
+ case furlongs
+ case parsecs
+ case lux
+ case kilograms
+ case grams
+ case decigrams
+ case centigrams
+ case milligrams
+ case micrograms
+ case nanograms
+ case picograms
+ case ounces
+ case pounds
+ case stones
+ case metricTons
+ case shortTons
+ case carats
+ case ouncesTroy
+ case slugs
+ case terawatts
+ case gigawatts
+ case megawatts
+ case kilowatts
+ case watts
+ case milliwatts
+ case microwatts
+ case nanowatts
+ case picowatts
+ case femtowatts
+ case horsepower
+ case newtonsPerMetersSquared
+ case gigapascals
+ case megapascals
+ case kilopascals
+ case hectopascals
+ case inchesOfMercury
+ case bars
+ case millibars
+ case millimetersOfMercury
+ case poundsForcePerSquareInch
+ case metersPerSecond
+ case kilometersPerHour
+ case milesPerHour
+ case knots
+ case kelvin
+ case celsius
+ case fahrenheit
+ case megaliters
+ case kiloliters
+ case liters
+ case milliliters
+ case cubicKilometers
+ case cubicMeters
+ case cubicCentimeters
+ case cubicMillimeters
+ case cubicInches
+ case cubicFeet
+ case cubicYards
+ case cubicMiles
+ case acreFeet
+ case bushels
+ case teaspoons
+ case tablespoons
+ case fluidOunces
+ case cups
+ case pints
+ case quarts
+ case gallons
+ case imperialTeaspoons
+ case imperialTablespoons
+ case imperialFluidOunces
+ case imperialPints
+ case imperialQuarts
+ case imperialGallons
+ case metricCups
+ case bytes
+ case bits
+ case yottabytes
+ case zettabytes
+ case exabytes
+ case petabytes
+ case terabytes
+ case gigabytes
+ case megabytes
+ case kilobytes
+ case yottabits
+ case zettabits
+ case exabits
+ case petabits
+ case terabits
+ case gigabits
+ case megabits
+ case kilobits
+ case yobibytes
+ case zebibytes
+ case exbibytes
+ case pebibytes
+ case tebibytes
+ case gibibytes
+ case mebibytes
+ case kibibytes
+ case yobibits
+ case zebibits
+ case exbibits
+ case pebibits
+ case tebibits
+ case gibibits
+ case mebibits
+ case kibibits
+ case pixel
+ case em
+ case point
+ case bytesPerSecond
+ case bitsPerSecond
+ case yottabytesPerSecond
+ case zettabytesPerSecond
+ case exabytesPerSecond
+ case petabytesPerSecond
+ case terabytesPerSecond
+ case gigabytesPerSecond
+ case megabytesPerSecond
+ case kilobytesPerSecond
+ case yottabitsPerSecond
+ case zettabitsPerSecond
+ case exabitsPerSecond
+ case petabitsPerSecond
+ case terabitsPerSecond
+ case gigabitsPerSecond
+ case megabitsPerSecond
+ case kilobitsPerSecond
+ case yobibytesPerSecond
+ case zebibytesPerSecond
+ case exbibytesPerSecond
+ case pebibytesPerSecond
+ case tebibytesPerSecond
+ case gibibytesPerSecond
+ case mebibytesPerSecond
+ case kibibytesPerSecond
+ case yobibitsPerSecond
+ case zebibitsPerSecond
+ case exbibitsPerSecond
+ case pebibitsPerSecond
+ case tebibitsPerSecond
+ case gibibitsPerSecond
+ case mebibitsPerSecond
+ case kibibitsPerSecond
+ case usd
+ case aud
+ case eur
+ case undefined
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitIdentifier]
+ public static var allCases: [SoulverCore.UnitIdentifier] {
+ get
+ }
+}
+extension UnitIdentifier {
+ public var unitType: SoulverCore.UnitType {
+ get
+ }
+}
+public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable {
+ case length
+ case mass
+ case duration
+ case currency
+ case volume
+ case speed
+ case acceleration
+ case temperature
+ case concentrationMass
+ case dispersion
+ case dataStorage
+ case dataTransfer
+ case area
+ case frequency
+ case angle
+ case illuminance
+ case energy
+ case power
+ case pressure
+ case fuelEfficiency
+ case electricCurrent
+ case electricCharge
+ case electricPotential
+ case electricResistance
+ case other
+ public var label: Swift.String {
+ get
+ }
+ public var baseUnitIdentifier: SoulverCore.UnitIdentifier {
+ get
+ }
+ public var associatedOtherUnits: [SoulverCore.UnitIdentifier] {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public var rawValue: Swift.String {
+ get
+ }
+ public init?(rawValue: Swift.String)
+ public typealias AllCases = [SoulverCore.UnitType]
+ public static var allCases: [SoulverCore.UnitType] {
+ get
+ }
+}
+public func cocoaUnitFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.CocoaUnit
+public func unitIdentifierFor(cocoaUnit: SoulverCore.CocoaUnit) -> SoulverCore.UnitIdentifier?
+public func motherUnitIdentifierFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.UnitIdentifier
+@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
+ @objc override dynamic public var isAsynchronous: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isExecuting: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isFinished: Swift.Bool {
+ @objc get
+ }
+ public var state: SoulverCore.AsynchronousOperation.State {
+ get
+ set
+ }
+ public enum State : Swift.String {
+ case ready
+ case executing
+ case finished
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ }
+ @objc override dynamic open func start()
+ @objc override dynamic open func main()
+ @objc override dynamic public init()
+ @objc deinit
+}
+public struct UnitExpression {
+ public let value: Foundation.Decimal
+ public let unit: SoulverCore.CocoaUnit
+}
+extension UnitExpression : Swift.Comparable {
+ public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+ public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+}
+public typealias TokenIndex = Swift.Int
+public struct TokenIndexPath : Swift.Equatable {
+ public let tokenIndex: SoulverCore.TokenIndex
+ public let lineIndex: SoulverCore.LineIndex
+ public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
+ public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
+}
+public struct NotationPreferences : Swift.Equatable {
+ public enum NotationStyle {
+ case auto
+ case on
+ case off
+ public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public var notationStyle: SoulverCore.NotationPreferences.NotationStyle
+ public var upperNotationThreshold: SoulverCore.SIThreshold
+ public var lowerNotationThreshold: SoulverCore.SIThreshold
+ public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
+}
+public struct FormattingPreferences : Swift.Codable, Swift.Equatable {
+ public static var maximumDp: Swift.Int
+ public var dp: Swift.Int
+ public var thousandsSeparatorDisabled: Swift.Bool
+ public var currencyFormattingDisabled: Swift.Bool
+ public var implicitUnitsDisabled: Swift.Bool
+ public var notationPreferences: SoulverCore.NotationPreferences
+ public var referencesTakeFormattedValue: Swift.Bool
+ public var fractionizeWherePossible: Swift.Bool
+ public init()
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool
+}
+public struct ExpressionBeautificationOptions {
+ public var quickOperators: Swift.Bool
+ public var autoThousandsSeparators: Swift.Bool
+ public var padStandardOperators: Swift.Bool
+ public var fancyTimes: Swift.Bool
+ public var fancyMinus: Swift.Bool
+ public var collapseSpaces: Swift.Bool
+ public var formatsSlashCommentsWithSpaces: Swift.Bool
+ public static var defaults: SoulverCore.ExpressionBeautificationOptions {
+ get
+ }
+ public init()
+}
+extension Array where Element : Swift.Equatable {
+ public func doesNotContain(_ element: Element) -> Swift.Bool
+}
+extension Array {
+ public subscript(safe index: Swift.Array.Index) -> Element? {
+ get
+ }
+ public var lastIndex: Swift.Int? {
+ get
+ }
+ public func isValid(index: Swift.Int) -> Swift.Bool
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public mutating func trim(where predicate: (Element) throws -> Swift.Bool)
+ public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index)
+}
+extension IndexSet {
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func isJust(_ integer: Swift.Int) -> Swift.Bool
+ public var onlyFirst: Foundation.IndexSet {
+ get
+ }
+ public var removingFirstIndex: Foundation.IndexSet {
+ get
+ }
+ public var smartDescription: Swift.String {
+ get
+ }
+ public var secondLastIndex: Swift.Int? {
+ get
+ }
+}
+public struct UnitDescription : Swift.Hashable, Swift.Codable {
+ public init(unit: SoulverCore.CocoaUnit, symbol: Swift.String, aliases: [Swift.String])
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool
+}
+extension Dimension {
+ public var svUnitType: SoulverCore.UnitType {
+ get
+ }
+}
+extension SoulverCore.TokenType : Swift.Equatable {}
+extension SoulverCore.TokenType : Swift.Hashable {}
+extension SoulverCore.TokenSubType : Swift.Equatable {}
+extension SoulverCore.TokenSubType : Swift.Hashable {}
+extension SoulverCore.EvaluationError : Swift.Equatable {}
+extension SoulverCore.EvaluationError : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.Equatable {}
+extension SoulverCore.CurrencySet : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.RawRepresentable {}
+extension SoulverCore.LineStyle : Swift.Equatable {}
+extension SoulverCore.LineStyle : Swift.Hashable {}
+extension SoulverCore.LineStyle : Swift.RawRepresentable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Equatable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Hashable {}
+extension SoulverCore.UnitMeasurementSystem : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.Equatable {}
+extension SoulverCore.SIThreshold : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.RawRepresentable {}
+extension SoulverCore.ApparentLineType : Swift.Equatable {}
+extension SoulverCore.ApparentLineType : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Equatable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.RawRepresentable {}
+extension SoulverCore.UnitIdentifier : Swift.Equatable {}
+extension SoulverCore.UnitIdentifier : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.Equatable {}
+extension SoulverCore.UnitType : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.RawRepresentable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Equatable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Hashable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.RawRepresentable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Equatable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Hashable {}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc
new file mode 100644
index 000000000..7332b1f7f
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
new file mode 100644
index 000000000..73a30692b
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
@@ -0,0 +1,1600 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
+// swift-module-flags: -target arm64-apple-ios12.2 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
+import Foundation
+@_exported import SoulverCore
+import Swift
+import os
+import os.signpost
+public enum TokenType : Swift.CaseIterable {
+ case number
+ case `operator`
+ case percentageSymbol
+ case converterSymbol
+ case unit
+ case bracket
+ case whitespace
+ case variable
+ case variableDeclarationSymbol
+ case pi
+ case typeName
+ case conditionalKeyword
+ case colon
+ case function
+ case timezone
+ case object
+ case propertySelector
+ case label
+ case fraction
+ case converter
+ case timestamp
+ case datestamp
+ case iso8601
+ case timespan
+ case laptime
+ case dateWord
+ case unitExpression
+ case compoundUnitExpression
+ case conditionalExpression
+ case percentage
+ case multiplier
+ case boolean
+ case rate
+ case functionExpression
+ case wordFunction
+ case declaredVariable
+ case variableDeclaration
+ case subexpression
+ case comment
+ case wordComment
+ case bracketComment
+ case slashComment
+ case legacyQuotationComment
+ case labelExpression
+ case externalExpression
+ case evaluatedExternalExpression
+ case unidentified
+ case custom
+ case error
+ public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public typealias AllCases = [SoulverCore.TokenType]
+ public static var allCases: [SoulverCore.TokenType] {
+ get
+ }
+}
+public enum TokenSubType {
+ case additionOperator
+ case subtractionOperator
+ case multiplicationOperator
+ case divisionOperator
+ case reverseDivisionOperator
+ case powerOperator
+ case modOperator
+ case lesserOf
+ case greaterOf
+ case greaterThan
+ case greaterThanOrEqualTo
+ case lessThan
+ case lessThanOrEqualTo
+ case equalTo
+ case notEqualTo
+ case `false`
+ case `true`
+ case openBracket
+ case closeBracket
+ case numberConverter
+ case fractionConverter
+ case multiplierConveter
+ case percentageConverter
+ case unitConverter
+ case rateConverter
+ case dateConverter
+ case iso8601Converter
+ case timestampConverter
+ case timespanConverter
+ case laptimeConverter
+ case timezoneConverter
+ case roundingToDpConverter
+ case roundingUpConverter
+ case roundingConverter
+ case roundingDownConverter
+ case dateWordToday
+ case dateWordNow
+ case dateWordTomorrow
+ case dateWordYesterday
+ case dateWordDayOfWeek
+ case dateWordMonthOfYear
+ case numberTypeName
+ case fractionTypeName
+ case multiplierTypeName
+ case percentageTypeName
+ case rateTypeName
+ case timestampTypeName
+ case timespanTypeName
+ case laptimeTypeName
+ case dateTypeName
+ case iso8601TypeName
+ case decimalPlacesTypeName
+ case binaryTypeName
+ case hexTypeName
+ case conditionalKeywordIf
+ case conditionalKeywordThen
+ case conditionalKeywordElse
+ case conditionalKeywordUnless
+ case conditionalKeywordAnd
+ case conditionalKeywordOr
+ case unitMismatchError
+ case infinityError
+ case divideByZeroError
+ case imaginaryNumberError
+ case unsupportedUnitMultiplication
+ case unsupportedRate
+ case badDivision
+ case unknownError
+ case notSpecified
+ public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct Laptime {
+}
+public class LineCollection {
+ public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public var lineSheet: SoulverCore.LineSheet {
+ get
+ set
+ }
+ public var customization: SoulverCore.EngineCustomization
+ public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? {
+ get
+ set
+ }
+ public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? {
+ get
+ set
+ }
+ public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard)
+ public var currentPage: SoulverCore.PageIndex {
+ get
+ set
+ }
+ public func addPage(addStartingLine: Swift.Bool = true)
+ public func removeCurrentPage()
+ public func beginChanges()
+ public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line
+ public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression])
+ public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String)
+ public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String)
+ public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex)
+ public func removeLineAt(lineIndex: SoulverCore.LineIndex)
+ public subscript(index: Swift.Int) -> SoulverCore.Line {
+ get
+ set(newValue)
+ }
+ public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex)
+ public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex)
+ public func evaluateAll()
+ public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil)
+ public func evaluateExternallyLineAt(index: SoulverCore.LineIndex, evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference
+ @discardableResult
+ public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken
+ public func remove(observer: SoulverCore.LineCollectionObserverToken)
+ public var quickSum: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickAverage: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
+ public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
+ public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
+ public func clearStates()
+ public var lineCount: Swift.Int {
+ get
+ }
+ public var completeLineCount: Swift.Int {
+ get
+ }
+ public var hasMultiplePages: Swift.Bool {
+ get
+ }
+ public var pageCount: Swift.Int {
+ get
+ }
+ public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public var allIndexes: Foundation.IndexSet {
+ get
+ }
+ public var lastIndex: Swift.Int {
+ get
+ }
+ public var firstIndex: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public func linesInPage(pageIndex: SoulverCore.PageIndex) -> [SoulverCore.Line]
+ public var lines: [SoulverCore.Line] {
+ get
+ }
+ public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line]
+ public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList
+ public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token?
+ public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line?
+ public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line?
+ public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String?
+ @objc deinit
+}
+public typealias LineCollectionStateTicket = Swift.String
+extension LineCollection : Swift.CustomDebugStringConvertible {
+ public typealias MultiLineText = Swift.String
+ public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
+ convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ @objc deinit
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public enum EvaluationError : Swift.Error {
+ case UnitMismatch
+ case UnsupportedUnitMultiplication
+ case UnsupportedRate
+ case Infinity
+ case ImaginaryNumber
+ case DivideByZero
+ case BadDivision
+ case Other
+ public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+infix operator ~ : AdditionPrecedence
+public typealias CocoaUnit = Foundation.Dimension
+extension String {
+ public func foundationLocalized() -> Swift.String
+ public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
+}
+@_hasMissingDesignatedInitializers public class LineCollectionEnumerator {
+ public typealias EnumerationExpression = Swift.String
+ public typealias EnumerationResult = Swift.String
+ public enum ReferenceSubstituionPolicy {
+ case dontSubstitue
+ case formattedResult
+ case plainTextReference
+ case markdownLinkStyle
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public enum ResultFormatting {
+ case formatted
+ case raw
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public struct LineCollectionEnumerationOptions {
+ public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy
+ public var resultFormatting: SoulverCore.LineCollectionEnumerator.ResultFormatting
+ public init()
+ }
+ public typealias LineCollectionEnumerationHandler = ((SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: (SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: ((SoulverCore.LineIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult) -> T?)) -> T?
+ @objc deinit
+}
+public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
+ public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func < (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public let type: SoulverCore.TokenType
+ public let subType: SoulverCore.TokenSubType
+ public var stringValue: Swift.String
+ public var range: Foundation.NSRange
+ public var subtokens: SoulverCore.TokenList?
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Token : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class TokenList {
+ public var count: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public var tokens: [SoulverCore.Token] {
+ get
+ }
+ public var flattenedTokens: [SoulverCore.Token] {
+ get
+ }
+ public subscript(index: Swift.Int) -> SoulverCore.Token {
+ get
+ set(newValue)
+ }
+ public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token]
+ public func allTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func onlyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func anyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ @objc deinit
+}
+extension TokenList : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList {
+ public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
+ public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
+ public func tokenFor(characterIndex: Swift.Int) -> SoulverCore.Token?
+ public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token?
+}
+public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void
+public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
+public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
+public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
+extension TokenList {
+ public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
+ public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+}
+extension TokenList {
+ public func containsToken(token: SoulverCore.Token) -> Swift.Bool
+ public func scanForTokenWithType(_ tokenTypes: Swift.Set, ignoreParentsWithTypes parentTypes: Swift.Set? = nil) -> Swift.Bool
+}
+extension TokenList {
+ public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
+ public func typesPrecheck(_ types: Swift.Set) -> Swift.Bool
+}
+extension TokenList {
+ public static var EmptyList: SoulverCore.TokenList
+}
+public struct Timestamp {
+ public let decimalValue: Foundation.Decimal
+}
+public class VariableList : Swift.CustomDebugStringConvertible {
+ public init()
+ convenience public init(variables: [SoulverCore.Variable])
+ public func provideVariableDefinitionsVia(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult)
+ public func allVariables() -> [SoulverCore.Variable]
+ public func lineReferences() -> [SoulverCore.Variable]
+ public func isLineReference(variable: SoulverCore.Variable) -> Swift.Bool
+ public func variablesExludingLineReferences() -> [SoulverCore.Variable]
+ public func singleWordVariables() -> [SoulverCore.Variable]
+ public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable]
+ public func setVariable(_ variable: SoulverCore.Variable, isLineReference: Swift.Bool = false)
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct CalculationResult {
+ public let evaluationResult: SoulverCore.EvaluationResult
+ public let stringValue: Swift.String
+}
+extension CalculationResult {
+ public var isEmptyResult: Swift.Bool {
+ get
+ }
+}
+public let EmptyResult: SoulverCore.CalculationResult
+public struct ExportOptions {
+ public var plainTextSeparator: Swift.String
+ public var useUnformattedResults: Swift.Bool
+ public var substituteLineReferences: Swift.Bool
+ public var includeAnswers: Swift.Bool
+ public init()
+}
+@_hasMissingDesignatedInitializers public class LineCollectionExporter {
+ public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers public class ResultContextualMetadata {
+ public class func humanReadableMetadataFor(formattedResult: SoulverCore.CalculationResult, customization: SoulverCore.EngineCustomization) -> Swift.String?
+ @objc deinit
+}
+public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
+ public let locale: Foundation.Locale
+ public var unitSystem: SoulverCore.UnitMeasurementSystem
+ public var customVariables: [SoulverCore.Variable]
+ public var customUnits: [SoulverCore.CustomUnit] {
+ get
+ set
+ }
+ public var currencyUnits: [SoulverCore.UnitDescription] {
+ get
+ set
+ }
+ public var customSymbols: [SoulverCore.UnitSymbolReplacement] {
+ get
+ set
+ }
+ public var featureFlags: SoulverCore.EngineFeatureFlags
+ public init(locale: Foundation.Locale)
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var standard: SoulverCore.EngineCustomization {
+ get
+ }
+ public func convertTo(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+ public static func == (a: SoulverCore.EngineCustomization, b: SoulverCore.EngineCustomization) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension EngineCustomization {
+ public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+}
+extension EngineCustomization {
+ public func isOperator(text: Swift.String) -> Swift.Bool
+}
+public typealias Scalar = Swift.String
+@_hasMissingDesignatedInitializers public class LineCollectionArchiver {
+ public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?) throws -> SoulverCore.LineCollection
+ @objc deinit
+}
+public let UntokenizedLineReference: Swift.String
+public protocol RoutineOwner : AnyObject {
+ func routineCompleted(routine: SoulverCore.Routine)
+}
+public protocol Routine : AnyObject {
+ var routineOwner: SoulverCore.RoutineOwner? { get set }
+ func go()
+ func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+extension Routine {
+ public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+public typealias RawExpression = Swift.String
+infix operator *+* : AdditionPrecedence
+@_hasMissingDesignatedInitializers public class LineOperationsController {
+ public var baseVariables: SoulverCore.VariableList
+ public var externalEvaluators: [SoulverCore.ExternalEvaluator] {
+ get
+ set
+ }
+ public var beautifcationOptions: SoulverCore.ExpressionBeautificationOptions?
+ @objc deinit
+}
+extension NSNotification.Name {
+ public static let currenciesUpdateSucceeded: Foundation.Notification.Name
+ public static let currenciesUpdateFailed: Foundation.Notification.Name
+ public static let currenciesUpdateStarted: Foundation.Notification.Name
+}
+public enum CurrencySet : Swift.String {
+ case popular
+ case realWorld
+ case realWorldPlusCrypto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public struct CurrencySourceCredentials {
+ public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?)
+}
+@_hasMissingDesignatedInitializers public class CurrencyList {
+ public static let shared: SoulverCore.CurrencyList
+ public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials
+ public var defaultCurrencySet: SoulverCore.CurrencySet {
+ get
+ set
+ }
+ public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil)
+ public func saveCurrenciesTo(url: Foundation.URL)
+ public func loadCurrenciesFrom(url: Foundation.URL) throws
+ @objc deinit
+}
+public typealias PrivateUnicodeSymbol = Swift.String
+@_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator {
+ public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
+ @objc deinit
+}
+public typealias VariableName = Swift.String
+public typealias VariableValue = Swift.String
+public struct Variable : Swift.Codable {
+ public let name: SoulverCore.VariableName
+ public let value: SoulverCore.VariableValue?
+ public init(name: SoulverCore.VariableName, value: SoulverCore.VariableValue?)
+ public var declaringLineIndex: SoulverCore.LineIndex?
+ public var definition: SoulverCore.EvaluationResult?
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Variable : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public struct Datestamp {
+ public let date: Foundation.Date
+ public let hasTimeComponent: Swift.Bool
+ public var timezone: Foundation.TimeZone?
+}
+extension String {
+ public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
+ public func wrappedIn(_ character: Swift.String) -> Swift.String
+ public func bracketed() -> Swift.String
+ public func invertedCommad() -> Swift.String
+ public func spaced() -> Swift.String
+ public static var standardEasternEuropeanThousandsSeparator: Swift.String
+ public static var standardWhitespace: Swift.String
+ public static let standardDecimalPoint: Swift.String
+ public static let newlineSymbol: Swift.String
+ public var isNewline: Swift.Bool {
+ get
+ }
+ public var isSingleWhitespace: Swift.Bool {
+ get
+ }
+ public var isLowerecased: Swift.Bool {
+ get
+ }
+ public var isUppercased: Swift.Bool {
+ get
+ }
+ public var isMixedCase: Swift.Bool {
+ get
+ }
+ public func replaceCharactersFromSet(characterSet: Foundation.CharacterSet, replacementString: Swift.String = "") -> Swift.String
+ public var whitespaceStandardized: Swift.String {
+ get
+ }
+ public var whitespaceRemoved: Swift.String {
+ get
+ }
+ public var whitespaceTrimmed: Swift.String {
+ get
+ }
+}
+extension String {
+ public var completeStringRange: Foundation.NSRange {
+ get
+ }
+ public var completeRange: Swift.Range {
+ get
+ }
+ public var dirtyWordCount: Swift.Int {
+ get
+ }
+ public var dirtyLineCount: Swift.Int {
+ get
+ }
+ public var newLineCount: Swift.Int {
+ get
+ }
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func removingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func removingSuffix(_ suffix: Swift.String) -> Swift.String
+ public func addingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func addingSuffix(_ suffix: Swift.String) -> Swift.String
+}
+extension String {
+ public func enumerateLinguisticTags(invoking body: @escaping (Swift.String, Foundation.NSRange) -> Swift.Void)
+ public var words: [Swift.String] {
+ get
+ }
+ public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
+ public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public var lemma: Swift.String? {
+ get
+ }
+ public var lemmas: [Swift.String] {
+ get
+ }
+}
+extension String {
+ public func containsPattern(_ regex: Swift.String) -> Swift.Bool
+ public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
+ public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
+ public func erasingPattern(_ pattern: Swift.String) -> Swift.String
+ public var trailingDigit: Swift.Int? {
+ get
+ }
+}
+extension String {
+ public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
+ public func rangesOf(string: Swift.String) -> [Swift.Range]
+ public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
+}
+public enum LineStyle : Swift.Int {
+ case normal
+ case heading
+ case label
+ case comment
+ public typealias RawValue = Swift.Int
+ public init?(rawValue: Swift.Int)
+ public var rawValue: Swift.Int {
+ get
+ }
+}
+public class LineStyler {
+ public static let MARKDOWN_HEADING_CHARACTER: Swift.String
+ public static let HEADING_INDICATOR: Swift.String
+ public static let COMMENT_INDICATOR: Swift.String
+ public static let LABEL_INDICATOR: Swift.String
+ public init()
+ public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle
+ public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String
+ public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public var defaultLabel: Swift.String {
+ get
+ }
+ @objc deinit
+}
+extension Decimal {
+ public var doubleValue: Swift.Double {
+ get
+ }
+}
+extension Token {
+ public var number: Foundation.Decimal? {
+ get
+ }
+ public var scalar: SoulverCore.Scalar? {
+ get
+ }
+ public var variable: SoulverCore.Variable? {
+ get
+ }
+ public var isLineReference: Swift.Bool {
+ get
+ }
+}
+extension NumberFormatter {
+ open func string(from number: Foundation.Decimal) -> Swift.String?
+}
+public class Calculator {
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var customization: SoulverCore.EngineCustomization {
+ get
+ }
+ public init(customization: SoulverCore.EngineCustomization)
+ public func calculate(_ expression: SoulverCore.RawExpression, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult
+ @objc deinit
+}
+indirect public enum EvaluationResult {
+ case rawString(Swift.String)
+ case decimal(Foundation.Decimal)
+ case percentage(SoulverCore.Percentage)
+ case fraction(SoulverCore.Fraction)
+ case multiplier(SoulverCore.Multiplier)
+ case boolean(Swift.Bool)
+ case unitExpression(SoulverCore.UnitExpression)
+ case rate(SoulverCore.UnitRate)
+ case date(SoulverCore.Datestamp)
+ case iso8601(SoulverCore.iso8601)
+ case timestamp(SoulverCore.Timestamp)
+ case timespan(SoulverCore.Timespan)
+ case laptime(SoulverCore.Laptime)
+ case error(SoulverCore.EvaluationError)
+ case variable(SoulverCore.Variable)
+ case none
+ public var equivalentTokenType: SoulverCore.TokenType {
+ get
+ }
+}
+public protocol TokenMetadata {
+ func safeCopy() -> SoulverCore.TokenMetadata
+}
+public struct Fraction {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
+public struct Multiplier {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class LineCollectionCompletions {
+ public class func completionsFor(textFragment: Swift.String, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String]
+ @objc deinit
+}
+public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case before
+ case beforeWithSpace
+ case after
+ case afterWithSpace
+ public var description: Swift.String {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition]
+ public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] {
+ get
+ }
+}
+public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public let originalSymbol: Swift.String
+ public let replacementSymbol: Swift.String
+ public let position: SoulverCore.UnitSymbolReplacementPosition
+ public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before)
+ public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement]
+ public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
+ public let name: Swift.String
+ public let definition: Swift.Double
+ public let equivalentUnit: SoulverCore.UnitIdentifier
+ public let legacyDefinition: Swift.String?
+ public init(name: Swift.String, definition: Swift.Double, equivalentUnit: SoulverCore.UnitIdentifier)
+ public init(from decoder: Swift.Decoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct Percentage {
+ public let decimalValue: Foundation.Decimal
+}
+public typealias ExternalEvaluatorSymbol = Swift.String
+public protocol ExternalEvaluator {
+ var symbol: SoulverCore.ExternalEvaluatorSymbol { get }
+ func evaluate(_ expression: SoulverCore.RawExpression) -> SoulverCore.CalculationResult
+}
+@_hasMissingDesignatedInitializers public class LineSection : Swift.Codable {
+ public var lines: [SoulverCore.Line]
+ @objc deinit
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public typealias UID = Swift.String
+public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Swift.CustomStringConvertible {
+ public let UID: SoulverCore.UID
+ public init(UID: SoulverCore.UID)
+ public var description: Swift.String {
+ get
+ }
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct iso8601 {
+ public let datestamp: SoulverCore.Datestamp
+}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
+public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift.Equatable {
+ case customaryUS
+ case imperial
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LocaleProvider {
+ public class func localeWith(identifier: Swift.String) -> Foundation.Locale
+ @objc deinit
+}
+public enum SIThreshold : Swift.String {
+ case septillion
+ case sextillion
+ case quintillion
+ case quadrillion
+ case trillion
+ case billion
+ case million
+ case hundredThousand
+ case thousand
+ case hecto
+ case deca
+ case centi
+ case milli
+ case micro
+ case nano
+ case pico
+ case femto
+ case atto
+ case zetto
+ case yocto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public enum ApparentLineType {
+ case regular
+ case comment
+ case variableDeclaration
+ public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public enum LineCalculationBehaviour : Swift.String, Swift.Codable {
+ case evaluatesExpression
+ case sumsLinesAbove
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public class Line : Swift.Codable {
+ public var expression: SoulverCore.RawExpression {
+ get
+ set
+ }
+ public var behaviour: SoulverCore.LineCalculationBehaviour
+ public var skipStatistics: Swift.Bool
+ public var lineReference: SoulverCore.LineReference?
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var result: SoulverCore.CalculationResult?
+ public var parsedExpression: SoulverCore.TokenList?
+ public var apparentLineType: SoulverCore.ApparentLineType?
+ public var lineIndex: SoulverCore.LineIndex?
+ public var explicitDependencies: Foundation.IndexSet?
+ public var variableEnvironment: SoulverCore.VariableList?
+ public var rawResult: Swift.String {
+ get
+ }
+ public var formattedResult: Swift.String {
+ get
+ }
+ convenience public init(_ expression: SoulverCore.RawExpression)
+ public init()
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ @objc deinit
+}
+extension Line {
+ public var isSubtotal: Swift.Bool {
+ get
+ }
+ public var isHeading: Swift.Bool {
+ get
+ }
+}
+extension Line {
+ public var declaredVariable: SoulverCore.Variable? {
+ get
+ }
+}
+extension Line : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var EmptyLine: SoulverCore.Line {
+ get
+ }
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Line : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension Line {
+ public var includesLineReferences: Swift.Bool {
+ get
+ }
+}
+extension UnitLength {
+ public static let pixel: Foundation.UnitLength
+ public static let em: Foundation.UnitLength
+ public static let point: Foundation.UnitLength
+}
+@objc @_inheritsConvenienceInitializers final public class UnitCurrency : Foundation.Dimension {
+ convenience public init(symbol: Swift.String, coefficient: Swift.Double)
+ public static let usd: SoulverCore.UnitCurrency
+ public static let aud: SoulverCore.UnitCurrency
+ public static let eur: SoulverCore.UnitCurrency
+ @objc override final public class func baseUnit() -> SoulverCore.UnitCurrency
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitComputerStorage : Foundation.Dimension {
+ public static let bytes: SoulverCore.UnitComputerStorage
+ public static let bits: SoulverCore.UnitComputerStorage
+ public static let nibbles: SoulverCore.UnitComputerStorage
+ public static let yottabytes: SoulverCore.UnitComputerStorage
+ public static let zettabytes: SoulverCore.UnitComputerStorage
+ public static let exabytes: SoulverCore.UnitComputerStorage
+ public static let petabytes: SoulverCore.UnitComputerStorage
+ public static let terabytes: SoulverCore.UnitComputerStorage
+ public static let gigabytes: SoulverCore.UnitComputerStorage
+ public static let megabytes: SoulverCore.UnitComputerStorage
+ public static let kilobytes: SoulverCore.UnitComputerStorage
+ public static let yottabits: SoulverCore.UnitComputerStorage
+ public static let zettabits: SoulverCore.UnitComputerStorage
+ public static let exabits: SoulverCore.UnitComputerStorage
+ public static let petabits: SoulverCore.UnitComputerStorage
+ public static let terabits: SoulverCore.UnitComputerStorage
+ public static let gigabits: SoulverCore.UnitComputerStorage
+ public static let megabits: SoulverCore.UnitComputerStorage
+ public static let kilobits: SoulverCore.UnitComputerStorage
+ public static let yobibytes: SoulverCore.UnitComputerStorage
+ public static let zebibytes: SoulverCore.UnitComputerStorage
+ public static let exbibytes: SoulverCore.UnitComputerStorage
+ public static let pebibytes: SoulverCore.UnitComputerStorage
+ public static let tebibytes: SoulverCore.UnitComputerStorage
+ public static let gibibytes: SoulverCore.UnitComputerStorage
+ public static let mebibytes: SoulverCore.UnitComputerStorage
+ public static let kibibytes: SoulverCore.UnitComputerStorage
+ public static let yobibits: SoulverCore.UnitComputerStorage
+ public static let zebibits: SoulverCore.UnitComputerStorage
+ public static let exbibits: SoulverCore.UnitComputerStorage
+ public static let pebibits: SoulverCore.UnitComputerStorage
+ public static let tebibits: SoulverCore.UnitComputerStorage
+ public static let gibibits: SoulverCore.UnitComputerStorage
+ public static let mebibits: SoulverCore.UnitComputerStorage
+ public static let kibibits: SoulverCore.UnitComputerStorage
+ @objc override final public class func baseUnit() -> SoulverCore.UnitComputerStorage
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitDataTransfer : Foundation.Dimension {
+ public static let bytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let bitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibitsPerSecond: SoulverCore.UnitDataTransfer
+ @objc override final public class func baseUnit() -> SoulverCore.UnitDataTransfer
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class NullUnit : Foundation.Dimension {
+ @objc override final public class func baseUnit() -> Self
+ @objc deinit
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+}
+public typealias LineIndex = Swift.Int
+public typealias PageIndex = Swift.Int
+@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable {
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct Timespan {
+ public let dateComponents: Foundation.DateComponents
+}
+public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public var calendarCalculations: Swift.Bool
+ public var units: Swift.Bool
+ public var wordFunctions: Swift.Bool
+ public var variableDeclarations: Swift.Bool
+ public var bracketComments: Swift.Bool
+ public var inAmbiguityPreferSomethingToNothing: Swift.Bool
+ public var leftToRightOperatorEvaluation: Swift.Bool
+ public init()
+ public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Int {
+ public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
+}
+public struct UnitRate {
+ public let value: Foundation.Decimal
+ public let ofUnit: SoulverCore.CocoaUnit?
+ public let perUnit: SoulverCore.CocoaUnit
+}
+extension UnitRate : Swift.Comparable {
+ public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
+ public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
+}
+extension UnitRate : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension UnitExpression : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case metersPerSecondSquared
+ case gravity
+ case degrees
+ case arcMinutes
+ case arcSeconds
+ case radians
+ case gradians
+ case revolutions
+ case squareMegameters
+ case squareKilometers
+ case squareMeters
+ case squareCentimeters
+ case squareMillimeters
+ case squareMicrometers
+ case squareNanometers
+ case squareInches
+ case squareFeet
+ case squareYards
+ case squareMiles
+ case acres
+ case ares
+ case hectares
+ case gramsPerLiter
+ case milligramsPerDeciliter
+ case partsPerMillion
+ case picoseconds
+ case nanoseconds
+ case microseconds
+ case milliseconds
+ case seconds
+ case minutes
+ case hours
+ case days
+ case weekdays
+ case weeks
+ case months
+ case years
+ case coulombs
+ case megaampereHours
+ case kiloampereHours
+ case ampereHours
+ case milliampereHours
+ case microampereHours
+ case megaamperes
+ case kiloamperes
+ case amperes
+ case milliamperes
+ case microamperes
+ case megavolts
+ case kilovolts
+ case volts
+ case millivolts
+ case microvolts
+ case megaohms
+ case kiloohms
+ case ohms
+ case milliohms
+ case microohms
+ case joules
+ case kilojoules
+ case megajoules
+ case gigajoules
+ case kilocalories
+ case calories
+ case wattSeconds
+ case wattMinutes
+ case wattHours
+ case kilowattHours
+ case megawattHours
+ case gigawattHours
+ case terawattHours
+ case terahertz
+ case gigahertz
+ case megahertz
+ case kilohertz
+ case hertz
+ case millihertz
+ case microhertz
+ case nanohertz
+ case litersPer100Kilometers
+ case milesPerImperialGallon
+ case milesPerGallon
+ case megameters
+ case kilometers
+ case hectometers
+ case decameters
+ case meters
+ case decimeters
+ case centimeters
+ case millimeters
+ case micrometers
+ case nanometers
+ case picometers
+ case inches
+ case feet
+ case yards
+ case miles
+ case scandinavianMiles
+ case lightyears
+ case nauticalMiles
+ case fathoms
+ case furlongs
+ case parsecs
+ case lux
+ case kilograms
+ case grams
+ case decigrams
+ case centigrams
+ case milligrams
+ case micrograms
+ case nanograms
+ case picograms
+ case ounces
+ case pounds
+ case stones
+ case metricTons
+ case shortTons
+ case carats
+ case ouncesTroy
+ case slugs
+ case terawatts
+ case gigawatts
+ case megawatts
+ case kilowatts
+ case watts
+ case milliwatts
+ case microwatts
+ case nanowatts
+ case picowatts
+ case femtowatts
+ case horsepower
+ case newtonsPerMetersSquared
+ case gigapascals
+ case megapascals
+ case kilopascals
+ case hectopascals
+ case inchesOfMercury
+ case bars
+ case millibars
+ case millimetersOfMercury
+ case poundsForcePerSquareInch
+ case metersPerSecond
+ case kilometersPerHour
+ case milesPerHour
+ case knots
+ case kelvin
+ case celsius
+ case fahrenheit
+ case megaliters
+ case kiloliters
+ case liters
+ case milliliters
+ case cubicKilometers
+ case cubicMeters
+ case cubicCentimeters
+ case cubicMillimeters
+ case cubicInches
+ case cubicFeet
+ case cubicYards
+ case cubicMiles
+ case acreFeet
+ case bushels
+ case teaspoons
+ case tablespoons
+ case fluidOunces
+ case cups
+ case pints
+ case quarts
+ case gallons
+ case imperialTeaspoons
+ case imperialTablespoons
+ case imperialFluidOunces
+ case imperialPints
+ case imperialQuarts
+ case imperialGallons
+ case metricCups
+ case bytes
+ case bits
+ case yottabytes
+ case zettabytes
+ case exabytes
+ case petabytes
+ case terabytes
+ case gigabytes
+ case megabytes
+ case kilobytes
+ case yottabits
+ case zettabits
+ case exabits
+ case petabits
+ case terabits
+ case gigabits
+ case megabits
+ case kilobits
+ case yobibytes
+ case zebibytes
+ case exbibytes
+ case pebibytes
+ case tebibytes
+ case gibibytes
+ case mebibytes
+ case kibibytes
+ case yobibits
+ case zebibits
+ case exbibits
+ case pebibits
+ case tebibits
+ case gibibits
+ case mebibits
+ case kibibits
+ case pixel
+ case em
+ case point
+ case bytesPerSecond
+ case bitsPerSecond
+ case yottabytesPerSecond
+ case zettabytesPerSecond
+ case exabytesPerSecond
+ case petabytesPerSecond
+ case terabytesPerSecond
+ case gigabytesPerSecond
+ case megabytesPerSecond
+ case kilobytesPerSecond
+ case yottabitsPerSecond
+ case zettabitsPerSecond
+ case exabitsPerSecond
+ case petabitsPerSecond
+ case terabitsPerSecond
+ case gigabitsPerSecond
+ case megabitsPerSecond
+ case kilobitsPerSecond
+ case yobibytesPerSecond
+ case zebibytesPerSecond
+ case exbibytesPerSecond
+ case pebibytesPerSecond
+ case tebibytesPerSecond
+ case gibibytesPerSecond
+ case mebibytesPerSecond
+ case kibibytesPerSecond
+ case yobibitsPerSecond
+ case zebibitsPerSecond
+ case exbibitsPerSecond
+ case pebibitsPerSecond
+ case tebibitsPerSecond
+ case gibibitsPerSecond
+ case mebibitsPerSecond
+ case kibibitsPerSecond
+ case usd
+ case aud
+ case eur
+ case undefined
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitIdentifier]
+ public static var allCases: [SoulverCore.UnitIdentifier] {
+ get
+ }
+}
+extension UnitIdentifier {
+ public var unitType: SoulverCore.UnitType {
+ get
+ }
+}
+public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable {
+ case length
+ case mass
+ case duration
+ case currency
+ case volume
+ case speed
+ case acceleration
+ case temperature
+ case concentrationMass
+ case dispersion
+ case dataStorage
+ case dataTransfer
+ case area
+ case frequency
+ case angle
+ case illuminance
+ case energy
+ case power
+ case pressure
+ case fuelEfficiency
+ case electricCurrent
+ case electricCharge
+ case electricPotential
+ case electricResistance
+ case other
+ public var label: Swift.String {
+ get
+ }
+ public var baseUnitIdentifier: SoulverCore.UnitIdentifier {
+ get
+ }
+ public var associatedOtherUnits: [SoulverCore.UnitIdentifier] {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public var rawValue: Swift.String {
+ get
+ }
+ public init?(rawValue: Swift.String)
+ public typealias AllCases = [SoulverCore.UnitType]
+ public static var allCases: [SoulverCore.UnitType] {
+ get
+ }
+}
+public func cocoaUnitFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.CocoaUnit
+public func unitIdentifierFor(cocoaUnit: SoulverCore.CocoaUnit) -> SoulverCore.UnitIdentifier?
+public func motherUnitIdentifierFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.UnitIdentifier
+@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
+ @objc override dynamic public var isAsynchronous: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isExecuting: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isFinished: Swift.Bool {
+ @objc get
+ }
+ public var state: SoulverCore.AsynchronousOperation.State {
+ get
+ set
+ }
+ public enum State : Swift.String {
+ case ready
+ case executing
+ case finished
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ }
+ @objc override dynamic open func start()
+ @objc override dynamic open func main()
+ @objc override dynamic public init()
+ @objc deinit
+}
+public struct UnitExpression {
+ public let value: Foundation.Decimal
+ public let unit: SoulverCore.CocoaUnit
+}
+extension UnitExpression : Swift.Comparable {
+ public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+ public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+}
+public typealias TokenIndex = Swift.Int
+public struct TokenIndexPath : Swift.Equatable {
+ public let tokenIndex: SoulverCore.TokenIndex
+ public let lineIndex: SoulverCore.LineIndex
+ public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
+ public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
+}
+public struct NotationPreferences : Swift.Equatable {
+ public enum NotationStyle {
+ case auto
+ case on
+ case off
+ public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public var notationStyle: SoulverCore.NotationPreferences.NotationStyle
+ public var upperNotationThreshold: SoulverCore.SIThreshold
+ public var lowerNotationThreshold: SoulverCore.SIThreshold
+ public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
+}
+public struct FormattingPreferences : Swift.Codable, Swift.Equatable {
+ public static var maximumDp: Swift.Int
+ public var dp: Swift.Int
+ public var thousandsSeparatorDisabled: Swift.Bool
+ public var currencyFormattingDisabled: Swift.Bool
+ public var implicitUnitsDisabled: Swift.Bool
+ public var notationPreferences: SoulverCore.NotationPreferences
+ public var referencesTakeFormattedValue: Swift.Bool
+ public var fractionizeWherePossible: Swift.Bool
+ public init()
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool
+}
+public struct ExpressionBeautificationOptions {
+ public var quickOperators: Swift.Bool
+ public var autoThousandsSeparators: Swift.Bool
+ public var padStandardOperators: Swift.Bool
+ public var fancyTimes: Swift.Bool
+ public var fancyMinus: Swift.Bool
+ public var collapseSpaces: Swift.Bool
+ public var formatsSlashCommentsWithSpaces: Swift.Bool
+ public static var defaults: SoulverCore.ExpressionBeautificationOptions {
+ get
+ }
+ public init()
+}
+extension Array where Element : Swift.Equatable {
+ public func doesNotContain(_ element: Element) -> Swift.Bool
+}
+extension Array {
+ public subscript(safe index: Swift.Array.Index) -> Element? {
+ get
+ }
+ public var lastIndex: Swift.Int? {
+ get
+ }
+ public func isValid(index: Swift.Int) -> Swift.Bool
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public mutating func trim(where predicate: (Element) throws -> Swift.Bool)
+ public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index)
+}
+extension IndexSet {
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func isJust(_ integer: Swift.Int) -> Swift.Bool
+ public var onlyFirst: Foundation.IndexSet {
+ get
+ }
+ public var removingFirstIndex: Foundation.IndexSet {
+ get
+ }
+ public var smartDescription: Swift.String {
+ get
+ }
+ public var secondLastIndex: Swift.Int? {
+ get
+ }
+}
+public struct UnitDescription : Swift.Hashable, Swift.Codable {
+ public init(unit: SoulverCore.CocoaUnit, symbol: Swift.String, aliases: [Swift.String])
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool
+}
+extension Dimension {
+ public var svUnitType: SoulverCore.UnitType {
+ get
+ }
+}
+extension SoulverCore.TokenType : Swift.Equatable {}
+extension SoulverCore.TokenType : Swift.Hashable {}
+extension SoulverCore.TokenSubType : Swift.Equatable {}
+extension SoulverCore.TokenSubType : Swift.Hashable {}
+extension SoulverCore.EvaluationError : Swift.Equatable {}
+extension SoulverCore.EvaluationError : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.Equatable {}
+extension SoulverCore.CurrencySet : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.RawRepresentable {}
+extension SoulverCore.LineStyle : Swift.Equatable {}
+extension SoulverCore.LineStyle : Swift.Hashable {}
+extension SoulverCore.LineStyle : Swift.RawRepresentable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Equatable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Hashable {}
+extension SoulverCore.UnitMeasurementSystem : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.Equatable {}
+extension SoulverCore.SIThreshold : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.RawRepresentable {}
+extension SoulverCore.ApparentLineType : Swift.Equatable {}
+extension SoulverCore.ApparentLineType : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Equatable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.RawRepresentable {}
+extension SoulverCore.UnitIdentifier : Swift.Equatable {}
+extension SoulverCore.UnitIdentifier : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.Equatable {}
+extension SoulverCore.UnitType : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.RawRepresentable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Equatable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Hashable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.RawRepresentable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Equatable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Hashable {}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/module.modulemap b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/module.modulemap
new file mode 100644
index 000000000..2ed647f59
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/module.modulemap
@@ -0,0 +1,11 @@
+framework module SoulverCore {
+ umbrella header "SoulverCore.h"
+
+ export *
+ module * { export * }
+}
+
+module SoulverCore.Swift {
+ header "SoulverCore-Swift.h"
+ requires objc
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore
new file mode 100755
index 000000000..d9a59f1ce
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/Cities.json
new file mode 100644
index 000000000..2d5b33507
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/Cities.json
@@ -0,0 +1,3566 @@
+[
+ {
+ "identifier": "shanghai",
+ "name": "Shanghai",
+ "population": "22,315,474",
+ "elevation": 12,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "istanbul",
+ "name": "Istanbul",
+ "population": "14,804,116",
+ "elevation": 39,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "buenos aires",
+ "name": "Buenos Aires",
+ "population": "13,076,300",
+ "elevation": 31,
+ "timezone_id": "America/Argentina/Buenos_Aires"
+ },
+ {
+ "identifier": "mumbai",
+ "name": "Mumbai",
+ "population": "12,691,836",
+ "elevation": 8,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "mexico city",
+ "name": "Mexico City",
+ "population": "12,294,193",
+ "elevation": 2240,
+ "timezone_id": "America/Mexico_City"
+ },
+ {
+ "identifier": "beijing",
+ "name": "Beijing",
+ "population": "11,716,620",
+ "elevation": 49,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "karachi",
+ "name": "Karachi",
+ "population": "11,624,219",
+ "elevation": 8,
+ "timezone_id": "Asia/Karachi"
+ },
+ {
+ "identifier": "tianjin",
+ "name": "Tianjin",
+ "population": "11,090,314",
+ "elevation": 11,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "guangzhou",
+ "name": "Guangzhou",
+ "population": "11,071,424",
+ "elevation": 15,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "delhi",
+ "name": "Delhi",
+ "population": "10,927,986",
+ "elevation": 227,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "moscow",
+ "name": "Moskau",
+ "population": "10,381,222",
+ "elevation": 144,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "shenzhen",
+ "name": "Shenzhen",
+ "population": "10,358,381",
+ "elevation": 4,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "dhaka",
+ "name": "Dhaka",
+ "population": "10,356,500",
+ "elevation": 23,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "seoul",
+ "name": "Seoul",
+ "population": "10,349,312",
+ "elevation": 38,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "sao paulo",
+ "name": "Sao Paulo",
+ "population": "10,021,295",
+ "elevation": 769,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "wuhan",
+ "name": "Wuhan",
+ "population": "9,785,388",
+ "elevation": 20,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "lagos",
+ "name": "Lagos",
+ "population": "9,000,000",
+ "elevation": 11,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "jakarta",
+ "name": "Jakarta",
+ "population": "8,540,121",
+ "elevation": 16,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "tokyo",
+ "name": "Tokio",
+ "population": "8,336,599",
+ "elevation": 44,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "new york",
+ "name": "New York",
+ "population": "8,175,133",
+ "elevation": 57,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "dongguan",
+ "name": "Dongguan",
+ "population": "8,000,000",
+ "elevation": 1,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "taipei",
+ "name": "Taipei",
+ "population": "7,871,900",
+ "elevation": 10,
+ "timezone_id": "Asia/Taipei"
+ },
+ {
+ "identifier": "kinshasa",
+ "name": "Kinshasa",
+ "population": "7,785,965",
+ "elevation": 281,
+ "timezone_id": "Africa/Kinshasa"
+ },
+ {
+ "identifier": "cairo",
+ "name": "Kairo",
+ "population": "7,734,614",
+ "elevation": 23,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "bogota",
+ "name": "Bogota",
+ "population": "7,674,366",
+ "elevation": 2582,
+ "timezone_id": "America/Bogota"
+ },
+ {
+ "identifier": "london",
+ "name": "London",
+ "population": "7,556,900",
+ "elevation": 25,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "chongqing",
+ "name": "Chongqing",
+ "population": "7,457,600",
+ "elevation": 225,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "chengdu",
+ "name": "Chengdu",
+ "population": "7,415,590",
+ "elevation": 499,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "baghdad",
+ "name": "Baghdad",
+ "population": "7,216,000",
+ "elevation": 41,
+ "timezone_id": "Asia/Baghdad"
+ },
+ {
+ "identifier": "nanjing",
+ "name": "Nanjing",
+ "population": "7,165,292",
+ "elevation": 22,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "tehran",
+ "name": "Teheran",
+ "population": "7,153,309",
+ "elevation": 1178,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "nanchong",
+ "name": "Nanchong",
+ "population": "7,150,000",
+ "elevation": 287,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "hong kong",
+ "name": "Hong Kong",
+ "population": "7,012,738",
+ "elevation": 60,
+ "timezone_id": "Asia/Hong_Kong"
+ },
+ {
+ "identifier": "xi'an",
+ "name": "Xi'an",
+ "population": "6,501,190",
+ "elevation": 416,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "rio de janeiro",
+ "name": "Rio de Janeiro",
+ "population": "6,023,699",
+ "elevation": 6,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "bangkok",
+ "name": "Bangkok",
+ "population": "5,104,476",
+ "elevation": 12,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "bengaluru",
+ "name": "Bengaluru",
+ "population": "5,104,047",
+ "elevation": 914,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "saint petersburg",
+ "name": "Sankt Petersburg",
+ "population": "5,028,000",
+ "elevation": 11,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "santiago",
+ "name": "Santiago",
+ "population": "4,837,295",
+ "elevation": 556,
+ "timezone_id": "America/Santiago"
+ },
+ {
+ "identifier": "kolkata",
+ "name": "Kalkutta",
+ "population": "4,631,392",
+ "elevation": 11,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "sydney",
+ "name": "Sydney",
+ "population": "4,627,345",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "yangon",
+ "name": "Yangon",
+ "population": "4,477,638",
+ "elevation": 30,
+ "timezone_id": "Asia/Yangon"
+ },
+ {
+ "identifier": "chennai",
+ "name": "Chennai",
+ "population": "4,328,063",
+ "elevation": 14,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "melbourne",
+ "name": "Melbourne",
+ "population": "4,246,375",
+ "elevation": 58,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "riyadh",
+ "name": "Riad",
+ "population": "4,205,961",
+ "elevation": 612,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "los angeles",
+ "name": "Los Angeles",
+ "population": "3,971,883",
+ "elevation": 96,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "chittagong",
+ "name": "Chittagong",
+ "population": "3,920,222",
+ "elevation": 15,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "alexandria",
+ "name": "Alexandria",
+ "population": "3,811,516",
+ "elevation": 9,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "ahmedabad",
+ "name": "Ahmedabad",
+ "population": "3,719,710",
+ "elevation": 56,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "busan",
+ "name": "Busan",
+ "population": "3,678,555",
+ "elevation": 26,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "abidjan",
+ "name": "Abidjan",
+ "population": "3,677,115",
+ "elevation": 76,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "kano",
+ "name": "Kano",
+ "population": "3,626,068",
+ "elevation": 484,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hyderabad",
+ "name": "Haiderabad",
+ "population": "3,597,816",
+ "elevation": 515,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "yokohama",
+ "name": "Yokohama",
+ "population": "3,574,443",
+ "elevation": 21,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "ibadan",
+ "name": "Ibadan",
+ "population": "3,565,108",
+ "elevation": 181,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "singapore",
+ "name": "Singapur",
+ "population": "3,547,809",
+ "elevation": 23,
+ "timezone_id": "Asia/Singapore"
+ },
+ {
+ "identifier": "ankara",
+ "name": "Ankara",
+ "population": "3,517,182",
+ "elevation": 874,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "ho chi minh city",
+ "name": "Ho-Chi-Minh-Stadt",
+ "population": "3,467,331",
+ "elevation": 7,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "cape town",
+ "name": "Kapstadt",
+ "population": "3,433,441",
+ "elevation": 25,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "berlin",
+ "name": "Berlin",
+ "population": "3,426,354",
+ "elevation": 43,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "madrid",
+ "name": "Madrid",
+ "population": "3,255,944",
+ "elevation": 665,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pyongyang",
+ "name": "Pjöngjang",
+ "population": "3,222,000",
+ "elevation": 43,
+ "timezone_id": "Asia/Pyongyang"
+ },
+ {
+ "identifier": "casablanca",
+ "name": "Casablanca",
+ "population": "3,144,909",
+ "elevation": 27,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "zhongshan",
+ "name": "Zhongshan",
+ "population": "3,121,275",
+ "elevation": 14,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "durban",
+ "name": "Durban",
+ "population": "3,120,282",
+ "elevation": 21,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "kabul",
+ "name": "Kabul",
+ "population": "3,043,532",
+ "elevation": 1798,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "urumqi",
+ "name": "Urumqi",
+ "population": "3,029,372",
+ "elevation": 862,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "caracas",
+ "name": "Caracas",
+ "population": "3,000,000",
+ "elevation": 887,
+ "timezone_id": "America/Caracas"
+ },
+ {
+ "identifier": "dubai",
+ "name": "Dubai",
+ "population": "2,956,587",
+ "elevation": 24,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "jeddah",
+ "name": "Jeddah",
+ "population": "2,867,446",
+ "elevation": 22,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "kyiv",
+ "name": "Kiew",
+ "population": "2,797,553",
+ "elevation": 187,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "luanda",
+ "name": "Luanda",
+ "population": "2,776,168",
+ "elevation": 73,
+ "timezone_id": "Africa/Luanda"
+ },
+ {
+ "identifier": "quezon city",
+ "name": "Quezon City",
+ "population": "2,761,720",
+ "elevation": 49,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "addis ababa",
+ "name": "Addis Abeba",
+ "population": "2,757,729",
+ "elevation": 2405,
+ "timezone_id": "Africa/Addis_Ababa"
+ },
+ {
+ "identifier": "nairobi",
+ "name": "Nairobi",
+ "population": "2,750,547",
+ "elevation": 1684,
+ "timezone_id": "Africa/Nairobi"
+ },
+ {
+ "identifier": "chicago",
+ "name": "Chicago",
+ "population": "2,720,546",
+ "elevation": 180,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "salvador",
+ "name": "Salvador",
+ "population": "2,711,840",
+ "elevation": 10,
+ "timezone_id": "America/Bahia"
+ },
+ {
+ "identifier": "dar es salaam",
+ "name": "Daressalam",
+ "population": "2,698,652",
+ "elevation": 24,
+ "timezone_id": "Africa/Dar_es_Salaam"
+ },
+ {
+ "identifier": "toronto",
+ "name": "Toronto",
+ "population": "2,600,000",
+ "elevation": 175,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "osaka",
+ "name": "Osaka",
+ "population": "2,592,413",
+ "elevation": 24,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "mogadishu",
+ "name": "Mogadischu",
+ "population": "2,587,183",
+ "elevation": 12,
+ "timezone_id": "Africa/Mogadishu"
+ },
+ {
+ "identifier": "izmir",
+ "name": "Izmir",
+ "population": "2,500,603",
+ "elevation": 122,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "dakar",
+ "name": "Dakar",
+ "population": "2,476,400",
+ "elevation": 12,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "giza",
+ "name": "Gizeh",
+ "population": "2,443,203",
+ "elevation": 26,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "fortaleza",
+ "name": "Fortaleza",
+ "population": "2,400,000",
+ "elevation": 18,
+ "timezone_id": "America/Fortaleza"
+ },
+ {
+ "identifier": "surabaya",
+ "name": "Surabaya",
+ "population": "2,374,658",
+ "elevation": 8,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "belo horizonte",
+ "name": "Belo Horizonte",
+ "population": "2,373,224",
+ "elevation": 872,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "rome",
+ "name": "Rom",
+ "population": "2,318,895",
+ "elevation": 52,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "mashhad",
+ "name": "Mashhad",
+ "population": "2,307,177",
+ "elevation": 1003,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "brooklyn",
+ "name": "Brooklyn",
+ "population": "2,300,664",
+ "elevation": 18,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "houston",
+ "name": "Houston",
+ "population": "2,296,224",
+ "elevation": 30,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "queens",
+ "name": "Queens",
+ "population": "2,272,771",
+ "elevation": 13,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brasilia",
+ "name": "Brasilia",
+ "population": "2,207,718",
+ "elevation": 1136,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "santo domingo",
+ "name": "Santo Domingo",
+ "population": "2,201,941",
+ "elevation": 9,
+ "timezone_id": "America/Santo_Domingo"
+ },
+ {
+ "identifier": "nagoya",
+ "name": "Nagoya",
+ "population": "2,191,279",
+ "elevation": 23,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "brisbane",
+ "name": "Brisbane",
+ "population": "2,189,878",
+ "elevation": 27,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "havana",
+ "name": "Havanna",
+ "population": "2,163,824",
+ "elevation": 41,
+ "timezone_id": "America/Havana"
+ },
+ {
+ "identifier": "paris",
+ "name": "Paris",
+ "population": "2,138,551",
+ "elevation": 42,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "johannesburg",
+ "name": "Johannesburg",
+ "population": "2,026,469",
+ "elevation": 1767,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "almaty",
+ "name": "Almaty",
+ "population": "2,000,900",
+ "elevation": 787,
+ "timezone_id": "Asia/Almaty"
+ },
+ {
+ "identifier": "tashkent",
+ "name": "Taschkent",
+ "population": "1,978,028",
+ "elevation": 424,
+ "timezone_id": "Asia/Tashkent"
+ },
+ {
+ "identifier": "algiers",
+ "name": "Algiers",
+ "population": "1,977,663",
+ "elevation": 113,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "khartoum",
+ "name": "Khartum",
+ "population": "1,974,647",
+ "elevation": 381,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "accra",
+ "name": "Accra",
+ "population": "1,963,264",
+ "elevation": 33,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "guayaquil",
+ "name": "Guayaquil",
+ "population": "1,952,029",
+ "elevation": 1,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "sanaa",
+ "name": "Sanaa",
+ "population": "1,937,451",
+ "elevation": 2253,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "beirut",
+ "name": "Beirut",
+ "population": "1,916,100",
+ "elevation": 40,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "perth",
+ "name": "Perth",
+ "population": "1,896,548",
+ "elevation": 46,
+ "timezone_id": "Australia/Perth"
+ },
+ {
+ "identifier": "sapporo",
+ "name": "Sapporo",
+ "population": "1,883,027",
+ "elevation": 26,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "bucharest",
+ "name": "Bukarest",
+ "population": "1,877,155",
+ "elevation": 83,
+ "timezone_id": "Europe/Bucharest"
+ },
+ {
+ "identifier": "camayenne",
+ "name": "Camayenne",
+ "population": "1,871,242",
+ "elevation": 6,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "conakry",
+ "name": "Conakry",
+ "population": "1,767,200",
+ "elevation": 13,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "minsk",
+ "name": "Minsk",
+ "population": "1,742,124",
+ "elevation": 222,
+ "timezone_id": "Europe/Minsk"
+ },
+ {
+ "identifier": "budapest",
+ "name": "Budapest",
+ "population": "1,741,041",
+ "elevation": 75,
+ "timezone_id": "Europe/Budapest"
+ },
+ {
+ "identifier": "hamburg",
+ "name": "Hamburg",
+ "population": "1,739,117",
+ "elevation": 2,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "warsaw",
+ "name": "Warschau",
+ "population": "1,702,139",
+ "elevation": 113,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "soweto",
+ "name": "Soweto",
+ "population": "1,695,047",
+ "elevation": 1632,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "vienna",
+ "name": "Wien",
+ "population": "1,691,468",
+ "elevation": 193,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "rabat",
+ "name": "Rabat",
+ "population": "1,655,753",
+ "elevation": 46,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "barcelona",
+ "name": "Barcelona",
+ "population": "1,621,537",
+ "elevation": 47,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pretoria",
+ "name": "Pretoria",
+ "population": "1,619,438",
+ "elevation": 1332,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "aleppo",
+ "name": "Aleppo",
+ "population": "1,602,264",
+ "elevation": 401,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "manila",
+ "name": "Manila",
+ "population": "1,600,000",
+ "elevation": 13,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "montreal",
+ "name": "Montreal",
+ "population": "1,600,000",
+ "elevation": 216,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "kaduna",
+ "name": "Kaduna",
+ "population": "1,582,102",
+ "elevation": 626,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "phnom penh",
+ "name": "Phnom Penh",
+ "population": "1,573,544",
+ "elevation": 20,
+ "timezone_id": "Asia/Phnom_Penh"
+ },
+ {
+ "identifier": "damascus",
+ "name": "Damaskus",
+ "population": "1,569,394",
+ "elevation": 701,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "philadelphia",
+ "name": "Philadelphia",
+ "population": "1,567,442",
+ "elevation": 40,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "phoenix",
+ "name": "Phoenix",
+ "population": "1,563,025",
+ "elevation": 366,
+ "timezone_id": "America/Phoenix"
+ },
+ {
+ "identifier": "isfahan",
+ "name": "Isfahan",
+ "population": "1,547,164",
+ "elevation": 1578,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "harare",
+ "name": "Harare",
+ "population": "1,542,813",
+ "elevation": 1494,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "kobe",
+ "name": "Kobe",
+ "population": "1,528,478",
+ "elevation": 35,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "stockholm",
+ "name": "Stockholm",
+ "population": "1,515,017",
+ "elevation": 12,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "manhattan",
+ "name": "Manhattan",
+ "population": "1,487,536",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "asuncion",
+ "name": "Asuncion",
+ "population": "1,482,200",
+ "elevation": 107,
+ "timezone_id": "America/Asuncion"
+ },
+ {
+ "identifier": "recife",
+ "name": "Recife",
+ "population": "1,478,098",
+ "elevation": 8,
+ "timezone_id": "America/Recife"
+ },
+ {
+ "identifier": "san antonio",
+ "name": "San Antonio",
+ "population": "1,469,845",
+ "elevation": 202,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kumasi",
+ "name": "Kumasi",
+ "population": "1,468,609",
+ "elevation": 270,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "kota bharu",
+ "name": "Kota Bharu",
+ "population": "1,459,994",
+ "elevation": 1,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "kyoto",
+ "name": "Kyoto",
+ "population": "1,459,640",
+ "elevation": 50,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "kuala lumpur",
+ "name": "Kuala Lumpur",
+ "population": "1,453,975",
+ "elevation": 56,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "karaj",
+ "name": "Karadsch",
+ "population": "1,448,075",
+ "elevation": 1341,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kathmandu",
+ "name": "Kathmandu",
+ "population": "1,442,271",
+ "elevation": 1296,
+ "timezone_id": "Asia/Kathmandu"
+ },
+ {
+ "identifier": "hanoi",
+ "name": "Hanoi",
+ "population": "1,431,270",
+ "elevation": 10,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "kharkiv",
+ "name": "Kharkiv",
+ "population": "1,430,885",
+ "elevation": 113,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "cordoba",
+ "name": "Cordoba",
+ "population": "1,428,214",
+ "elevation": 395,
+ "timezone_id": "America/Argentina/Cordoba"
+ },
+ {
+ "identifier": "tabriz",
+ "name": "Tabriz",
+ "population": "1,424,641",
+ "elevation": 1396,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "novosibirsk",
+ "name": "Nowosibirsk",
+ "population": "1,419,007",
+ "elevation": 164,
+ "timezone_id": "Asia/Novosibirsk"
+ },
+ {
+ "identifier": "belem",
+ "name": "Belem",
+ "population": "1,407,737",
+ "elevation": 15,
+ "timezone_id": "America/Belem"
+ },
+ {
+ "identifier": "quito",
+ "name": "Quito",
+ "population": "1,399,814",
+ "elevation": 2854,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "san diego",
+ "name": "San Diego",
+ "population": "1,394,928",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "fukuoka",
+ "name": "Fukuoka",
+ "population": "1,392,289",
+ "elevation": 3,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "antananarivo",
+ "name": "Antananarivo",
+ "population": "1,391,433",
+ "elevation": 1274,
+ "timezone_id": "Indian/Antananarivo"
+ },
+ {
+ "identifier": "the bronx",
+ "name": "The Bronx",
+ "population": "1,385,108",
+ "elevation": 19,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "lubumbashi",
+ "name": "Lubumbashi",
+ "population": "1,373,770",
+ "elevation": 1260,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "santa cruz de la sierra",
+ "name": "Santa Cruz de la Sierra",
+ "population": "1,364,389",
+ "elevation": 433,
+ "timezone_id": "America/La_Paz"
+ },
+ {
+ "identifier": "kampala",
+ "name": "Kampala",
+ "population": "1,353,189",
+ "elevation": 1223,
+ "timezone_id": "Africa/Kampala"
+ },
+ {
+ "identifier": "yekaterinburg",
+ "name": "Jekaterinburg",
+ "population": "1,349,772",
+ "elevation": 255,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "douala",
+ "name": "Douala",
+ "population": "1,338,082",
+ "elevation": 19,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "sharjah",
+ "name": "Sharjah",
+ "population": "1,324,473",
+ "elevation": 6,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "mecca",
+ "name": "Mekka",
+ "population": "1,323,624",
+ "elevation": 333,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "makassar",
+ "name": "Makassar",
+ "population": "1,321,717",
+ "elevation": 6,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "juarez",
+ "name": "Juarez",
+ "population": "1,321,004",
+ "elevation": 1124,
+ "timezone_id": "America/Ojinaga"
+ },
+ {
+ "identifier": "kawasaki",
+ "name": "Kawasaki",
+ "population": "1,306,785",
+ "elevation": 1,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "tijuana",
+ "name": "Tijuana",
+ "population": "1,300,983",
+ "elevation": 97,
+ "timezone_id": "America/Tijuana"
+ },
+ {
+ "identifier": "dallas",
+ "name": "Dallas",
+ "population": "1,300,092",
+ "elevation": 139,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "medina",
+ "name": "Medina",
+ "population": "1,300,000",
+ "elevation": 603,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "yaounde",
+ "name": "Yaounde",
+ "population": "1,299,369",
+ "elevation": 726,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "bamako",
+ "name": "Bamako",
+ "population": "1,297,281",
+ "elevation": 338,
+ "timezone_id": "Africa/Bamako"
+ },
+ {
+ "identifier": "brazzaville",
+ "name": "Brazzaville",
+ "population": "1,284,609",
+ "elevation": 284,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "nizhniy novgorod",
+ "name": "Nischni Nowgorod",
+ "population": "1,284,164",
+ "elevation": 141,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "amman",
+ "name": "Amman",
+ "population": "1,275,857",
+ "elevation": 757,
+ "timezone_id": "Asia/Amman"
+ },
+ {
+ "identifier": "belgrade",
+ "name": "Belgrad",
+ "population": "1,273,651",
+ "elevation": 120,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "montevideo",
+ "name": "Montevideo",
+ "population": "1,270,737",
+ "elevation": 34,
+ "timezone_id": "America/Montevideo"
+ },
+ {
+ "identifier": "lusaka",
+ "name": "Lusaka",
+ "population": "1,267,440",
+ "elevation": 1277,
+ "timezone_id": "Africa/Lusaka"
+ },
+ {
+ "identifier": "munich",
+ "name": "München",
+ "population": "1,260,391",
+ "elevation": 524,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "shiraz",
+ "name": "Shiraz",
+ "population": "1,249,942",
+ "elevation": 1545,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "milan",
+ "name": "Mailand",
+ "population": "1,236,837",
+ "elevation": 127,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "port-au-prince",
+ "name": "Port-au-Prince",
+ "population": "1,234,742",
+ "elevation": 53,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "adelaide",
+ "name": "Adelaide",
+ "population": "1,225,235",
+ "elevation": 56,
+ "timezone_id": "Australia/Adelaide"
+ },
+ {
+ "identifier": "omdurman",
+ "name": "Omdurman",
+ "population": "1,200,000",
+ "elevation": 391,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "saitama",
+ "name": "Saitama",
+ "population": "1,193,350",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "maputo",
+ "name": "Maputo",
+ "population": "1,191,613",
+ "elevation": 70,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "prague",
+ "name": "Prag",
+ "population": "1,165,581",
+ "elevation": 202,
+ "timezone_id": "Europe/Prague"
+ },
+ {
+ "identifier": "copenhagen",
+ "name": "Kopenhagen",
+ "population": "1,153,615",
+ "elevation": 14,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "sofia",
+ "name": "Sofia",
+ "population": "1,152,556",
+ "elevation": 562,
+ "timezone_id": "Europe/Sofia"
+ },
+ {
+ "identifier": "tripoli",
+ "name": "Tripoli",
+ "population": "229,398",
+ "elevation": 51,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "port harcourt",
+ "name": "Port Harcourt",
+ "population": "1,148,665",
+ "elevation": 16,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hiroshima",
+ "name": "Hiroshima",
+ "population": "1,143,841",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "monterrey",
+ "name": "Monterrey",
+ "population": "1,135,512",
+ "elevation": 543,
+ "timezone_id": "America/Monterrey"
+ },
+ {
+ "identifier": "samara",
+ "name": "Samara",
+ "population": "1,134,730",
+ "elevation": 117,
+ "timezone_id": "Europe/Samara"
+ },
+ {
+ "identifier": "omsk",
+ "name": "Omsk",
+ "population": "1,129,281",
+ "elevation": 90,
+ "timezone_id": "Asia/Omsk"
+ },
+ {
+ "identifier": "benin city",
+ "name": "Benin City",
+ "population": "1,125,058",
+ "elevation": 88,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "baku",
+ "name": "Baku",
+ "population": "1,116,513",
+ "elevation": -23,
+ "timezone_id": "Asia/Baku"
+ },
+ {
+ "identifier": "maiduguri",
+ "name": "Maiduguri",
+ "population": "1,112,449",
+ "elevation": 325,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "kazan",
+ "name": "Kazan",
+ "population": "1,104,738",
+ "elevation": 61,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "yerevan",
+ "name": "Jerewan",
+ "population": "1,093,485",
+ "elevation": 994,
+ "timezone_id": "Asia/Yerevan"
+ },
+ {
+ "identifier": "ouagadougou",
+ "name": "Ouagadougou",
+ "population": "1,086,505",
+ "elevation": 299,
+ "timezone_id": "Africa/Ouagadougou"
+ },
+ {
+ "identifier": "rostov-na-donu",
+ "name": "Rostow-na-donu",
+ "population": "1,074,482",
+ "elevation": 74,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chelyabinsk",
+ "name": "Chelyabinsk",
+ "population": "1,062,919",
+ "elevation": 219,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "tbilisi",
+ "name": "Tbilisi",
+ "population": "1,049,498",
+ "elevation": 491,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "ufa",
+ "name": "Ufa",
+ "population": "1,033,338",
+ "elevation": 158,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "san jose",
+ "name": "San Jose",
+ "population": "335,007",
+ "elevation": 1161,
+ "timezone_id": "America/Costa_Rica"
+ },
+ {
+ "identifier": "dublin",
+ "name": "Dublin",
+ "population": "1,024,027",
+ "elevation": 17,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "calgary",
+ "name": "Calgary",
+ "population": "1,019,942",
+ "elevation": 1042,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "brussels",
+ "name": "Brüssel",
+ "population": "1,019,022",
+ "elevation": 28,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "volgograd",
+ "name": "Wolgograd",
+ "population": "1,011,417",
+ "elevation": 65,
+ "timezone_id": "Europe/Volgograd"
+ },
+ {
+ "identifier": "odessa",
+ "name": "Odessa",
+ "population": "1,001,558",
+ "elevation": 58,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "guatemala city",
+ "name": "Guatemala-Stadt",
+ "population": "994,938",
+ "elevation": 1508,
+ "timezone_id": "America/Guatemala"
+ },
+ {
+ "identifier": "birmingham",
+ "name": "Birmingham",
+ "population": "984,333",
+ "elevation": 149,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "perm",
+ "name": "Perm",
+ "population": "982,419",
+ "elevation": 149,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "zaria",
+ "name": "Zaria",
+ "population": "975,153",
+ "elevation": 644,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "port elizabeth",
+ "name": "Port Elizabeth",
+ "population": "967,677",
+ "elevation": 75,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "fes",
+ "name": "Fes",
+ "population": "964,891",
+ "elevation": 406,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "cologne",
+ "name": "Köln",
+ "population": "963,395",
+ "elevation": 58,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "naples",
+ "name": "Neapel",
+ "population": "959,470",
+ "elevation": 14,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "maceio",
+ "name": "Maceio",
+ "population": "954,991",
+ "elevation": 11,
+ "timezone_id": "America/Maceio"
+ },
+ {
+ "identifier": "monrovia",
+ "name": "Monrovia",
+ "population": "939,524",
+ "elevation": 32,
+ "timezone_id": "Africa/Monrovia"
+ },
+ {
+ "identifier": "kingston",
+ "name": "Kingston",
+ "population": "937,700",
+ "elevation": 65,
+ "timezone_id": "America/Jamaica"
+ },
+ {
+ "identifier": "austin",
+ "name": "Austin",
+ "population": "931,830",
+ "elevation": 165,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "krasnoyarsk",
+ "name": "Krasnoyarsk",
+ "population": "927,200",
+ "elevation": 140,
+ "timezone_id": "Asia/Krasnoyarsk"
+ },
+ {
+ "identifier": "sale",
+ "name": "Sale",
+ "population": "903,485",
+ "elevation": 34,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "qom",
+ "name": "Qom",
+ "population": "900,000",
+ "elevation": 935,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bishkek",
+ "name": "Bishkek",
+ "population": "900,000",
+ "elevation": 767,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "abobo",
+ "name": "Abobo",
+ "population": "900,000",
+ "elevation": 105,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "aba",
+ "name": "Aba",
+ "population": "897,560",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "mendoza",
+ "name": "Mendoza",
+ "population": "876,884",
+ "elevation": 746,
+ "timezone_id": "America/Argentina/Mendoza"
+ },
+ {
+ "identifier": "mbuji-mayi",
+ "name": "Mbuji-Mayi",
+ "population": "874,761",
+ "elevation": 621,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "pikine",
+ "name": "Pikine",
+ "population": "874,062",
+ "elevation": 17,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "turin",
+ "name": "Turin",
+ "population": "870,456",
+ "elevation": 245,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san francisco",
+ "name": "San Francisco",
+ "aliases": ["San Fran"],
+ "population": "864,816",
+ "elevation": 28,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "liverpool",
+ "name": "Liverpool",
+ "population": "864,122",
+ "elevation": 30,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "saratov",
+ "name": "Saratow",
+ "population": "863,725",
+ "elevation": 72,
+ "timezone_id": "Europe/Saratov"
+ },
+ {
+ "identifier": "tegucigalpa",
+ "name": "Tegucigalpa",
+ "population": "850,848",
+ "elevation": 944,
+ "timezone_id": "America/Tegucigalpa"
+ },
+ {
+ "identifier": "voronezh",
+ "name": "Woronesch",
+ "population": "848,752",
+ "elevation": 156,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "ulan bator",
+ "name": "Ulan Bator",
+ "population": "844,818",
+ "elevation": 1284,
+ "timezone_id": "Asia/Ulaanbaatar"
+ },
+ {
+ "identifier": "ahvaz",
+ "name": "Ahvaz",
+ "population": "841,145",
+ "elevation": 23,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "marrakesh",
+ "name": "Marrakesch",
+ "population": "839,296",
+ "elevation": 457,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "denpasar",
+ "name": "Denpasar",
+ "population": "834,881",
+ "elevation": 33,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "fort worth",
+ "name": "Fort Worth",
+ "population": "833,319",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "indianapolis",
+ "name": "Indianapolis",
+ "population": "829,718",
+ "elevation": 248,
+ "timezone_id": "America/Indiana/Indianapolis"
+ },
+ {
+ "identifier": "jos",
+ "name": "Jos",
+ "population": "816,824",
+ "elevation": 1186,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "valencia",
+ "name": "Valencia",
+ "population": "814,208",
+ "elevation": 23,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "ilorin",
+ "name": "Ilorin",
+ "population": "814,192",
+ "elevation": 320,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "la paz",
+ "name": "La Paz",
+ "population": "215,178",
+ "elevation": 47,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "ottawa",
+ "name": "Ottawa",
+ "population": "812,129",
+ "elevation": 71,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "freetown",
+ "name": "Freetown",
+ "population": "802,639",
+ "elevation": 21,
+ "timezone_id": "Africa/Freetown"
+ },
+ {
+ "identifier": "jerusalem",
+ "name": "Jerusalem",
+ "population": "801,000",
+ "elevation": 786,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "muscat",
+ "name": "Muscat",
+ "population": "797,000",
+ "elevation": 14,
+ "timezone_id": "Asia/Muscat"
+ },
+ {
+ "identifier": "marseille",
+ "name": "Marseille",
+ "population": "794,811",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "pasragad branch",
+ "name": "Pasragad Branch",
+ "population": "787,878",
+ "elevation": 2010,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "boumerdas",
+ "name": "Boumerdas",
+ "population": "786,499",
+ "elevation": 5,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "san miguel de tucuman",
+ "name": "San Miguel de Tucuman",
+ "population": "781,023",
+ "elevation": 452,
+ "timezone_id": "America/Argentina/Tucuman"
+ },
+ {
+ "identifier": "merida",
+ "name": "Merida",
+ "population": "777,615",
+ "elevation": 14,
+ "timezone_id": "America/Merida"
+ },
+ {
+ "identifier": "niamey",
+ "name": "Niamey",
+ "population": "774,235",
+ "elevation": 206,
+ "timezone_id": "Africa/Niamey"
+ },
+ {
+ "identifier": "kahriz",
+ "name": "Kahriz",
+ "population": "766,706",
+ "elevation": 1302,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "krakow",
+ "name": "Krakau",
+ "population": "755,050",
+ "elevation": 219,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "da nang",
+ "name": "Da Nang",
+ "population": "752,493",
+ "elevation": 11,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "pietermaritzburg",
+ "name": "Pietermaritzburg",
+ "population": "750,845",
+ "elevation": 636,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "lome",
+ "name": "Lome",
+ "population": "749,700",
+ "elevation": 64,
+ "timezone_id": "Africa/Lome"
+ },
+ {
+ "identifier": "kigali",
+ "name": "Kigali",
+ "population": "745,261",
+ "elevation": 1542,
+ "timezone_id": "Africa/Kigali"
+ },
+ {
+ "identifier": "riga",
+ "name": "Riga",
+ "population": "742,572",
+ "elevation": 6,
+ "timezone_id": "Europe/Riga"
+ },
+ {
+ "identifier": "amsterdam",
+ "name": "Amsterdam",
+ "population": "741,636",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "oyo",
+ "name": "Oyo",
+ "population": "736,072",
+ "elevation": 298,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "nottingham",
+ "name": "Nottingham",
+ "population": "729,977",
+ "elevation": 46,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "campo grande",
+ "name": "Campo Grande",
+ "population": "729,151",
+ "elevation": 592,
+ "timezone_id": "America/Campo_Grande"
+ },
+ {
+ "identifier": "ashgabat",
+ "name": "Aschgabat",
+ "population": "727,700",
+ "elevation": 219,
+ "timezone_id": "Asia/Ashgabat"
+ },
+ {
+ "identifier": "n'djamena",
+ "name": "N'Djamena",
+ "population": "721,081",
+ "elevation": 299,
+ "timezone_id": "Africa/Ndjamena"
+ },
+ {
+ "identifier": "lviv",
+ "name": "Lviv",
+ "population": "717,803",
+ "elevation": 284,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "hermosillo",
+ "name": "Hermosillo",
+ "population": "715,061",
+ "elevation": 212,
+ "timezone_id": "America/Hermosillo"
+ },
+ {
+ "identifier": "edmonton",
+ "name": "Edmonton",
+ "population": "712,391",
+ "elevation": 610,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "bulawayo",
+ "name": "Bulawayo",
+ "population": "699,385",
+ "elevation": 1348,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "zagreb",
+ "name": "Zagreb",
+ "population": "698,966",
+ "elevation": 135,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "agadir",
+ "name": "Agadir",
+ "population": "698,310",
+ "elevation": 31,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sarajevo",
+ "name": "Sarajevo",
+ "population": "696,731",
+ "elevation": 509,
+ "timezone_id": "Europe/Sarajevo"
+ },
+ {
+ "identifier": "enugu",
+ "name": "Enugu",
+ "population": "688,862",
+ "elevation": 192,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "tangier",
+ "name": "Tangier",
+ "population": "688,356",
+ "elevation": 20,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sheffield",
+ "name": "Sheffield",
+ "population": "685,368",
+ "elevation": 75,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "seattle",
+ "name": "Seattle",
+ "population": "684,451",
+ "elevation": 56,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "denver",
+ "name": "Denver",
+ "population": "682,545",
+ "elevation": 1636,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "el paso",
+ "name": "El Paso",
+ "population": "681,124",
+ "elevation": 1137,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "dushanbe",
+ "name": "Dushanbe",
+ "population": "679,400",
+ "elevation": 767,
+ "timezone_id": "Asia/Dushanbe"
+ },
+ {
+ "identifier": "detroit",
+ "name": "Detroit",
+ "population": "677,116",
+ "elevation": 192,
+ "timezone_id": "America/Detroit"
+ },
+ {
+ "identifier": "culiacan",
+ "name": "Culiacan",
+ "population": "675,773",
+ "elevation": 95,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "matola",
+ "name": "Matola",
+ "population": "675,422",
+ "elevation": 42,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "boston",
+ "name": "Boston",
+ "population": "667,137",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "athens",
+ "name": "Athen",
+ "population": "664,046",
+ "elevation": 126,
+ "timezone_id": "Europe/Athens"
+ },
+ {
+ "identifier": "nouakchott",
+ "name": "Nouakchott",
+ "population": "661,400",
+ "elevation": 10,
+ "timezone_id": "Africa/Nouakchott"
+ },
+ {
+ "identifier": "pointe-noire",
+ "name": "Pointe-Noire",
+ "population": "659,084",
+ "elevation": 12,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "memphis",
+ "name": "Memphis",
+ "population": "655,770",
+ "elevation": 84,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "frankfurt am main",
+ "name": "Frankfurt am Main",
+ "population": "650,000",
+ "elevation": 113,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "krasnodar",
+ "name": "Krasnodar",
+ "population": "649,851",
+ "elevation": 28,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "palermo",
+ "name": "Palermo",
+ "population": "648,260",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "colombo",
+ "name": "Colombo",
+ "population": "648,034",
+ "elevation": 1,
+ "timezone_id": "Asia/Colombo"
+ },
+ {
+ "identifier": "lilongwe",
+ "name": "Lilongwe",
+ "population": "646,750",
+ "elevation": 1056,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "oran",
+ "name": "Oran",
+ "population": "645,984",
+ "elevation": 118,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "chisinau",
+ "name": "Chisinau",
+ "population": "635,994",
+ "elevation": 55,
+ "timezone_id": "Europe/Chisinau"
+ },
+ {
+ "identifier": "tebessa",
+ "name": "Tebessa",
+ "population": "634,332",
+ "elevation": 867,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "portland",
+ "name": "Portland",
+ "population": "632,309",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "winnipeg",
+ "name": "Winnipeg",
+ "population": "632,063",
+ "elevation": 245,
+ "timezone_id": "America/Winnipeg"
+ },
+ {
+ "identifier": "oklahoma city",
+ "name": "Oklahoma City",
+ "population": "631,346",
+ "elevation": 395,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "cancun",
+ "name": "Cancun",
+ "population": "628,306",
+ "elevation": 11,
+ "timezone_id": "America/Cancun"
+ },
+ {
+ "identifier": "djibouti",
+ "name": "Dschibuti",
+ "population": "623,891",
+ "elevation": 6,
+ "timezone_id": "Africa/Djibouti"
+ },
+ {
+ "identifier": "baltimore",
+ "name": "Baltimore",
+ "population": "621,849",
+ "elevation": 35,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kermanshah",
+ "name": "Kermanshah",
+ "population": "621,100",
+ "elevation": 1392,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bristol",
+ "name": "Bristol",
+ "population": "617,280",
+ "elevation": 21,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "benoni",
+ "name": "Benoni",
+ "population": "605,344",
+ "elevation": 1641,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "abu dhabi",
+ "name": "Abu Dhabi",
+ "population": "603,492",
+ "elevation": 13,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "washington",
+ "name": "Washington",
+ "population": "601,723",
+ "elevation": 6,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "milwaukee",
+ "name": "Milwaukee",
+ "population": "600,155",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vancouver",
+ "name": "Vancouver",
+ "population": "600,000",
+ "elevation": 70,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "barnaul",
+ "name": "Barnaul",
+ "population": "599,579",
+ "elevation": 189,
+ "timezone_id": "Asia/Barnaul"
+ },
+ {
+ "identifier": "rotterdam",
+ "name": "Rotterdam",
+ "population": "598,199",
+ "elevation": 9,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "rasht",
+ "name": "Rascht",
+ "population": "594,590",
+ "elevation": 4,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "abeokuta",
+ "name": "Abeokuta",
+ "population": "593,100",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "essen",
+ "name": "Essen",
+ "population": "593,085",
+ "elevation": 83,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "glasgow",
+ "name": "Glasgow",
+ "population": "591,620",
+ "elevation": 40,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "gold coast",
+ "name": "Gold Coast",
+ "population": "591,473",
+ "elevation": 12,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "abuja",
+ "name": "Abuja",
+ "population": "590,400",
+ "elevation": 476,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "stuttgart",
+ "name": "Stuttgart",
+ "population": "589,793",
+ "elevation": 252,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dortmund",
+ "name": "Dortmund",
+ "population": "588,462",
+ "elevation": 96,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vladivostok",
+ "name": "Wladiwostok",
+ "population": "587,022",
+ "elevation": 40,
+ "timezone_id": "Asia/Vladivostok"
+ },
+ {
+ "identifier": "irkutsk",
+ "name": "Irkutsk",
+ "population": "586,695",
+ "elevation": 428,
+ "timezone_id": "Asia/Irkutsk"
+ },
+ {
+ "identifier": "blantyre",
+ "name": "Blantyre",
+ "population": "584,877",
+ "elevation": 1041,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "genoa",
+ "name": "Genua",
+ "population": "580,223",
+ "elevation": 17,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "oslo",
+ "name": "Oslo",
+ "population": "580,000",
+ "elevation": 26,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "libreville",
+ "name": "Libreville",
+ "population": "578,156",
+ "elevation": 8,
+ "timezone_id": "Africa/Libreville"
+ },
+ {
+ "identifier": "kerman",
+ "name": "Kerman",
+ "population": "577,514",
+ "elevation": 1760,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "duesseldorf",
+ "name": "Düsseldorf",
+ "population": "573,057",
+ "elevation": 45,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "kuching",
+ "name": "Kuching",
+ "population": "570,407",
+ "elevation": 8,
+ "timezone_id": "Asia/Kuching"
+ },
+ {
+ "identifier": "albuquerque",
+ "name": "Albuquerque",
+ "population": "559,121",
+ "elevation": 1513,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "helsinki",
+ "name": "Helsinki",
+ "population": "558,457",
+ "elevation": 26,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "aden",
+ "name": "Aden",
+ "population": "550,602",
+ "elevation": 16,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "orenburg",
+ "name": "Orenburg",
+ "population": "550,204",
+ "elevation": 107,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "pristina",
+ "name": "Pristina",
+ "population": "550,000",
+ "elevation": 597,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bremen",
+ "name": "Bremen",
+ "population": "546,501",
+ "elevation": 3,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vilnius",
+ "name": "Vilnius",
+ "population": "542,366",
+ "elevation": 98,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "nashville",
+ "name": "Nashville",
+ "population": "530,852",
+ "elevation": 171,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "quebec",
+ "name": "Quebec",
+ "population": "528,595",
+ "elevation": 54,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "san salvador",
+ "name": "San Salvador",
+ "population": "525,990",
+ "elevation": 653,
+ "timezone_id": "America/El_Salvador"
+ },
+ {
+ "identifier": "macau",
+ "name": "Macau",
+ "population": "520,400",
+ "elevation": 22,
+ "timezone_id": "Asia/Macau"
+ },
+ {
+ "identifier": "tyumen",
+ "name": "Tyumen",
+ "population": "519,119",
+ "elevation": 81,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "lisbon",
+ "name": "Lissabon",
+ "population": "517,802",
+ "elevation": 45,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "hannover",
+ "name": "Hannover",
+ "population": "515,140",
+ "elevation": 57,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "salta",
+ "name": "Salta",
+ "population": "512,686",
+ "elevation": 1183,
+ "timezone_id": "America/Argentina/Salta"
+ },
+ {
+ "identifier": "leicester",
+ "name": "Leicester",
+ "population": "508,916",
+ "elevation": 65,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "leipzig",
+ "name": "Leipzig",
+ "population": "504,971",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "duisburg",
+ "name": "Duisburg",
+ "population": "504,358",
+ "elevation": 38,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "astrakhan",
+ "name": "Astrakhan",
+ "population": "502,533",
+ "elevation": -12,
+ "timezone_id": "Europe/Astrakhan"
+ },
+ {
+ "identifier": "nuernberg",
+ "name": "Nürnberg",
+ "population": "499,237",
+ "elevation": 300,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dresden",
+ "name": "Dresden",
+ "population": "486,854",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "tomsk",
+ "name": "Tomsk",
+ "population": "485,519",
+ "elevation": 117,
+ "timezone_id": "Asia/Tomsk"
+ },
+ {
+ "identifier": "yazd",
+ "name": "Yazd",
+ "population": "477,905",
+ "elevation": 1216,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kansas city",
+ "name": "Kansas City",
+ "population": "151,306",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "skopje",
+ "name": "Skopje",
+ "population": "474,889",
+ "elevation": 247,
+ "timezone_id": "Europe/Skopje"
+ },
+ {
+ "identifier": "the hague",
+ "name": "Den Haag",
+ "population": "474,292",
+ "elevation": 4,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "lyon",
+ "name": "Lyon",
+ "population": "472,317",
+ "elevation": 173,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "edinburgh",
+ "name": "Edinburgh",
+ "population": "464,990",
+ "elevation": 66,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "antwerpen",
+ "name": "Antwerpen",
+ "population": "459,805",
+ "elevation": 2,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "pontianak",
+ "name": "Pontianak",
+ "population": "455,173",
+ "elevation": 2,
+ "timezone_id": "Asia/Pontianak"
+ },
+ {
+ "identifier": "leeds",
+ "name": "Leeds",
+ "population": "455,123",
+ "elevation": 50,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "cardiff",
+ "name": "Cardiff",
+ "population": "447,287",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "san juan",
+ "name": "San Juan",
+ "population": "418,140",
+ "elevation": 11,
+ "timezone_id": "America/Puerto_Rico"
+ },
+ {
+ "identifier": "omaha",
+ "name": "Omaha",
+ "population": "443,885",
+ "elevation": 315,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "carrefour",
+ "name": "Carrefour",
+ "population": "442,156",
+ "elevation": 32,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "miami",
+ "name": "Miami",
+ "population": "441,003",
+ "elevation": 25,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kaliningrad",
+ "name": "Kaliningrad",
+ "population": "434,954",
+ "elevation": 2,
+ "timezone_id": "Europe/Kaliningrad"
+ },
+ {
+ "identifier": "toulouse",
+ "name": "Toulouse",
+ "population": "433,055",
+ "elevation": 150,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tel aviv",
+ "name": "Tel Aviv",
+ "population": "432,892",
+ "elevation": 15,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "east jerusalem",
+ "name": "Ostjerusalem",
+ "population": "428,304",
+ "elevation": 759,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "bratislava",
+ "name": "Bratislava",
+ "population": "423,737",
+ "elevation": 157,
+ "timezone_id": "Europe/Bratislava"
+ },
+ {
+ "identifier": "auckland",
+ "name": "Auckland",
+ "population": "417,910",
+ "elevation": 43,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "sevastopol",
+ "name": "Sewastopol",
+ "population": "416,263",
+ "elevation": 1,
+ "timezone_id": "Europe/Zaporozhye"
+ },
+ {
+ "identifier": "minneapolis",
+ "name": "Minneapolis",
+ "population": "410,939",
+ "elevation": 262,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "gaza",
+ "name": "Gaza",
+ "population": "410,000",
+ "elevation": 38,
+ "timezone_id": "Asia/Gaza"
+ },
+ {
+ "identifier": "kursk",
+ "name": "Kursk",
+ "population": "409,431",
+ "elevation": 219,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "panama",
+ "name": "Panama",
+ "population": "408,168",
+ "elevation": 17,
+ "timezone_id": "America/Panama"
+ },
+ {
+ "identifier": "tulsa",
+ "name": "Tulsa",
+ "population": "403,505",
+ "elevation": 226,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "tver",
+ "name": "Tver",
+ "population": "400,212",
+ "elevation": 132,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "manchester",
+ "name": "Manchester",
+ "population": "395,515",
+ "elevation": 51,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "tallinn",
+ "name": "Tallinn",
+ "population": "394,024",
+ "elevation": 12,
+ "timezone_id": "Europe/Tallinn"
+ },
+ {
+ "identifier": "kandahar",
+ "name": "Kandahar",
+ "population": "391,190",
+ "elevation": 1007,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "wichita",
+ "name": "Wichita",
+ "population": "389,965",
+ "elevation": 402,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "new orleans",
+ "name": "New Orleans",
+ "population": "389,617",
+ "elevation": 18,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "wellington",
+ "name": "Wellington",
+ "population": "381,900",
+ "elevation": 31,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "las palmas de gran canaria",
+ "name": "Las Palmas de Gran Canaria",
+ "population": "381,847",
+ "elevation": 23,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "mazatlan",
+ "name": "Mazatlan",
+ "population": "381,583",
+ "elevation": 10,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "tirana",
+ "name": "Tirana",
+ "population": "374,801",
+ "elevation": 113,
+ "timezone_id": "Europe/Tirane"
+ },
+ {
+ "identifier": "kaunas",
+ "name": "Kaunas",
+ "population": "374,643",
+ "elevation": 74,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "honolulu",
+ "name": "Honolulu",
+ "population": "371,657",
+ "elevation": 18,
+ "timezone_id": "Pacific/Honolulu"
+ },
+ {
+ "identifier": "canberra",
+ "name": "Canberra",
+ "population": "367,752",
+ "elevation": 571,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "bologna",
+ "name": "Bologna",
+ "population": "366,133",
+ "elevation": 71,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "christchurch",
+ "name": "Christchurch",
+ "population": "363,926",
+ "elevation": 14,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "halifax",
+ "name": "Halifax",
+ "population": "359,111",
+ "elevation": 6,
+ "timezone_id": "America/Halifax"
+ },
+ {
+ "identifier": "ambon",
+ "name": "Ambon",
+ "population": "355,596",
+ "elevation": 12,
+ "timezone_id": "Asia/Jayapura"
+ },
+ {
+ "identifier": "florence",
+ "name": "Florenz",
+ "population": "349,296",
+ "elevation": 51,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "doha",
+ "name": "Doha",
+ "population": "344,939",
+ "elevation": 11,
+ "timezone_id": "Asia/Qatar"
+ },
+ {
+ "identifier": "zurich",
+ "name": "Zürich",
+ "population": "341,730",
+ "elevation": 429,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "nice",
+ "name": "Nizza",
+ "population": "338,620",
+ "elevation": 18,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "simferopol",
+ "name": "Simferopol",
+ "population": "336,460",
+ "elevation": 247,
+ "timezone_id": "Europe/Simferopol"
+ },
+ {
+ "identifier": "tepic",
+ "name": "Tepic",
+ "population": "332,863",
+ "elevation": 932,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "sochi",
+ "name": "Sotschi",
+ "population": "327,608",
+ "elevation": 14,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "smolensk",
+ "name": "Smolensk",
+ "population": "320,991",
+ "elevation": 250,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "samarkand",
+ "name": "Samarkand",
+ "population": "319,366",
+ "elevation": 719,
+ "timezone_id": "Asia/Samarkand"
+ },
+ {
+ "identifier": "murmansk",
+ "name": "Murmansk",
+ "population": "319,263",
+ "elevation": 96,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "vladikavkaz",
+ "name": "Wladikawkas",
+ "population": "317,370",
+ "elevation": 671,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chita",
+ "name": "Chita",
+ "population": "308,500",
+ "elevation": 668,
+ "timezone_id": "Asia/Chita"
+ },
+ {
+ "identifier": "newcastle",
+ "name": "Newcastle",
+ "population": "308,308",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "porto velho",
+ "name": "Porto Velho",
+ "population": "306,180",
+ "elevation": 90,
+ "timezone_id": "America/Porto_Velho"
+ },
+ {
+ "identifier": "san salvador de jujuy",
+ "name": "San Salvador de Jujuy",
+ "population": "305,891",
+ "elevation": 1260,
+ "timezone_id": "America/Argentina/Jujuy"
+ },
+ {
+ "identifier": "pittsburgh",
+ "name": "Pittsburgh",
+ "population": "304,391",
+ "elevation": 239,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brest",
+ "name": "Brest",
+ "population": "144,899",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "anchorage",
+ "name": "Anchorage",
+ "population": "298,695",
+ "elevation": 16,
+ "timezone_id": "America/Anchorage"
+ },
+ {
+ "identifier": "cincinnati",
+ "name": "Cincinnati",
+ "population": "296,943",
+ "elevation": 267,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "wollongong",
+ "name": "Wollongong",
+ "population": "292,190",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "catania",
+ "name": "Catania",
+ "population": "290,927",
+ "elevation": 40,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "utrecht",
+ "name": "Utrecht",
+ "population": "290,529",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "victoria",
+ "name": "Victoria",
+ "population": "289,625",
+ "elevation": 41,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "port moresby",
+ "name": "Port Moresby",
+ "population": "283,733",
+ "elevation": 1,
+ "timezone_id": "Pacific/Port_Moresby"
+ },
+ {
+ "identifier": "logan city",
+ "name": "Logan City",
+ "population": "282,673",
+ "elevation": 39,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "bari",
+ "name": "Bari",
+ "population": "277,387",
+ "elevation": -9999,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "nantes",
+ "name": "Nantes",
+ "population": "277,269",
+ "elevation": 19,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "strasbourg",
+ "name": "Straßburg",
+ "population": "274,845",
+ "elevation": 147,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "belfast",
+ "name": "Belfast",
+ "population": "274,770",
+ "elevation": 7,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "ljubljana",
+ "name": "Ljubljana",
+ "population": "272,220",
+ "elevation": 295,
+ "timezone_id": "Europe/Ljubljana"
+ },
+ {
+ "identifier": "orlando",
+ "name": "Orlando",
+ "population": "270,934",
+ "elevation": 54,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "petrozavodsk",
+ "name": "Petrosawodsk",
+ "population": "265,025",
+ "elevation": 73,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "plymouth",
+ "name": "Plymouth",
+ "population": "260,203",
+ "elevation": 14,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "rio branco",
+ "name": "Rio Branco",
+ "population": "257,642",
+ "elevation": 153,
+ "timezone_id": "America/Rio_Branco"
+ },
+ {
+ "identifier": "los mochis",
+ "name": "Los Mochis",
+ "population": "256,613",
+ "elevation": 14,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "porto",
+ "name": "Porto",
+ "population": "249,633",
+ "elevation": 97,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "madison",
+ "name": "Madison",
+ "population": "248,951",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "montpellier",
+ "name": "Montpellier",
+ "population": "248,252",
+ "elevation": 56,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "arhus",
+ "name": "Aarhus",
+ "population": "237,551",
+ "elevation": 10,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "yakutsk",
+ "name": "Jakutsk",
+ "population": "235,600",
+ "elevation": 126,
+ "timezone_id": "Asia/Yakutsk"
+ },
+ {
+ "identifier": "georgetown",
+ "name": "Georgetown",
+ "population": "235,017",
+ "elevation": 3,
+ "timezone_id": "America/Guyana"
+ },
+ {
+ "identifier": "bordeaux",
+ "name": "Bordeaux",
+ "population": "231,844",
+ "elevation": 20,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "gent",
+ "name": "Gent",
+ "population": "231,493",
+ "elevation": 10,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "baton rouge",
+ "name": "Baton Rouge",
+ "population": "228,590",
+ "elevation": 10,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "lille",
+ "name": "Lille",
+ "population": "228,328",
+ "elevation": 27,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "nassau",
+ "name": "Nassau",
+ "population": "227,940",
+ "elevation": 5,
+ "timezone_id": "America/Nassau"
+ },
+ {
+ "identifier": "geelong",
+ "name": "Geelong",
+ "population": "226,034",
+ "elevation": -9999,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "paramaribo",
+ "name": "Paramaribo",
+ "population": "223,757",
+ "elevation": 5,
+ "timezone_id": "America/Paramaribo"
+ },
+ {
+ "identifier": "santa cruz de tenerife",
+ "name": "Santa Cruz de Tenerife",
+ "population": "222,417",
+ "elevation": 55,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "graz",
+ "name": "Graz",
+ "population": "222,326",
+ "elevation": 363,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "messina",
+ "name": "Messina",
+ "population": "219,948",
+ "elevation": 29,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "verona",
+ "name": "Verona",
+ "population": "219,103",
+ "elevation": 62,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "hobart",
+ "name": "Hobart",
+ "population": "216,656",
+ "elevation": 1,
+ "timezone_id": "Australia/Hobart"
+ },
+ {
+ "identifier": "novi sad",
+ "name": "Novi Sad",
+ "population": "215,400",
+ "elevation": 79,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bergen",
+ "name": "Bergen",
+ "population": "213,585",
+ "elevation": 20,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "des moines",
+ "name": "Des Moines",
+ "population": "210,330",
+ "elevation": 264,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kostanay",
+ "name": "Kostanay",
+ "population": "210,000",
+ "elevation": 167,
+ "timezone_id": "Asia/Qostanay"
+ },
+ {
+ "identifier": "linz",
+ "name": "Linz",
+ "population": "204,846",
+ "elevation": 268,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "padova",
+ "name": "Padua",
+ "population": "203,725",
+ "elevation": 18,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "pskov",
+ "name": "Pskov",
+ "population": "201,990",
+ "elevation": 51,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chiang mai",
+ "name": "Chiang Mai",
+ "population": "200,952",
+ "elevation": 313,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "nicosia",
+ "name": "Nicosia",
+ "population": "200,452",
+ "elevation": 147,
+ "timezone_id": "Asia/Nicosia"
+ },
+ {
+ "identifier": "oral",
+ "name": "Oral",
+ "population": "200,000",
+ "elevation": 35,
+ "timezone_id": "Asia/Oral"
+ },
+ {
+ "identifier": "osh",
+ "name": "Osh",
+ "population": "200,000",
+ "elevation": 988,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "saskatoon",
+ "name": "Saskatoon",
+ "population": "198,958",
+ "elevation": 484,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "little rock",
+ "name": "Little Rock",
+ "population": "197,992",
+ "elevation": 105,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vientiane",
+ "name": "Vientiane",
+ "population": "196,731",
+ "elevation": 174,
+ "timezone_id": "Asia/Vientiane"
+ },
+ {
+ "identifier": "aberdeen",
+ "name": "Aberdeen",
+ "population": "196,670",
+ "elevation": 13,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "palmas",
+ "name": "Palmas",
+ "population": "196,272",
+ "elevation": 271,
+ "timezone_id": "America/Araguaina"
+ },
+ {
+ "identifier": "townsville",
+ "name": "Townsville",
+ "population": "196,219",
+ "elevation": 15,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "salt lake city",
+ "name": "Salt Lake City",
+ "population": "192,672",
+ "elevation": 1311,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "cork",
+ "name": "Cork",
+ "population": "190,384",
+ "elevation": 10,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "tallahassee",
+ "name": "Tallahassee",
+ "population": "189,907",
+ "elevation": 71,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "santarem",
+ "name": "Santarem",
+ "population": "189,047",
+ "elevation": 51,
+ "timezone_id": "America/Santarem"
+ },
+ {
+ "identifier": "san fernando del valle de catamarca",
+ "name": "San Fernando del Valle de Catamarca",
+ "population": "188,812",
+ "elevation": 545,
+ "timezone_id": "America/Argentina/Catamarca"
+ },
+ {
+ "identifier": "trieste",
+ "name": "Triest",
+ "population": "187,056",
+ "elevation": 19,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san luis",
+ "name": "San Luis",
+ "population": "183,982",
+ "elevation": 729,
+ "timezone_id": "America/Argentina/San_Luis"
+ },
+ {
+ "identifier": "geneva",
+ "name": "Genf",
+ "population": "183,981",
+ "elevation": 400,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "atyrau",
+ "name": "Atyrau",
+ "population": "180,000",
+ "elevation": -25,
+ "timezone_id": "Asia/Atyrau"
+ },
+ {
+ "identifier": "kutaisi",
+ "name": "Kutaisi",
+ "population": "178,338",
+ "elevation": 153,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "yuzhno-sakhalinsk",
+ "name": "Juschno-Sachalinsk",
+ "population": "176,484",
+ "elevation": 48,
+ "timezone_id": "Asia/Sakhalin"
+ },
+ {
+ "identifier": "split",
+ "name": "Split",
+ "population": "176,314",
+ "elevation": 12,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "regina",
+ "name": "Regina",
+ "population": "176,183",
+ "elevation": 577,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "turku",
+ "name": "Turku",
+ "population": "175,945",
+ "elevation": 22,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "oxford",
+ "name": "Oxford",
+ "population": "171,380",
+ "elevation": 72,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "jackson",
+ "name": "Jackson",
+ "population": "170,674",
+ "elevation": 100,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "springfield",
+ "name": "Springfield",
+ "population": "166,810",
+ "elevation": 399,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "basel",
+ "name": "Basel",
+ "population": "164,488",
+ "elevation": 279,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "la rioja",
+ "name": "La Rioja",
+ "population": "162,620",
+ "elevation": 502,
+ "timezone_id": "America/Argentina/La_Rioja"
+ },
+ {
+ "identifier": "hebron",
+ "name": "Hebron",
+ "population": "160,470",
+ "elevation": 903,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "modena",
+ "name": "Modena",
+ "population": "158,886",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "cambridge",
+ "name": "Cambridge",
+ "population": "158,434",
+ "elevation": 12,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "frisco",
+ "name": "Frisco",
+ "population": "154,407",
+ "elevation": 216,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "pasadena",
+ "name": "Pasadena",
+ "population": "153,784",
+ "elevation": 12,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "york",
+ "name": "York",
+ "population": "153,717",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "salzburg",
+ "name": "Salzburg",
+ "population": "153,377",
+ "elevation": 435,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "cairns",
+ "name": "Cairns",
+ "population": "153,075",
+ "elevation": 1,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "hamilton",
+ "name": "Hamilton",
+ "population": "152,641",
+ "elevation": 39,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "la laguna",
+ "name": "La Laguna",
+ "population": "150,661",
+ "elevation": 558,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "dili",
+ "name": "Dili",
+ "population": "150,000",
+ "elevation": 3,
+ "timezone_id": "Asia/Dili"
+ },
+ {
+ "identifier": "dijon",
+ "name": "Dijon",
+ "population": "149,782",
+ "elevation": 242,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "uppsala",
+ "name": "Uppsala",
+ "population": "149,245",
+ "elevation": 20,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "trondheim",
+ "name": "Trondheim",
+ "population": "147,139",
+ "elevation": 18,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "manama",
+ "name": "Manama",
+ "population": "147,074",
+ "elevation": 12,
+ "timezone_id": "Asia/Bahrain"
+ },
+ {
+ "identifier": "parma",
+ "name": "Parma",
+ "population": "146,299",
+ "elevation": 64,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "boise",
+ "name": "Boise",
+ "population": "145,987",
+ "elevation": 834,
+ "timezone_id": "America/Boise"
+ },
+ {
+ "identifier": "odense",
+ "name": "Odense",
+ "population": "145,931",
+ "elevation": 17,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "amiens",
+ "name": "Amiens",
+ "population": "143,086",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tours",
+ "name": "Touren",
+ "population": "141,621",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "podgorica",
+ "name": "Podgorica",
+ "population": "136,473",
+ "elevation": 49,
+ "timezone_id": "Europe/Podgorica"
+ },
+ {
+ "identifier": "innsbruck",
+ "name": "Innsbruck",
+ "population": "132,493",
+ "elevation": 587,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "toowoomba",
+ "name": "Toowoomba",
+ "population": "131,258",
+ "elevation": 599,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "darwin",
+ "name": "Darwin",
+ "population": "129,062",
+ "elevation": 31,
+ "timezone_id": "Australia/Darwin"
+ },
+ {
+ "identifier": "bern",
+ "name": "Bern",
+ "population": "121631",
+ "elevation": 549,
+ "timezone_id": "Europe/Zurich"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..17cd6316d
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/FunctionDescriptions.json
@@ -0,0 +1,216 @@
+{
+ "percentage": [
+ {
+ "identifier": "percentOf",
+ "prototypeExpressions": [
+ "10% von 100"
+ ]
+ },
+ {
+ "identifier": "percentOff",
+ "prototypeExpressions": [
+ "10% off 100"
+ ]
+ },
+ {
+ "identifier": "percentOn",
+ "prototypeExpressions": [
+ "10% on 100"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhat",
+ "prototypeExpressions": [
+ "30 ist 20% von was"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhatClassic",
+ "prototypeExpressions": [
+ "20% von was ist 30"
+ ]
+ },
+ {
+ "identifier": "isPercentOffWhat",
+ "prototypeExpressions": [
+ "30 ist 20% off was"
+ ]
+ },
+ {
+ "identifier": "isPercentOffWhatClassic",
+ "prototypeExpressions": [
+ "20% off what is 30"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhat",
+ "prototypeExpressions": [
+ "30 ist 20% on was"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhatClassic",
+ "prototypeExpressions": [
+ "20% on what is 30"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOf",
+ "prototypeExpressions": [
+ "10 ist wieviel % von 20",
+ "10 als % von 20"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOff",
+ "prototypeExpressions": [
+ "10 ist wieviel % off 20"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOn",
+ "prototypeExpressions": [
+ "20 ist wieviel % on 10",
+ "20 sind welche % auf 10",
+ "20 als % auf 10"
+ ]
+ }
+ ],
+ "general": [
+ {
+ "identifier": "remainder",
+ "prototypeExpressions": [
+ "rest von 20 durch 3",
+ "rest von 20 geteilt durch 3"
+ ]
+ },
+ {
+ "identifier": "halfOf",
+ "prototypeExpressions": [
+ "hälfte von 20"
+ ]
+ },
+ {
+ "identifier": "lesserOf",
+ "prototypeExpressions": [
+ "kleinere wert von 2 und 30",
+ "kleinere zahl von 2 und 30"
+ ]
+ },
+ {
+ "identifier": "greaterOf",
+ "prototypeExpressions": [
+ "größere wert von 2 und 30",
+ "größere zahl von 2 und 30",
+ "zahl von 2 und 30 ist größer",
+ "welche der zahlen von 2 und 30 ist größer"
+ ]
+ },
+ {
+ "identifier": "midpoint",
+ "prototypeExpressions": [
+ "mitte zwischen 2 und 32"
+ ]
+ },
+ {
+ "identifier": "proportionsFindNumerator",
+ "prototypeExpressions": [
+ "6 ist zu 600 wie was zu 8",
+ "6 verhält sich zu 600 wie was zu 8"
+ ]
+ },
+ {
+ "identifier": "proportionsFindDenominator",
+ "prototypeExpressions": [
+ "6 ist zu 600 wie 8 zu was",
+ "6 verhält sich zu 600 wie 8 zu was"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "zufallszahl zwischen 1 und 5",
+ "zufällig zwischen 1 und 5"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "identifier": "unitInUnitExpression",
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ]
+ }
+ ],
+ "datetime": [
+ {
+ "identifier": "calendarUnitBetweenDates",
+ "prototypeExpressions": [
+ "__unit zwischen __datestamp und __datestamp",
+ "__unit zwischen dem __datestamp und dem __datestamp",
+ "__unit von __datestamp bis __datestamp",
+ "__unit vom __datestamp bis zum __datestamp",
+ "__unit in __datestamp als __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit bis __datestamp",
+ "__unit vor __datestamp",
+ "__unit vor dem __datestamp",
+ "__unit bis zum __datestamp"
+ ]
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "__datestamp bis __datestamp",
+ "__datestamp bis zum __datestamp"
+ ]
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp bis __timestamp",
+ "__timestamp bis zum __timestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit seit __datestamp",
+ "__unit seit dem __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "neuer zeitstempel"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan von __datestamp",
+ "__timespan nach __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone zeit",
+ "zeit in __timezone"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "prototypeExpressions": [
+ "zeitdifferenz zwischen __timezone und __timezone",
+ "differenz zwischen __timezone und __timezone",
+ "zeitdifferenz zwischen __timezone & __timezone",
+ "differenz zwischen __timezone & __timezone"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/Localizable.strings
new file mode 100644
index 000000000..49b09f6e0
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..cda6617a7
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..7cb8c512f
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/LocalizedFixtures.json
@@ -0,0 +1,148 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "Nk",
+ "Nk-Stelle",
+ "Stellen",
+ "Nk-Stellen"
+ ],
+ "multiplierTypes": [
+ "multiplier",
+ "Multiplikator"
+ ],
+ "divisionOperators": [
+ "÷",
+ "pro"
+ ],
+ "roundingConverters": [
+ "gerundet"
+ ],
+ "tomorrowDateAliases": [
+ "morgen"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "laptime",
+ "Rundenzeit"
+ ],
+ "numberTypes": [
+ "Zahl",
+ "Nummer"
+ ],
+ "roundingDownConverters": [
+ "abgerundet"
+ ],
+ "yesterdayDateAliases": [
+ "gestern"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "todayDateAliases": [
+ "heute"
+ ],
+ "timestampTypes": [
+ "Zeitstempel"
+ ],
+ "roundingUpConverters": [
+ "aufgerundet"
+ ],
+ "dateTypes": [
+ "Datum"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "monthOfYearDateAliases": [
+ "Jan",
+ "Jän",
+ "Feb",
+ "Mrz",
+ "Apr",
+ "Mai",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Okt",
+ "Nov",
+ "Dez",
+ "Januar",
+ "Jänner",
+ "Februar",
+ "März",
+ "April",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Dezember"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "additionOperators": [
+ ],
+ "timespanTypes": [
+ "Zeitdauer",
+ "Zeitspanne"
+ ],
+ "nowDateAliases": [
+ "jetzt"
+ ],
+ "converterSymbols": [
+ "bis",
+ "als",
+ "nach",
+ "mit"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "fractionTypes": [
+ "Bruch"
+ ],
+ "dayOfWeekDateAliases": [
+ "Montag",
+ "Mon",
+ "Mo",
+ "Dienstag",
+ "Die",
+ "Di",
+ "Mittwoch",
+ "Mit",
+ "Mi",
+ "Donnerstag",
+ "Don",
+ "Do",
+ "Freitag",
+ "Fre",
+ "Fr",
+ "Samstag",
+ "Sam",
+ "Sa",
+ "Sonntag",
+ "Son",
+ "So"
+ ],
+ "percentTypes": [
+ "Prozent",
+ "Prozentrechnung"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..2d9c2a8bc
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/UnitDescriptions.json
@@ -0,0 +1,1563 @@
+{
+ "speed": [
+ {
+ "aliases": [
+ "Meter pro Sekunde"
+ ],
+ "symbol": "m/s",
+ "identifier": "metersPerSecond"
+ },
+ {
+ "aliases": [
+ "kilometer per hour",
+ "kilometers per hour",
+ "kilometre per hour",
+ "kilometres per hour",
+ "kph"
+ ],
+ "symbol": "km/h",
+ "identifier": "kilometersPerHour"
+ },
+ {
+ "aliases": [
+ "mile per hour",
+ "miles per hour"
+ ],
+ "symbol": "mph",
+ "identifier": "milesPerHour"
+ },
+ {
+ "aliases": [
+ "knot",
+ "knots"
+ ],
+ "symbol": "kn",
+ "identifier": "knots"
+ }
+ ],
+ "volume": [
+ {
+ "aliases": [
+ "Megaliter",
+ "Megalitern",
+ "ML"
+ ],
+ "symbol": "ML",
+ "identifier": "megaliters"
+ },
+ {
+ "aliases": [
+ "Kiloliter",
+ "Kilolitern",
+ "kL"
+ ],
+ "symbol": "kL",
+ "identifier": "kiloliters"
+ },
+ {
+ "aliases": [
+ "Liter",
+ "Litern",
+ "L"
+ ],
+ "symbol": "l",
+ "identifier": "liters"
+ },
+ {
+ "aliases": [
+ "Milliliter",
+ "Millilitern",
+ "mL"
+ ],
+ "symbol": "ml",
+ "identifier": "milliliters"
+ },
+ {
+ "aliases": [
+ "Kubikkilometer",
+ "Kubikkilometern",
+ "Kilometer^3",
+ "Kilometer³",
+ "km3",
+ "km^3"
+ ],
+ "symbol": "km³",
+ "identifier": "cubicKilometers"
+ },
+ {
+ "aliases": [
+ "Kubikmeter",
+ "Kubikmetern",
+ "m3",
+ "m^3",
+ "Meter³"
+ ],
+ "symbol": "m³",
+ "identifier": "cubicMeters"
+ },
+ {
+ "aliases": [
+ "Kubilzentimeter",
+ "Kubilzentimetern",
+ "cm3",
+ "cm^3",
+ "Zentimeter³"
+ ],
+ "symbol": "cm³",
+ "identifier": "cubicCentimeters"
+ },
+ {
+ "aliases": [
+ "Kubikmillimeter",
+ "Kubikmillimetern",
+ "mm3",
+ "mm^3"
+ ],
+ "symbol": "mm³",
+ "identifier": "cubicMillimeters"
+ },
+ {
+ "aliases": [
+ "cubic inch",
+ "cubic inches",
+ "in³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "symbol": "in³",
+ "identifier": "cubicInches"
+ },
+ {
+ "aliases": [
+ "cubic foot",
+ "cubic feet",
+ "cuft",
+ "ft³",
+ "ft3",
+ "ft^3"
+ ],
+ "symbol": "ft³",
+ "identifier": "cubicFeet"
+ },
+ {
+ "aliases": [
+ "cubic yard",
+ "cubic yards",
+ "yd³",
+ "yard³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "symbol": "yd³",
+ "identifier": "cubicYards"
+ },
+ {
+ "aliases": [
+ "cubic mile",
+ "cubic miles",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "mile³",
+ "mile^3",
+ "miles^3"
+ ],
+ "symbol": "mi³",
+ "identifier": "cubicMiles"
+ },
+ {
+ "aliases": [
+ "bushel",
+ "bushels"
+ ],
+ "symbol": "bsh",
+ "identifier": "bushels"
+ },
+ {
+ "aliases": [
+ "Tasse",
+ "Tassen"
+ ],
+ "symbol": "Tasse",
+ "identifier": "metricCups"
+ },
+ {
+ "aliases": [
+ "cup",
+ "cups"
+ ],
+ "symbol": "cup",
+ "identifier": "cups"
+ },
+ {
+ "aliases": [
+ "acre feet",
+ "acre foot"
+ ],
+ "symbol": "af",
+ "identifier": "acreFeet"
+ },
+ {
+ "aliases": [
+ "pint",
+ "pints"
+ ],
+ "symbol": "pt",
+ "identifier": "pints"
+ },
+ {
+ "aliases": [
+ "quart",
+ "quarts"
+ ],
+ "symbol": "qt",
+ "identifier": "quarts"
+ },
+ {
+ "aliases": [
+ "Gallone",
+ "Gallonen",
+ "gal"
+ ],
+ "symbol": "gal",
+ "identifier": "gallons"
+ },
+ {
+ "aliases": [
+ "Esslöffel",
+ "tbsp"
+ ],
+ "symbol": "EL",
+ "identifier": "tablespoons"
+ },
+ {
+ "aliases": [
+ "Teelöffel",
+ "tsp"
+ ],
+ "symbol": "TL",
+ "identifier": "teaspoons"
+ },
+ {
+ "aliases": [
+ "Flüssigunze",
+ "Flüssigunzen",
+ "floz"
+ ],
+ "symbol": "fl oz",
+ "identifier": "fluidOunces"
+ }
+ ],
+ "dataStorage": [
+ {
+ "aliases": [
+ "byte",
+ "bytes"
+ ],
+ "symbol": "B",
+ "identifier": "bytes"
+ },
+ {
+ "aliases": [
+ "bit",
+ "bits"
+ ],
+ "symbol": "bit",
+ "identifier": "bits"
+ },
+ {
+ "aliases": [
+ "yottabyte",
+ "yottabytes"
+ ],
+ "symbol": "YB",
+ "identifier": "yottabytes"
+ },
+ {
+ "aliases": [
+ "zettabyte",
+ "zettabytes"
+ ],
+ "symbol": "ZB",
+ "identifier": "zettabytes"
+ },
+ {
+ "aliases": [
+ "exabyte",
+ "exabytes"
+ ],
+ "symbol": "EB",
+ "identifier": "exabytes"
+ },
+ {
+ "aliases": [
+ "petabyte",
+ "petabytes"
+ ],
+ "symbol": "PB",
+ "identifier": "petabytes"
+ },
+ {
+ "aliases": [
+ "terabyte",
+ "terabytes",
+ "TB",
+ "tb"
+ ],
+ "symbol": "TB",
+ "identifier": "terabytes"
+ },
+ {
+ "aliases": [
+ "gigabyte",
+ "gigabytes",
+ "GB",
+ "gb"
+ ],
+ "symbol": "GB",
+ "identifier": "gigabytes"
+ },
+ {
+ "aliases": [
+ "megabyte",
+ "megabytes",
+ "MB",
+ "mb"
+ ],
+ "symbol": "MB",
+ "identifier": "megabytes"
+ },
+ {
+ "aliases": [
+ "kilobyte",
+ "kilobytes",
+ "KB",
+ "kb"
+ ],
+ "symbol": "kB",
+ "identifier": "kilobytes"
+ },
+ {
+ "aliases": [
+ "yottabit",
+ "yottabits",
+ "Ybit"
+ ],
+ "symbol": "Yb",
+ "identifier": "yottabits"
+ },
+ {
+ "aliases": [
+ "zettabit",
+ "zettabits",
+ "Zbit"
+ ],
+ "symbol": "Zb",
+ "identifier": "zettabits"
+ },
+ {
+ "aliases": [
+ "exabit",
+ "exabits",
+ "Ebit"
+ ],
+ "symbol": "Eb",
+ "identifier": "exabits"
+ },
+ {
+ "aliases": [
+ "petabit",
+ "petabits",
+ "Pbit"
+ ],
+ "symbol": "Pb",
+ "identifier": "petabits"
+ },
+ {
+ "aliases": [
+ "terabit",
+ "terabits",
+ "Tbit"
+ ],
+ "symbol": "Tb",
+ "identifier": "terabits"
+ },
+ {
+ "aliases": [
+ "gigabit",
+ "gigabits",
+ "Gbit"
+ ],
+ "symbol": "Gb",
+ "identifier": "gigabits"
+ },
+ {
+ "aliases": [
+ "megabit",
+ "megabits",
+ "Mbit"
+ ],
+ "symbol": "Mb",
+ "identifier": "megabits"
+ },
+ {
+ "aliases": [
+ "kilobit",
+ "kilobits",
+ "Kbit",
+ "Kb"
+ ],
+ "symbol": "kb",
+ "identifier": "kilobits"
+ },
+ {
+ "aliases": [
+ "yobibyte",
+ "yobibytes",
+ "YiB"
+ ],
+ "symbol": "YiB",
+ "identifier": "yobibytes"
+ },
+ {
+ "aliases": [
+ "zebibyte",
+ "zebibytes",
+ "ZiB"
+ ],
+ "symbol": "ZiB",
+ "identifier": "zebibytes"
+ },
+ {
+ "aliases": [
+ "exbibyte",
+ "exbibytes",
+ "EiB"
+ ],
+ "symbol": "EiB",
+ "identifier": "exbibytes"
+ },
+ {
+ "aliases": [
+ "pebibyte",
+ "pebibytes",
+ "PiB"
+ ],
+ "symbol": "PiB",
+ "identifier": "pebibytes"
+ },
+ {
+ "aliases": [
+ "tebibyte",
+ "tebibytes",
+ "TiB"
+ ],
+ "symbol": "TiB",
+ "identifier": "tebibytes"
+ },
+ {
+ "aliases": [
+ "gibibyte",
+ "gibibytes",
+ "GiB"
+ ],
+ "symbol": "GiB",
+ "identifier": "gibibytes"
+ },
+ {
+ "aliases": [
+ "mebibyte",
+ "mebibytes",
+ "MiB"
+ ],
+ "symbol": "MiB",
+ "identifier": "mebibytes"
+ },
+ {
+ "aliases": [
+ "kibibyte",
+ "kibibytes",
+ "KiB"
+ ],
+ "symbol": "KiB",
+ "identifier": "kibibytes"
+ },
+ {
+ "aliases": [
+ "yobibit",
+ "yobibits",
+ "Yibit"
+ ],
+ "symbol": "Yib",
+ "identifier": "yobibits"
+ },
+ {
+ "aliases": [
+ "zebibit",
+ "zebibits",
+ "Zibit"
+ ],
+ "symbol": "Zib",
+ "identifier": "zebibits"
+ },
+ {
+ "aliases": [
+ "exbibit",
+ "exbibits",
+ "Eibit"
+ ],
+ "symbol": "Eib",
+ "identifier": "exbibits"
+ },
+ {
+ "aliases": [
+ "pebibit",
+ "pebibits",
+ "Pibit"
+ ],
+ "symbol": "Pib",
+ "identifier": "pebibits"
+ },
+ {
+ "aliases": [
+ "tebibit",
+ "tebibits",
+ "Tibit"
+ ],
+ "symbol": "Tib",
+ "identifier": "tebibits"
+ },
+ {
+ "aliases": [
+ "gibibit",
+ "gibibits",
+ "Gibit"
+ ],
+ "symbol": "Gib",
+ "identifier": "gibibits"
+ },
+ {
+ "aliases": [
+ "mebibit",
+ "mebibits",
+ "Mibit"
+ ],
+ "symbol": "Mib",
+ "identifier": "mebibits"
+ },
+ {
+ "aliases": [
+ "kibibit",
+ "kibibits",
+ "Kibit"
+ ],
+ "symbol": "Kib",
+ "identifier": "kibibits"
+ }
+ ],
+ "energy": [
+ {
+ "aliases": [
+ "joule",
+ "joules"
+ ],
+ "symbol": "J",
+ "identifier": "joules"
+ },
+ {
+ "aliases": [
+ "kilojoule",
+ "kilojoules"
+ ],
+ "symbol": "kJ",
+ "identifier": "kilojoules"
+ },
+ {
+ "aliases": [
+ "megajoule",
+ "megajoules"
+ ],
+ "symbol": "mJ",
+ "identifier": "megajoules"
+ },
+ {
+ "aliases": [
+ "gigajoule",
+ "gigajoules"
+ ],
+ "symbol": "gJ",
+ "identifier": "gigajoules"
+ },
+ {
+ "aliases": [
+ "calorie",
+ "calories"
+ ],
+ "symbol": "cal",
+ "identifier": "calories"
+ },
+ {
+ "aliases": [
+ "kilocalorie",
+ "kilocalories"
+ ],
+ "symbol": "kCal",
+ "identifier": "kilocalories"
+ },
+ {
+ "aliases": [
+ "watt hour",
+ "watt hours"
+ ],
+ "symbol": "Wh",
+ "identifier": "wattHours"
+ },
+ {
+ "aliases": [
+ "watt minute",
+ "watt minutes"
+ ],
+ "symbol": "W m",
+ "identifier": "wattMinutes"
+ },
+ {
+ "aliases": [
+ "watt second",
+ "watt seconds"
+ ],
+ "symbol": "W s",
+ "identifier": "wattSeconds"
+ },
+ {
+ "aliases": [
+ "kilowatt hour",
+ "kilowatt hours"
+ ],
+ "symbol": "kWh",
+ "identifier": "kilowattHours"
+ },
+ {
+ "aliases": [
+ "megawatt hour",
+ "megawatt hours"
+ ],
+ "symbol": "MWh",
+ "identifier": "megawattHours"
+ },
+ {
+ "aliases": [
+ "gigawatt hour",
+ "gigawatt hours"
+ ],
+ "symbol": "GWh",
+ "identifier": "gigawattHours"
+ },
+ {
+ "aliases": [
+ "terawatt hour",
+ "terawatt hours"
+ ],
+ "symbol": "TWh",
+ "identifier": "terawattHours"
+ }
+ ],
+ "temperature": [
+ {
+ "aliases": [
+ "Kelvin"
+ ],
+ "symbol": "K",
+ "identifier": "kelvin"
+ },
+ {
+ "aliases": [
+ "degree celsius",
+ "degrees celsius",
+ "ºC",
+ "C",
+ "degC",
+ "celcius"
+ ],
+ "symbol": "°C",
+ "identifier": "celsius"
+ },
+ {
+ "aliases": [
+ "degree fahrenheit",
+ "degrees fahrenheit",
+ "ºF",
+ "F",
+ "degF",
+ "fahrenheit"
+ ],
+ "symbol": "°F",
+ "identifier": "fahrenheit"
+ }
+ ],
+ "dataTransfer": [
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Bps",
+ "identifier": "bytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "bps",
+ "identifier": "bitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "YBps",
+ "identifier": "yottabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "ZBps",
+ "identifier": "zettabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "EBps",
+ "identifier": "exabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "PBps",
+ "identifier": "petabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "TBps",
+ "identifier": "terabytesPerSecond"
+ },
+ {
+ "aliases": [
+ "gBps"
+ ],
+ "symbol": "GBps",
+ "identifier": "gigabytesPerSecond"
+ },
+ {
+ "aliases": [
+ "mBps"
+ ],
+ "symbol": "MBps",
+ "identifier": "megabytesPerSecond"
+ },
+ {
+ "aliases": [
+ "kBps"
+ ],
+ "symbol": "KBps",
+ "identifier": "kilobytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Ybps",
+ "identifier": "yottabitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Zbps",
+ "identifier": "zettabitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Ebps",
+ "identifier": "exabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "Pbps"
+ ],
+ "symbol": "Pbps",
+ "identifier": "petabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "tbps"
+ ],
+ "symbol": "Tbps",
+ "identifier": "terabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "gbps"
+ ],
+ "symbol": "Gbps",
+ "identifier": "gigabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "mbps"
+ ],
+ "symbol": "Mbps",
+ "identifier": "megabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "kbps"
+ ],
+ "symbol": "Kbps",
+ "identifier": "kilobitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "YiBps",
+ "identifier": "yobibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "ZiBps",
+ "identifier": "zebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "EiBps",
+ "identifier": "exbibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "PiBps",
+ "identifier": "pebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "TiBps",
+ "identifier": "tebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "GiBps",
+ "identifier": "gibibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "MiBps",
+ "identifier": "mebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "KiBps",
+ "identifier": "kibibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Yibps",
+ "identifier": "yobibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Zibps",
+ "identifier": "zebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Eibps",
+ "identifier": "exbibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Pibps",
+ "identifier": "pebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Tibps",
+ "identifier": "tebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Gibps",
+ "identifier": "gibibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Mibps",
+ "identifier": "mebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Kibps",
+ "identifier": "kibibitsPerSecond"
+ }
+ ],
+ "angle": [
+ {
+ "aliases": [
+ "Grad"
+ ],
+ "symbol": "°",
+ "identifier": "degrees"
+ },
+ {
+ "aliases": [
+ "Radian"
+ ],
+ "symbol": "rad",
+ "identifier": "radians"
+ }
+ ],
+ "length": [
+ {
+ "aliases": [
+ "Meter",
+ "Metern"
+ ],
+ "symbol": "m",
+ "identifier": "meters"
+ },
+ {
+ "aliases": [
+ "Kilometer",
+ "Kilometern"
+ ],
+ "symbol": "km",
+ "identifier": "kilometers"
+ },
+ {
+ "aliases": [
+ "Zentimeter",
+ "Zentimetern"
+ ],
+ "symbol": "cm",
+ "identifier": "centimeters"
+ },
+ {
+ "aliases": [
+ "Millimeter",
+ "Millimetern"
+ ],
+ "symbol": "mm",
+ "identifier": "millimeters"
+ },
+ {
+ "aliases": [
+ "Mikrometer",
+ "Mikrometern"
+ ],
+ "symbol": "µm",
+ "identifier": "micrometers"
+ },
+ {
+ "aliases": [
+ "Nanometer",
+ "Nanometern"
+ ],
+ "symbol": "nm",
+ "identifier": "nanometers"
+ },
+ {
+ "aliases": [
+ "Zoll",
+ "inch",
+ "inches"
+ ],
+ "symbol": "in",
+ "identifier": "inches"
+ },
+ {
+ "aliases": [
+ "foot",
+ "Fuß",
+ "feet"
+ ],
+ "symbol": "ft",
+ "identifier": "feet"
+ },
+ {
+ "aliases": [
+ "yard",
+ "yards"
+ ],
+ "symbol": "yd",
+ "identifier": "yards"
+ },
+ {
+ "aliases": [
+ "Meile",
+ "Meilen"
+ ],
+ "symbol": "mi",
+ "identifier": "miles"
+ },
+ {
+ "aliases": [
+ "Lichtjahr",
+ "Lichtjahre"
+ ],
+ "symbol": "ly",
+ "identifier": "lightyears"
+ },
+ {
+ "aliases": [
+ "parsec",
+ "parsecs"
+ ],
+ "symbol": "pc",
+ "identifier": "parsecs"
+ },
+ {
+ "aliases": [
+ "Nautische Meile",
+ "Nautische Meilen"
+ ],
+ "symbol": "NM",
+ "identifier": "nauticalMiles"
+ },
+ {
+ "aliases": [
+ "Faden"
+ ],
+ "symbol": "ftm",
+ "identifier": "fathoms"
+ },
+ {
+ "aliases": [
+ "furlong",
+ "furlongs"
+ ],
+ "symbol": "fur",
+ "identifier": "furlongs"
+ },
+ {
+ "aliases": [
+ "Pixel"
+ ],
+ "symbol": "px",
+ "identifier": "pixel"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "em",
+ "identifier": "em"
+ },
+ {
+ "aliases": [
+ "pts"
+ ],
+ "symbol": "pt",
+ "identifier": "point"
+ }
+ ],
+ "area": [
+ {
+ "aliases": [
+ "Quadratkilometer",
+ "kilometer²",
+ "km^2",
+ "km2"
+ ],
+ "symbol": "km²",
+ "identifier": "squareKilometers"
+ },
+ {
+ "aliases": [
+ "Quadratmeter",
+ "m^2",
+ "meter²",
+ "m2"
+ ],
+ "symbol": "m²",
+ "identifier": "squareMeters"
+ },
+ {
+ "aliases": [
+ "Quadratzentimeter",
+ "Zentimeter^2",
+ "Zentimeter²",
+ "cm^2",
+ "cm2"
+ ],
+ "symbol": "cm²",
+ "identifier": "squareCentimeters"
+ },
+ {
+ "aliases": [
+ "Quadratmillimeter",
+ "Millimeter^2",
+ "Millimeter²",
+ "mm^2",
+ "mm2"
+ ],
+ "symbol": "mm²",
+ "identifier": "squareMillimeters"
+ },
+ {
+ "aliases": [
+ "Quadratmicrometer",
+ "Mikrometer^2",
+ "Mikrometer²",
+ "µm^2",
+ "µm2"
+ ],
+ "symbol": "µm²",
+ "identifier": "squareMicrometers"
+ },
+ {
+ "aliases": [
+ "Quadratzoll",
+ "in^2",
+ "in2",
+ "Zoll²"
+ ],
+ "symbol": "in²",
+ "identifier": "squareInches"
+ },
+ {
+ "aliases": [
+ "Quadratfuß",
+ "Quadratfuss",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "feet^2",
+ "feet²"
+ ],
+ "symbol": "ft²",
+ "identifier": "squareFeet"
+ },
+ {
+ "aliases": [
+ "square yard",
+ "square yards",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "yard^2",
+ "yards²",
+ "sqyd"
+ ],
+ "symbol": "yd²",
+ "identifier": "squareYards"
+ },
+ {
+ "aliases": [
+ "Quadratmeile",
+ "Quadratmeilen",
+ "mi^2",
+ "mi2",
+ "mile^2",
+ "miles^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "miles²"
+ ],
+ "symbol": "mi²",
+ "identifier": "squareMiles"
+ },
+ {
+ "aliases": [
+ "acre",
+ "acres",
+ "ac"
+ ],
+ "symbol": "ac",
+ "identifier": "acres"
+ },
+ {
+ "aliases": [
+ "Hektar",
+ "ha"
+ ],
+ "symbol": "ha",
+ "identifier": "hectares"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "ares",
+ "identifier": "ares"
+ }
+ ],
+ "fuelEfficiency": [
+ {
+ "aliases": [
+ "l/100 km",
+ "l/100km",
+ "l / 100km",
+ "Liter / 100km",
+ "Liter / 100km",
+ "l / 100 km",
+ "Liter / 100 km",
+ "Liter / 100 km"
+ ],
+ "symbol": "l/100km",
+ "identifier": "litersPer100Kilometers"
+ },
+ {
+ "aliases": [
+ "Meilen per Gallone"
+ ],
+ "symbol": "mpg",
+ "identifier": "milesPerGallon"
+ }
+ ],
+ "power": [
+ {
+ "aliases": [
+ "Watt"
+ ],
+ "symbol": "W",
+ "identifier": "watts"
+ },
+ {
+ "aliases": [
+ "Milliwatt"
+ ],
+ "symbol": "mW",
+ "identifier": "milliwatts"
+ },
+ {
+ "aliases": [
+ "Kilowatt"
+ ],
+ "symbol": "kW",
+ "identifier": "kilowatts"
+ },
+ {
+ "aliases": [
+ "Megawatt"
+ ],
+ "symbol": "MW",
+ "identifier": "megawatts"
+ },
+ {
+ "aliases": [
+ "Gigawatt"
+ ],
+ "symbol": "GW",
+ "identifier": "gigawatts"
+ },
+ {
+ "aliases": [
+ "Terawatt"
+ ],
+ "symbol": "TW",
+ "identifier": "terawatts"
+ },
+ {
+ "aliases": [
+ "Pferdestärke",
+ "Pferdestärken"
+ ],
+ "symbol": "PS",
+ "identifier": "horsepower"
+ }
+ ],
+ "mass": [
+ {
+ "aliases": [
+ "Kilogram"
+ ],
+ "symbol": "kg",
+ "identifier": "kilograms"
+ },
+ {
+ "aliases": [
+ "Gramm"
+ ],
+ "symbol": "g",
+ "identifier": "grams"
+ },
+ {
+ "aliases": [
+ "Milligramm"
+ ],
+ "symbol": "mg",
+ "identifier": "milligrams"
+ },
+ {
+ "aliases": [
+ "Nanogramm"
+ ],
+ "symbol": "ng",
+ "identifier": "nanograms"
+ },
+ {
+ "aliases": [
+ "Unze",
+ "Unzen"
+ ],
+ "symbol": "oz",
+ "identifier": "ounces"
+ },
+ {
+ "aliases": [
+ "lbs",
+ "Pfund",
+ "Pfd"
+ ],
+ "symbol": "lb",
+ "identifier": "pounds"
+ },
+ {
+ "aliases": [
+ "stone",
+ "stones"
+ ],
+ "symbol": "st",
+ "identifier": "stones"
+ },
+ {
+ "aliases": [
+ "Tonne",
+ "Tonnen"
+ ],
+ "symbol": "t",
+ "identifier": "metricTons"
+ },
+ {
+ "aliases": [
+ "short ton",
+ "short tons",
+ "tons",
+ "tonne",
+ "tonnes"
+ ],
+ "symbol": "ton",
+ "identifier": "shortTons"
+ },
+ {
+ "aliases": [
+ "Karat"
+ ],
+ "symbol": "ct",
+ "identifier": "carats"
+ },
+ {
+ "aliases": [
+ "ounce troy",
+ "ounces troy"
+ ],
+ "symbol": "oz t",
+ "identifier": "ouncesTroy"
+ }
+ ],
+ "duration": [
+ {
+ "aliases": [
+ "Stunde",
+ "Stunden",
+ "Std"
+ ],
+ "symbol": "h",
+ "identifier": "hours"
+ },
+ {
+ "aliases": [
+ "Sekunde",
+ "Sekunden",
+ "sek"
+ ],
+ "symbol": "s",
+ "identifier": "seconds"
+ },
+ {
+ "aliases": [
+ "Minute",
+ "Minuten"
+ ],
+ "symbol": "min",
+ "identifier": "minutes"
+ },
+ {
+ "aliases": [
+ "Tag",
+ "Tage",
+ "Tagen"
+ ],
+ "symbol": "d",
+ "identifier": "days"
+ },
+ {
+ "aliases": [
+ "Wochentag",
+ "Wochentage",
+ "Wochentagen",
+ "Arbeitstage",
+ "Arbeitstag",
+ "Arbeitstagen"
+ ],
+ "symbol": "WT",
+ "identifier": "weekdays"
+ },
+ {
+ "aliases": [
+ "Woche",
+ "Wochen"
+ ],
+ "symbol": "Woche",
+ "identifier": "weeks"
+ },
+ {
+ "aliases": [
+ "Monat",
+ "Monate",
+ "Monaten"
+ ],
+ "symbol": "Mon",
+ "identifier": "months"
+ },
+ {
+ "aliases": [
+ "Jahr",
+ "Jahre",
+ "Jahren"
+ ],
+ "symbol": "Jahr",
+ "identifier": "years"
+ },
+ {
+ "aliases": [
+ "Millisekunde",
+ "Millisekunden"
+ ],
+ "symbol": "ms",
+ "identifier": "milliseconds"
+ },
+ {
+ "aliases": [
+ "Mikrosekunde",
+ "Mikrosekunden"
+ ],
+ "symbol": "µs",
+ "identifier": "microseconds"
+ },
+ {
+ "aliases": [
+ "Nanosekunde",
+ "Nanosekunden"
+ ],
+ "symbol": "ns",
+ "identifier": "nanoseconds"
+ }
+ ],
+ "currency": [
+ {
+ "aliases": [
+ "usd"
+ ],
+ "symbol": "USD",
+ "identifier": "usd"
+ }
+ ],
+ "frequency": [
+ {
+ "aliases": [
+ "Hertz",
+ "hz"
+ ],
+ "symbol": "Hz",
+ "identifier": "hertz"
+ },
+ {
+ "aliases": [
+ "Kilohertz"
+ ],
+ "symbol": "kHz",
+ "identifier": "kilohertz"
+ },
+ {
+ "aliases": [
+ "Megahertz"
+ ],
+ "symbol": "MHz",
+ "identifier": "megahertz"
+ },
+ {
+ "aliases": [
+ "Gigahertz"
+ ],
+ "symbol": "GHz",
+ "identifier": "gigahertz"
+ },
+ {
+ "aliases": [
+ "Terahertz"
+ ],
+ "symbol": "THz",
+ "identifier": "terahertz"
+ },
+ {
+ "aliases": [
+ "Millihertz"
+ ],
+ "symbol": "mHz",
+ "identifier": "millihertz"
+ },
+ {
+ "aliases": [
+ "Mikrohertz"
+ ],
+ "symbol": "µHz",
+ "identifier": "microhertz"
+ },
+ {
+ "aliases": [
+ "Nanohertz"
+ ],
+ "symbol": "nHz",
+ "identifier": "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/Localizable.strings
new file mode 100644
index 000000000..42f0222f1
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..3132bcc8d
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/en.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/Cities.json
new file mode 100644
index 000000000..a0aaab1fd
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/Cities.json
@@ -0,0 +1,5245 @@
+[
+ {
+ "population" : "22,315,474",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Шанхай",
+ "aliases" : [
+ "Шанхаем",
+ "Шанхае"
+ ],
+ "identifier" : "shanghai"
+ },
+ {
+ "population" : "14,804,116",
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "Стамбул",
+ "aliases" : [
+ "Стамбулом",
+ "Стамбуле"
+ ],
+ "identifier" : "istanbul"
+ },
+ {
+ "population" : "13,076,300",
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "Буэнос-Айрес",
+ "aliases" : [
+ "Буэнос-Айресе",
+ "Буэнос-Айресом"
+ ],
+ "identifier" : "buenos aires"
+ },
+ {
+ "population" : "12,691,836",
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Мумбаи",
+ "identifier" : "mumbai"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "Мехико",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "population" : "11,716,620",
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Пекин",
+ "aliases" : [
+ "Пекине",
+ "Пекином"
+ ],
+ "identifier" : "beijing"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "Карачи",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "population" : "11,090,314",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Тяньцзинь",
+ "aliases" : [
+ "Тяньцзине",
+ "Тяньцзинем"
+ ],
+ "identifier" : "tianjin"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Гуанчжоу",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Дели",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "population" : "10,381,222",
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Москва",
+ "aliases" : [
+ "Москву",
+ "Москвой",
+ "Москве"
+ ],
+ "identifier" : "moscow"
+ },
+ {
+ "population" : "10,358,381",
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Шэньчжэнь",
+ "aliases" : [
+ "Шэньчжэне",
+ "Шэньчжэнем"
+ ],
+ "identifier" : "shenzhen"
+ },
+ {
+ "population" : "10,356,500",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "Дакка",
+ "aliases" : [
+ "Дакку",
+ "Даккой",
+ "Дакке"
+ ],
+ "identifier" : "dhaka"
+ },
+ {
+ "population" : "10,349,312",
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "Сеул",
+ "aliases" : [
+ "Сеулом",
+ "Сеуле"
+ ],
+ "identifier" : "seoul"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Сан-Паулу",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "population" : "9,785,388",
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Ухань",
+ "aliases" : [
+ "Уханем",
+ "Ухане"
+ ],
+ "identifier" : "wuhan"
+ },
+ {
+ "population" : "9,000,000",
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Лагос",
+ "aliases" : [
+ "Лагосом",
+ "Лагосе"
+ ],
+ "identifier" : "lagos"
+ },
+ {
+ "population" : "8,540,121",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "Джакарта",
+ "aliases" : [
+ "Джакартой",
+ "Джакарту",
+ "Джакарте"
+ ],
+ "identifier" : "jakarta"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Токио",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "population" : "8,175,133",
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "Нью-Йорк",
+ "aliases" : [
+ "Нью-Йорком",
+ "Нью Йорк",
+ "Нью-Йорке"
+ ],
+ "identifier" : "new york"
+ },
+ {
+ "population" : "8,000,000",
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Дунгуань",
+ "aliases" : [
+ "Дунгуане",
+ "Дунгуанем"
+ ],
+ "identifier" : "dongguan"
+ },
+ {
+ "population" : "7,871,900",
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "Тайбэй",
+ "aliases" : [
+ "Тайбэем",
+ "Тайбэе"
+ ],
+ "identifier" : "taipei"
+ },
+ {
+ "population" : "7,785,965",
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "Киншаса",
+ "aliases" : [
+ "Киншасе",
+ "Киншасу",
+ "Киншасой"
+ ],
+ "identifier" : "kinshasa"
+ },
+ {
+ "population" : "7,734,614",
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "Каир",
+ "aliases" : [
+ "Каиром",
+ "Каире"
+ ],
+ "identifier" : "cairo"
+ },
+ {
+ "population" : "7,674,366",
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "Богота",
+ "aliases" : [
+ "Боготе",
+ "Боготой",
+ "Боготу"
+ ],
+ "identifier" : "bogota"
+ },
+ {
+ "population" : "7,556,900",
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "Лондон",
+ "aliases" : [
+ "Лондоне",
+ "Лондоном"
+ ],
+ "identifier" : "london"
+ },
+ {
+ "population" : "7,457,600",
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Чунцин",
+ "aliases" : [
+ "Чунцине",
+ "Чунцином"
+ ],
+ "identifier" : "chongqing"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Чэнду",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "population" : "7,216,000",
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "Багдад",
+ "aliases" : [
+ "Багдадом",
+ "багдаде"
+ ],
+ "identifier" : "baghdad"
+ },
+ {
+ "population" : "7,165,292",
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Нанкин",
+ "aliases" : [
+ "Нанкином",
+ "Нанкине"
+ ],
+ "identifier" : "nanjing"
+ },
+ {
+ "population" : "7,153,309",
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Тегеран",
+ "aliases" : [
+ "Тегераном",
+ "Тегеране"
+ ],
+ "identifier" : "tehran"
+ },
+ {
+ "population" : "7,150,000",
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Наньчун",
+ "aliases" : [
+ "Наньчуном",
+ "Наньчуне"
+ ],
+ "identifier" : "nanchong"
+ },
+ {
+ "population" : "7,012,738",
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "Гонконг",
+ "aliases" : [
+ "Гонконге",
+ "Гонконгом"
+ ],
+ "identifier" : "hong kong"
+ },
+ {
+ "population" : "6,501,190",
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Сиань",
+ "aliases" : [
+ "Сиане"
+ ],
+ "identifier" : "xi'an"
+ },
+ {
+ "population" : "6,023,699",
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Рио де Жанейро",
+ "aliases" : [
+ "Рио-де-Жанейро"
+ ],
+ "identifier" : "rio de janeiro"
+ },
+ {
+ "population" : "5,104,476",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "Бангкок",
+ "aliases" : [
+ "Бангкоке",
+ "Бангкоком"
+ ],
+ "identifier" : "bangkok"
+ },
+ {
+ "population" : "5,104,047",
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Бенгалор",
+ "aliases" : [
+ "Бангалор",
+ "Бангалоре",
+ "Бенгалором"
+ ],
+ "identifier" : "bengaluru"
+ },
+ {
+ "population" : "5,028,000",
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Санкт-Петербург",
+ "aliases" : [
+ "Санкт-Петербургом",
+ "Санкт-Петербурге"
+ ],
+ "identifier" : "saint petersburg"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "Сантьяго",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "population" : "4,631,392",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Колькутта",
+ "aliases" : [
+ "Калькутту",
+ "Калькуттой",
+ "Калькутте"
+ ],
+ "identifier" : "kolkata"
+ },
+ {
+ "population" : "4,627,345",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Сидней",
+ "aliases" : [
+ "Сиднеем",
+ "Сиднее"
+ ],
+ "identifier" : "sydney"
+ },
+ {
+ "population" : "4,477,638",
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "Янгон",
+ "aliases" : [
+ "Янгоне",
+ "Янгоном"
+ ],
+ "identifier" : "yangon"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Ченнаи",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "population" : "4,246,375",
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "Мельбурн",
+ "aliases" : [
+ "Мельбурном",
+ "Мельбурне"
+ ],
+ "identifier" : "melbourne"
+ },
+ {
+ "population" : "4,205,961",
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Эр - Рияд",
+ "aliases" : [
+ "Эр-Рияде",
+ "Эр-Рияд",
+ "Эр-Риядом"
+ ],
+ "identifier" : "riyadh"
+ },
+ {
+ "population" : "3,971,883",
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Лос-Анджелес",
+ "aliases" : [
+ "Лос-Анджелесом",
+ "Лос-Анжелесе"
+ ],
+ "identifier" : "los angeles"
+ },
+ {
+ "population" : "3,920,222",
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "Читтагонг",
+ "aliases" : [
+ "Читтагонге",
+ "Читтагонгом"
+ ],
+ "identifier" : "chittagong"
+ },
+ {
+ "population" : "3,811,516",
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "Александрия",
+ "aliases" : [
+ "Александрией",
+ "Александрии",
+ "Александрию"
+ ],
+ "identifier" : "alexandria"
+ },
+ {
+ "population" : "3,719,710",
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Ахмедабад",
+ "aliases" : [
+ "Ахмедабаде",
+ "Ахмедабадом"
+ ],
+ "identifier" : "ahmedabad"
+ },
+ {
+ "population" : "3,678,555",
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "Пусан",
+ "aliases" : [
+ "Пусаном",
+ "Пусане"
+ ],
+ "identifier" : "busan"
+ },
+ {
+ "population" : "3,677,115",
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "Абиджан",
+ "aliases" : [
+ "Абиджаном",
+ "Абиджане"
+ ],
+ "identifier" : "abidjan"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Кано",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "population" : "3,597,816",
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Хайдарабад",
+ "aliases" : [
+ "Хайдарабаде",
+ "Хайдарабадом"
+ ],
+ "identifier" : "hyderabad"
+ },
+ {
+ "population" : "3,574,443",
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Йокогама",
+ "aliases" : [
+ "Йокогаму",
+ "Йокогамой",
+ "Йокогаме"
+ ],
+ "identifier" : "yokohama"
+ },
+ {
+ "population" : "3,565,108",
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Ибадан",
+ "aliases" : [
+ "Ибадане",
+ "Ибаданом"
+ ],
+ "identifier" : "ibadan"
+ },
+ {
+ "population" : "3,547,809",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "Сингапур",
+ "aliases" : [
+ "Сингапуре",
+ "Сингапуром"
+ ],
+ "identifier" : "singapore"
+ },
+ {
+ "population" : "3,517,182",
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "Анкара",
+ "aliases" : [
+ "Анкарой",
+ "Анкаре",
+ "Анкару"
+ ],
+ "identifier" : "ankara"
+ },
+ {
+ "population" : "3,467,331",
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "Хошимин",
+ "aliases" : [
+ " Хошимине",
+ "Хошимином"
+ ],
+ "identifier" : "ho chi minh city"
+ },
+ {
+ "population" : "3,433,441",
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Кейптаун",
+ "aliases" : [
+ "Кейптауне",
+ "Кейптауном"
+ ],
+ "identifier" : "cape town"
+ },
+ {
+ "population" : "3,426,354",
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Берлин",
+ "aliases" : [
+ "Берлином",
+ "Берлине"
+ ],
+ "identifier" : "berlin"
+ },
+ {
+ "population" : "3,255,944",
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "Мадрид",
+ "aliases" : [
+ "Мадриде",
+ "Мадридом"
+ ],
+ "identifier" : "madrid"
+ },
+ {
+ "population" : "3,222,000",
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "Пхеньян",
+ "aliases" : [
+ "Пхеньяне",
+ "Пхеньяном"
+ ],
+ "identifier" : "pyongyang"
+ },
+ {
+ "population" : "3,144,909",
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Касабланка",
+ "aliases" : [
+ "Касабланкой",
+ "Касабланке",
+ "Касабланку"
+ ],
+ "identifier" : "casablanca"
+ },
+ {
+ "population" : "3,121,275",
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "Чжуншань",
+ "aliases" : [
+ "Чжуншане",
+ "Чжуншанем"
+ ],
+ "identifier" : "zhongshan"
+ },
+ {
+ "population" : "3,120,282",
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Дурбан",
+ "aliases" : [
+ "Дурбаном",
+ "Дурбане"
+ ],
+ "identifier" : "durban"
+ },
+ {
+ "population" : "3,043,532",
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "Кабул",
+ "aliases" : [
+ "Кабулом",
+ "Кабуле"
+ ],
+ "identifier" : "kabul"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "Урумчи",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "population" : "3,000,000",
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "Каракас",
+ "aliases" : [
+ "Каракасом",
+ "Каракасе"
+ ],
+ "identifier" : "caracas"
+ },
+ {
+ "population" : "2,956,587",
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "Дубай",
+ "aliases" : [
+ "Дубае",
+ "Дубаем"
+ ],
+ "identifier" : "dubai"
+ },
+ {
+ "population" : "2,867,446",
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Джидда",
+ "aliases" : [
+ "Джиддой",
+ "Джидде",
+ "Джидду"
+ ],
+ "identifier" : "jeddah"
+ },
+ {
+ "population" : "2,797,553",
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Киев",
+ "aliases" : [
+ "Киевом",
+ "Киеве"
+ ],
+ "identifier" : "kyiv"
+ },
+ {
+ "population" : "2,776,168",
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "Луанда",
+ "aliases" : [
+ "Луанде",
+ "Луандой",
+ "Луанду"
+ ],
+ "identifier" : "luanda"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "Кесон-Сити",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "population" : "2,757,729",
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "Аддис-Абеба",
+ "aliases" : [
+ "Аддис-Абебой",
+ "Аддис-Абебе",
+ "Аддис-Абебу"
+ ],
+ "identifier" : "addis ababa"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "Найроби",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "Чикаго",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "population" : "2,711,840",
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "Сальвадор",
+ "aliases" : [
+ "Сальвадором",
+ "Сальвадоре"
+ ],
+ "identifier" : "salvador"
+ },
+ {
+ "population" : "2,698,652",
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "Дар-эс-Салам",
+ "aliases" : [
+ "Дар-эс-Саламе",
+ "Дар-эс-Саламом"
+ ],
+ "identifier" : "dar es salaam"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "Торонто",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "population" : "2,592,413",
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Осака",
+ "aliases" : [
+ "Осаку",
+ "Осакой",
+ "Осаке"
+ ],
+ "identifier" : "osaka"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "Могадишо",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "population" : "2,500,603",
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "Измир",
+ "aliases" : [
+ "Измиром",
+ "Измире"
+ ],
+ "identifier" : "izmir"
+ },
+ {
+ "population" : "2,476,400",
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "Дакар",
+ "aliases" : [
+ "Дакаре",
+ "Дакаром"
+ ],
+ "identifier" : "dakar"
+ },
+ {
+ "population" : "2,443,203",
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "Гиза",
+ "aliases" : [
+ "Гизе",
+ "Гизу",
+ "Гизой"
+ ],
+ "identifier" : "giza"
+ },
+ {
+ "population" : "2,400,000",
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "Форталеза",
+ "aliases" : [
+ "Форталезе",
+ "Форталезу",
+ "Форталезой"
+ ],
+ "identifier" : "fortaleza"
+ },
+ {
+ "population" : "2,374,658",
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "Сурабая",
+ "aliases" : [
+ "Сурабаей",
+ "Сурабае",
+ "Сурабаю"
+ ],
+ "identifier" : "surabaya"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Белу-Оризонти",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "population" : "2,318,895",
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Рим",
+ "aliases" : [
+ "Риме",
+ "Римом"
+ ],
+ "identifier" : "rome"
+ },
+ {
+ "population" : "2,307,177",
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Мешхед",
+ "aliases" : [
+ "Мешхеде",
+ "Мешхедом"
+ ],
+ "identifier" : "mashhad"
+ },
+ {
+ "population" : "2,300,664",
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "Бруклин",
+ "aliases" : [
+ "Бруклином",
+ "Бруклине"
+ ],
+ "identifier" : "brooklyn"
+ },
+ {
+ "population" : "2,296,224",
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "Хьюстон",
+ "aliases" : [
+ "Хьюстоном",
+ "Хьюстоне"
+ ],
+ "identifier" : "houston"
+ },
+ {
+ "population" : "2,272,771",
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "Квинс",
+ "aliases" : [
+ "Квинс»",
+ "Квинсе",
+ "Квинсом"
+ ],
+ "identifier" : "queens"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Бразилиа",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "population" : "2,201,941",
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "Санто-Доминго",
+ "aliases" : [
+ "Санто-Доминго "
+ ],
+ "identifier" : "santo domingo"
+ },
+ {
+ "population" : "2,191,279",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Нагоя",
+ "aliases" : [
+ "Нагоей",
+ "Нагое"
+ ],
+ "identifier" : "nagoya"
+ },
+ {
+ "population" : "2,189,878",
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Брисбен",
+ "aliases" : [
+ "Брисбне",
+ "Брисбном"
+ ],
+ "identifier" : "brisbane"
+ },
+ {
+ "population" : "2,163,824",
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "Гавана",
+ "aliases" : [
+ "Гаваной",
+ "Гавану",
+ "Гаване"
+ ],
+ "identifier" : "havana"
+ },
+ {
+ "population" : "2,138,551",
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Париж",
+ "aliases" : [
+ "Париже",
+ "Парижем"
+ ],
+ "identifier" : "paris"
+ },
+ {
+ "population" : "2,026,469",
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Йоханнесбург",
+ "aliases" : [
+ "Йоханнесбурге",
+ "Йоханнесбургом"
+ ],
+ "identifier" : "johannesburg"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "Алматы",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "population" : "1,978,028",
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "Ташкент",
+ "aliases" : [
+ "Ташкенте",
+ "Ташкентом"
+ ],
+ "identifier" : "tashkent"
+ },
+ {
+ "population" : "1,977,663",
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Алжир",
+ "aliases" : [
+ "Алжире",
+ "Алжиром"
+ ],
+ "identifier" : "algiers"
+ },
+ {
+ "population" : "1,974,647",
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "Хартум",
+ "aliases" : [
+ "Хартуме",
+ "Хартумом"
+ ],
+ "identifier" : "khartoum"
+ },
+ {
+ "population" : "1,963,264",
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "Аккра",
+ "aliases" : [
+ "Аккре",
+ "Аккру",
+ "Аккрой"
+ ],
+ "identifier" : "accra"
+ },
+ {
+ "population" : "1,952,029",
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "Гуякиль",
+ "aliases" : [
+ "Гуякилем",
+ "Гуякиле"
+ ],
+ "identifier" : "guayaquil"
+ },
+ {
+ "population" : "1,937,451",
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "Сана",
+ "aliases" : [
+ "Сане",
+ "Саной"
+ ],
+ "identifier" : "sanaa"
+ },
+ {
+ "population" : "1,916,100",
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "Бейрут",
+ "aliases" : [
+ "Бейрутом",
+ "Бейруте"
+ ],
+ "identifier" : "beirut"
+ },
+ {
+ "population" : "1,896,548",
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "Перт",
+ "aliases" : [
+ "Пертом",
+ "Перте"
+ ],
+ "identifier" : "perth"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Саппоро",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "population" : "1,877,155",
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "Бухарест",
+ "aliases" : [
+ "Бухарестом",
+ "Бухаресте"
+ ],
+ "identifier" : "bucharest"
+ },
+ {
+ "population" : "1,871,242",
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "Камайен",
+ "aliases" : [
+ "Камайеном",
+ "Камайен",
+ "Камайенне"
+ ],
+ "identifier" : "camayenne"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "Конакри",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "population" : "1,742,124",
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "Минск",
+ "aliases" : [
+ "Минске",
+ "Минском"
+ ],
+ "identifier" : "minsk"
+ },
+ {
+ "population" : "1,741,041",
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "Будапешт",
+ "aliases" : [
+ "Будапештом",
+ "Будапеште"
+ ],
+ "identifier" : "budapest"
+ },
+ {
+ "population" : "1,739,117",
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Гамбург",
+ "aliases" : [
+ "Гамбургом",
+ "Гамбурге"
+ ],
+ "identifier" : "hamburg"
+ },
+ {
+ "population" : "1,702,139",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "Варшава",
+ "aliases" : [
+ "Варшавой",
+ "Варшаву",
+ "Варшаве"
+ ],
+ "identifier" : "warsaw"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Соуэто",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "population" : "1,691,468",
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Вена",
+ "aliases" : [
+ "Вену",
+ "Веной",
+ "Вене"
+ ],
+ "identifier" : "vienna"
+ },
+ {
+ "population" : "1,655,753",
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Рабат",
+ "aliases" : [
+ "Рабатом",
+ "Рабате"
+ ],
+ "identifier" : "rabat"
+ },
+ {
+ "population" : "1,621,537",
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "Барселона",
+ "aliases" : [
+ "Барселоне",
+ "Барселоной",
+ "Барселону"
+ ],
+ "identifier" : "barcelona"
+ },
+ {
+ "population" : "1,619,438",
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Претория",
+ "aliases" : [
+ "Преторией",
+ "Преторию",
+ "Претории"
+ ],
+ "identifier" : "pretoria"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "Алеппо",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "population" : "1,600,000",
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "Манила",
+ "aliases" : [
+ "Маниле",
+ "Манилой",
+ "Манилу"
+ ],
+ "identifier" : "manila"
+ },
+ {
+ "population" : "1,600,000",
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "Монреаль",
+ "aliases" : [
+ "Монреалем",
+ "Монреале"
+ ],
+ "identifier" : "montreal"
+ },
+ {
+ "population" : "1,582,102",
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Кадуна",
+ "aliases" : [
+ "Кадуне",
+ "Кадуной",
+ "Кадуну"
+ ],
+ "identifier" : "kaduna"
+ },
+ {
+ "population" : "1,573,544",
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "Пномпень",
+ "aliases" : [
+ "Пномпенем",
+ "Пномпене"
+ ],
+ "identifier" : "phnom penh"
+ },
+ {
+ "population" : "1,569,394",
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "Дамаск",
+ "aliases" : [
+ "Дамаске",
+ "Дамаском"
+ ],
+ "identifier" : "damascus"
+ },
+ {
+ "population" : "1,567,442",
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "Филадельфия",
+ "aliases" : [
+ "Филадельфию",
+ "Филадельфией",
+ "Филадельфии"
+ ],
+ "identifier" : "philadelphia"
+ },
+ {
+ "population" : "1,563,025",
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "Феникс",
+ "aliases" : [
+ "Фениксом",
+ "Фениксе"
+ ],
+ "identifier" : "phoenix"
+ },
+ {
+ "population" : "1,547,164",
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Исфахан",
+ "aliases" : [
+ "Исфаханом",
+ "Исфахане"
+ ],
+ "identifier" : "isfahan"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "Хараре",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Кобе",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "population" : "1,515,017",
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "Стокгольм",
+ "aliases" : [
+ "Стокгольмом",
+ "Стокгольме"
+ ],
+ "identifier" : "stockholm"
+ },
+ {
+ "population" : "1,487,536",
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "Манхэттен",
+ "aliases" : [
+ "Манхэттеном",
+ "Манхэттене"
+ ],
+ "identifier" : "manhattan"
+ },
+ {
+ "population" : "1,482,200",
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "Асунсьон",
+ "aliases" : [
+ "Асунсьоном",
+ "Асунсьоне"
+ ],
+ "identifier" : "asuncion"
+ },
+ {
+ "population" : "1,478,098",
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "Ресифе",
+ "aliases" : [
+ "Ресифи"
+ ],
+ "identifier" : "recife"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "Сан-Антонио",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "Кумаси",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "Кота-Бару",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Киото",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "population" : "1,453,975",
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "Куала-Лумпур",
+ "aliases" : [
+ "Куала-Лумпуром",
+ "Куала-Лумпуре"
+ ],
+ "identifier" : "kuala lumpur"
+ },
+ {
+ "population" : "1,448,075",
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Карадж",
+ "aliases" : [
+ "Кередж",
+ "Кереджем",
+ "Кередже"
+ ],
+ "identifier" : "karaj"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "Катманду",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "population" : "1,431,270",
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "Ханой",
+ "aliases" : [
+ "Ханое",
+ "Ханоем"
+ ],
+ "identifier" : "hanoi"
+ },
+ {
+ "population" : "1,430,885",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Харьков",
+ "aliases" : [
+ "Харьковом",
+ "Харькове"
+ ],
+ "identifier" : "kharkiv"
+ },
+ {
+ "population" : "1,428,214",
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "Кордова",
+ "aliases" : [
+ "Кордове",
+ "Кордовой",
+ "Кордову"
+ ],
+ "identifier" : "cordoba"
+ },
+ {
+ "population" : "1,424,641",
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Тебриз",
+ "aliases" : [
+ "Тебризом",
+ "Тебризе"
+ ],
+ "identifier" : "tabriz"
+ },
+ {
+ "population" : "1,419,007",
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "Новосибирск",
+ "aliases" : [
+ "новосибирске",
+ "Новосибирском"
+ ],
+ "identifier" : "novosibirsk"
+ },
+ {
+ "population" : "1,407,737",
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "Белен",
+ "aliases" : [
+ "Беленом",
+ "Белене"
+ ],
+ "identifier" : "belem"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "Кито",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Сан-Диего",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "population" : "1,392,289",
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Фукуока",
+ "aliases" : [
+ "Фукуокой",
+ "Фукуоке",
+ "Фукуоку"
+ ],
+ "identifier" : "fukuoka"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "Антананариву",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "population" : "1,385,108",
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "Бронкс",
+ "aliases" : [
+ "Бронксе",
+ "Бронксом"
+ ],
+ "identifier" : "the bronx"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "Лубумбаши",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "Санта-Крус-де-ла-Сьерра",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "population" : "1,353,189",
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "Кампала",
+ "aliases" : [
+ "Кампале",
+ "Кампалой",
+ "Кампалу"
+ ],
+ "identifier" : "kampala"
+ },
+ {
+ "population" : "1,349,772",
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Екатеринбург",
+ "aliases" : [
+ "Екатеринбургом",
+ "Екатеринбурге"
+ ],
+ "identifier" : "yekaterinburg"
+ },
+ {
+ "population" : "1,338,082",
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "Дуала",
+ "aliases" : [
+ "Дуалой",
+ "Дуале",
+ "Дуалу"
+ ],
+ "identifier" : "douala"
+ },
+ {
+ "population" : "1,324,473",
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "Sharjah",
+ "aliases" : [
+ "Шарджу",
+ "Шардже",
+ "Шарджей"
+ ],
+ "identifier" : "sharjah"
+ },
+ {
+ "population" : "1,323,624",
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Мекка",
+ "aliases" : [
+ "Мекку",
+ "Меккой",
+ "Мекке"
+ ],
+ "identifier" : "mecca"
+ },
+ {
+ "population" : "1,321,717",
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "Макассар",
+ "aliases" : [
+ "Макассаром",
+ "Макассаре"
+ ],
+ "identifier" : "makassar"
+ },
+ {
+ "population" : "1,321,004",
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "Хуарес",
+ "aliases" : [
+ "Хуаресом",
+ "Хуаресе"
+ ],
+ "identifier" : "juarez"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Кавасаки",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "population" : "1,300,983",
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "Тихуана",
+ "aliases" : [
+ "Тихуаной",
+ "Тихуане",
+ "Тихуану"
+ ],
+ "identifier" : "tijuana"
+ },
+ {
+ "population" : "1,300,092",
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "Даллас",
+ "aliases" : [
+ "Далласе",
+ "Далласом"
+ ],
+ "identifier" : "dallas"
+ },
+ {
+ "population" : "1,300,000",
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Медина",
+ "aliases" : [
+ "Медину",
+ "Мединой",
+ "Медине"
+ ],
+ "identifier" : "medina"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "Яунде",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "Бамако",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "population" : "1,284,609",
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "Браззавиль",
+ "aliases" : [
+ "Браззавилем",
+ "Браззавиле"
+ ],
+ "identifier" : "brazzaville"
+ },
+ {
+ "population" : "1,284,164",
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Нижний Новгород",
+ "aliases" : [
+ "Нижним Новгородом",
+ "Нижнем Новгороде"
+ ],
+ "identifier" : "nizhniy novgorod"
+ },
+ {
+ "population" : "1,275,857",
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "Амман",
+ "aliases" : [
+ "Аммане",
+ "Амманом"
+ ],
+ "identifier" : "amman"
+ },
+ {
+ "population" : "1,273,651",
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "Белград",
+ "aliases" : [
+ "Белграде",
+ "Белградом"
+ ],
+ "identifier" : "belgrade"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "Монтевидео",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "population" : "1,267,440",
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "Лусака",
+ "aliases" : [
+ "Лусакой",
+ "Лусаке",
+ "Лусаку"
+ ],
+ "identifier" : "lusaka"
+ },
+ {
+ "population" : "1,260,391",
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Мюнхен",
+ "aliases" : [
+ "Мюнхене",
+ "Мюнхеном"
+ ],
+ "identifier" : "munich"
+ },
+ {
+ "population" : "1,249,942",
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Шираз",
+ "aliases" : [
+ "Ширазе",
+ "Ширазом"
+ ],
+ "identifier" : "shiraz"
+ },
+ {
+ "population" : "1,236,837",
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Милан",
+ "aliases" : [
+ "Миланом",
+ "Милане"
+ ],
+ "identifier" : "milan"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "Порт-о-Пренс",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "population" : "1,225,235",
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "Аделаида",
+ "aliases" : [
+ "Аделаидой",
+ "Аделаиду",
+ "Аделаиде"
+ ],
+ "identifier" : "adelaide"
+ },
+ {
+ "population" : "1,200,000",
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "Омдурман",
+ "aliases" : [
+ "Омдурмане",
+ "Омдурманом"
+ ],
+ "identifier" : "omdurman"
+ },
+ {
+ "population" : "1,193,350",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Сайтама",
+ "aliases" : [
+ "Сайтаму",
+ "Сайтамой",
+ "Сайтаме"
+ ],
+ "identifier" : "saitama"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "Мапуту",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "population" : "1,165,581",
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "Прага",
+ "aliases" : [
+ "Праге",
+ "Прагой",
+ "Прагу"
+ ],
+ "identifier" : "prague"
+ },
+ {
+ "population" : "1,153,615",
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "Копенгаген",
+ "aliases" : [
+ "копенгагене",
+ "Копенгагеном"
+ ],
+ "identifier" : "copenhagen"
+ },
+ {
+ "population" : "1,152,556",
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "София",
+ "aliases" : [
+ "Софией",
+ "Софию",
+ "Софии"
+ ],
+ "identifier" : "sofia"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "Триполи",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Порт-Харкорт",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "population" : "1,143,841",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Хиросима",
+ "aliases" : [
+ "Хиросиму",
+ "Хиросимой",
+ "Хиросиме"
+ ],
+ "identifier" : "hiroshima"
+ },
+ {
+ "population" : "1,135,512",
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "Монтеррей",
+ "aliases" : [
+ "Монтеррее",
+ "Монтерреем"
+ ],
+ "identifier" : "monterrey"
+ },
+ {
+ "population" : "1,134,730",
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "Самара",
+ "aliases" : [
+ "Самару",
+ "Самарой",
+ "Самаре"
+ ],
+ "identifier" : "samara"
+ },
+ {
+ "population" : "1,129,281",
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "Омск",
+ "aliases" : [
+ "Омском",
+ "Омске"
+ ],
+ "identifier" : "omsk"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Бенин-Сити",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "Баку",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Майдугури",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "population" : "1,104,738",
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Казань",
+ "aliases" : [
+ "Казани",
+ "Казанью"
+ ],
+ "identifier" : "kazan"
+ },
+ {
+ "population" : "1,093,485",
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "Ереван",
+ "aliases" : [
+ "Ереване",
+ "Ереваном"
+ ],
+ "identifier" : "yerevan"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "Уагадугу",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "population" : "1,074,482",
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Ростов-на-Дону",
+ "aliases" : [
+ "Ростовом-на-Дону",
+ "Ростове-на-Дону"
+ ],
+ "identifier" : "rostov-na-donu"
+ },
+ {
+ "population" : "1,062,919",
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Челябинск",
+ "aliases" : [
+ "челябинском",
+ "челябинске"
+ ],
+ "identifier" : "chelyabinsk"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "Тбилиси",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "population" : "1,033,338",
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Уфа",
+ "aliases" : [
+ "Уфой",
+ "Уфу",
+ "Уфе"
+ ],
+ "identifier" : "ufa"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "Сан-Хосе",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "population" : "1,024,027",
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "Дублин",
+ "aliases" : [
+ "Дублином",
+ "Дублине"
+ ],
+ "identifier" : "dublin"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "Калгари",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "population" : "1,019,022",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "Брюссель",
+ "aliases" : [
+ "Брюсселем",
+ "Брюсселе"
+ ],
+ "identifier" : "brussels"
+ },
+ {
+ "population" : "1,011,417",
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "Волгоград",
+ "aliases" : [
+ "Волгоградом",
+ "Волгограде"
+ ],
+ "identifier" : "volgograd"
+ },
+ {
+ "population" : "1,001,558",
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Одесса",
+ "aliases" : [
+ "Одессой",
+ "Одессу",
+ "Одессе"
+ ],
+ "identifier" : "odessa"
+ },
+ {
+ "population" : "994,938",
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "Гватемала",
+ "aliases" : [
+ "Гватемалой",
+ "Гватемале",
+ "Гватемалу"
+ ],
+ "identifier" : "guatemala city"
+ },
+ {
+ "population" : "984,333",
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "Бирмингем",
+ "aliases" : [
+ "бирмингеме",
+ "Бирмингемом"
+ ],
+ "identifier" : "birmingham"
+ },
+ {
+ "population" : "982,419",
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Пермь",
+ "aliases" : [
+ "Перми",
+ "Пермью"
+ ],
+ "identifier" : "perm"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Зариа",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Порт-Элизабет",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "population" : "964,891",
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Фес",
+ "aliases" : [
+ "Фесе",
+ "Фесу",
+ "Фесом"
+ ],
+ "identifier" : "fes"
+ },
+ {
+ "population" : "963,395",
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Кёльн",
+ "aliases" : [
+ "Кёльне",
+ "Кёльном"
+ ],
+ "identifier" : "cologne"
+ },
+ {
+ "population" : "959,470",
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Неаполь",
+ "aliases" : [
+ "Неаполем",
+ "Неаполе"
+ ],
+ "identifier" : "naples"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "Масейо",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "population" : "939,524",
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "Монровия",
+ "aliases" : [
+ "Монровии",
+ "Монровию",
+ "Монровией"
+ ],
+ "identifier" : "monrovia"
+ },
+ {
+ "population" : "937,700",
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "Кингстон",
+ "aliases" : [
+ "Кингстоне",
+ "Кингстоном"
+ ],
+ "identifier" : "kingston"
+ },
+ {
+ "population" : "931,830",
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "Остин",
+ "aliases" : [
+ "Остине",
+ "Остином"
+ ],
+ "identifier" : "austin"
+ },
+ {
+ "population" : "927,200",
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "Красноярск",
+ "aliases" : [
+ "красноярском",
+ "красноярске"
+ ],
+ "identifier" : "krasnoyarsk"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Сале",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "population" : "900,000",
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Кум",
+ "aliases" : [
+ "Кумом",
+ "Куме"
+ ],
+ "identifier" : "qom"
+ },
+ {
+ "population" : "900,000",
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "Бишкек",
+ "aliases" : [
+ "Бишкеке",
+ "Бишкеком"
+ ],
+ "identifier" : "bishkek"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "Абобо",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "population" : "897,560",
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Аба",
+ "aliases" : [
+ "Абе",
+ "Абу",
+ "Абой"
+ ],
+ "identifier" : "aba"
+ },
+ {
+ "population" : "876,884",
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "Мендоса",
+ "aliases" : [
+ "Мендосой",
+ "Мендосу",
+ "Мендосе"
+ ],
+ "identifier" : "mendoza"
+ },
+ {
+ "population" : "874,761",
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "Мбужи-Майи",
+ "aliases" : [
+ "Мбуджи-Майи"
+ ],
+ "identifier" : "mbuji-mayi"
+ },
+ {
+ "population" : "874,062",
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "Пикин",
+ "aliases" : [
+ "Пикине",
+ "Пикином"
+ ],
+ "identifier" : "pikine"
+ },
+ {
+ "population" : "870,456",
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Турин",
+ "aliases" : [
+ "Турином",
+ "Турине"
+ ],
+ "identifier" : "turin"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Сан-Франциско",
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "population" : "864,122",
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "Ливерпуль",
+ "aliases" : [
+ "Ливерпуле",
+ "Ливерпулем"
+ ],
+ "identifier" : "liverpool"
+ },
+ {
+ "population" : "863,725",
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "Саратов",
+ "aliases" : [
+ "Саратове",
+ "Саратовом"
+ ],
+ "identifier" : "saratov"
+ },
+ {
+ "population" : "850,848",
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "Тегусигальпа",
+ "aliases" : [
+ "Тегусигальпе",
+ "Тегусигальпой",
+ "Тегусигальпу"
+ ],
+ "identifier" : "tegucigalpa"
+ },
+ {
+ "population" : "848,752",
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Воронеж",
+ "aliases" : [
+ "Воронеже",
+ "Воронежем"
+ ],
+ "identifier" : "voronezh"
+ },
+ {
+ "population" : "844,818",
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "Улан-Батор",
+ "aliases" : [
+ "Улан-Баторе",
+ "Улан-Батором"
+ ],
+ "identifier" : "ulan bator"
+ },
+ {
+ "population" : "841,145",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Ахваз",
+ "aliases" : [
+ "Ахвазом",
+ "Ахвазе"
+ ],
+ "identifier" : "ahvaz"
+ },
+ {
+ "population" : "839,296",
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Марракеш",
+ "aliases" : [
+ "Марракеше",
+ "Марракешем"
+ ],
+ "identifier" : "marrakesh"
+ },
+ {
+ "population" : "834,881",
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "Денпасар",
+ "aliases" : [
+ "Денпасаре",
+ "Денпасаром"
+ ],
+ "identifier" : "denpasar"
+ },
+ {
+ "population" : "833,319",
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "Форт-Уэрт",
+ "aliases" : [
+ "Форт-Уэртом",
+ "Форт-Уэрте"
+ ],
+ "identifier" : "fort worth"
+ },
+ {
+ "population" : "829,718",
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "Индианаполис",
+ "aliases" : [
+ "Индианаполисе",
+ "Индианаполисом"
+ ],
+ "identifier" : "indianapolis"
+ },
+ {
+ "population" : "816,824",
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Джос",
+ "aliases" : [
+ "Джосом",
+ "Джосе"
+ ],
+ "identifier" : "jos"
+ },
+ {
+ "population" : "814,208",
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "Валенсия",
+ "aliases" : [
+ "Валенсию",
+ "Валенсией",
+ "Валенсии"
+ ],
+ "identifier" : "valencia"
+ },
+ {
+ "population" : "814,192",
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Илорин",
+ "aliases" : [
+ "Илорином",
+ "Илорине"
+ ],
+ "identifier" : "ilorin"
+ },
+ {
+ "population" : "215,178",
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Ла-Пас",
+ "aliases" : [
+ "Ла-Пасе",
+ "Ла-Пасом"
+ ],
+ "identifier" : "la paz"
+ },
+ {
+ "population" : "812,129",
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "Оттава",
+ "aliases" : [
+ "Оттаву",
+ "Оттаве",
+ "Оттавой"
+ ],
+ "identifier" : "ottawa"
+ },
+ {
+ "population" : "802,639",
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "Фритаун",
+ "aliases" : [
+ "Фритауном",
+ " Фритауне"
+ ],
+ "identifier" : "freetown"
+ },
+ {
+ "population" : "801,000",
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "Иерусалим",
+ "aliases" : [
+ "Иерусалиме",
+ "Иерусалимом"
+ ],
+ "identifier" : "jerusalem"
+ },
+ {
+ "population" : "797,000",
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "Маскат",
+ "aliases" : [
+ "Маскате",
+ "Маскатом"
+ ],
+ "identifier" : "muscat"
+ },
+ {
+ "population" : "794,811",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Марсель",
+ "aliases" : [
+ "Марселем",
+ "Марселе"
+ ],
+ "identifier" : "marseille"
+ },
+ {
+ "population" : "787,878",
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Пасрагад",
+ "aliases" : [
+ "Пасрагадом",
+ "Пасрагаде"
+ ],
+ "identifier" : "pasragad branch"
+ },
+ {
+ "population" : "786,499",
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Бумердес",
+ "aliases" : [
+ "Бумердесом",
+ "Бумердасе"
+ ],
+ "identifier" : "boumerdas"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "Сан-Мигель-де-Тукуман",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "population" : "777,615",
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "Мерида",
+ "aliases" : [
+ "Мериду",
+ "Меридой",
+ "Мериде"
+ ],
+ "identifier" : "merida"
+ },
+ {
+ "population" : "774,235",
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "Ниамей",
+ "aliases" : [
+ "Ниамее",
+ "Ниамеем"
+ ],
+ "identifier" : "niamey"
+ },
+ {
+ "population" : "766,706",
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Кахриз",
+ "aliases" : [
+ "Каризе",
+ "Каризом"
+ ],
+ "identifier" : "kahriz"
+ },
+ {
+ "population" : "755,050",
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "Краков",
+ "aliases" : [
+ "Кракове",
+ "Краковом"
+ ],
+ "identifier" : "krakow"
+ },
+ {
+ "population" : "752,493",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "Дананг",
+ "aliases" : [
+ "Дананге",
+ "Данангом"
+ ],
+ "identifier" : "da nang"
+ },
+ {
+ "population" : "750,845",
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Питермарицбург",
+ "aliases" : [
+ "Питермарицбургом",
+ "Питермарицбурге"
+ ],
+ "identifier" : "pietermaritzburg"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "Ломе",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "Кигали",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "population" : "742,572",
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "Рига",
+ "aliases" : [
+ "Риге",
+ "Ригу",
+ "Ригой"
+ ],
+ "identifier" : "riga"
+ },
+ {
+ "population" : "741,636",
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Амстердам",
+ "aliases" : [
+ "Амстердамом",
+ "Амстердаме"
+ ],
+ "identifier" : "amsterdam"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Ойо",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "population" : "729,977",
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "Ноттингем",
+ "aliases" : [
+ "Ноттингемом",
+ "Ноттингеме"
+ ],
+ "identifier" : "nottingham"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "Кампу-Гранди",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "population" : "727,700",
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "Ашхабад",
+ "aliases" : [
+ "Ашхабаде",
+ "Ашхабадом"
+ ],
+ "identifier" : "ashgabat"
+ },
+ {
+ "population" : "721,081",
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "Нджамена",
+ "aliases" : [
+ "Нджамену",
+ "Нджаменой",
+ "Нджамене"
+ ],
+ "identifier" : "n'djamena"
+ },
+ {
+ "population" : "717,803",
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Львов",
+ "aliases" : [
+ " Львовом",
+ " Львове"
+ ],
+ "identifier" : "lviv"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "Эрмосильо",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "population" : "712,391",
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "Эдмонтон",
+ "aliases" : [
+ "Эдмонтоном",
+ "Эдмонтоне"
+ ],
+ "identifier" : "edmonton"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "Булавайо",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "population" : "698,966",
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "Загреб",
+ "aliases" : [
+ "Загребе",
+ "Загребом"
+ ],
+ "identifier" : "zagreb"
+ },
+ {
+ "population" : "698,310",
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Агадир",
+ "aliases" : [
+ "Агадире",
+ "Агадиром"
+ ],
+ "identifier" : "agadir"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "Сараево",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Энугу",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "population" : "688,356",
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Танжер",
+ "aliases" : [
+ "Танжере",
+ "Танжером"
+ ],
+ "identifier" : "tangier"
+ },
+ {
+ "population" : "685,368",
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "Шеффилж",
+ "aliases" : [
+ "Шеффилде",
+ "Шеффилд",
+ "Шеффилдом"
+ ],
+ "identifier" : "sheffield"
+ },
+ {
+ "population" : "684,451",
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Сиэтл",
+ "aliases" : [
+ "Cиэтле",
+ "Сиэтлом"
+ ],
+ "identifier" : "seattle"
+ },
+ {
+ "population" : "682,545",
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "Денвер",
+ "aliases" : [
+ "Денвере",
+ "Денвером"
+ ],
+ "identifier" : "denver"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "Эль-Пасо",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "Душанбе",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "population" : "677,116",
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "Детройт",
+ "aliases" : [
+ "Детройтом",
+ "Детройте"
+ ],
+ "identifier" : "detroit"
+ },
+ {
+ "population" : "675,773",
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Кульякан",
+ "aliases" : [
+ "Кульакане",
+ "Кулиакан",
+ "Кульяканом"
+ ],
+ "identifier" : "culiacan"
+ },
+ {
+ "population" : "675,422",
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "Матола",
+ "aliases" : [
+ "Матолу",
+ "Матоле",
+ "Матолой"
+ ],
+ "identifier" : "matola"
+ },
+ {
+ "population" : "667,137",
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "Бостон",
+ "aliases" : [
+ "Бостоне",
+ "Бостоном"
+ ],
+ "identifier" : "boston"
+ },
+ {
+ "population" : "664,046",
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "Афины",
+ "aliases" : [
+ "Афинах",
+ "Афинами"
+ ],
+ "identifier" : "athens"
+ },
+ {
+ "population" : "661,400",
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "Нуакшот",
+ "aliases" : [
+ "Нуакшоте",
+ "Нуакшотом"
+ ],
+ "identifier" : "nouakchott"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "Пуэнт-Нуар",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "population" : "655,770",
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "Мемфис",
+ "aliases" : [
+ "Мемфисом",
+ "Мемфисе"
+ ],
+ "identifier" : "memphis"
+ },
+ {
+ "population" : "650,000",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Франкфурт-на-Майне",
+ "aliases" : [
+ "Франкфуртом-на-Майне",
+ " Франкфурте-на-Майне"
+ ],
+ "identifier" : "frankfurt am main"
+ },
+ {
+ "population" : "649,851",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Краснодар",
+ "aliases" : [
+ "Краснодаре",
+ "Краснодаром"
+ ],
+ "identifier" : "krasnodar"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Палермо",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "Коломбо",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "Лилонгве",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "population" : "645,984",
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Оран",
+ "aliases" : [
+ "Ораном",
+ "Оране"
+ ],
+ "identifier" : "oran"
+ },
+ {
+ "population" : "635,994",
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "Кишинев",
+ "aliases" : [
+ "Кишиневе",
+ "Кишиневом"
+ ],
+ "identifier" : "chisinau"
+ },
+ {
+ "population" : "634,332",
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Тебесса",
+ "aliases" : [
+ "Тебессой",
+ "Тебессу",
+ "Тебессе"
+ ],
+ "identifier" : "tebessa"
+ },
+ {
+ "population" : "632,309",
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Портленд",
+ "aliases" : [
+ "Портлендом",
+ "Портленде"
+ ],
+ "identifier" : "portland"
+ },
+ {
+ "population" : "632,063",
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "Виннипег",
+ "aliases" : [
+ "Виннипегом",
+ "Виннипеге"
+ ],
+ "identifier" : "winnipeg"
+ },
+ {
+ "population" : "631,346",
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "Оклахома",
+ "aliases" : [
+ "Оклахому",
+ "Оклахоме",
+ "Оклахомой"
+ ],
+ "identifier" : "oklahoma city"
+ },
+ {
+ "population" : "628,306",
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "Канкун",
+ "aliases" : [
+ "Канкуном",
+ "Канкуне"
+ ],
+ "identifier" : "cancun"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "Джибути",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "population" : "621,849",
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "Балтимор",
+ "aliases" : [
+ "Балтимором",
+ "Балтиморе"
+ ],
+ "identifier" : "baltimore"
+ },
+ {
+ "population" : "621,100",
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Керманшах",
+ "aliases" : [
+ "Керманшахом",
+ "Керманшахе"
+ ],
+ "identifier" : "kermanshah"
+ },
+ {
+ "population" : "617,280",
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "Бристоль",
+ "aliases" : [
+ "Бристоле",
+ "Бристолем"
+ ],
+ "identifier" : "bristol"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Бенони",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "Абу-Даби",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "population" : "601,723",
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "Вашингтон",
+ "aliases" : [
+ "Вашингтоном",
+ "Вашингтоне"
+ ],
+ "identifier" : "washington"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "Милуоки",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "population" : "600,000",
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "Ванкувер",
+ "aliases" : [
+ "Ванкувером",
+ "Ванкувере"
+ ],
+ "identifier" : "vancouver"
+ },
+ {
+ "population" : "599,579",
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "Барнаул",
+ "aliases" : [
+ "Барнаулом",
+ "Барнауле"
+ ],
+ "identifier" : "barnaul"
+ },
+ {
+ "population" : "598,199",
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Роттердам",
+ "aliases" : [
+ "Роттердамом",
+ "Роттердаме"
+ ],
+ "identifier" : "rotterdam"
+ },
+ {
+ "population" : "594,590",
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Решт",
+ "aliases" : [
+ "Реште"
+ ],
+ "identifier" : "rasht"
+ },
+ {
+ "population" : "593,100",
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Абеокута",
+ "aliases" : [
+ "Абеокуту",
+ "Абеокуте",
+ "Абеокутой"
+ ],
+ "identifier" : "abeokuta"
+ },
+ {
+ "population" : "593,085",
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Эссен",
+ "aliases" : [
+ "Эссене",
+ "Эссеном"
+ ],
+ "identifier" : "essen"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "Глазго",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Голд-Кост",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "population" : "590,400",
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Абуджа",
+ "aliases" : [
+ "Абуджей",
+ "Абудже",
+ "Абуджу"
+ ],
+ "identifier" : "abuja"
+ },
+ {
+ "population" : "589,793",
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Штутгарт",
+ "aliases" : [
+ "Штутгартом",
+ "Штутгарте"
+ ],
+ "identifier" : "stuttgart"
+ },
+ {
+ "population" : "588,462",
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дортмунд",
+ "aliases" : [
+ "Дортмунде",
+ "Дортмундом"
+ ],
+ "identifier" : "dortmund"
+ },
+ {
+ "population" : "587,022",
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "Владивосток",
+ "aliases" : [
+ " Владивостоке",
+ "Владивостоком"
+ ],
+ "identifier" : "vladivostok"
+ },
+ {
+ "population" : "586,695",
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "Иркутск",
+ "aliases" : [
+ "Иркутске",
+ "Иркутском"
+ ],
+ "identifier" : "irkutsk"
+ },
+ {
+ "population" : "584,877",
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "Блантайр",
+ "aliases" : [
+ "Блантайре",
+ "Блантайром"
+ ],
+ "identifier" : "blantyre"
+ },
+ {
+ "population" : "580,223",
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Генуя",
+ "aliases" : [
+ "Генуей",
+ "Генуе",
+ "Геную"
+ ],
+ "identifier" : "genoa"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "Осло",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "population" : "578,156",
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "Либревиль",
+ "aliases" : [
+ "Либревилем",
+ "Либревиле"
+ ],
+ "identifier" : "libreville"
+ },
+ {
+ "population" : "577,514",
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Керман",
+ "aliases" : [
+ "Керманом",
+ "Кермане"
+ ],
+ "identifier" : "kerman"
+ },
+ {
+ "population" : "573,057",
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дюссельдорф",
+ "aliases" : [
+ "Дюссельдорфом",
+ "Дюссельдорфе"
+ ],
+ "identifier" : "duesseldorf"
+ },
+ {
+ "population" : "570,407",
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "Кучинг",
+ "aliases" : [
+ "Кучинге",
+ "Кучингом"
+ ],
+ "identifier" : "kuching"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "Альбукерке",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "Хельсинки",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "population" : "550,602",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "Аден",
+ "aliases" : [
+ "Адене",
+ "Аденом"
+ ],
+ "identifier" : "aden"
+ },
+ {
+ "population" : "550,204",
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Оренбург",
+ "aliases" : [
+ "Оренбургом",
+ "Оренбурге"
+ ],
+ "identifier" : "orenburg"
+ },
+ {
+ "population" : "550,000",
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "Приштина",
+ "aliases" : [
+ "Приштину",
+ "Приштиной",
+ "Приштине"
+ ],
+ "identifier" : "pristina"
+ },
+ {
+ "population" : "546,501",
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Бремен",
+ "aliases" : [
+ "Бременом",
+ "Бремене"
+ ],
+ "identifier" : "bremen"
+ },
+ {
+ "population" : "542,366",
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "Вильнюс",
+ "aliases" : [
+ "Вильнюсе",
+ "Вильнюсом"
+ ],
+ "identifier" : "vilnius"
+ },
+ {
+ "population" : "530,852",
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "Нэшвилл",
+ "aliases" : [
+ "Нэшвиллом",
+ "Нэшвилле"
+ ],
+ "identifier" : "nashville"
+ },
+ {
+ "population" : "528,595",
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "Квебек",
+ "aliases" : [
+ "Квебеком",
+ "Квебеке"
+ ],
+ "identifier" : "quebec"
+ },
+ {
+ "population" : "525,990",
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "Сан-Сальвадор",
+ "aliases" : [
+ "Сан-Сальвадоре",
+ "Сан-Сальвадором"
+ ],
+ "identifier" : "san salvador"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "Макао",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "population" : "519,119",
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Тюмень",
+ "aliases" : [
+ "Тюменью",
+ "Тюмени"
+ ],
+ "identifier" : "tyumen"
+ },
+ {
+ "population" : "517,802",
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "Лиссабон",
+ "aliases" : [
+ "Лиссабоне",
+ "Лиссабоном"
+ ],
+ "identifier" : "lisbon"
+ },
+ {
+ "population" : "515,140",
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Ганновер",
+ "aliases" : [
+ "Ганновере",
+ "Ганновером"
+ ],
+ "identifier" : "hannover"
+ },
+ {
+ "population" : "512,686",
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "Сальта",
+ "aliases" : [
+ "Сальту",
+ "Сальтой",
+ "Сальте"
+ ],
+ "identifier" : "salta"
+ },
+ {
+ "population" : "508,916",
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "Лестер",
+ "aliases" : [
+ "Лестере",
+ "Лестером"
+ ],
+ "identifier" : "leicester"
+ },
+ {
+ "population" : "504,971",
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Лейпциг",
+ "aliases" : [
+ "Лейпцигом",
+ "Лейпциге"
+ ],
+ "identifier" : "leipzig"
+ },
+ {
+ "population" : "504,358",
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дуйсбург",
+ "aliases" : [
+ "Дуйсбургом",
+ "Дуйсбурге"
+ ],
+ "identifier" : "duisburg"
+ },
+ {
+ "population" : "502,533",
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "Астрахань",
+ "aliases" : [
+ "Астраханью",
+ "Астрахани"
+ ],
+ "identifier" : "astrakhan"
+ },
+ {
+ "population" : "499,237",
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Нюрнберг",
+ "aliases" : [
+ "Нюрнберге",
+ "Нюрнбергом"
+ ],
+ "identifier" : "nuernberg"
+ },
+ {
+ "population" : "486,854",
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дрезден",
+ "aliases" : [
+ "Дрездене",
+ "Дрезденом"
+ ],
+ "identifier" : "dresden"
+ },
+ {
+ "population" : "485,519",
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "Томск",
+ "aliases" : [
+ "Томске",
+ "Томском"
+ ],
+ "identifier" : "tomsk"
+ },
+ {
+ "population" : "477,905",
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Йезд",
+ "aliases" : [
+ "Йезде",
+ "Йездом"
+ ],
+ "identifier" : "yazd"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "Канзас-Сити",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "population" : "474,889",
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "Скопье",
+ "aliases" : [
+ " Скопье"
+ ],
+ "identifier" : "skopje"
+ },
+ {
+ "population" : "474,292",
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Гаага",
+ "aliases" : [
+ "Гаагой",
+ "Гааге",
+ "Гаагу"
+ ],
+ "identifier" : "the hague"
+ },
+ {
+ "population" : "472,317",
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Лион",
+ "aliases" : [
+ "Лионом",
+ "Лионе"
+ ],
+ "identifier" : "lyon"
+ },
+ {
+ "population" : "464,990",
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "Эдинбург",
+ "aliases" : [
+ "Эдинбургом",
+ "Эдинбурге"
+ ],
+ "identifier" : "edinburgh"
+ },
+ {
+ "population" : "459,805",
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "Антверпен",
+ "aliases" : [
+ "Антверпене",
+ "Антверпеном"
+ ],
+ "identifier" : "antwerpen"
+ },
+ {
+ "population" : "455,173",
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "Понтианак",
+ "aliases" : [
+ "Понтианаком",
+ "Понтианаке"
+ ],
+ "identifier" : "pontianak"
+ },
+ {
+ "population" : "455,123",
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "Лидс",
+ "aliases" : [
+ "Лидсом",
+ "Лидсе"
+ ],
+ "identifier" : "leeds"
+ },
+ {
+ "population" : "447,287",
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "Кардифф",
+ "aliases" : [
+ "Кардиффе",
+ "Кардиффом"
+ ],
+ "identifier" : "cardiff"
+ },
+ {
+ "population" : "418,140",
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "Сан-Хуан",
+ "aliases" : [
+ "Сан-Хуане",
+ "Сан-Хуаном"
+ ],
+ "identifier" : "san juan"
+ },
+ {
+ "population" : "443,885",
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "Омаха",
+ "aliases" : [
+ "Омаху",
+ "Омахе",
+ "Омахой"
+ ],
+ "identifier" : "omaha"
+ },
+ {
+ "population" : "442,156",
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "Карфур",
+ "aliases" : [
+ "Карфуром",
+ "Карфуре"
+ ],
+ "identifier" : "carrefour"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "Майами",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "population" : "434,954",
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "Калининград",
+ "aliases" : [
+ "Калининградом",
+ "Калининграде"
+ ],
+ "identifier" : "kaliningrad"
+ },
+ {
+ "population" : "433,055",
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Тулуза",
+ "aliases" : [
+ "Тулузой",
+ "Тулузу",
+ "Тулузе"
+ ],
+ "identifier" : "toulouse"
+ },
+ {
+ "population" : "432,892",
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "Тель-Авив",
+ "aliases" : [
+ "Тель-Авивом",
+ "Тель-Авиве"
+ ],
+ "identifier" : "tel aviv"
+ },
+ {
+ "population" : "428,304",
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "Восточный Иерусалим",
+ "aliases" : [
+ "Восточном Иерусалиме",
+ "Восточным Иерусалимом"
+ ],
+ "identifier" : "east jerusalem"
+ },
+ {
+ "population" : "423,737",
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "Братислава",
+ "aliases" : [
+ "Братиславе",
+ "Братиславу",
+ "Братиславой"
+ ],
+ "identifier" : "bratislava"
+ },
+ {
+ "population" : "417,910",
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Окленд",
+ "aliases" : [
+ "Окленде",
+ "Оклендом"
+ ],
+ "identifier" : "auckland"
+ },
+ {
+ "population" : "416,263",
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "Севастополь",
+ "aliases" : [
+ "Севастополе",
+ "Севастополем"
+ ],
+ "identifier" : "sevastopol"
+ },
+ {
+ "population" : "410,939",
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "Миннеаполис",
+ "aliases" : [
+ "Миннеаполисе",
+ "Миннеаполисом"
+ ],
+ "identifier" : "minneapolis"
+ },
+ {
+ "population" : "410,000",
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "Газа",
+ "aliases" : [
+ "Газе",
+ "Газой",
+ "Газу"
+ ],
+ "identifier" : "gaza"
+ },
+ {
+ "population" : "409,431",
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Курск",
+ "aliases" : [
+ "Курске",
+ "Курском"
+ ],
+ "identifier" : "kursk"
+ },
+ {
+ "population" : "408,168",
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "Панама",
+ "aliases" : [
+ "Панаму",
+ "Панамой",
+ "Панаме"
+ ],
+ "identifier" : "panama"
+ },
+ {
+ "population" : "403,505",
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "Талса",
+ "aliases" : [
+ "Талсой",
+ "Талсу",
+ "Талсе"
+ ],
+ "identifier" : "tulsa"
+ },
+ {
+ "population" : "400,212",
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Тверь",
+ "aliases" : [
+ "Твери",
+ "Тверью"
+ ],
+ "identifier" : "tver"
+ },
+ {
+ "population" : "395,515",
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "Манчестер",
+ "aliases" : [
+ "Манчестере",
+ "Манчестером"
+ ],
+ "identifier" : "manchester"
+ },
+ {
+ "population" : "394,024",
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "Таллин",
+ "aliases" : [
+ "Таллинном",
+ "Таллине"
+ ],
+ "identifier" : "tallinn"
+ },
+ {
+ "population" : "391,190",
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "Кандагар",
+ "aliases" : [
+ "Кандагаром",
+ "Кандагаре"
+ ],
+ "identifier" : "kandahar"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "Уичито",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "population" : "389,617",
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "Новый Орлеан",
+ "aliases" : [
+ "Новым Орлеаном",
+ "Новом Орлеане"
+ ],
+ "identifier" : "new orleans"
+ },
+ {
+ "population" : "381,900",
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Веллингтон",
+ "aliases" : [
+ "Веллингтоне",
+ "Веллингтоном"
+ ],
+ "identifier" : "wellington"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "Лас-Пальмас-де-Гран-Канария",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "population" : "381,583",
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Масатлан",
+ "aliases" : [
+ "Масатлане",
+ "Мазатлан",
+ "Масатланом"
+ ],
+ "identifier" : "mazatlan"
+ },
+ {
+ "population" : "374,801",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "Тирана",
+ "aliases" : [
+ "Тирану",
+ "Тиране",
+ "Тираной"
+ ],
+ "identifier" : "tirana"
+ },
+ {
+ "population" : "374,643",
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "Каунас",
+ "aliases" : [
+ "Каунасе",
+ "Каунасом"
+ ],
+ "identifier" : "kaunas"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "Гонолулу",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "population" : "367,752",
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Канберра",
+ "aliases" : [
+ "Канберру",
+ "Канберре",
+ "Канберрой"
+ ],
+ "identifier" : "canberra"
+ },
+ {
+ "population" : "366,133",
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Болонья",
+ "aliases" : [
+ "Болонью",
+ "Болоньей",
+ "Болонье"
+ ],
+ "identifier" : "bologna"
+ },
+ {
+ "population" : "363,926",
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Крайстчерч",
+ "aliases" : [
+ "Крайстчерче",
+ "Крайстчерчем"
+ ],
+ "identifier" : "christchurch"
+ },
+ {
+ "population" : "359,111",
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "Галифакс",
+ "aliases" : [
+ "Галифаксом",
+ "Галифаксе"
+ ],
+ "identifier" : "halifax"
+ },
+ {
+ "population" : "355,596",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "Амбон",
+ "aliases" : [
+ "Амбоном",
+ "Амбоне"
+ ],
+ "identifier" : "ambon"
+ },
+ {
+ "population" : "349,296",
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Флоренция",
+ "aliases" : [
+ " Флоренции",
+ "Флоренцию",
+ "Флоренцией"
+ ],
+ "identifier" : "florence"
+ },
+ {
+ "population" : "344,939",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "Доха",
+ "aliases" : [
+ "Дохой",
+ "Дохе",
+ "Доху"
+ ],
+ "identifier" : "doha"
+ },
+ {
+ "population" : "341,730",
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Цюрих",
+ "aliases" : [
+ "Цюрихом",
+ "Цюрихе"
+ ],
+ "identifier" : "zurich"
+ },
+ {
+ "population" : "338,620",
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Ницца",
+ "aliases" : [
+ "Ниццу",
+ "Ницце",
+ "Ниццей"
+ ],
+ "identifier" : "nice"
+ },
+ {
+ "population" : "336,460",
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "Симферополь",
+ "aliases" : [
+ "Симферополе",
+ "Симферополем"
+ ],
+ "identifier" : "simferopol"
+ },
+ {
+ "population" : "332,863",
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Тепик",
+ "aliases" : [
+ "Тепиком",
+ "Тепике"
+ ],
+ "identifier" : "tepic"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Сочи",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "population" : "320,991",
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Смоленск",
+ "aliases" : [
+ "Смоленске",
+ " Смоленском"
+ ],
+ "identifier" : "smolensk"
+ },
+ {
+ "population" : "319,366",
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "Самарканд",
+ "aliases" : [
+ "Самарканде",
+ "Самаркандом"
+ ],
+ "identifier" : "samarkand"
+ },
+ {
+ "population" : "319,263",
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Мурманск",
+ "aliases" : [
+ "Мурманском",
+ "Мурманске"
+ ],
+ "identifier" : "murmansk"
+ },
+ {
+ "population" : "317,370",
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Владикавказ",
+ "aliases" : [
+ "Владикавказом",
+ " Владикавказе"
+ ],
+ "identifier" : "vladikavkaz"
+ },
+ {
+ "population" : "308,500",
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "Чита",
+ "aliases" : [
+ "Читой",
+ "Читу",
+ "Чите"
+ ],
+ "identifier" : "chita"
+ },
+ {
+ "population" : "308,308",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Ньюкасл",
+ "aliases" : [
+ "Ньюкаслом",
+ "Ньюкасле"
+ ],
+ "identifier" : "newcastle"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "Порто-Велью",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "Сан-Сальвадор-де-Жужуй",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "population" : "304,391",
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "Pittsburgh",
+ "aliases" : [
+ "Питтсбург",
+ "Питтсбурге",
+ "Питтсбургом"
+ ],
+ "identifier" : "pittsburgh"
+ },
+ {
+ "population" : "144,899",
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Брест",
+ "aliases" : [
+ "Брестом",
+ "Бресте"
+ ],
+ "identifier" : "brest"
+ },
+ {
+ "population" : "298,695",
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "Анкоридж",
+ "aliases" : [
+ "Анкориджем",
+ "Анкоридже"
+ ],
+ "identifier" : "anchorage"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "Цинциннати",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "population" : "292,190",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Вуллонгонг",
+ "aliases" : [
+ "Вуллонгонгом",
+ "Вуллонгонге"
+ ],
+ "identifier" : "wollongong"
+ },
+ {
+ "population" : "290,927",
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Катания",
+ "aliases" : [
+ "Катании",
+ "Катанию",
+ "Катанией"
+ ],
+ "identifier" : "catania"
+ },
+ {
+ "population" : "290,529",
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Утрехт",
+ "aliases" : [
+ "Утрехте",
+ "Утрехтом"
+ ],
+ "identifier" : "utrecht"
+ },
+ {
+ "population" : "289,625",
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "Виктория",
+ "aliases" : [
+ "Виктории",
+ "Викторию",
+ "Викторией"
+ ],
+ "identifier" : "victoria"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "Порт-Морсби",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Логан-Сити",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Бари",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Нант",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "population" : "274,845",
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Страсбург",
+ "aliases" : [
+ "Страсбурге",
+ " Страсбургом"
+ ],
+ "identifier" : "strasbourg"
+ },
+ {
+ "population" : "274,770",
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "Белфаст",
+ "aliases" : [
+ "Белфасте",
+ "Белфастом"
+ ],
+ "identifier" : "belfast"
+ },
+ {
+ "population" : "272,220",
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "Любляна",
+ "aliases" : [
+ "Любляне",
+ "Любляну",
+ "Любляной"
+ ],
+ "identifier" : "ljubljana"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "Орландо",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "population" : "265,025",
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Петрозаводск",
+ "aliases" : [
+ "Петрозаводске",
+ "Петрозаводском"
+ ],
+ "identifier" : "petrozavodsk"
+ },
+ {
+ "population" : "260,203",
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "Плимут",
+ "aliases" : [
+ "Плимуте",
+ "Плимутом"
+ ],
+ "identifier" : "plymouth"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "Риу-Бранку",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Лос-Мочис",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "Порту",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "population" : "248,951",
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "Мэдисон",
+ "aliases" : [
+ "Мэдисоне",
+ "Мэдисоном"
+ ],
+ "identifier" : "madison"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Монпелье",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "population" : "237,551",
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "Орхус",
+ "aliases" : [
+ "Орхусом",
+ "Орхусе"
+ ],
+ "identifier" : "arhus"
+ },
+ {
+ "population" : "235,600",
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "Якутск",
+ "aliases" : [
+ "Якутске",
+ "Якутском"
+ ],
+ "identifier" : "yakutsk"
+ },
+ {
+ "population" : "235,017",
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "Джорджтаун",
+ "aliases" : [
+ "Джорджтауном",
+ "Джорджтауне"
+ ],
+ "identifier" : "georgetown"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Бордо",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "population" : "231,493",
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "Гент",
+ "aliases" : [
+ "Генте",
+ "Гентом"
+ ],
+ "identifier" : "gent"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "Батон-Руж",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "population" : "228,328",
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Лилль",
+ "aliases" : [
+ "Лиллем",
+ "Лилле"
+ ],
+ "identifier" : "lille"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "Нассау",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "population" : "226,034",
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "Джилонг",
+ "aliases" : [
+ "Джилонгом",
+ "Джилонге"
+ ],
+ "identifier" : "geelong"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "Парамарибо",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "Санта-Крус-де-Тенерифе",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "population" : "222,326",
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Грац",
+ "aliases" : [
+ "Граце",
+ "Грацем"
+ ],
+ "identifier" : "graz"
+ },
+ {
+ "population" : "219,948",
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Мессина",
+ "aliases" : [
+ "Мессиной",
+ "Мессину",
+ "Мессине"
+ ],
+ "identifier" : "messina"
+ },
+ {
+ "population" : "219,103",
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Верона",
+ "aliases" : [
+ "Верону",
+ "Вероне",
+ "Вероной"
+ ],
+ "identifier" : "verona"
+ },
+ {
+ "population" : "216,656",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "Хобарт",
+ "aliases" : [
+ "Хобартом",
+ "Хобарте"
+ ],
+ "identifier" : "hobart"
+ },
+ {
+ "population" : "215,400",
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "Нови-Сад",
+ "aliases" : [
+ "Нови-Садом",
+ "Нови-Саде"
+ ],
+ "identifier" : "novi sad"
+ },
+ {
+ "population" : "213,585",
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "Берген",
+ "aliases" : [
+ "Бергене",
+ "Бергеном"
+ ],
+ "identifier" : "bergen"
+ },
+ {
+ "population" : "210,330",
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "Де-Мойн",
+ "aliases" : [
+ "Де-Мойне",
+ "Де-Мойном"
+ ],
+ "identifier" : "des moines"
+ },
+ {
+ "population" : "210,000",
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "Костанай",
+ "aliases" : [
+ "Костанае",
+ "Костанаем"
+ ],
+ "identifier" : "kostanay"
+ },
+ {
+ "population" : "204,846",
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Линц",
+ "aliases" : [
+ "Линцем",
+ "Линце"
+ ],
+ "identifier" : "linz"
+ },
+ {
+ "population" : "203,725",
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Падуя",
+ "aliases" : [
+ "Падуе",
+ "Падую"
+ ],
+ "identifier" : "padova"
+ },
+ {
+ "population" : "201,990",
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Псков",
+ "aliases" : [
+ "Псковом",
+ "Пскове"
+ ],
+ "identifier" : "pskov"
+ },
+ {
+ "population" : "200,952",
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "Чианмай",
+ "aliases" : [
+ "Чиангмаем",
+ "Чиангмае",
+ "Чиангмай"
+ ],
+ "identifier" : "chiang mai"
+ },
+ {
+ "population" : "200,452",
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "Никосия",
+ "aliases" : [
+ "Никосии",
+ "Никосией",
+ "Никосию"
+ ],
+ "identifier" : "nicosia"
+ },
+ {
+ "population" : "200,000",
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "Улальск",
+ "aliases" : [
+ "Уральск",
+ "Уральском",
+ "Уральске"
+ ],
+ "identifier" : "oral"
+ },
+ {
+ "population" : "200,000",
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "Ош",
+ "aliases" : [
+ "Ошем",
+ "Оше"
+ ],
+ "identifier" : "osh"
+ },
+ {
+ "population" : "198,958",
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "Саскатун",
+ "aliases" : [
+ "Саскатуном",
+ "Саскатуне"
+ ],
+ "identifier" : "saskatoon"
+ },
+ {
+ "population" : "197,992",
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "Литл-Рок",
+ "aliases" : [
+ "Литл-Роком",
+ "Литл-Роке"
+ ],
+ "identifier" : "little rock"
+ },
+ {
+ "population" : "196,731",
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "Вьентьян",
+ "aliases" : [
+ "Вьентьяном",
+ " Вьентьяне"
+ ],
+ "identifier" : "vientiane"
+ },
+ {
+ "population" : "196,670",
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "Абердин",
+ "aliases" : [
+ "Абердине",
+ "Абердином"
+ ],
+ "identifier" : "aberdeen"
+ },
+ {
+ "population" : "196,272",
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "Пальмас",
+ "aliases" : [
+ "Пальмасом",
+ "Пальмасе"
+ ],
+ "identifier" : "palmas"
+ },
+ {
+ "population" : "196,219",
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Таунсвилл",
+ "aliases" : [
+ "Таунсвиллом",
+ "Таунсвилле"
+ ],
+ "identifier" : "townsville"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "Солт-Лейк-Сити",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "population" : "190,384",
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "Корк",
+ "aliases" : [
+ "Корке",
+ "Корком"
+ ],
+ "identifier" : "cork"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "Таллахасси",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "population" : "189,047",
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "Сантарен",
+ "aliases" : [
+ "Сантареном",
+ "Сантарене"
+ ],
+ "identifier" : "santarem"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "Сан-Фернандо-дель-Валье-де-Катамарка",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "population" : "187,056",
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Триест",
+ "aliases" : [
+ "Триестом",
+ "Триесте"
+ ],
+ "identifier" : "trieste"
+ },
+ {
+ "population" : "183,982",
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "Сан-Луис",
+ "aliases" : [
+ "Сан-Луисом",
+ "Сан-Луисе"
+ ],
+ "identifier" : "san luis"
+ },
+ {
+ "population" : "183,981",
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Женева",
+ "aliases" : [
+ "Женевой",
+ "Женеве",
+ "Женеву"
+ ],
+ "identifier" : "geneva"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "Атырау",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "Кутаиси",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "population" : "176,484",
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "Южно-Сахалинск",
+ "aliases" : [
+ "Южно-Сахалинске",
+ "Южно-Сахалинском"
+ ],
+ "identifier" : "yuzhno-sakhalinsk"
+ },
+ {
+ "population" : "176,314",
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "Сплит",
+ "aliases" : [
+ "Сплитом",
+ "Сплите"
+ ],
+ "identifier" : "split"
+ },
+ {
+ "population" : "176,183",
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "Реджайна",
+ "aliases" : [
+ "Реджайне",
+ "Реджайной",
+ "Реджайну"
+ ],
+ "identifier" : "regina"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "Турку",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "population" : "171,380",
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "Оксфорд",
+ "aliases" : [
+ "Оксфорде",
+ "Оксфордом"
+ ],
+ "identifier" : "oxford"
+ },
+ {
+ "population" : "170,674",
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "Джексон",
+ "aliases" : [
+ "Джексоне",
+ "Джексоном"
+ ],
+ "identifier" : "jackson"
+ },
+ {
+ "population" : "166,810",
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "Спрингфилд",
+ "aliases" : [
+ "Спрингфилде",
+ " Спрингфилдом"
+ ],
+ "identifier" : "springfield"
+ },
+ {
+ "population" : "164,488",
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Базель",
+ "aliases" : [
+ "Базеле",
+ "Базелем"
+ ],
+ "identifier" : "basel"
+ },
+ {
+ "population" : "162,620",
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "Риоха",
+ "aliases" : [
+ "Риохе",
+ "Риоху",
+ "Риохой"
+ ],
+ "identifier" : "la rioja"
+ },
+ {
+ "population" : "160,470",
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "Хеврон",
+ "aliases" : [
+ "Хевроном",
+ "Хевроне"
+ ],
+ "identifier" : "hebron"
+ },
+ {
+ "population" : "158,886",
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Модена",
+ "aliases" : [
+ "Модене",
+ "Модену",
+ "Моденой"
+ ],
+ "identifier" : "modena"
+ },
+ {
+ "population" : "158,434",
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "Кембридж",
+ "aliases" : [
+ "Кембриджем",
+ "Кембридже"
+ ],
+ "identifier" : "cambridge"
+ },
+ {
+ "population" : "154,407",
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "Сан-Франциско",
+ "aliases" : [
+ "Фриско",
+ " Фриско"
+ ],
+ "identifier" : "frisco"
+ },
+ {
+ "population" : "153,784",
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "Пасадена",
+ "aliases" : [
+ "Пасадене",
+ "Пасаденой",
+ "Пасадену"
+ ],
+ "identifier" : "pasadena"
+ },
+ {
+ "population" : "153,717",
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "Йорк",
+ "aliases" : [
+ "Йорком",
+ "Йорке"
+ ],
+ "identifier" : "york"
+ },
+ {
+ "population" : "153,377",
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Зальцбург",
+ "aliases" : [
+ "Зальцбурге",
+ "Зальцбургом"
+ ],
+ "identifier" : "salzburg"
+ },
+ {
+ "population" : "153,075",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Кернс",
+ "aliases" : [
+ "Кернсом",
+ "Кэрнс",
+ "Кернсе"
+ ],
+ "identifier" : "cairns"
+ },
+ {
+ "population" : "152,641",
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Гамильтон",
+ "aliases" : [
+ "Гамильтоном",
+ "Гамильтоне"
+ ],
+ "identifier" : "hamilton"
+ },
+ {
+ "population" : "150,661",
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "Ла-Лагуна",
+ "aliases" : [
+ "Ла-Лагуной",
+ "Ла-Лагуне",
+ "Ла-Лагуну"
+ ],
+ "identifier" : "la laguna"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "Дили",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "population" : "149,782",
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Дижон",
+ "aliases" : [
+ "Дижоне",
+ "Дижоном"
+ ],
+ "identifier" : "dijon"
+ },
+ {
+ "population" : "149,245",
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "Упсала",
+ "aliases" : [
+ "Упсале",
+ "Упсалу",
+ "Упсалой"
+ ],
+ "identifier" : "uppsala"
+ },
+ {
+ "population" : "147,139",
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "Трондхейм",
+ "aliases" : [
+ "Тронхейм",
+ "Тронхеймом",
+ "Тронхейме"
+ ],
+ "identifier" : "trondheim"
+ },
+ {
+ "population" : "147,074",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "Манама",
+ "aliases" : [
+ "Манаме",
+ "Манаму",
+ "Манамой"
+ ],
+ "identifier" : "manama"
+ },
+ {
+ "population" : "146,299",
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Парма",
+ "aliases" : [
+ "Пармой",
+ "Парме",
+ "Парму"
+ ],
+ "identifier" : "parma"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "Бойсе",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "Оденсе",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "population" : "143,086",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Амьен",
+ "aliases" : [
+ "Амьеном",
+ "Амьене"
+ ],
+ "identifier" : "amiens"
+ },
+ {
+ "population" : "141,621",
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Тур",
+ "aliases" : [
+ "Туром",
+ "Туре"
+ ],
+ "identifier" : "tours"
+ },
+ {
+ "population" : "136,473",
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "Подгорица",
+ "aliases" : [
+ "Подгорице",
+ "Подгорицу",
+ "Подгорицей"
+ ],
+ "identifier" : "podgorica"
+ },
+ {
+ "population" : "132,493",
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Инсбрук",
+ "aliases" : [
+ "Инсбруке",
+ "Инсбруком"
+ ],
+ "identifier" : "innsbruck"
+ },
+ {
+ "population" : "131,258",
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Тувумба",
+ "aliases" : [
+ "Тувумбе",
+ "Тувумбу",
+ "Тувумбой"
+ ],
+ "identifier" : "toowoomba"
+ },
+ {
+ "population" : "129,062",
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "Дарвин",
+ "aliases" : [
+ "Дарвине",
+ "Дарвином"
+ ],
+ "identifier" : "darwin"
+ },
+ {
+ "population" : "121631",
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Берн",
+ "aliases" : [
+ "Берне",
+ "Берном"
+ ],
+ "identifier" : "bern"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..257145396
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
@@ -0,0 +1,220 @@
+{
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "10% от 100",
+ "10% из 100"
+ ],
+ "identifier": "percentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10% к 100"
+ ],
+ "identifier": "percentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30 это 20% от чего",
+ "30 это 20% от"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% от чего равно 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 это 20% отняли от"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% из чего равно 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 это 20% к чему",
+ "30 это 20% к"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% к чему равно 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10 как % от 20",
+ "10 сколько % от 20",
+ "10 сколько процентов от 20"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10 сколько % отняли от 20",
+ "10 сколько процентов отняли от 20"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20 сколько % сверх 10",
+ "20 сколько процентов сверх 10"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "остаток от 20 разделенного на 3"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "половина 20"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "меньшее из 2 и 30"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "большее из 2 и 30"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "среднее между 2 и 32"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "6 к 600 как что к 8",
+ "6 к 600 это как что к 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "6 к 600 как 8 к чему",
+ "6 к 600 это как 8 к чему"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "случайное число между 1 и 5",
+ "рандомное число между 1 и 5",
+ "число между 1 и 5"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit в __unit_expression"
+ ],
+ "identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit в __timespan"
+ ],
+ "identifier": "unitInTimespan"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__unit от __datestamp до __datestamp",
+ "__unit между __datestamp и __datestamp",
+ "__unit с __datestamp по __datestamp"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit до __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp до __datestamp",
+ "__datestamp по __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__timestamp до __timestamp",
+ "__timestamp по __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan назад",
+ "__timespan тому назад",
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit с __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "prototypeExpressions": [
+ "новая метка времени"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan после __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan до __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone время",
+ "время в __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "разница во времени между __timezone и __timezone",
+ "разница __timezone и __timezone"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/Localizable.strings
new file mode 100644
index 000000000..fd4fe226d
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..b2bb6478b
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..9a0e5c766
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
@@ -0,0 +1,152 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "цифра",
+ "цифры",
+ "цифр"
+ ],
+ "multiplierTypes": [
+ "кратность"
+ ],
+ "divisionOperators": [
+ "÷",
+ "за"
+ ],
+ "roundingConverters": [
+ "округленное"
+ ],
+ "tomorrowDateAliases": [
+ "завтра"
+ ],
+ "multiplicationOperators": [
+ "×"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "время круга"
+ ],
+ "numberTypes": [
+ "число"
+ ],
+ "roundingDownConverters": [
+ "округленное вниз"
+ ],
+ "yesterdayDateAliases": [
+ "вчера"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "todayDateAliases": [
+ "сегодня"
+ ],
+ "timestampTypes": [
+ "метка времени"
+ ],
+ "roundingUpConverters": [
+ "округленное вверх"
+ ],
+ "dateTypes": [
+ "дата"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "monthOfYearDateAliases": [
+ "янв",
+ "фев",
+ "мар",
+ "апр",
+ "май",
+ "июн",
+ "июл",
+ "авг",
+ "сен",
+ "окт",
+ "ноя",
+ "дек",
+ "январь",
+ "февраль",
+ "март",
+ "апрель",
+ "май",
+ "июнь",
+ "июль",
+ "август",
+ "сентябрь",
+ "октябрь",
+ "ноябрь",
+ "декабрь",
+ "января",
+ "февраля",
+ "марта",
+ "апреля",
+ "мая",
+ "июня",
+ "июля",
+ "августа",
+ "сентября",
+ "октября",
+ "ноября",
+ "декабря"
+ ],
+ "piAliases": [
+ "π",
+ "пи"
+ ],
+ "additionOperators": [
+ "плюс"
+ ],
+ "timespanTypes": [
+ "временной промежуток"
+ ],
+ "nowDateAliases": [
+ "сейчас"
+ ],
+ "converterSymbols": [
+ "в",
+ "как"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "fractionTypes": [
+ "дробь"
+ ],
+ "dayOfWeekDateAliases": [
+ "Воскресенье",
+ "Вс",
+ "Вск",
+ "Вт",
+ "Вторник",
+ "Втр",
+ "Пн",
+ "Пнд",
+ "Понедельник",
+ "Пт",
+ "Птн",
+ "Пятница",
+ "Сб",
+ "Сбт",
+ "Ср",
+ "Срд",
+ "Среда",
+ "Суббота",
+ "Четверг",
+ "Чт",
+ "Чтв"
+ ],
+ "percentTypes": [
+ "процент"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..549c5ac0f
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/UnitDescriptions.json
@@ -0,0 +1,1633 @@
+{
+ "energy": [
+ {
+ "aliases": [
+ "джоуль",
+ "джоулей",
+ "джоули",
+ "джоулях"
+ ],
+ "identifier": "joules",
+ "symbol": "Дж"
+ },
+ {
+ "aliases": [
+ "килоджоуль",
+ "килоджоулей",
+ "килоджоули",
+ "килоджоулях"
+ ],
+ "identifier": "kilojoules",
+ "symbol": "кДж"
+ },
+ {
+ "aliases": [
+ "мегаджоуль",
+ "мегаджоулей",
+ "мегаджоули",
+ "мегаджоулях"
+ ],
+ "identifier": "megajoules",
+ "symbol": "МДж"
+ },
+ {
+ "aliases": [
+ "гигаджоуль",
+ "гигаджоулей",
+ "гигаджоули",
+ "гигаджоулях"
+ ],
+ "identifier": "gigajoules",
+ "symbol": "ГДж"
+ },
+ {
+ "aliases": [
+ "калорий",
+ "калории",
+ "калориях",
+ "калория"
+ ],
+ "identifier": "calories",
+ "symbol": "кал"
+ },
+ {
+ "aliases": [
+ "калорий",
+ "калории",
+ "калориях",
+ "калория"
+ ],
+ "identifier": "kilocalories",
+ "symbol": "ккал"
+ },
+ {
+ "aliases": [
+ "ваттов в час",
+ "ватты в часы",
+ "ватта в час",
+ "ваттах в час",
+ "ватт в час",
+ "Вт·ч"
+ ],
+ "identifier": "wattHours",
+ "symbol": "Вт·ч"
+ },
+ {
+ "aliases": [
+ "ваттов в минуту",
+ "ватты в минуту",
+ "ватта в минуту",
+ "ваттах в минуту",
+ "ватт в минуту",
+ "Вт·мин"
+ ],
+ "identifier": "wattMinutes",
+ "symbol": "Вт·мин"
+ },
+ {
+ "aliases": [
+ "ваттов в секунду",
+ "ватты в секунду",
+ "ватта в секунду",
+ "ваттах в секунду",
+ "ватт в секунду",
+ "Вт·сек"
+ ],
+ "identifier": "wattSeconds",
+ "symbol": "Вт·сек"
+ },
+ {
+ "aliases": [
+ "киловатт-час",
+ "киловатт-часов",
+ "киловатт-часы",
+ "киловатт-часова"
+ ],
+ "identifier": "kilowattHours",
+ "symbol": "кВт⋅ч"
+ },
+ {
+ "aliases": [
+ "мегаватт-час",
+ "мегаватт-часов",
+ "мегаватт-часы",
+ "мегаватт-часова"
+ ],
+ "identifier": "megawattHours",
+ "symbol": "МВт·ч"
+ },
+ {
+ "aliases": [
+ "гигаватт-час",
+ "гигаватт-часов",
+ "гигаватт-часы",
+ "гигаватт-часова"
+ ],
+ "identifier": "gigawattHours",
+ "symbol": "ГВт·ч"
+ },
+ {
+ "aliases": [
+ "тераватт-час",
+ "тераватт-часов",
+ "тераватт-часы",
+ "тераватт-часова"
+ ],
+ "identifier": "terawattHours",
+ "symbol": "ТВт·ч"
+ }
+ ],
+ "speed": [
+ {
+ "aliases": [
+ "метр в секунду",
+ "метры в секунду",
+ "метра в секунду",
+ "метров в секунду",
+ "метрах в секунду"
+ ],
+ "identifier": "metersPerSecond",
+ "symbol": "м/с"
+ },
+ {
+ "aliases": [
+ "клиометр в час",
+ "километры в час",
+ "километра в час",
+ "километров в час",
+ "километрах в час"
+ ],
+ "identifier": "kilometersPerHour",
+ "symbol": "km/h"
+ },
+ {
+ "aliases": [
+ "милй в час",
+ "мили в час",
+ "милях в час",
+ "миля в час",
+ "миль в час"
+ ],
+ "identifier": "milesPerHour",
+ "symbol": "миля/ч"
+ },
+ {
+ "aliases": [
+ "узел",
+ "узлов",
+ "узлы",
+ "узла",
+ "узлах"
+ ],
+ "identifier": "knots",
+ "symbol": "уз"
+ }
+ ],
+ "volume": [
+ {
+ "aliases": [
+ "мегалитр",
+ "мегалитров",
+ "мегалитры",
+ "мегалитра",
+ "мегалитрах"
+ ],
+ "identifier": "megaliters",
+ "symbol": "Мл"
+ },
+ {
+ "aliases": [
+ "килолитр",
+ "килолитров",
+ "килолитры",
+ "килолитра",
+ "килолитрах"
+ ],
+ "identifier": "kiloliters",
+ "symbol": "кл"
+ },
+ {
+ "aliases": [
+ "литр",
+ "литров",
+ "литры",
+ "литра",
+ "литрах"
+ ],
+ "identifier": "liters",
+ "symbol": "л"
+ },
+ {
+ "aliases": [
+ "милилитр",
+ "милилитров",
+ "милилитры",
+ "милилитра",
+ "милилитрах"
+ ],
+ "identifier": "milliliters",
+ "symbol": "мл"
+ },
+ {
+ "aliases": [
+ "кубических километров",
+ "кубокилометры",
+ "кубокилометра",
+ "кубокилометрах",
+ "кубокилометров",
+ "кубические километры",
+ "кубических километра",
+ "кубических километрах"
+ ],
+ "identifier": "cubicKilometers",
+ "symbol": "км³"
+ },
+ {
+ "aliases": [
+ "кубических метров",
+ "кубометры",
+ "кубометра",
+ "кубометрах",
+ "кубометров",
+ "кубические метры",
+ "кубических метра",
+ "кубических метрах"
+ ],
+ "identifier": "cubicMeters",
+ "symbol": "м³"
+ },
+ {
+ "aliases": [
+ "кубических сантиметров",
+ "кубосантиметры",
+ "кубосантиметра",
+ "кубосантиметрах",
+ "кубосантиметров",
+ "кубические сантиметры",
+ "кубических сантиметра",
+ "кубических сантиметрах"
+ ],
+ "identifier": "cubicCentimeters",
+ "symbol": "см³"
+ },
+ {
+ "aliases": [
+ "кубических милиметров",
+ "кубомилиметры",
+ "кубомилиметра",
+ "кубомилиметрах",
+ "кубомилиметров",
+ "кубические милиметры",
+ "кубических милиметра",
+ "кубических милиметрах"
+ ],
+ "identifier": "cubicMillimeters",
+ "symbol": "мм³"
+ },
+ {
+ "aliases": [
+ "кубический дюйм",
+ "куб дюйм",
+ "кубических дюймов",
+ "кубические дюймы",
+ "куб дюймы",
+ "кубических дюйма",
+ "кубических дюймах"
+ ],
+ "identifier": "cubicInches",
+ "symbol": "in³"
+ },
+ {
+ "aliases": [
+ "кубический фут",
+ "кубических футов",
+ "кубические футы",
+ "кубических фута",
+ "кубических футах"
+ ],
+ "identifier": "cubicFeet",
+ "symbol": "ft³"
+ },
+ {
+ "aliases": [
+ "кубический ярд",
+ "кубических ярдов",
+ "кубические ярды",
+ "кубических ярда",
+ "кубических ярдах"
+ ],
+ "identifier": "cubicYards",
+ "symbol": "yd³"
+ },
+ {
+ "aliases": [
+ "кубических милй",
+ "кубические мили",
+ "кубических мили",
+ "кубических милях",
+ "кубическая миля",
+ "кубическая миль"
+ ],
+ "identifier": "cubicMiles",
+ "symbol": "mi³"
+ },
+ {
+ "aliases": [
+ "бушель",
+ "бушеля",
+ "бушелей",
+ "бушелях"
+ ],
+ "identifier": "bushels",
+ "symbol": "bsh"
+ },
+ {
+ "aliases": [
+ "метрический стакан",
+ "метрических стаканов",
+ "метрическых стаканах",
+ "метрическых стакана",
+ "метрическые стаканы"
+ ],
+ "identifier": "metricCups",
+ "symbol": "метрический стакан"
+ },
+ {
+ "aliases": [
+ "стакан",
+ "стаканы",
+ "стакана",
+ "стаканах",
+ "стаканов"
+ ],
+ "identifier": "cups",
+ "symbol": "cup"
+ },
+ {
+ "aliases": [
+ "акров-фут",
+ "акры-фут",
+ "акра-фут",
+ "акрах-фут"
+ ],
+ "identifier": "acreFeet",
+ "symbol": "af"
+ },
+ {
+ "aliases": [
+ "пинт",
+ "пинты",
+ "пинтах",
+ "пинта"
+ ],
+ "identifier": "pints",
+ "symbol": "pt"
+ },
+ {
+ "aliases": [
+ "кварта",
+ "кварты",
+ "кварт",
+ "квартах"
+ ],
+ "identifier": "quarts",
+ "symbol": "qt"
+ },
+ {
+ "aliases": [
+ "галлон",
+ "галлонов",
+ "галлонах",
+ "галлоны"
+ ],
+ "identifier": "gallons",
+ "symbol": "gal"
+ },
+ {
+ "aliases": [
+ "столовая ложка",
+ "столовых ложек",
+ "столовые ложки",
+ "столовых ложки",
+ "столовых ложках",
+ "ст. ложка"
+ ],
+ "identifier": "tablespoons",
+ "symbol": "ст. л."
+ },
+ {
+ "aliases": [
+ "чайная ложка",
+ "чайных ложек",
+ "чайные ложки",
+ "чайных ложки",
+ "чайных ложках",
+ "ч. ложка"
+ ],
+ "identifier": "teaspoons",
+ "symbol": "ч. л."
+ },
+ {
+ "aliases": [
+ "жидкая унция",
+ "жидких унций",
+ "жидкие унции",
+ "жидких унции",
+ "жидких унциях"
+ ],
+ "identifier": "fluidOunces",
+ "symbol": "fl oz"
+ }
+ ],
+ "dataStorage": [
+ {
+ "aliases": [
+ "байт",
+ "байты",
+ "байтах",
+ "байта"
+ ],
+ "identifier": "bytes",
+ "symbol": "Б"
+ },
+ {
+ "aliases": [
+ "бит",
+ "биты",
+ "битах",
+ "бита"
+ ],
+ "identifier": "bits",
+ "symbol": "бит"
+ },
+ {
+ "aliases": [
+ "йоттабайт",
+ "йоттабайты",
+ "йоттабайтах",
+ "йоттабайта"
+ ],
+ "identifier": "yottabytes",
+ "symbol": "ибайт"
+ },
+ {
+ "aliases": [
+ "зеттабайт",
+ "зеттабайтах",
+ "зеттабайты",
+ "зеттабайта"
+ ],
+ "identifier": "zettabytes",
+ "symbol": "збайт"
+ },
+ {
+ "aliases": [
+ "эксабайт",
+ "эксабайтах",
+ "эксабайты",
+ "эксабайта"
+ ],
+ "identifier": "exabytes",
+ "symbol": "эбайт"
+ },
+ {
+ "aliases": [
+ "петабайт",
+ "петабайты",
+ "петабайтах",
+ "петабайта"
+ ],
+ "identifier": "petabytes",
+ "symbol": "пбайт"
+ },
+ {
+ "aliases": [
+ "терабайт",
+ "терабайтах",
+ "терабайты",
+ "терабайта",
+ "Тб"
+ ],
+ "identifier": "terabytes",
+ "symbol": "тбайт"
+ },
+ {
+ "aliases": [
+ "гигабайт",
+ "гигабайты",
+ "гигабайтах",
+ "гигабайта",
+ "Гб"
+ ],
+ "identifier": "gigabytes",
+ "symbol": "гбайт"
+ },
+ {
+ "aliases": [
+ "мегабайт",
+ "мегабайты",
+ "мегабайтах",
+ "мегабайта",
+ "Мб"
+ ],
+ "identifier": "megabytes",
+ "symbol": "мбайт"
+ },
+ {
+ "aliases": [
+ "килобайт",
+ "килобайты",
+ "килобайтах",
+ "килобайта",
+ "Кб"
+ ],
+ "identifier": "kilobytes",
+ "symbol": "КБ"
+ },
+ {
+ "aliases": [
+ "йоттабит",
+ "йоттабиты",
+ "йоттабитах",
+ "йоттабита",
+ "Yбит"
+ ],
+ "identifier": "yottabits",
+ "symbol": "Йбит"
+ },
+ {
+ "aliases": [
+ "зеттабит",
+ "зеттабитах",
+ "зеттабиты",
+ "зеттабита",
+ "Zбит"
+ ],
+ "identifier": "zettabits",
+ "symbol": "Збит"
+ },
+ {
+ "aliases": [
+ "эксабит",
+ "эксабиты",
+ "эксабитах",
+ "эксабита",
+ "Eбит"
+ ],
+ "identifier": "exabits",
+ "symbol": "Эбит"
+ },
+ {
+ "aliases": [
+ "петабит",
+ "петабиты",
+ "петабитах",
+ "петабита",
+ "Pбит"
+ ],
+ "identifier": "petabits",
+ "symbol": "Пбит"
+ },
+ {
+ "aliases": [
+ "терабит",
+ "терабиты",
+ "терабитах",
+ "терабита",
+ "Tбит"
+ ],
+ "identifier": "terabits",
+ "symbol": "Тбит"
+ },
+ {
+ "aliases": [
+ "гигабит",
+ "гигабиты",
+ "гигабитах",
+ "гигабита",
+ "Gбит"
+ ],
+ "identifier": "gigabits",
+ "symbol": "Гбит"
+ },
+ {
+ "aliases": [
+ "мегабит",
+ "мегабиты",
+ "мегабитах",
+ "мегабита"
+ ],
+ "identifier": "megabits",
+ "symbol": "Мбит"
+ },
+ {
+ "aliases": [
+ "килобиты",
+ "килобитах",
+ "килобита"
+ ],
+ "identifier": "kilobits",
+ "symbol": "Kбит"
+ },
+ {
+ "aliases": [
+ "йобибайт",
+ "йобибайты",
+ "йобибайтах",
+ "йобибайта"
+ ],
+ "identifier": "yobibytes",
+ "symbol": "ЙиБ"
+ },
+ {
+ "aliases": [
+ "зебибайт",
+ "зебибайты",
+ "зебибайтах",
+ "зебибайта"
+ ],
+ "identifier": "zebibytes",
+ "symbol": "ЗиБ"
+ },
+ {
+ "aliases": [
+ "эксибайт",
+ "эксибайты",
+ "эксибайтах",
+ "эксибайта"
+ ],
+ "identifier": "exbibytes",
+ "symbol": "ЭиБ"
+ },
+ {
+ "aliases": [
+ "пебибайт",
+ "пебибайты",
+ "пебибайтах",
+ "пебибайта"
+ ],
+ "identifier": "pebibytes",
+ "symbol": "ПиБ"
+ },
+ {
+ "aliases": [
+ "тебибайт",
+ "тебибайты",
+ "тебибайтах",
+ "тебибайта"
+ ],
+ "identifier": "tebibytes",
+ "symbol": "ТиБ"
+ },
+ {
+ "aliases": [
+ "гибибайт",
+ "гибибайты",
+ "гибибайтах",
+ "гибибайта"
+ ],
+ "identifier": "gibibytes",
+ "symbol": "ГиБ"
+ },
+ {
+ "aliases": [
+ "мебибайт",
+ "мебибайты",
+ "мебибайтах",
+ "мебибайта"
+ ],
+ "identifier": "mebibytes",
+ "symbol": "МиБ"
+ },
+ {
+ "aliases": [
+ "кибибайт",
+ "кибибайты",
+ "кибибайтах",
+ "кибибайта"
+ ],
+ "identifier": "kibibytes",
+ "symbol": "КиБ"
+ },
+ {
+ "aliases": [
+ "йобибит",
+ "йобибиты",
+ "йобибитах",
+ "йобибита",
+ "Yiбит"
+ ],
+ "identifier": "yobibits",
+ "symbol": "Йиб"
+ },
+ {
+ "aliases": [
+ "зебибит",
+ "зебибиты",
+ "зебибитах",
+ "зебибита",
+ "Ziбит"
+ ],
+ "identifier": "zebibits",
+ "symbol": "Зиб"
+ },
+ {
+ "aliases": [
+ "эксибит",
+ "эксибиты",
+ "эксибитах",
+ "эксибита",
+ "Эибит"
+ ],
+ "identifier": "exbibits",
+ "symbol": "Эи"
+ },
+ {
+ "aliases": [
+ "пебибит",
+ "пебибиты",
+ "пебибитах",
+ "пебибита",
+ "Пибит"
+ ],
+ "identifier": "pebibits",
+ "symbol": "Пиб"
+ },
+ {
+ "aliases": [
+ "тебибит",
+ "тебибиты",
+ "тебибитах",
+ "тебибита",
+ "Тибит"
+ ],
+ "identifier": "tebibits",
+ "symbol": "Тиб"
+ },
+ {
+ "aliases": [
+ "гибибит",
+ "гибибиты",
+ "гибибитах",
+ "гибибита"
+ ],
+ "identifier": "gibibits",
+ "symbol": "Гиб"
+ },
+ {
+ "aliases": [
+ "мебибит",
+ "мебибиты",
+ "мебибитах",
+ "мебибита",
+ "Miбит"
+ ],
+ "identifier": "mebibits",
+ "symbol": "Миб"
+ },
+ {
+ "aliases": [
+ "кибибит",
+ "кибибиты",
+ "кибибитах",
+ "кибибита"
+ ],
+ "identifier": "kibibits",
+ "symbol": "Киб"
+ }
+ ],
+ "temperature": [
+ {
+ "aliases": [
+ "келвин"
+ ],
+ "identifier": "kelvin",
+ "symbol": "K"
+ },
+ {
+ "aliases": [
+ "градус цельсия",
+ "градусы цельсия",
+ "градусов цельсия",
+ "градусах цельсия",
+ "градуса цельсия",
+ "С"
+ ],
+ "identifier": "celsius",
+ "symbol": "°С"
+ },
+ {
+ "aliases": [
+ "градус фаренгейта",
+ "градусы фаренгейта",
+ "градусов фаренгейта",
+ "градусах фаренгейта",
+ "градуса фаренгейта",
+ "Ф"
+ ],
+ "identifier": "fahrenheit",
+ "symbol": "°Ф"
+ }
+ ],
+ "angle": [
+ {
+ "aliases": [
+ "градус",
+ "градусах",
+ "градуса",
+ "градусы",
+ "градусов"
+ ],
+ "identifier": "degrees",
+ "symbol": "°"
+ },
+ {
+ "aliases": [
+ "радиан",
+ "радианах",
+ "радианы",
+ "радиана",
+ "радианов"
+ ],
+ "identifier": "radians",
+ "symbol": "рад"
+ }
+ ],
+ "length": [
+ {
+ "aliases": [
+ "метров",
+ "метры",
+ "метра",
+ "метрах"
+ ],
+ "identifier": "meters",
+ "symbol": "м"
+ },
+ {
+ "aliases": [
+ "километров",
+ "километры",
+ "километра",
+ "километрах"
+ ],
+ "identifier": "kilometers",
+ "symbol": "км"
+ },
+ {
+ "aliases": [
+ "метров",
+ "метры",
+ "метра",
+ "метрах"
+ ],
+ "identifier": "centimeters",
+ "symbol": "см"
+ },
+ {
+ "aliases": [
+ "миллметров",
+ "миллметры",
+ "миллметра",
+ "миллметрах"
+ ],
+ "identifier": "millimeters",
+ "symbol": "мм"
+ },
+ {
+ "aliases": [
+ "микрометров",
+ "микрометры",
+ "микрометра",
+ "микрометрах"
+ ],
+ "identifier": "micrometers",
+ "symbol": "мкм"
+ },
+ {
+ "aliases": [
+ "нанометров",
+ "нанометры",
+ "нанометра",
+ "нанометрах"
+ ],
+ "identifier": "nanometers",
+ "symbol": "нм"
+ },
+ {
+ "aliases": [
+ "дюймов",
+ "дюймы",
+ "дюйма",
+ "дюймах"
+ ],
+ "identifier": "inches",
+ "symbol": "дюйм"
+ },
+ {
+ "aliases": [
+ "фут",
+ "футов",
+ "футы",
+ "фута",
+ "футах"
+ ],
+ "identifier": "feet",
+ "symbol": "ft"
+ },
+ {
+ "aliases": [
+ "ярд",
+ "ярдов",
+ "ярды",
+ "ярда",
+ "ярдах"
+ ],
+ "identifier": "yards",
+ "symbol": "yd"
+ },
+ {
+ "aliases": [
+ "миля",
+ "миль",
+ "мили",
+ "милях"
+ ],
+ "identifier": "miles",
+ "symbol": "mi"
+ },
+ {
+ "aliases": [
+ "световой год",
+ "световые года",
+ "световых лет"
+ ],
+ "identifier": "lightyears",
+ "symbol": "св. год"
+ },
+ {
+ "aliases": [
+ "парсек",
+ "парсеков",
+ "парсеки",
+ "парсека",
+ "парсеках"
+ ],
+ "identifier": "parsecs",
+ "symbol": "пк"
+ },
+ {
+ "aliases": [
+ "морская миля",
+ "морских милй",
+ "морских миль",
+ "морские мили",
+ "морских мили",
+ "морских милях"
+ ],
+ "identifier": "nauticalMiles",
+ "symbol": "NM"
+ },
+ {
+ "aliases": [
+ "морских саженей",
+ "морские сажени",
+ "морских саженях",
+ "морская сажень"
+ ],
+ "identifier": "fathoms",
+ "symbol": "ftm"
+ },
+ {
+ "aliases": [
+ "фурлонг",
+ "фурлонгы",
+ "фурлонгах",
+ "фурлонга",
+ "фурлонгов"
+ ],
+ "identifier": "furlongs",
+ "symbol": "fur"
+ },
+ {
+ "aliases": [
+ "пиксель",
+ "пиксел",
+ "пикселов",
+ "пикселы",
+ "пиксела",
+ "пикселей",
+ "пикселя",
+ "пикс"
+ ],
+ "symbol": "px",
+ "identifier": "pixel"
+ },
+ {
+ "aliases": [
+
+ ],
+ "identifier": "em",
+ "symbol": "em"
+ },
+ {
+ "aliases": [
+
+ ],
+ "identifier": "point",
+ "symbol": "pt"
+ }
+ ],
+ "area": [
+ {
+ "aliases": [
+ "квадратных километров",
+ "квадратные километры",
+ "квадратных километра",
+ "квадратных километрах",
+ "километры в квадрате",
+ "километра в квадрате",
+ "километрах в квадрате",
+ "километрах в квадрате",
+ "квадратный километр",
+ "километр в квадрате",
+ "км в квадрате"
+ ],
+ "identifier": "squareKilometers",
+ "symbol": "км²"
+ },
+ {
+ "aliases": [
+ "квадратных метров",
+ "квадратные метры",
+ "квадратных метра",
+ "квадратных метрах",
+ "метры в квадрате",
+ "метрах в квадрате",
+ "метра в квадрате",
+ "метров в квадрате",
+ "квадратный метр",
+ "метр в квадрате"
+ ],
+ "identifier": "squareMeters",
+ "symbol": "м²"
+ },
+ {
+ "aliases": [
+ "квадратных сантиметров",
+ "квадратные сантиметры",
+ "квадратных сантиметра",
+ "квадратных сантиметрах",
+ "квадратный сантиметр",
+ "см в квадрате"
+ ],
+ "identifier": "squareCentimeters",
+ "symbol": "см²"
+ },
+ {
+ "aliases": [
+ "квадратных миллиметров",
+ "квадратные миллиметры",
+ "квадратных миллиметры",
+ "квадратных миллиметрах",
+ "квадратный миллиметр",
+ "мм в квадрате"
+ ],
+ "symbol": "мм²",
+ "identifier": "squareMillimeters"
+ },
+ {
+ "aliases": [
+ "квадратных микрометров",
+ "квадратные микрометры",
+ "квадратных микрометры",
+ "квадратных микрометрах",
+ "квадратный микрометр",
+ "мм в квадрате"
+ ],
+ "identifier": "squareMicrometers",
+ "symbol": "мкм²"
+ },
+ {
+ "aliases": [
+ "квадратных дюймов",
+ "квадратные дюймы",
+ "квадратных дюйма",
+ "квадратных дюймах",
+ "кв дюйм",
+ "кв дюймы",
+ "кв дюйма",
+ "кв дюймов",
+ "кв дюймах",
+ "квадратный дюйм"
+ ],
+ "identifier": "squareInches",
+ "symbol": "in²"
+ },
+ {
+ "aliases": [
+ "квадратных футов",
+ "квадратные футе",
+ "квадратные футы",
+ "квадратных фута",
+ "квадратных футах",
+ "футы в квадрате",
+ "фута в квадрате",
+ "футов в квадрате",
+ "футах в квадрате",
+ "квадратный фут",
+ "фут в квадрате"
+ ],
+ "identifier": "squareFeet",
+ "symbol": "ft²"
+ },
+ {
+ "aliases": [
+ "квадратных ярдов",
+ "квадратные ярды",
+ "квадратных ярда",
+ "квадратных ярдах",
+ "ярды в квадрате",
+ "ярда в квадрате",
+ "ярдов в квадрате",
+ "ярдах в квадрате",
+ "квадратный ярд",
+ "ярд в квадрате"
+ ],
+ "identifier": "squareYards",
+ "symbol": "yd²"
+ },
+ {
+ "aliases": [
+ "квадратная миля",
+ "квадратных милй",
+ "квадратные мили",
+ "квадратных миль",
+ "квадратных милях"
+ ],
+ "identifier": "squareMiles",
+ "symbol": "mi²"
+ },
+ {
+ "aliases": [
+ "акров",
+ "акры",
+ "акра",
+ "акрах",
+ "акр"
+ ],
+ "identifier": "acres",
+ "symbol": "ac"
+ },
+ {
+ "aliases": [
+ "гектаров",
+ "гектары",
+ "гектара",
+ "гектарах",
+ "гектар"
+ ],
+ "identifier": "hectares",
+ "symbol": "га"
+ },
+ {
+ "aliases": [
+ "сотка",
+ "сотки",
+ "ара",
+ "аров",
+ "ары"
+ ],
+ "identifier": "ares",
+ "symbol": "ар"
+ }
+ ],
+ "fuelEfficiency": [
+ {
+ "aliases": [
+ "l/100 km",
+ "l/100km",
+ "l / 100km",
+ "liters / 100km",
+ "litres / 100km",
+ "l / 100 km",
+ "liters / 100 km",
+ "litres / 100 km"
+ ],
+ "identifier": "litersPer100Kilometers",
+ "symbol": "L/100km"
+ },
+ {
+ "aliases": [
+ "miles per gallon"
+ ],
+ "identifier": "milesPerGallon",
+ "symbol": "mpg"
+ }
+ ],
+ "power": [
+ {
+ "aliases": [
+ "ватт",
+ "ваттов",
+ "ватты",
+ "ватта",
+ "ваттах"
+ ],
+ "identifier": "watts",
+ "symbol": "Вт"
+ },
+ {
+ "aliases": [
+ "миливатт",
+ "миливаттов",
+ "миливатты",
+ "миливатта",
+ "миливаттах"
+ ],
+ "identifier": "milliwatts",
+ "symbol": "мВт"
+ },
+ {
+ "aliases": [
+ "киловатт",
+ "киловаттов",
+ "киловатты",
+ "киловатта",
+ "киловаттах"
+ ],
+ "symbol": "кВт",
+ "identifier": "kilowatts"
+ },
+ {
+ "aliases": [
+ "мегаватт",
+ "мегаваттов",
+ "мегаватты",
+ "мегаватта",
+ "мегаваттах"
+ ],
+ "identifier": "megawatts",
+ "symbol": "МВт"
+ },
+ {
+ "aliases": [
+ "гигаватт",
+ "гигаваттов",
+ "гигаватты",
+ "гигаватта",
+ "гигаваттах"
+ ],
+ "identifier": "gigawatts",
+ "symbol": "ГВт"
+ },
+ {
+ "aliases": [
+ "тераватт",
+ "гигаваттов",
+ "гигаватты",
+ "гигаватта",
+ "гигаваттах"
+ ],
+ "identifier": "terawatts",
+ "symbol": "ТВт"
+ },
+ {
+ "aliases": [
+ "лошадиная сила",
+ "лошадиных сил",
+ "лошадиные силы",
+ "лошадиных силы",
+ "лошадиных силах"
+ ],
+ "identifier": "horsepower",
+ "symbol": "л. с."
+ }
+ ],
+ "mass": [
+ {
+ "aliases": [
+ "килограмм",
+ "килограммов",
+ "килограммы",
+ "килограмма",
+ "килограммах"
+ ],
+ "identifier": "kilograms",
+ "symbol": "кг"
+ },
+ {
+ "aliases": [
+ "грамм",
+ "граммов",
+ "граммы",
+ "грамма",
+ "граммах"
+ ],
+ "identifier": "grams",
+ "symbol": "г"
+ },
+ {
+ "aliases": [
+ "миллиграмм",
+ "миллиграммов",
+ "миллиграммы",
+ "миллиграмма",
+ "миллиграммах"
+ ],
+ "symbol": "мг",
+ "identifier": "milligrams"
+ },
+ {
+ "aliases": [
+ "нанограмм",
+ "нанограммов",
+ "нанограммы",
+ "нанограмма",
+ "нанограммах"
+ ],
+ "identifier": "nanograms",
+ "symbol": "нг"
+ },
+ {
+ "aliases": [
+ "унция",
+ "унций",
+ "унции",
+ "унциях"
+ ],
+ "identifier": "ounces",
+ "symbol": "oz"
+ },
+ {
+ "aliases": [
+ "фунт",
+ "фунтов",
+ "фунты",
+ "фунта",
+ "фунтах"
+ ],
+ "identifier": "pounds",
+ "symbol": "lb"
+ },
+ {
+ "aliases": [
+ "стоун",
+ "стоунов",
+ "стоуны",
+ "стона",
+ "стоунах"
+ ],
+ "identifier": "stones",
+ "symbol": "st"
+ },
+ {
+ "aliases": [
+ "тонна",
+ "метрическая тонна",
+ "тонн",
+ "тонны",
+ "метрические тонны",
+ "тоннах",
+ "метрических тонны",
+ "метрических тонн",
+ "метрических тоннах"
+ ],
+ "identifier": "metricTons",
+ "symbol": "т"
+ },
+ {
+ "aliases": [
+ "карат",
+ "каратов",
+ "караты",
+ "каратах",
+ "карата"
+ ],
+ "identifier": "carats",
+ "symbol": "кар"
+ },
+ {
+ "aliases": [
+ "тройская унция",
+ "тройскые унции",
+ "тройскых унцией"
+ ],
+ "identifier": "ouncesTroy",
+ "symbol": "oz t"
+ }
+ ],
+ "duration": [
+ {
+ "aliases": [
+ "час",
+ "часов",
+ "часах",
+ "часа"
+ ],
+ "identifier": "hours",
+ "symbol": "часы"
+ },
+ {
+ "aliases": [
+ "секунд",
+ "секунды",
+ "секундах",
+ "секунда"
+ ],
+ "identifier": "seconds",
+ "symbol": "сек"
+ },
+ {
+ "aliases": [
+ "минута",
+ "минуты",
+ "минутах",
+ "минут"
+ ],
+ "identifier": "minutes",
+ "symbol": "мин"
+ },
+ {
+ "aliases": [
+ "дни",
+ "день",
+ "дней",
+ "дня",
+ "днях"
+ ],
+ "identifier": "days",
+ "symbol": "дни"
+ },
+ {
+ "aliases": [
+ "рабочий день",
+ "рабочих дней",
+ "рабочих днях",
+ "рабочие дни",
+ "рабочих дня"
+ ],
+ "identifier": "weekdays",
+ "symbol": "workday"
+ },
+ {
+ "aliases": [
+ "неделя",
+ "недель",
+ "неделей",
+ "неделях",
+ "неделю"
+ ],
+ "identifier": "weeks",
+ "symbol": "недели"
+ },
+ {
+ "aliases": [
+ "месяц",
+ "месяца",
+ "месяцах",
+ "месяцев"
+ ],
+ "identifier": "months",
+ "symbol": "месяцы"
+ },
+ {
+ "aliases": [
+ "года",
+ "лет",
+ "год"
+ ],
+ "identifier": "years",
+ "symbol": "годы"
+ },
+ {
+ "aliases": [
+ "миллисекунда",
+ "миллисекунд",
+ "миллисекундах",
+ "миллисекунды"
+ ],
+ "identifier": "milliseconds",
+ "symbol": "мс"
+ },
+ {
+ "aliases": [
+ "микросекунда",
+ "микросекундах",
+ "микросекунды",
+ "микросекунд"
+ ],
+ "identifier": "microseconds",
+ "symbol": "мкс"
+ },
+ {
+ "aliases": [
+ "наносекунда",
+ "наносекундах",
+ "наносекунды"
+ ],
+ "identifier": "nanoseconds",
+ "symbol": "нс"
+ }
+ ],
+ "currency": [
+ {
+ "aliases": [
+ "usd"
+ ],
+ "identifier": "usd",
+ "symbol": "USD"
+ }
+ ],
+ "frequency": [
+ {
+ "aliases": [
+ "герцов",
+ "герц",
+ "герцы",
+ "герца",
+ "герцах"
+ ],
+ "identifier": "hertz",
+ "symbol": "Гц"
+ },
+ {
+ "aliases": [
+ "килогерцов",
+ "килогерц",
+ "килогерцы",
+ "килогерцах",
+ "килогерца",
+ "килогерцах"
+ ],
+ "identifier": "kilohertz",
+ "symbol": "кГц"
+ },
+ {
+ "aliases": [
+ "мегагерцов",
+ "мегагерц",
+ "мегагерцы",
+ "мегагерца",
+ "мегагерцах"
+ ],
+ "identifier": "megahertz",
+ "symbol": "МГц"
+ },
+ {
+ "aliases": [
+ "гигагерцов",
+ "гигагерц",
+ "гигагерцы",
+ "гигагерца",
+ "гигагерцах"
+ ],
+ "identifier": "gigahertz",
+ "symbol": "ГГц"
+ },
+ {
+ "aliases": [
+ "терагерцов",
+ "терагерц",
+ "терагерцы",
+ "терагерца",
+ "тергерцах"
+ ],
+ "identifier": "terahertz",
+ "symbol": "ТГц"
+ },
+ {
+ "aliases": [
+ "миллигерцов",
+ "миллигерц",
+ "миллигерцы",
+ "миллигерца",
+ "миллигерцах"
+ ],
+ "identifier": "millihertz",
+ "symbol": "мГц"
+ },
+ {
+ "aliases": [
+ "микогерцов",
+ "микогерц",
+ "микогерцы",
+ "микогерца",
+ "микогерцах"
+ ],
+ "identifier": "microhertz",
+ "symbol": "мкГц"
+ },
+ {
+ "aliases": [
+ "наногерцов",
+ "наногерц",
+ "наногерцы",
+ "наногерца",
+ "наногерцах"
+ ],
+ "identifier": "nanohertz",
+ "symbol": "нГц"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Cities.json
new file mode 100644
index 000000000..6d77c16f1
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Cities.json
@@ -0,0 +1,3566 @@
+[
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "上海",
+ "identifier" : "shanghai",
+ "population" : "22,315,474"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊斯坦堡",
+ "identifier" : "istanbul",
+ "population" : "14,804,116"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "布宜诺斯艾利斯",
+ "identifier" : "buenos aires",
+ "population" : "13,076,300"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "孟买",
+ "identifier" : "mumbai",
+ "population" : "12,691,836"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "墨西哥城",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "北京",
+ "identifier" : "beijing",
+ "population" : "11,716,620"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "卡拉奇",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "天津",
+ "identifier" : "tianjin",
+ "population" : "11,090,314"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "广州",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "新德里",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "莫斯科",
+ "identifier" : "moscow",
+ "population" : "10,381,222"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "深圳",
+ "identifier" : "shenzhen",
+ "population" : "10,358,381"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "达卡",
+ "identifier" : "dhaka",
+ "population" : "10,356,500"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "汉城",
+ "identifier" : "seoul",
+ "population" : "10,349,312"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "圣保罗",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "武汉市",
+ "identifier" : "wuhan",
+ "population" : "9,785,388"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "拉各斯",
+ "identifier" : "lagos",
+ "population" : "9,000,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "雅加达",
+ "identifier" : "jakarta",
+ "population" : "8,540,121"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "东京",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "纽约",
+ "identifier" : "new york",
+ "population" : "8,175,133"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "东莞市",
+ "identifier" : "dongguan",
+ "population" : "8,000,000"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "台北",
+ "identifier" : "taipei",
+ "population" : "7,871,900"
+ },
+ {
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "金夏沙",
+ "identifier" : "kinshasa",
+ "population" : "7,785,965"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "开罗",
+ "identifier" : "cairo",
+ "population" : "7,734,614"
+ },
+ {
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "波哥大",
+ "identifier" : "bogota",
+ "population" : "7,674,366"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "伦敦",
+ "identifier" : "london",
+ "population" : "7,556,900"
+ },
+ {
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "重庆市",
+ "identifier" : "chongqing",
+ "population" : "7,457,600"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "成都市",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "巴格达",
+ "identifier" : "baghdad",
+ "population" : "7,216,000"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南京",
+ "identifier" : "nanjing",
+ "population" : "7,165,292"
+ },
+ {
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "德黑兰",
+ "identifier" : "tehran",
+ "population" : "7,153,309"
+ },
+ {
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南充",
+ "identifier" : "nanchong",
+ "population" : "7,150,000"
+ },
+ {
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "香港",
+ "identifier" : "hong kong",
+ "population" : "7,012,738"
+ },
+ {
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "西安",
+ "identifier" : "xi'an",
+ "population" : "6,501,190"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "里约热内卢",
+ "identifier" : "rio de janeiro",
+ "population" : "6,023,699"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "曼谷",
+ "identifier" : "bangkok",
+ "population" : "5,104,476"
+ },
+ {
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "班加罗尔",
+ "identifier" : "bengaluru",
+ "population" : "5,104,047"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "圣彼得堡",
+ "identifier" : "saint petersburg",
+ "population" : "5,028,000"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "圣地亚哥",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "加尔各答",
+ "identifier" : "kolkata",
+ "population" : "4,631,392"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "悉尼",
+ "identifier" : "sydney",
+ "population" : "4,627,345"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "仰光",
+ "identifier" : "yangon",
+ "population" : "4,477,638"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "钦奈",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "墨尔本",
+ "identifier" : "melbourne",
+ "population" : "4,246,375"
+ },
+ {
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "利雅得",
+ "identifier" : "riyadh",
+ "population" : "4,205,961"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "洛杉矶",
+ "identifier" : "los angeles",
+ "population" : "3,971,883"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "吉大港市",
+ "identifier" : "chittagong",
+ "population" : "3,920,222"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "亚历山德里亚",
+ "identifier" : "alexandria",
+ "population" : "3,811,516"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "艾哈迈达巴德",
+ "identifier" : "ahmedabad",
+ "population" : "3,719,710"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "釜山",
+ "identifier" : "busan",
+ "population" : "3,678,555"
+ },
+ {
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿比让",
+ "identifier" : "abidjan",
+ "population" : "3,677,115"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "鹿野",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "海得拉巴",
+ "identifier" : "hyderabad",
+ "population" : "3,597,816"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "横滨",
+ "identifier" : "yokohama",
+ "population" : "3,574,443"
+ },
+ {
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊巴丹岛",
+ "identifier" : "ibadan",
+ "population" : "3,565,108"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "新加坡",
+ "identifier" : "singapore",
+ "population" : "3,547,809"
+ },
+ {
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "安卡拉",
+ "identifier" : "ankara",
+ "population" : "3,517,182"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "胡志明市",
+ "identifier" : "ho chi minh city",
+ "population" : "3,467,331"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "开普敦",
+ "identifier" : "cape town",
+ "population" : "3,433,441"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "柏林",
+ "identifier" : "berlin",
+ "population" : "3,426,354"
+ },
+ {
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "马德里",
+ "identifier" : "madrid",
+ "population" : "3,255,944"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "平壤",
+ "identifier" : "pyongyang",
+ "population" : "3,222,000"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "卡萨布兰卡",
+ "identifier" : "casablanca",
+ "population" : "3,144,909"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "中山",
+ "identifier" : "zhongshan",
+ "population" : "3,121,275"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "德班",
+ "identifier" : "durban",
+ "population" : "3,120,282"
+ },
+ {
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "喀布尔",
+ "identifier" : "kabul",
+ "population" : "3,043,532"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "乌鲁木齐",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "加拉加斯",
+ "identifier" : "caracas",
+ "population" : "3,000,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "迪拜",
+ "identifier" : "dubai",
+ "population" : "2,956,587"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "吉达",
+ "identifier" : "jeddah",
+ "population" : "2,867,446"
+ },
+ {
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "基辅",
+ "identifier" : "kyiv",
+ "population" : "2,797,553"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "罗安达",
+ "identifier" : "luanda",
+ "population" : "2,776,168"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "奎松市",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "亚的斯亚贝巴(埃塞俄比亚首都",
+ "identifier" : "addis ababa",
+ "population" : "2,757,729"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "内罗毕",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "芝加哥",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "萨尔瓦多",
+ "identifier" : "salvador",
+ "population" : "2,711,840"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "达累斯萨拉姆",
+ "identifier" : "dar es salaam",
+ "population" : "2,698,652"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "多伦多",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "大阪",
+ "identifier" : "osaka",
+ "population" : "2,592,413"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "摩加迪沙",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊兹密尔",
+ "identifier" : "izmir",
+ "population" : "2,500,603"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "达喀尔",
+ "identifier" : "dakar",
+ "population" : "2,476,400"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "吉萨",
+ "identifier" : "giza",
+ "population" : "2,443,203"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "福塔雷萨",
+ "identifier" : "fortaleza",
+ "population" : "2,400,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "泗水",
+ "identifier" : "surabaya",
+ "population" : "2,374,658"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "贝洛奥里藏特",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "罗马",
+ "identifier" : "rome",
+ "population" : "2,318,895"
+ },
+ {
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "马什哈德",
+ "identifier" : "mashhad",
+ "population" : "2,307,177"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "布鲁克林区",
+ "identifier" : "brooklyn",
+ "population" : "2,300,664"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "休斯顿",
+ "identifier" : "houston",
+ "population" : "2,296,224"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "皇后区",
+ "identifier" : "queens",
+ "population" : "2,272,771"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "巴西利亚",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "圣多明哥",
+ "identifier" : "santo domingo",
+ "population" : "2,201,941"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "名古屋",
+ "identifier" : "nagoya",
+ "population" : "2,191,279"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "布里斯班",
+ "identifier" : "brisbane",
+ "population" : "2,189,878"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "哈瓦那",
+ "identifier" : "havana",
+ "population" : "2,163,824"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "巴黎",
+ "identifier" : "paris",
+ "population" : "2,138,551"
+ },
+ {
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "约翰内斯堡",
+ "identifier" : "johannesburg",
+ "population" : "2,026,469"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "阿拉木图",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "塔什干",
+ "identifier" : "tashkent",
+ "population" : "1,978,028"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "阿尔及尔",
+ "identifier" : "algiers",
+ "population" : "1,977,663"
+ },
+ {
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "喀土穆",
+ "identifier" : "khartoum",
+ "population" : "1,974,647"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "阿克拉",
+ "identifier" : "accra",
+ "population" : "1,963,264"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "瓜亚基尔",
+ "identifier" : "guayaquil",
+ "population" : "1,952,029"
+ },
+ {
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "萨那",
+ "identifier" : "sanaa",
+ "population" : "1,937,451"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "贝鲁特",
+ "identifier" : "beirut",
+ "population" : "1,916,100"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "珀斯",
+ "identifier" : "perth",
+ "population" : "1,896,548"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "札幌",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "布加勒斯特",
+ "identifier" : "bucharest",
+ "population" : "1,877,155"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "卡马耶纳",
+ "identifier" : "camayenne",
+ "population" : "1,871,242"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "科纳克里",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "明斯克",
+ "identifier" : "minsk",
+ "population" : "1,742,124"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "布达佩斯",
+ "identifier" : "budapest",
+ "population" : "1,741,041"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "汉堡",
+ "identifier" : "hamburg",
+ "population" : "1,739,117"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "华沙",
+ "identifier" : "warsaw",
+ "population" : "1,702,139"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "索韦托",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "维也纳",
+ "identifier" : "vienna",
+ "population" : "1,691,468"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "拉巴特",
+ "identifier" : "rabat",
+ "population" : "1,655,753"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴塞罗纳",
+ "identifier" : "barcelona",
+ "population" : "1,621,537"
+ },
+ {
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "比勒陀利亚",
+ "identifier" : "pretoria",
+ "population" : "1,619,438"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "阿勒颇",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "马尼拉",
+ "identifier" : "manila",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "蒙特利尔",
+ "identifier" : "montreal",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "卡杜纳",
+ "identifier" : "kaduna",
+ "population" : "1,582,102"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "金边",
+ "identifier" : "phnom penh",
+ "population" : "1,573,544"
+ },
+ {
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "大马士革",
+ "identifier" : "damascus",
+ "population" : "1,569,394"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "费城",
+ "identifier" : "philadelphia",
+ "population" : "1,567,442"
+ },
+ {
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "凤凰",
+ "identifier" : "phoenix",
+ "population" : "1,563,025"
+ },
+ {
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "伊斯法罕",
+ "identifier" : "isfahan",
+ "population" : "1,547,164"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "哈拉雷",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "科比",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "斯德哥尔摩",
+ "identifier" : "stockholm",
+ "population" : "1,515,017"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "曼哈顿",
+ "identifier" : "manhattan",
+ "population" : "1,487,536"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "亚松森",
+ "identifier" : "asuncion",
+ "population" : "1,482,200"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "累西腓",
+ "identifier" : "recife",
+ "population" : "1,478,098"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "圣安东尼奥",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "库马西",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "哥打巴鲁",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "京都",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "吉隆坡",
+ "identifier" : "kuala lumpur",
+ "population" : "1,453,975"
+ },
+ {
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡拉伊",
+ "identifier" : "karaj",
+ "population" : "1,448,075"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "加德满都",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "河内",
+ "identifier" : "hanoi",
+ "population" : "1,431,270"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "哈尔科夫",
+ "identifier" : "kharkiv",
+ "population" : "1,430,885"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "科尔多瓦",
+ "identifier" : "cordoba",
+ "population" : "1,428,214"
+ },
+ {
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "大不里士",
+ "identifier" : "tabriz",
+ "population" : "1,424,641"
+ },
+ {
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "新西伯利亚",
+ "identifier" : "novosibirsk",
+ "population" : "1,419,007"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "贝伦",
+ "identifier" : "belem",
+ "population" : "1,407,737"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "基多",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "圣地亚哥",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "福冈",
+ "identifier" : "fukuoka",
+ "population" : "1,392,289"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "塔那那利佛",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "布朗克斯",
+ "identifier" : "the bronx",
+ "population" : "1,385,108"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "卢本巴希",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "圣克鲁斯-德拉塞拉",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "坎帕拉",
+ "identifier" : "kampala",
+ "population" : "1,353,189"
+ },
+ {
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "叶卡捷琳堡",
+ "identifier" : "yekaterinburg",
+ "population" : "1,349,772"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "杜阿拉",
+ "identifier" : "douala",
+ "population" : "1,338,082"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "沙迦",
+ "identifier" : "sharjah",
+ "population" : "1,324,473"
+ },
+ {
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麦加",
+ "identifier" : "mecca",
+ "population" : "1,323,624"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "望加锡",
+ "identifier" : "makassar",
+ "population" : "1,321,717"
+ },
+ {
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "华雷斯",
+ "identifier" : "juarez",
+ "population" : "1,321,004"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "川崎",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "蒂华纳",
+ "identifier" : "tijuana",
+ "population" : "1,300,983"
+ },
+ {
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "达拉斯",
+ "identifier" : "dallas",
+ "population" : "1,300,092"
+ },
+ {
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麦地那",
+ "identifier" : "medina",
+ "population" : "1,300,000"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "雅温得",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "巴马科",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "布拉柴维尔",
+ "identifier" : "brazzaville",
+ "population" : "1,284,609"
+ },
+ {
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "下诺夫哥罗德",
+ "identifier" : "nizhniy novgorod",
+ "population" : "1,284,164"
+ },
+ {
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "安曼",
+ "identifier" : "amman",
+ "population" : "1,275,857"
+ },
+ {
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "贝尔格莱德",
+ "identifier" : "belgrade",
+ "population" : "1,273,651"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "蒙得维的亚",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "卢萨卡",
+ "identifier" : "lusaka",
+ "population" : "1,267,440"
+ },
+ {
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "慕尼黑",
+ "identifier" : "munich",
+ "population" : "1,260,391"
+ },
+ {
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "设拉子",
+ "identifier" : "shiraz",
+ "population" : "1,249,942"
+ },
+ {
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "米兰",
+ "identifier" : "milan",
+ "population" : "1,236,837"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "太子港",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "阿德莱德",
+ "identifier" : "adelaide",
+ "population" : "1,225,235"
+ },
+ {
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "恩杜曼",
+ "identifier" : "omdurman",
+ "population" : "1,200,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "ita玉",
+ "identifier" : "saitama",
+ "population" : "1,193,350"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "马普托",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "布拉格",
+ "identifier" : "prague",
+ "population" : "1,165,581"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "哥本哈根",
+ "identifier" : "copenhagen",
+ "population" : "1,153,615"
+ },
+ {
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "苏菲亚",
+ "identifier" : "sofia",
+ "population" : "1,152,556"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "的黎波里",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "哈科特港",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "广岛",
+ "identifier" : "hiroshima",
+ "population" : "1,143,841"
+ },
+ {
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "蒙特雷",
+ "identifier" : "monterrey",
+ "population" : "1,135,512"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "萨马拉",
+ "identifier" : "samara",
+ "population" : "1,134,730"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "鄂木斯克",
+ "identifier" : "omsk",
+ "population" : "1,129,281"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "贝宁市",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "巴库",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "迈杜古里",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "喀山",
+ "identifier" : "kazan",
+ "population" : "1,104,738"
+ },
+ {
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "叶里温",
+ "identifier" : "yerevan",
+ "population" : "1,093,485"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "瓦加杜古",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "罗斯托夫纳多努",
+ "identifier" : "rostov-na-donu",
+ "population" : "1,074,482"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "车里雅宾斯克",
+ "identifier" : "chelyabinsk",
+ "population" : "1,062,919"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "第比利斯",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "乌法",
+ "identifier" : "ufa",
+ "population" : "1,033,338"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "圣荷西",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "都柏林",
+ "identifier" : "dublin",
+ "population" : "1,024,027"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "卡尔加里",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "布鲁塞尔",
+ "identifier" : "brussels",
+ "population" : "1,019,022"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "伏尔加格勒",
+ "identifier" : "volgograd",
+ "population" : "1,011,417"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "敖德萨",
+ "identifier" : "odessa",
+ "population" : "1,001,558"
+ },
+ {
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "危地马拉城",
+ "identifier" : "guatemala city",
+ "population" : "994,938"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "伯明翰",
+ "identifier" : "birmingham",
+ "population" : "984,333"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "烫发",
+ "identifier" : "perm",
+ "population" : "982,419"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "扎里亚",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "伊丽莎白港",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "非斯",
+ "identifier" : "fes",
+ "population" : "964,891"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "科隆",
+ "identifier" : "cologne",
+ "population" : "963,395"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "那不勒斯",
+ "identifier" : "naples",
+ "population" : "959,470"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "马塞约",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "蒙罗维亚",
+ "identifier" : "monrovia",
+ "population" : "939,524"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "金斯顿",
+ "identifier" : "kingston",
+ "population" : "937,700"
+ },
+ {
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "奥斯丁",
+ "identifier" : "austin",
+ "population" : "931,830"
+ },
+ {
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "克拉斯诺亚尔斯克",
+ "identifier" : "krasnoyarsk",
+ "population" : "927,200"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "特卖",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "库姆",
+ "identifier" : "qom",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "比什凯克",
+ "identifier" : "bishkek",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿波波",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿坝",
+ "identifier" : "aba",
+ "population" : "897,560"
+ },
+ {
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "门多萨",
+ "identifier" : "mendoza",
+ "population" : "876,884"
+ },
+ {
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "姆布吉马耶",
+ "identifier" : "mbuji-mayi",
+ "population" : "874,761"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "皮金",
+ "identifier" : "pikine",
+ "population" : "874,062"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "都灵",
+ "identifier" : "turin",
+ "population" : "870,456"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "旧金山",
+ "aliases": ["三番"],
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "利物浦",
+ "identifier" : "liverpool",
+ "population" : "864,122"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "萨拉托夫",
+ "identifier" : "saratov",
+ "population" : "863,725"
+ },
+ {
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "德古西加巴",
+ "identifier" : "tegucigalpa",
+ "population" : "850,848"
+ },
+ {
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "沃罗涅日",
+ "identifier" : "voronezh",
+ "population" : "848,752"
+ },
+ {
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "乌兰巴托",
+ "identifier" : "ulan bator",
+ "population" : "844,818"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "阿瓦士",
+ "identifier" : "ahvaz",
+ "population" : "841,145"
+ },
+ {
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "马拉喀什",
+ "identifier" : "marrakesh",
+ "population" : "839,296"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "登巴萨",
+ "identifier" : "denpasar",
+ "population" : "834,881"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "沃思堡",
+ "identifier" : "fort worth",
+ "population" : "833,319"
+ },
+ {
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "印第安纳波利斯",
+ "identifier" : "indianapolis",
+ "population" : "829,718"
+ },
+ {
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "乔斯",
+ "identifier" : "jos",
+ "population" : "816,824"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴伦西亚",
+ "identifier" : "valencia",
+ "population" : "814,208"
+ },
+ {
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊洛林",
+ "identifier" : "ilorin",
+ "population" : "814,192"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "拉巴斯",
+ "identifier" : "la paz",
+ "population" : "215,178"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "渥太华",
+ "identifier" : "ottawa",
+ "population" : "812,129"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "弗里敦",
+ "identifier" : "freetown",
+ "population" : "802,639"
+ },
+ {
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "耶路撒冷",
+ "identifier" : "jerusalem",
+ "population" : "801,000"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "马斯喀特",
+ "identifier" : "muscat",
+ "population" : "797,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "马赛",
+ "identifier" : "marseille",
+ "population" : "794,811"
+ },
+ {
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "帕斯拉格德分行",
+ "identifier" : "pasragad branch",
+ "population" : "787,878"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "布默达斯",
+ "identifier" : "boumerdas",
+ "population" : "786,499"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "San Miguel de Tucuman",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "梅里达",
+ "identifier" : "merida",
+ "population" : "777,615"
+ },
+ {
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "尼亚美",
+ "identifier" : "niamey",
+ "population" : "774,235"
+ },
+ {
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡里兹",
+ "identifier" : "kahriz",
+ "population" : "766,706"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "克拉科夫",
+ "identifier" : "krakow",
+ "population" : "755,050"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "岘港市",
+ "identifier" : "da nang",
+ "population" : "752,493"
+ },
+ {
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "彼得马里茨堡",
+ "identifier" : "pietermaritzburg",
+ "population" : "750,845"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "洛美",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "基加利",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "里加",
+ "identifier" : "riga",
+ "population" : "742,572"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "阿姆斯特丹",
+ "identifier" : "amsterdam",
+ "population" : "741,636"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "大洋",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "诺丁汉",
+ "identifier" : "nottingham",
+ "population" : "729,977"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "大坎普市",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "阿什哈巴德",
+ "identifier" : "ashgabat",
+ "population" : "727,700"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "恩贾梅纳",
+ "identifier" : "n'djamena",
+ "population" : "721,081"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "利沃夫",
+ "identifier" : "lviv",
+ "population" : "717,803"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "埃莫西约",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "埃德蒙顿",
+ "identifier" : "edmonton",
+ "population" : "712,391"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "布拉瓦约",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "萨格勒布",
+ "identifier" : "zagreb",
+ "population" : "698,966"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "阿加迪尔",
+ "identifier" : "agadir",
+ "population" : "698,310"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "萨拉热窝",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "埃努古",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "丹吉尔",
+ "identifier" : "tangier",
+ "population" : "688,356"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "谢菲尔德",
+ "identifier" : "sheffield",
+ "population" : "685,368"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "西雅图",
+ "identifier" : "seattle",
+ "population" : "684,451"
+ },
+ {
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "丹佛",
+ "identifier" : "denver",
+ "population" : "682,545"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "埃尔帕索",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "杜尚别",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "底特律",
+ "identifier" : "detroit",
+ "population" : "677,116"
+ },
+ {
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "库里亚坎人",
+ "identifier" : "culiacan",
+ "population" : "675,773"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "马托拉",
+ "identifier" : "matola",
+ "population" : "675,422"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "波斯顿",
+ "identifier" : "boston",
+ "population" : "667,137"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "雅典",
+ "identifier" : "athens",
+ "population" : "664,046"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "努瓦克肖特",
+ "identifier" : "nouakchott",
+ "population" : "661,400"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "黑角",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "孟菲斯",
+ "identifier" : "memphis",
+ "population" : "655,770"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "法兰克福",
+ "identifier" : "frankfurt am main",
+ "population" : "650,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "克拉斯诺达尔",
+ "identifier" : "krasnodar",
+ "population" : "649,851"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴勒莫",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "科伦坡",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "利隆圭",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "奥兰",
+ "identifier" : "oran",
+ "population" : "645,984"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "基希讷乌",
+ "identifier" : "chisinau",
+ "population" : "635,994"
+ },
+ {
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "特比萨",
+ "identifier" : "tebessa",
+ "population" : "634,332"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "波特兰",
+ "identifier" : "portland",
+ "population" : "632,309"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "温尼伯",
+ "identifier" : "winnipeg",
+ "population" : "632,063"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "俄克拉荷马城",
+ "identifier" : "oklahoma city",
+ "population" : "631,346"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "坎昆",
+ "identifier" : "cancun",
+ "population" : "628,306"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "吉布地",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "巴尔的摩",
+ "identifier" : "baltimore",
+ "population" : "621,849"
+ },
+ {
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克尔曼沙",
+ "identifier" : "kermanshah",
+ "population" : "621,100"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "布里斯托尔",
+ "identifier" : "bristol",
+ "population" : "617,280"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "贝诺尼",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "阿布扎比",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "华盛顿州",
+ "identifier" : "washington",
+ "population" : "601,723"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "密尔沃基",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "温哥华",
+ "identifier" : "vancouver",
+ "population" : "600,000"
+ },
+ {
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "巴瑙尔",
+ "identifier" : "barnaul",
+ "population" : "599,579"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "鹿特丹",
+ "identifier" : "rotterdam",
+ "population" : "598,199"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "拉什特",
+ "identifier" : "rasht",
+ "population" : "594,590"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿倍库塔",
+ "identifier" : "abeokuta",
+ "population" : "593,100"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "埃森",
+ "identifier" : "essen",
+ "population" : "593,085"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "格拉斯哥",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "黄金海岸",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿布贾",
+ "identifier" : "abuja",
+ "population" : "590,400"
+ },
+ {
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "斯图加特",
+ "identifier" : "stuttgart",
+ "population" : "589,793"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "多特蒙德",
+ "identifier" : "dortmund",
+ "population" : "588,462"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "海参div",
+ "identifier" : "vladivostok",
+ "population" : "587,022"
+ },
+ {
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "伊尔库茨克",
+ "identifier" : "irkutsk",
+ "population" : "586,695"
+ },
+ {
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "布兰太尔",
+ "identifier" : "blantyre",
+ "population" : "584,877"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "热那亚",
+ "identifier" : "genoa",
+ "population" : "580,223"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "奥斯陆",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "利伯维尔",
+ "identifier" : "libreville",
+ "population" : "578,156"
+ },
+ {
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克尔曼",
+ "identifier" : "kerman",
+ "population" : "577,514"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜塞尔多夫",
+ "identifier" : "duesseldorf",
+ "population" : "573,057"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "古晋",
+ "identifier" : "kuching",
+ "population" : "570,407"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "阿尔伯克基",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "赫尔辛基",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "亚丁",
+ "identifier" : "aden",
+ "population" : "550,602"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "奥伦堡",
+ "identifier" : "orenburg",
+ "population" : "550,204"
+ },
+ {
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "普里什蒂纳",
+ "identifier" : "pristina",
+ "population" : "550,000"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "不来梅",
+ "identifier" : "bremen",
+ "population" : "546,501"
+ },
+ {
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "维尔纽斯",
+ "identifier" : "vilnius",
+ "population" : "542,366"
+ },
+ {
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "纳什维尔",
+ "identifier" : "nashville",
+ "population" : "530,852"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "魁北克",
+ "identifier" : "quebec",
+ "population" : "528,595"
+ },
+ {
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "圣萨尔瓦多",
+ "identifier" : "san salvador",
+ "population" : "525,990"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "澳门",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "秋明州",
+ "identifier" : "tyumen",
+ "population" : "519,119"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "里斯本",
+ "identifier" : "lisbon",
+ "population" : "517,802"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "汉诺威",
+ "identifier" : "hannover",
+ "population" : "515,140"
+ },
+ {
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "萨尔塔",
+ "identifier" : "salta",
+ "population" : "512,686"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "莱斯特",
+ "identifier" : "leicester",
+ "population" : "508,916"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "莱比锡",
+ "identifier" : "leipzig",
+ "population" : "504,971"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜伊斯堡",
+ "identifier" : "duisburg",
+ "population" : "504,358"
+ },
+ {
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "阿斯特拉罕",
+ "identifier" : "astrakhan",
+ "population" : "502,533"
+ },
+ {
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "纽伦堡",
+ "identifier" : "nuernberg",
+ "population" : "499,237"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "德累斯顿",
+ "identifier" : "dresden",
+ "population" : "486,854"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "托木斯克",
+ "identifier" : "tomsk",
+ "population" : "485,519"
+ },
+ {
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "亚兹德",
+ "identifier" : "yazd",
+ "population" : "477,905"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "堪萨斯城",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "斯科普里",
+ "identifier" : "skopje",
+ "population" : "474,889"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "海牙",
+ "identifier" : "the hague",
+ "population" : "474,292"
+ },
+ {
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里昂",
+ "identifier" : "lyon",
+ "population" : "472,317"
+ },
+ {
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "爱丁堡",
+ "identifier" : "edinburgh",
+ "population" : "464,990"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "安特卫普",
+ "identifier" : "antwerpen",
+ "population" : "459,805"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "坤甸",
+ "identifier" : "pontianak",
+ "population" : "455,173"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "利兹",
+ "identifier" : "leeds",
+ "population" : "455,123"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "加的夫",
+ "identifier" : "cardiff",
+ "population" : "447,287"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "圣胡安",
+ "identifier" : "san juan",
+ "population" : "418,140"
+ },
+ {
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "奥马哈",
+ "identifier" : "omaha",
+ "population" : "443,885"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "家乐福",
+ "identifier" : "carrefour",
+ "population" : "442,156"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "迈阿密",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "加里宁格勒",
+ "identifier" : "kaliningrad",
+ "population" : "434,954"
+ },
+ {
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "图卢兹",
+ "identifier" : "toulouse",
+ "population" : "433,055"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "特拉维夫",
+ "identifier" : "tel aviv",
+ "population" : "432,892"
+ },
+ {
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "东耶路撒冷",
+ "identifier" : "east jerusalem",
+ "population" : "428,304"
+ },
+ {
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "布拉迪斯拉发",
+ "identifier" : "bratislava",
+ "population" : "423,737"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "奥克兰市",
+ "identifier" : "auckland",
+ "population" : "417,910"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "塞瓦斯托波尔",
+ "identifier" : "sevastopol",
+ "population" : "416,263"
+ },
+ {
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "明尼阿波利斯",
+ "identifier" : "minneapolis",
+ "population" : "410,939"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "加沙",
+ "identifier" : "gaza",
+ "population" : "410,000"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "库尔斯克",
+ "identifier" : "kursk",
+ "population" : "409,431"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "巴拿马",
+ "identifier" : "panama",
+ "population" : "408,168"
+ },
+ {
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "塔尔萨",
+ "identifier" : "tulsa",
+ "population" : "403,505"
+ },
+ {
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "特维尔",
+ "identifier" : "tver",
+ "population" : "400,212"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "曼彻斯特",
+ "identifier" : "manchester",
+ "population" : "395,515"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "塔林",
+ "identifier" : "tallinn",
+ "population" : "394,024"
+ },
+ {
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "坎大哈",
+ "identifier" : "kandahar",
+ "population" : "391,190"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "威奇托",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "新奥尔良",
+ "identifier" : "new orleans",
+ "population" : "389,617"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "惠灵顿",
+ "identifier" : "wellington",
+ "population" : "381,900"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "大加那利岛拉斯帕尔马斯",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "马萨特兰",
+ "identifier" : "mazatlan",
+ "population" : "381,583"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "地拉那",
+ "identifier" : "tirana",
+ "population" : "374,801"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "考纳斯",
+ "identifier" : "kaunas",
+ "population" : "374,643"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "火奴鲁鲁",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "堪培拉",
+ "identifier" : "canberra",
+ "population" : "367,752"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "博洛尼亚",
+ "identifier" : "bologna",
+ "population" : "366,133"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "基督城",
+ "identifier" : "christchurch",
+ "population" : "363,926"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "哈利法克斯",
+ "identifier" : "halifax",
+ "population" : "359,111"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "安汶",
+ "identifier" : "ambon",
+ "population" : "355,596"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "佛罗伦斯",
+ "identifier" : "florence",
+ "population" : "349,296"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "多哈",
+ "identifier" : "doha",
+ "population" : "344,939"
+ },
+ {
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "苏黎世",
+ "identifier" : "zurich",
+ "population" : "341,730"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "好啊",
+ "identifier" : "nice",
+ "population" : "338,620"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "辛菲罗波尔",
+ "identifier" : "simferopol",
+ "population" : "336,460"
+ },
+ {
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "特皮克",
+ "identifier" : "tepic",
+ "population" : "332,863"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "索契",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "斯摩棱斯克",
+ "identifier" : "smolensk",
+ "population" : "320,991"
+ },
+ {
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "撒马尔罕",
+ "identifier" : "samarkand",
+ "population" : "319,366"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "摩尔曼斯克",
+ "identifier" : "murmansk",
+ "population" : "319,263"
+ },
+ {
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "弗拉季卡夫卡兹",
+ "identifier" : "vladikavkaz",
+ "population" : "317,370"
+ },
+ {
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "赤太",
+ "identifier" : "chita",
+ "population" : "308,500"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "新城堡",
+ "identifier" : "newcastle",
+ "population" : "308,308"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "韦略港",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "圣萨尔瓦多·德胡胡伊",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "匹兹堡",
+ "identifier" : "pittsburgh",
+ "population" : "304,391"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "布雷斯特",
+ "identifier" : "brest",
+ "population" : "144,899"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "锚地",
+ "identifier" : "anchorage",
+ "population" : "298,695"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "辛辛那提",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "卧龙岗市",
+ "identifier" : "wollongong",
+ "population" : "292,190"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "卡塔尼亚",
+ "identifier" : "catania",
+ "population" : "290,927"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "乌特勒支",
+ "identifier" : "utrecht",
+ "population" : "290,529"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "维多利亚州",
+ "identifier" : "victoria",
+ "population" : "289,625"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "莫尔兹比港",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "洛根市",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴里",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "南特",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "史特拉斯堡",
+ "identifier" : "strasbourg",
+ "population" : "274,845"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "贝尔法斯特",
+ "identifier" : "belfast",
+ "population" : "274,770"
+ },
+ {
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "卢布尔雅那",
+ "identifier" : "ljubljana",
+ "population" : "272,220"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "奥兰多",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "彼得罗扎沃茨克",
+ "identifier" : "petrozavodsk",
+ "population" : "265,025"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "普利茅斯",
+ "identifier" : "plymouth",
+ "population" : "260,203"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "里约布兰科",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "洛斯·莫奇斯",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "波尔图",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "麦迪逊",
+ "identifier" : "madison",
+ "population" : "248,951"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "蒙彼利埃",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "奥胡斯",
+ "identifier" : "arhus",
+ "population" : "237,551"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "雅库茨克",
+ "identifier" : "yakutsk",
+ "population" : "235,600"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "乔治敦",
+ "identifier" : "georgetown",
+ "population" : "235,017"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "波尔多",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "根特",
+ "identifier" : "gent",
+ "population" : "231,493"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "巴吞鲁日",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里尔",
+ "identifier" : "lille",
+ "population" : "228,328"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "拿骚",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "吉朗",
+ "identifier" : "geelong",
+ "population" : "226,034"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "帕拉马里博",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "圣克鲁斯-德特内里费",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "格拉茨",
+ "identifier" : "graz",
+ "population" : "222,326"
+ },
+ {
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "墨西拿",
+ "identifier" : "messina",
+ "population" : "219,948"
+ },
+ {
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "维罗纳",
+ "identifier" : "verona",
+ "population" : "219,103"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "霍巴特",
+ "identifier" : "hobart",
+ "population" : "216,656"
+ },
+ {
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "诺维萨德",
+ "identifier" : "novi sad",
+ "population" : "215,400"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "卑尔根",
+ "identifier" : "bergen",
+ "population" : "213,585"
+ },
+ {
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "得梅因",
+ "identifier" : "des moines",
+ "population" : "210,330"
+ },
+ {
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "科斯塔奈",
+ "identifier" : "kostanay",
+ "population" : "210,000"
+ },
+ {
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "林兹",
+ "identifier" : "linz",
+ "population" : "204,846"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕多瓦",
+ "identifier" : "padova",
+ "population" : "203,725"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "普斯科夫",
+ "identifier" : "pskov",
+ "population" : "201,990"
+ },
+ {
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "清迈",
+ "identifier" : "chiang mai",
+ "population" : "200,952"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "尼科西亚",
+ "identifier" : "nicosia",
+ "population" : "200,452"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "口服",
+ "identifier" : "oral",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "奥什",
+ "identifier" : "osh",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "萨斯卡通",
+ "identifier" : "saskatoon",
+ "population" : "198,958"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "小石头",
+ "identifier" : "little rock",
+ "population" : "197,992"
+ },
+ {
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "万象",
+ "identifier" : "vientiane",
+ "population" : "196,731"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "香港仔",
+ "identifier" : "aberdeen",
+ "population" : "196,670"
+ },
+ {
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "帕尔马斯",
+ "identifier" : "palmas",
+ "population" : "196,272"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "汤斯维尔",
+ "identifier" : "townsville",
+ "population" : "196,219"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "盐湖城",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "软木",
+ "identifier" : "cork",
+ "population" : "190,384"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "塔拉哈西",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "圣塔伦",
+ "identifier" : "santarem",
+ "population" : "189,047"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "卡塔马卡圣费尔南多·德尔瓦莱",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "的里雅斯特",
+ "identifier" : "trieste",
+ "population" : "187,056"
+ },
+ {
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "圣路易斯",
+ "identifier" : "san luis",
+ "population" : "183,982"
+ },
+ {
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "日内瓦",
+ "identifier" : "geneva",
+ "population" : "183,981"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "阿特劳",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "库塔伊西",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "南萨哈林斯克",
+ "identifier" : "yuzhno-sakhalinsk",
+ "population" : "176,484"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "分裂",
+ "identifier" : "split",
+ "population" : "176,314"
+ },
+ {
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "里贾纳",
+ "identifier" : "regina",
+ "population" : "176,183"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "图尔库",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "牛津",
+ "identifier" : "oxford",
+ "population" : "171,380"
+ },
+ {
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "杰克逊",
+ "identifier" : "jackson",
+ "population" : "170,674"
+ },
+ {
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "斯普林菲尔德",
+ "identifier" : "springfield",
+ "population" : "166,810"
+ },
+ {
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "巴塞尔",
+ "identifier" : "basel",
+ "population" : "164,488"
+ },
+ {
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "拉里奥哈",
+ "identifier" : "la rioja",
+ "population" : "162,620"
+ },
+ {
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "希伯伦",
+ "identifier" : "hebron",
+ "population" : "160,470"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "摩德纳",
+ "identifier" : "modena",
+ "population" : "158,886"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "剑桥",
+ "identifier" : "cambridge",
+ "population" : "158,434"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "弗里斯科",
+ "identifier" : "frisco",
+ "population" : "154,407"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "帕萨迪纳",
+ "identifier" : "pasadena",
+ "population" : "153,784"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "约克",
+ "identifier" : "york",
+ "population" : "153,717"
+ },
+ {
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "萨尔茨堡",
+ "identifier" : "salzburg",
+ "population" : "153,377"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "凯恩斯",
+ "identifier" : "cairns",
+ "population" : "153,075"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "汉密尔顿",
+ "identifier" : "hamilton",
+ "population" : "152,641"
+ },
+ {
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "拉古纳",
+ "identifier" : "la laguna",
+ "population" : "150,661"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "帝力",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "第戎",
+ "identifier" : "dijon",
+ "population" : "149,782"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "乌普萨拉",
+ "identifier" : "uppsala",
+ "population" : "149,245"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "特隆赫姆",
+ "identifier" : "trondheim",
+ "population" : "147,139"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "麦纳麦",
+ "identifier" : "manama",
+ "population" : "147,074"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕尔马",
+ "identifier" : "parma",
+ "population" : "146,299"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "博伊西",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "欧登塞",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "亚眠",
+ "identifier" : "amiens",
+ "population" : "143,086"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "旅游团",
+ "identifier" : "tours",
+ "population" : "141,621"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "波德戈里察",
+ "identifier" : "podgorica",
+ "population" : "136,473"
+ },
+ {
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "因斯布鲁克",
+ "identifier" : "innsbruck",
+ "population" : "132,493"
+ },
+ {
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "图文巴",
+ "identifier" : "toowoomba",
+ "population" : "131,258"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "达尔文",
+ "identifier" : "darwin",
+ "population" : "129,062"
+ },
+ {
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "伯尔尼",
+ "identifier" : "bern",
+ "population" : "121631"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..edf339b38
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
@@ -0,0 +1,282 @@
+{
+ "percentage": [
+ {
+ "identifier": "reversedPercentOf",
+ "prototypeExpressions": [
+ "100的10%",
+ "100之10%",
+ "100 的 10%",
+ "100 之 10%"
+ ]
+ },
+ {
+ "identifier": "reversedPercentOff",
+ "prototypeExpressions": [
+ "100减10%",
+ "100去10%",
+ "100 减 10%",
+ "100 去 10%"
+ ]
+ },
+ {
+ "identifier": "reversedPercentOn",
+ "prototypeExpressions": [
+ "100加10%",
+ "100加上10%",
+ "100 加 10%",
+ "100 加上 10%"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhat",
+ "prototypeExpressions": [
+ "30 是多少的 20%",
+ "30 是什么的 20%",
+ "30是多少的20%",
+ "30是什么的20%"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhatClassic",
+ "prototypeExpressions": [
+ "多少的 20% 是 30",
+ "多少的 20% 为 30",
+ "多少的20%是30",
+ "多少的20%为30",
+ "什么的 20% 为 30",
+ "什么的 20% 是 30",
+ "什么的20%为30",
+ "什么的20%是30"
+ ]
+ },
+ {
+ "identifier": "isPercentOffWhatClassic",
+ "prototypeExpressions": [
+ "多少减去 20% 是 30",
+ "多少减 20% 是 30",
+ "多少减去20%是30",
+ "多少减20%是30",
+ "什么减去 20% 是 30",
+ "什么减 20% 是 30",
+ "什么减去20%是30",
+ "什么减20%是30"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhat",
+ "prototypeExpressions": [
+ "30 是多少加 20%",
+ "30 是多少加上 20%",
+ "30 是多少加20%",
+ "30 是多少加上20%",
+ "30 是什么加 20%",
+ "30 是什么加上 20%",
+ "30 是什么加20%",
+ "30 是什么加上20%"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhatClassic",
+ "prototypeExpressions": [
+ "多少加 20% 是 30",
+ "多少加 20% 为 30",
+ "多少加上 20% 是 30",
+ "多少加上 20% 为 30",
+ "多少加20%是30",
+ "多少加20%为30",
+ "多少加上20%是30",
+ "多少加上20%为30",
+ "什么加 20% 是 30",
+ "什么加 20% 为 30",
+ "什么加上 20% 是 30",
+ "什么加上 20% 为 30",
+ "什么加20%是30",
+ "什么加20%为30",
+ "什么加上20%是30",
+ "什么加上20%为30"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOf",
+ "prototypeExpressions": [
+ "10 是 20 里的占比为",
+ "10 是 20 里的百分比为",
+ "10是20里的占比为",
+ "10是20里的百分比为",
+ "10 在 20 里的占比为",
+ "10 在 20 里的百分比为",
+ "10在20里的占比为",
+ "10在20里的百分比为"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOff",
+ "prototypeExpressions": [
+ "10 是 20 去掉百分之多少",
+ "10是20去掉百分之多少",
+ "10 是 20 减去百分之多少",
+ "10是20减去百分之多少",
+ "10 是 20 减百分之多少",
+ "10是20减百分之多少",
+ "10 是 20 去掉百分之几",
+ "10是20去掉百分之几",
+ "10 是 20 减去百分之几",
+ "10是20减去百分之几",
+ "10 是 20 减百分之几",
+ "10是20减百分之几"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOn",
+ "prototypeExpressions": [
+ "20 是 10 加百分之多少",
+ "20 是 10 加上百分之几",
+ "20是10加百分之多少",
+ "20是10加上百分之几"
+ ]
+ }
+ ],
+ "general": [
+ {
+ "identifier": "remainder",
+ "prototypeExpressions": [
+ "20 除以 3 的余数",
+ "20除以3的余数",
+ "20 除 3 之余",
+ "20除3之余"
+ ]
+ },
+ {
+ "identifier": "halfOf",
+ "prototypeExpressions": [
+ "20 的一半为",
+ "20 的一半是",
+ "20 的一般",
+ "20的一半为",
+ "20的一半是"
+ ]
+ },
+ {
+ "identifier": "lesserOf",
+ "prototypeExpressions": [
+ "2和30之间小的一个数",
+ "2和30之间较小的一个数",
+ "2和30之间最小的一个数",
+ "2 和 30 之间小的一个数",
+ "2 和 30 之间较小的一个数",
+ "2 和 30 之间最小的一个数"
+ ]
+ },
+ {
+ "identifier": "greaterOf",
+ "prototypeExpressions": [
+ "2和30之间大的一个数",
+ "2和30之间较大的一个数",
+ "2和30之间最大的一个数",
+ "2 和 30 之间大的一个数",
+ "2 和 30 之间较大的一个数",
+ "2 和 30 之间最大的一个数"
+ ]
+ },
+ {
+ "identifier": "midpoint",
+ "prototypeExpressions": [
+ "2 与 32 的中间点",
+ "2 与 32 的中间数",
+ "2 与 32 的中间值",
+ "2 和 32 的中间点",
+ "2 和 32 的中间数",
+ "2 和 32 的中间值",
+ "2 与 32 的中间点",
+ "2 与 32 的中间数",
+ "2 与 32 的中间值"
+ ]
+ },
+ {
+ "identifier": "proportionsFindNumerator",
+ "prototypeExpressions": [
+ "多少除以8相当于6除以600",
+ "多少除以8等于6除以600",
+ "什么除以8相当于6除以600",
+ "什么除以8等于6除以600"
+ ]
+ },
+ {
+ "identifier": "proportionsFindDenominator",
+ "prototypeExpressions": [
+ "8除以多少相当于6除以600",
+ "8除以多少等于6除以600",
+ "8除以什么相当于6除以600",
+ "8除以什么等于6除以600"
+ ]
+ },
+ {
+ "identifier": "makeRandomNumber",
+ "prototypeExpressions": [
+ "1 到 5 之间的任意数",
+ "1 与 5 之间的任意数",
+ "1 和 5 之间的任意数",
+ "1到5之间的任意数",
+ "1与5之间的任意数",
+ "1和5之间的任意数"
+ ]
+ }
+ ],
+ "unitRelated": [
+ ],
+ "datetime": [
+ {
+ "identifier": "calendarUnitBetweenDates",
+ "prototypeExpressions": [
+ "在 __datestamp 和 __datestamp 之间的 __unit 数",
+ "__datestamp 和 __datestamp 之间的 __unit",
+ "从 __datestamp 到 __datestamp 之间的 __unit 数",
+ "从 __datestamp 到 __datestamp 之间的 __unit"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit 才到 __datestamp",
+ "多少 __unit 直到 __datestamp"
+ ]
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "从 __datestamp 到 __datestamp",
+ "从 __datestamp 至 __datestamp",
+ "__datestamp 到 __datestamp",
+ "__datestamp 至 __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "从 __timestamp 到 __timestamp",
+ "从 __timestamp 至 __timestamp",
+ "__timestamp 到 __timestamp",
+ "__timestamp 至 __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "新的时间戳"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone 时间",
+ "__timezone 的时间"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "identifier": "differenceBetweenTimezones",
+ "prototypeExpressions": [
+ "__timezone 以及 __timezone 之间的时间差"
+ ]
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings
new file mode 100644
index 000000000..59ce6e370
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..e15d8a2ee
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..a1c37837a
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
@@ -0,0 +1,143 @@
+{
+ "fixtures": {
+ "decimalPlacesTypes": [
+ "小数"
+ ],
+ "multiplierTypes": [
+ "乘数"
+ ],
+ "divisionOperators": [
+ "除以",
+ "每"
+ ],
+ "reverseDivisionOperators": [
+ "除"
+ ],
+ "roundingConverters": [
+ "四舍五入",
+ "舍入"
+ ],
+ "multiplicationOperators": [
+ "乘",
+ "乘以"
+ ],
+ "tomorrowDateAliases": [
+ "明天",
+ "明日"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "圈速",
+ "每圈耗时"
+ ],
+ "numberTypes": [
+ "数字"
+ ],
+ "roundingDownConverters": [
+ ],
+ "yesterdayDateAliases": [
+ "昨天",
+ "昨日"
+ ],
+ "subtractionOperators": [
+ "减",
+ "减去"
+ ],
+ "todayDateAliases": [
+ "今天",
+ "今日"
+ ],
+ "timestampTypes": [
+ "时间戳"
+ ],
+ "roundingUpConverters": [
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "dateTypes": [
+ "日期"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "monthOfYearDateAliases": [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月",
+ "1月",
+ "2月",
+ "3月",
+ "4月",
+ "5月",
+ "6月",
+ "7月",
+ "8月",
+ "9月",
+ "10月",
+ "11月",
+ "12月"
+ ],
+ "additionOperators": [
+ "加",
+ "加上"
+ ],
+ "timespanTypes": [
+ "周期"
+ ],
+ "nowDateAliases": [
+ "现在"
+ ],
+ "converterSymbols": [
+ "到",
+ "为",
+ "作为"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "星期天",
+ "周一",
+ "周二",
+ "周三",
+ "周四",
+ "周五",
+ "周六",
+ "周日",
+ "周天"
+ ],
+ "fractionTypes": [
+ "分之",
+ "分数"
+ ],
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "percentTypes": [
+ "百分之",
+ "百分比"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..8fcda5e55
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
@@ -0,0 +1,1360 @@
+{
+ "energy" : [
+ {
+ "symbol" : "焦耳",
+ "aliases" : [
+ "焦"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "千焦耳",
+ "aliases" : [
+ "千焦"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "兆焦耳",
+ "aliases" : [
+ "兆焦"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "吉焦耳",
+ "aliases" : [
+ "吉焦"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "卡路里",
+ "aliases" : [
+ "卡"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "千卡路里",
+ "aliases" : [
+ "千卡"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "瓦特小时",
+ "aliases" : [
+ "瓦小时"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "瓦特分",
+ "aliases" : [
+ "瓦特分钟"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "瓦特秒",
+ "aliases" : [],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "千瓦小时",
+ "aliases" : [
+ "千瓦时"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "兆瓦时",
+ "aliases" : [
+ "千度"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "亿瓦时",
+ "aliases" : [
+ "吉瓦时",
+ "千兆瓦时",
+ "兆瓦时",
+ "百万千瓦小时",
+ "百万度"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "万亿瓦[特]时",
+ "aliases" : [
+ "太瓦时"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "兆升",
+ "aliases" : [],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "千升",
+ "aliases" : [],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "升",
+ "aliases" : [],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "毫升",
+ "aliases" : [],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "立方千米",
+ "aliases" : [],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "立方米",
+ "aliases" : [],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "立方厘米",
+ "aliases" : [],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "立方毫米",
+ "aliases" : [],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "立方英寸",
+ "aliases" : [],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "立方英尺",
+ "aliases" : [],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "立方码",
+ "aliases" : [],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "立方英里",
+ "aliases" : [],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "蒲式耳",
+ "aliases" : [],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "英亩尺",
+ "aliases" : [
+ "英亩英尺"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "品脱",
+ "aliases" : [],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "夸脱",
+ "aliases" : [],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "加仑",
+ "aliases" : [],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "汤匙",
+ "aliases" : [],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "茶匙",
+ "aliases" : [],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "液盎司",
+ "aliases" : [
+ "液盎司"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "字节",
+ "aliases" : [],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "比特",
+ "aliases" : [],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "尧",
+ "aliases" : [
+ "尧它",
+ "尧字节"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "泽",
+ "aliases" : [
+ "泽字节",
+ "泽它字节"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "艾",
+ "aliases" : [
+ "EB",
+ "艾字节",
+ "艾可萨字节"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "P",
+ "拍",
+ "拍字节",
+ "拍它字节",
+ "千兆兆",
+ "千兆兆字节",
+ "千万亿字节"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "T",
+ "太",
+ "太字节",
+ "万亿字节"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "G",
+ "吉",
+ "吉字节",
+ "十亿字节",
+ "千兆字节"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "M",
+ "兆",
+ "兆字节",
+ "百万字节"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "千字节"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "尧比特"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "泽比特"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "艾比特"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "拍比特"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "太比特"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "吉比特",
+ "千兆比特"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "兆比特"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "千比特"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "艾比特"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "开",
+ "开尔文"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "摄氏度"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "华氏度"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [
+ "字节每秒",
+ "字节/秒"
+ ],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [
+ "比特率",
+ "比特每秒",
+ "比特/秒"
+ ],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [
+ "YB每秒",
+ "YB/秒",
+ "尧每秒",
+ "尧/秒",
+ "尧它每秒",
+ "尧它/秒",
+ "尧字节每秒",
+ "尧字节/秒"
+ ],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [
+ "ZB/秒",
+ "ZB每秒",
+ "泽/秒",
+ "泽每秒",
+ "泽字节/秒",
+ "泽字节每秒",
+ "泽它字节/秒",
+ "泽它字节每秒"
+ ],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [
+ "EB/秒",
+ "EB每秒",
+ "艾/秒",
+ "艾每秒",
+ "艾字节/秒",
+ "艾字节每秒",
+ "艾可萨/秒",
+ "艾可萨每秒"
+ ],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [
+ "PB/秒",
+ "PB每秒",
+ "拍/秒",
+ "拍每秒",
+ "拍字节/秒",
+ "拍字节每秒",
+ "拍它字节/秒",
+ "拍它字节每秒",
+ "千兆兆/秒",
+ "千兆兆每秒",
+ "千兆兆字节/秒",
+ "千兆兆字节每秒",
+ "千万亿字节/秒",
+ "千万亿字节每秒"
+ ],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [
+ "TB/秒",
+ "TB每秒",
+ "太/秒",
+ "太每秒",
+ "太字节/秒",
+ "太字节每秒",
+ "万亿字节/秒",
+ "万亿字节每秒"
+ ],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "GB/秒",
+ "GB每秒",
+ "吉/秒",
+ "吉每秒",
+ "吉字节/秒",
+ "吉字节每秒",
+ "十亿字节/秒",
+ "十亿字节每秒",
+ "千兆字节/秒",
+ "千兆字节每秒"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "M/秒",
+ "M每秒",
+ "MB/秒",
+ "MB每秒",
+ "兆/秒",
+ "兆每秒",
+ "兆字节/秒",
+ "兆字节每秒",
+ "百万字节/秒",
+ "百万字节每秒"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "KB/秒",
+ "KB每秒",
+ "千字节/秒",
+ "千字节每秒"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [
+ "YB/秒",
+ "YB每秒"
+ ],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [
+ "ZB/秒",
+ "ZB每秒"
+ ],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [
+ "EB/秒",
+ "EB每秒",
+ "艾比特/秒",
+ "艾比特每秒"
+ ],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "拍比特/秒",
+ "拍比特每秒"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "太比特/秒",
+ "太比特每秒"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "吉比特/秒",
+ "吉比特每秒",
+ "千兆比特/秒",
+ "千兆比特每秒",
+ "千兆位/秒",
+ "千兆位每秒"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "兆比特/秒",
+ "兆比特每秒"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "千比特/秒",
+ "千比特每秒"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [
+ "YiB/秒",
+ "YiB每秒"
+ ],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [
+ "ZiB/秒",
+ "ZiB每秒"
+ ],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [
+ "EiB/秒",
+ "EiB每秒"
+ ],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [
+ "PiB/秒",
+ "PiB每秒"
+ ],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [
+ "TiB/秒",
+ "TiB每秒"
+ ],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [
+ "GiB/秒",
+ "GiB每秒"
+ ],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [
+ "MiB/秒",
+ "MiB每秒"
+ ],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [
+ "KiB/秒",
+ "KiB每秒"
+ ],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [
+ "Yib/秒",
+ "Yib每秒"
+ ],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [
+ "Zib/秒",
+ "Zib每秒"
+ ],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [
+ "Eib/秒",
+ "Eib每秒"
+ ],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [
+ "Pib/秒",
+ "Pib每秒"
+ ],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [
+ "Tib/秒",
+ "Tib每秒"
+ ],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [
+ "Gib/秒",
+ "Gib每秒"
+ ],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [
+ "Mib/秒",
+ "Mib每秒"
+ ],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [
+ "Kib/秒",
+ "Kib每秒"
+ ],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "米/秒",
+ "aliases" : [
+ "米每秒"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "千米/时",
+ "aliases" : [
+ "千米每小时",
+ "千米/小时"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "英里/时",
+ "aliases" : [
+ "英里每小时",
+ "英里/小时"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "节",
+ "aliases" : [],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "度"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "度"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "米"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "千米",
+ "公里"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "厘米"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "毫米"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "微米"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "纳米"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "英寸"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "英尺"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "码"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "英里"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "光年"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "秒差距"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "海里"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "英寻"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "浪"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "像素"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "点"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "平方公里",
+ "平方千米"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "平方米"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "平方厘米"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "平方毫米"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "平方微米"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "平方英寸"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "平方码"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "平方码"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "平方英里"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "英亩"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "公顷"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "ares",
+ "aliases" : [
+ "公亩"
+ ],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L\/100km",
+ "aliases" : [
+ "升/千米",
+ "千米每升"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "英里/加仑",
+ "英里每加仑"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "瓦特",
+ "瓦"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "毫瓦特",
+ "毫瓦"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "千瓦特",
+ "千瓦"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "兆瓦",
+ "兆瓦特"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "千兆瓦特",
+ "千兆瓦"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "太瓦特",
+ "太瓦"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "马力",
+ "匹"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "千克"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "克"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "毫克"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "毫微克"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "盎司"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "磅"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "英石"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "公吨"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "吨"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "克拉",
+ "开"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "金衡盎司"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "小时"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "秒"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "分",
+ "分钟"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "天"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "工作日"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "周",
+ "星期"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "月",
+ "个月"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "年"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "毫秒"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "微秒"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "毫微秒"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "美元"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "赫兹"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "千赫兹",
+ "千赫"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "兆赫兹",
+ "百万赫兹"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "十亿赫",
+ "吉赫",
+ "千兆赫"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "兆赫",
+ "兆赫兹"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "毫赫兹",
+ "毫赫"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "微赫兹"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "纳米赫兹"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Cities.json
new file mode 100644
index 000000000..c714ed87c
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Cities.json
@@ -0,0 +1,3565 @@
+[
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "上海",
+ "identifier" : "shanghai",
+ "population" : "22,315,474"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊斯坦堡",
+ "identifier" : "istanbul",
+ "population" : "14,804,116"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "布宜諾斯艾利斯",
+ "identifier" : "buenos aires",
+ "population" : "13,076,300"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "孟買",
+ "identifier" : "mumbai",
+ "population" : "12,691,836"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "墨西哥城",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "北京",
+ "identifier" : "beijing",
+ "population" : "11,716,620"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "卡拉奇",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "天津",
+ "identifier" : "tianjin",
+ "population" : "11,090,314"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "廣州",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "新德里",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "莫斯科",
+ "identifier" : "moscow",
+ "population" : "10,381,222"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "深圳",
+ "identifier" : "shenzhen",
+ "population" : "10,358,381"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "達卡",
+ "identifier" : "dhaka",
+ "population" : "10,356,500"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "漢城",
+ "identifier" : "seoul",
+ "population" : "10,349,312"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "聖保羅",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "武漢市",
+ "identifier" : "wuhan",
+ "population" : "9,785,388"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "拉各斯",
+ "identifier" : "lagos",
+ "population" : "9,000,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "雅加達",
+ "identifier" : "jakarta",
+ "population" : "8,540,121"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "東京",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "紐約",
+ "identifier" : "new york",
+ "population" : "8,175,133"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "東莞市",
+ "identifier" : "dongguan",
+ "population" : "8,000,000"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "台北",
+ "identifier" : "taipei",
+ "population" : "7,871,900"
+ },
+ {
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "金夏沙",
+ "identifier" : "kinshasa",
+ "population" : "7,785,965"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "開羅",
+ "identifier" : "cairo",
+ "population" : "7,734,614"
+ },
+ {
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "波哥大",
+ "identifier" : "bogota",
+ "population" : "7,674,366"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "倫敦",
+ "identifier" : "london",
+ "population" : "7,556,900"
+ },
+ {
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "重慶市",
+ "identifier" : "chongqing",
+ "population" : "7,457,600"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "成都市",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "巴格達",
+ "identifier" : "baghdad",
+ "population" : "7,216,000"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南京",
+ "identifier" : "nanjing",
+ "population" : "7,165,292"
+ },
+ {
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "德黑蘭",
+ "identifier" : "tehran",
+ "population" : "7,153,309"
+ },
+ {
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南充",
+ "identifier" : "nanchong",
+ "population" : "7,150,000"
+ },
+ {
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "香港",
+ "identifier" : "hong kong",
+ "population" : "7,012,738"
+ },
+ {
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "西安",
+ "identifier" : "xi'an",
+ "population" : "6,501,190"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "里約熱內盧",
+ "identifier" : "rio de janeiro",
+ "population" : "6,023,699"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "曼谷",
+ "identifier" : "bangkok",
+ "population" : "5,104,476"
+ },
+ {
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "班加羅爾",
+ "identifier" : "bengaluru",
+ "population" : "5,104,047"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "聖彼得堡",
+ "identifier" : "saint petersburg",
+ "population" : "5,028,000"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "聖地亞哥",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "加爾各答",
+ "identifier" : "kolkata",
+ "population" : "4,631,392"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "悉尼",
+ "identifier" : "sydney",
+ "population" : "4,627,345"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "仰光",
+ "identifier" : "yangon",
+ "population" : "4,477,638"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "欽奈",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "墨爾本",
+ "identifier" : "melbourne",
+ "population" : "4,246,375"
+ },
+ {
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "利雅得",
+ "identifier" : "riyadh",
+ "population" : "4,205,961"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "洛杉磯",
+ "identifier" : "los angeles",
+ "population" : "3,971,883"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "吉大港市",
+ "identifier" : "chittagong",
+ "population" : "3,920,222"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "亞歷山德里亞",
+ "identifier" : "alexandria",
+ "population" : "3,811,516"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "艾哈邁達巴德",
+ "identifier" : "ahmedabad",
+ "population" : "3,719,710"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "釜山",
+ "identifier" : "busan",
+ "population" : "3,678,555"
+ },
+ {
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿比讓",
+ "identifier" : "abidjan",
+ "population" : "3,677,115"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "鹿野",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "海得拉巴",
+ "identifier" : "hyderabad",
+ "population" : "3,597,816"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "橫濱",
+ "identifier" : "yokohama",
+ "population" : "3,574,443"
+ },
+ {
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊巴丹島",
+ "identifier" : "ibadan",
+ "population" : "3,565,108"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "新加坡",
+ "identifier" : "singapore",
+ "population" : "3,547,809"
+ },
+ {
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "安卡拉",
+ "identifier" : "ankara",
+ "population" : "3,517,182"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "胡志明市",
+ "identifier" : "ho chi minh city",
+ "population" : "3,467,331"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "開普敦",
+ "identifier" : "cape town",
+ "population" : "3,433,441"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "柏林",
+ "identifier" : "berlin",
+ "population" : "3,426,354"
+ },
+ {
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "馬德里",
+ "identifier" : "madrid",
+ "population" : "3,255,944"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "平壤",
+ "identifier" : "pyongyang",
+ "population" : "3,222,000"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "卡薩布蘭卡",
+ "identifier" : "casablanca",
+ "population" : "3,144,909"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "中山",
+ "identifier" : "zhongshan",
+ "population" : "3,121,275"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "德班",
+ "identifier" : "durban",
+ "population" : "3,120,282"
+ },
+ {
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "喀布爾",
+ "identifier" : "kabul",
+ "population" : "3,043,532"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "烏魯木齊",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "加拉加斯",
+ "identifier" : "caracas",
+ "population" : "3,000,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "迪拜",
+ "identifier" : "dubai",
+ "population" : "2,956,587"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "吉達",
+ "identifier" : "jeddah",
+ "population" : "2,867,446"
+ },
+ {
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "基輔",
+ "identifier" : "kyiv",
+ "population" : "2,797,553"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "羅安達",
+ "identifier" : "luanda",
+ "population" : "2,776,168"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "奎松市",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "亞的斯亞貝巴(埃塞俄比亞首都",
+ "identifier" : "addis ababa",
+ "population" : "2,757,729"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "內羅畢",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "芝加哥",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "薩爾瓦多",
+ "identifier" : "salvador",
+ "population" : "2,711,840"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "達累斯薩拉姆",
+ "identifier" : "dar es salaam",
+ "population" : "2,698,652"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "多倫多",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "大阪",
+ "identifier" : "osaka",
+ "population" : "2,592,413"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "摩加迪沙",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊茲密爾",
+ "identifier" : "izmir",
+ "population" : "2,500,603"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "達喀爾",
+ "identifier" : "dakar",
+ "population" : "2,476,400"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "吉薩",
+ "identifier" : "giza",
+ "population" : "2,443,203"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "福塔雷薩",
+ "identifier" : "fortaleza",
+ "population" : "2,400,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "泗水",
+ "identifier" : "surabaya",
+ "population" : "2,374,658"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "貝洛奧里藏特",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "羅馬",
+ "identifier" : "rome",
+ "population" : "2,318,895"
+ },
+ {
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "馬什哈德",
+ "identifier" : "mashhad",
+ "population" : "2,307,177"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "布魯克林區",
+ "identifier" : "brooklyn",
+ "population" : "2,300,664"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "休斯頓",
+ "identifier" : "houston",
+ "population" : "2,296,224"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "皇后區",
+ "identifier" : "queens",
+ "population" : "2,272,771"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "巴西利亞",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "聖多明哥",
+ "identifier" : "santo domingo",
+ "population" : "2,201,941"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "名古屋",
+ "identifier" : "nagoya",
+ "population" : "2,191,279"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "布里斯班",
+ "identifier" : "brisbane",
+ "population" : "2,189,878"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "哈瓦那",
+ "identifier" : "havana",
+ "population" : "2,163,824"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "巴黎",
+ "identifier" : "paris",
+ "population" : "2,138,551"
+ },
+ {
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "約翰內斯堡",
+ "identifier" : "johannesburg",
+ "population" : "2,026,469"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "阿拉木圖",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "塔什幹",
+ "identifier" : "tashkent",
+ "population" : "1,978,028"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "阿爾及爾",
+ "identifier" : "algiers",
+ "population" : "1,977,663"
+ },
+ {
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "喀土穆",
+ "identifier" : "khartoum",
+ "population" : "1,974,647"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "阿克拉",
+ "identifier" : "accra",
+ "population" : "1,963,264"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "瓜亞基爾",
+ "identifier" : "guayaquil",
+ "population" : "1,952,029"
+ },
+ {
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "薩那",
+ "identifier" : "sanaa",
+ "population" : "1,937,451"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "貝魯特",
+ "identifier" : "beirut",
+ "population" : "1,916,100"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "珀斯",
+ "identifier" : "perth",
+ "population" : "1,896,548"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "札幌",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "布加勒斯特",
+ "identifier" : "bucharest",
+ "population" : "1,877,155"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "卡馬耶納",
+ "identifier" : "camayenne",
+ "population" : "1,871,242"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "科納克里",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "明斯克",
+ "identifier" : "minsk",
+ "population" : "1,742,124"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "布達佩斯",
+ "identifier" : "budapest",
+ "population" : "1,741,041"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢堡",
+ "identifier" : "hamburg",
+ "population" : "1,739,117"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "華沙",
+ "identifier" : "warsaw",
+ "population" : "1,702,139"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "索韋托",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "維也納",
+ "identifier" : "vienna",
+ "population" : "1,691,468"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "拉巴特",
+ "identifier" : "rabat",
+ "population" : "1,655,753"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴塞羅納",
+ "identifier" : "barcelona",
+ "population" : "1,621,537"
+ },
+ {
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "比勒陀利亞",
+ "identifier" : "pretoria",
+ "population" : "1,619,438"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "阿勒頗",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "馬尼拉",
+ "identifier" : "manila",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "蒙特利爾",
+ "identifier" : "montreal",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "卡杜納",
+ "identifier" : "kaduna",
+ "population" : "1,582,102"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "金邊",
+ "identifier" : "phnom penh",
+ "population" : "1,573,544"
+ },
+ {
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "大馬士革",
+ "identifier" : "damascus",
+ "population" : "1,569,394"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "費城",
+ "identifier" : "philadelphia",
+ "population" : "1,567,442"
+ },
+ {
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "鳳凰",
+ "identifier" : "phoenix",
+ "population" : "1,563,025"
+ },
+ {
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "伊斯法罕",
+ "identifier" : "isfahan",
+ "population" : "1,547,164"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "哈拉雷",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "科比",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "斯德哥爾摩",
+ "identifier" : "stockholm",
+ "population" : "1,515,017"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "曼哈頓",
+ "identifier" : "manhattan",
+ "population" : "1,487,536"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "亞松森",
+ "identifier" : "asuncion",
+ "population" : "1,482,200"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "累西腓",
+ "identifier" : "recife",
+ "population" : "1,478,098"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "聖安東尼奧",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "庫馬西",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "哥打巴魯",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "京都",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "吉隆坡",
+ "identifier" : "kuala lumpur",
+ "population" : "1,453,975"
+ },
+ {
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡拉伊",
+ "identifier" : "karaj",
+ "population" : "1,448,075"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "加德滿都",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "河內",
+ "identifier" : "hanoi",
+ "population" : "1,431,270"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "哈爾科夫",
+ "identifier" : "kharkiv",
+ "population" : "1,430,885"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "科爾多瓦",
+ "identifier" : "cordoba",
+ "population" : "1,428,214"
+ },
+ {
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "大不里士",
+ "identifier" : "tabriz",
+ "population" : "1,424,641"
+ },
+ {
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "新西伯利亞",
+ "identifier" : "novosibirsk",
+ "population" : "1,419,007"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "貝倫",
+ "identifier" : "belem",
+ "population" : "1,407,737"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "基多",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "聖地亞哥",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "福岡",
+ "identifier" : "fukuoka",
+ "population" : "1,392,289"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "塔那那利佛",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "布朗克斯",
+ "identifier" : "the bronx",
+ "population" : "1,385,108"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "盧本巴希",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "聖克魯斯-德拉塞拉",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "坎帕拉",
+ "identifier" : "kampala",
+ "population" : "1,353,189"
+ },
+ {
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "葉卡捷琳堡",
+ "identifier" : "yekaterinburg",
+ "population" : "1,349,772"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "杜阿拉",
+ "identifier" : "douala",
+ "population" : "1,338,082"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "沙迦",
+ "identifier" : "sharjah",
+ "population" : "1,324,473"
+ },
+ {
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥加",
+ "identifier" : "mecca",
+ "population" : "1,323,624"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "望加錫",
+ "identifier" : "makassar",
+ "population" : "1,321,717"
+ },
+ {
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "華雷斯",
+ "identifier" : "juarez",
+ "population" : "1,321,004"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "川崎",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "蒂華納",
+ "identifier" : "tijuana",
+ "population" : "1,300,983"
+ },
+ {
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "達拉斯",
+ "identifier" : "dallas",
+ "population" : "1,300,092"
+ },
+ {
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥地那",
+ "identifier" : "medina",
+ "population" : "1,300,000"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "雅溫得",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "巴馬科",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "布拉柴維爾",
+ "identifier" : "brazzaville",
+ "population" : "1,284,609"
+ },
+ {
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "下諾夫哥羅德",
+ "identifier" : "nizhniy novgorod",
+ "population" : "1,284,164"
+ },
+ {
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "安曼",
+ "identifier" : "amman",
+ "population" : "1,275,857"
+ },
+ {
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "貝爾格萊德",
+ "identifier" : "belgrade",
+ "population" : "1,273,651"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "蒙得維的亞",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "盧薩卡",
+ "identifier" : "lusaka",
+ "population" : "1,267,440"
+ },
+ {
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "慕尼黑",
+ "identifier" : "munich",
+ "population" : "1,260,391"
+ },
+ {
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "設拉子",
+ "identifier" : "shiraz",
+ "population" : "1,249,942"
+ },
+ {
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "米蘭",
+ "identifier" : "milan",
+ "population" : "1,236,837"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "太子港",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "阿德萊德",
+ "identifier" : "adelaide",
+ "population" : "1,225,235"
+ },
+ {
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "恩杜曼",
+ "identifier" : "omdurman",
+ "population" : "1,200,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "ita玉",
+ "identifier" : "saitama",
+ "population" : "1,193,350"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬普托",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "布拉格",
+ "identifier" : "prague",
+ "population" : "1,165,581"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "哥本哈根",
+ "identifier" : "copenhagen",
+ "population" : "1,153,615"
+ },
+ {
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "蘇菲亞",
+ "identifier" : "sofia",
+ "population" : "1,152,556"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "的黎波里",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "哈科特港",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "廣島",
+ "identifier" : "hiroshima",
+ "population" : "1,143,841"
+ },
+ {
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "蒙特雷",
+ "identifier" : "monterrey",
+ "population" : "1,135,512"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "薩馬拉",
+ "identifier" : "samara",
+ "population" : "1,134,730"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "鄂木斯克",
+ "identifier" : "omsk",
+ "population" : "1,129,281"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "貝寧市",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "巴庫",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "邁杜古里",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "喀山",
+ "identifier" : "kazan",
+ "population" : "1,104,738"
+ },
+ {
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "葉里溫",
+ "identifier" : "yerevan",
+ "population" : "1,093,485"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "瓦加杜古",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "羅斯托夫納多努",
+ "identifier" : "rostov-na-donu",
+ "population" : "1,074,482"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "車里雅賓斯克",
+ "identifier" : "chelyabinsk",
+ "population" : "1,062,919"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "第比利斯",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "烏法",
+ "identifier" : "ufa",
+ "population" : "1,033,338"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "聖荷西",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "都柏林",
+ "identifier" : "dublin",
+ "population" : "1,024,027"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "卡爾加里",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "布魯塞爾",
+ "identifier" : "brussels",
+ "population" : "1,019,022"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "伏爾加格勒",
+ "identifier" : "volgograd",
+ "population" : "1,011,417"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "敖德薩",
+ "identifier" : "odessa",
+ "population" : "1,001,558"
+ },
+ {
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "危地馬拉城",
+ "identifier" : "guatemala city",
+ "population" : "994,938"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "伯明翰",
+ "identifier" : "birmingham",
+ "population" : "984,333"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "燙髮",
+ "identifier" : "perm",
+ "population" : "982,419"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "扎里亞",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "伊麗莎白港",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "非斯",
+ "identifier" : "fes",
+ "population" : "964,891"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "科隆",
+ "identifier" : "cologne",
+ "population" : "963,395"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "那不勒斯",
+ "identifier" : "naples",
+ "population" : "959,470"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "馬塞約",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "蒙羅維亞",
+ "identifier" : "monrovia",
+ "population" : "939,524"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "金斯頓",
+ "identifier" : "kingston",
+ "population" : "937,700"
+ },
+ {
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧斯丁",
+ "identifier" : "austin",
+ "population" : "931,830"
+ },
+ {
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "克拉斯諾亞爾斯克",
+ "identifier" : "krasnoyarsk",
+ "population" : "927,200"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "特賣",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "庫姆",
+ "identifier" : "qom",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "比什凱克",
+ "identifier" : "bishkek",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿波波",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿壩",
+ "identifier" : "aba",
+ "population" : "897,560"
+ },
+ {
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "門多薩",
+ "identifier" : "mendoza",
+ "population" : "876,884"
+ },
+ {
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "姆布吉馬耶",
+ "identifier" : "mbuji-mayi",
+ "population" : "874,761"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "皮金",
+ "identifier" : "pikine",
+ "population" : "874,062"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "都靈",
+ "identifier" : "turin",
+ "population" : "870,456"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "舊金山",
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "利物浦",
+ "identifier" : "liverpool",
+ "population" : "864,122"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "薩拉托夫",
+ "identifier" : "saratov",
+ "population" : "863,725"
+ },
+ {
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "德古西加巴",
+ "identifier" : "tegucigalpa",
+ "population" : "850,848"
+ },
+ {
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "沃羅涅日",
+ "identifier" : "voronezh",
+ "population" : "848,752"
+ },
+ {
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "烏蘭巴托",
+ "identifier" : "ulan bator",
+ "population" : "844,818"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "阿瓦士",
+ "identifier" : "ahvaz",
+ "population" : "841,145"
+ },
+ {
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "馬拉喀什",
+ "identifier" : "marrakesh",
+ "population" : "839,296"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "登巴薩",
+ "identifier" : "denpasar",
+ "population" : "834,881"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "沃思堡",
+ "identifier" : "fort worth",
+ "population" : "833,319"
+ },
+ {
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "印第安納波利斯",
+ "identifier" : "indianapolis",
+ "population" : "829,718"
+ },
+ {
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "喬斯",
+ "identifier" : "jos",
+ "population" : "816,824"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴倫西亞",
+ "identifier" : "valencia",
+ "population" : "814,208"
+ },
+ {
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊洛林",
+ "identifier" : "ilorin",
+ "population" : "814,192"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "拉巴斯",
+ "identifier" : "la paz",
+ "population" : "215,178"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "渥太華",
+ "identifier" : "ottawa",
+ "population" : "812,129"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "弗里敦",
+ "identifier" : "freetown",
+ "population" : "802,639"
+ },
+ {
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "耶路撒冷",
+ "identifier" : "jerusalem",
+ "population" : "801,000"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "馬斯喀特",
+ "identifier" : "muscat",
+ "population" : "797,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "馬賽",
+ "identifier" : "marseille",
+ "population" : "794,811"
+ },
+ {
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "帕斯拉格德分行",
+ "identifier" : "pasragad branch",
+ "population" : "787,878"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "布默達斯",
+ "identifier" : "boumerdas",
+ "population" : "786,499"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "San Miguel de Tucuman",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "梅里達",
+ "identifier" : "merida",
+ "population" : "777,615"
+ },
+ {
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "尼亞美",
+ "identifier" : "niamey",
+ "population" : "774,235"
+ },
+ {
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡里茲",
+ "identifier" : "kahriz",
+ "population" : "766,706"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "克拉科夫",
+ "identifier" : "krakow",
+ "population" : "755,050"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "峴港市",
+ "identifier" : "da nang",
+ "population" : "752,493"
+ },
+ {
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "彼得馬里茨堡",
+ "identifier" : "pietermaritzburg",
+ "population" : "750,845"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "洛美",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "基加利",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "裡加",
+ "identifier" : "riga",
+ "population" : "742,572"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "阿姆斯特丹",
+ "identifier" : "amsterdam",
+ "population" : "741,636"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "大洋",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "諾丁漢",
+ "identifier" : "nottingham",
+ "population" : "729,977"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "大坎普市",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "阿什哈巴德",
+ "identifier" : "ashgabat",
+ "population" : "727,700"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "恩賈梅納",
+ "identifier" : "n'djamena",
+ "population" : "721,081"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "利沃夫",
+ "identifier" : "lviv",
+ "population" : "717,803"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "埃莫西約",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "埃德蒙頓",
+ "identifier" : "edmonton",
+ "population" : "712,391"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "布拉瓦約",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "薩格勒布",
+ "identifier" : "zagreb",
+ "population" : "698,966"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "阿加迪爾",
+ "identifier" : "agadir",
+ "population" : "698,310"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "薩拉熱窩",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "埃努古",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "丹吉爾",
+ "identifier" : "tangier",
+ "population" : "688,356"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "謝菲爾德",
+ "identifier" : "sheffield",
+ "population" : "685,368"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "西雅圖",
+ "identifier" : "seattle",
+ "population" : "684,451"
+ },
+ {
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "丹佛",
+ "identifier" : "denver",
+ "population" : "682,545"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "埃爾帕索",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "杜尚別",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "底特律",
+ "identifier" : "detroit",
+ "population" : "677,116"
+ },
+ {
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "庫里亞坎人",
+ "identifier" : "culiacan",
+ "population" : "675,773"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬托拉",
+ "identifier" : "matola",
+ "population" : "675,422"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "波斯頓",
+ "identifier" : "boston",
+ "population" : "667,137"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "雅典",
+ "identifier" : "athens",
+ "population" : "664,046"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "努瓦克肖特",
+ "identifier" : "nouakchott",
+ "population" : "661,400"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "黑角",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "孟菲斯",
+ "identifier" : "memphis",
+ "population" : "655,770"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "法蘭克福",
+ "identifier" : "frankfurt am main",
+ "population" : "650,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "克拉斯諾達爾",
+ "identifier" : "krasnodar",
+ "population" : "649,851"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴勒莫",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "科倫坡",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "利隆圭",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "奧蘭",
+ "identifier" : "oran",
+ "population" : "645,984"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "基希訥烏",
+ "identifier" : "chisinau",
+ "population" : "635,994"
+ },
+ {
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "特比薩",
+ "identifier" : "tebessa",
+ "population" : "634,332"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "波特蘭",
+ "identifier" : "portland",
+ "population" : "632,309"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "溫尼伯",
+ "identifier" : "winnipeg",
+ "population" : "632,063"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "俄克拉荷馬城",
+ "identifier" : "oklahoma city",
+ "population" : "631,346"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "坎昆",
+ "identifier" : "cancun",
+ "population" : "628,306"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "吉布地",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "巴爾的摩",
+ "identifier" : "baltimore",
+ "population" : "621,849"
+ },
+ {
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼沙",
+ "identifier" : "kermanshah",
+ "population" : "621,100"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "布里斯托爾",
+ "identifier" : "bristol",
+ "population" : "617,280"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "貝諾尼",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "阿布扎比",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "華盛頓州",
+ "identifier" : "washington",
+ "population" : "601,723"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "密爾沃基",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "溫哥華",
+ "identifier" : "vancouver",
+ "population" : "600,000"
+ },
+ {
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "巴瑙爾",
+ "identifier" : "barnaul",
+ "population" : "599,579"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "鹿特丹",
+ "identifier" : "rotterdam",
+ "population" : "598,199"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "拉什特",
+ "identifier" : "rasht",
+ "population" : "594,590"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿倍庫塔",
+ "identifier" : "abeokuta",
+ "population" : "593,100"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "埃森",
+ "identifier" : "essen",
+ "population" : "593,085"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "格拉斯哥",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "黃金海岸",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿布賈",
+ "identifier" : "abuja",
+ "population" : "590,400"
+ },
+ {
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "斯圖加特",
+ "identifier" : "stuttgart",
+ "population" : "589,793"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "多特蒙德",
+ "identifier" : "dortmund",
+ "population" : "588,462"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "海參div",
+ "identifier" : "vladivostok",
+ "population" : "587,022"
+ },
+ {
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "伊爾庫茨克",
+ "identifier" : "irkutsk",
+ "population" : "586,695"
+ },
+ {
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "布蘭太爾",
+ "identifier" : "blantyre",
+ "population" : "584,877"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "熱那亞",
+ "identifier" : "genoa",
+ "population" : "580,223"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "奧斯陸",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "利伯維爾",
+ "identifier" : "libreville",
+ "population" : "578,156"
+ },
+ {
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼",
+ "identifier" : "kerman",
+ "population" : "577,514"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜塞爾多夫",
+ "identifier" : "duesseldorf",
+ "population" : "573,057"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "古晉",
+ "identifier" : "kuching",
+ "population" : "570,407"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "阿爾伯克基",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "赫爾辛基",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "亞丁",
+ "identifier" : "aden",
+ "population" : "550,602"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "奧倫堡",
+ "identifier" : "orenburg",
+ "population" : "550,204"
+ },
+ {
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "普里什蒂納",
+ "identifier" : "pristina",
+ "population" : "550,000"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "不來梅",
+ "identifier" : "bremen",
+ "population" : "546,501"
+ },
+ {
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "維爾紐斯",
+ "identifier" : "vilnius",
+ "population" : "542,366"
+ },
+ {
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "納什維爾",
+ "identifier" : "nashville",
+ "population" : "530,852"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "魁北克",
+ "identifier" : "quebec",
+ "population" : "528,595"
+ },
+ {
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "聖薩爾瓦多",
+ "identifier" : "san salvador",
+ "population" : "525,990"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "澳門",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "秋明州",
+ "identifier" : "tyumen",
+ "population" : "519,119"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "里斯本",
+ "identifier" : "lisbon",
+ "population" : "517,802"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢諾威",
+ "identifier" : "hannover",
+ "population" : "515,140"
+ },
+ {
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "薩爾塔",
+ "identifier" : "salta",
+ "population" : "512,686"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "萊斯特",
+ "identifier" : "leicester",
+ "population" : "508,916"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "萊比錫",
+ "identifier" : "leipzig",
+ "population" : "504,971"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜伊斯堡",
+ "identifier" : "duisburg",
+ "population" : "504,358"
+ },
+ {
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "阿斯特拉罕",
+ "identifier" : "astrakhan",
+ "population" : "502,533"
+ },
+ {
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "紐倫堡",
+ "identifier" : "nuernberg",
+ "population" : "499,237"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "德累斯頓",
+ "identifier" : "dresden",
+ "population" : "486,854"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "托木斯克",
+ "identifier" : "tomsk",
+ "population" : "485,519"
+ },
+ {
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "亞茲德",
+ "identifier" : "yazd",
+ "population" : "477,905"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "堪薩斯城",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "斯科普里",
+ "identifier" : "skopje",
+ "population" : "474,889"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "海牙",
+ "identifier" : "the hague",
+ "population" : "474,292"
+ },
+ {
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里昂",
+ "identifier" : "lyon",
+ "population" : "472,317"
+ },
+ {
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "愛丁堡",
+ "identifier" : "edinburgh",
+ "population" : "464,990"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "安特衛普",
+ "identifier" : "antwerpen",
+ "population" : "459,805"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "坤甸",
+ "identifier" : "pontianak",
+ "population" : "455,173"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "利茲",
+ "identifier" : "leeds",
+ "population" : "455,123"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "加的夫",
+ "identifier" : "cardiff",
+ "population" : "447,287"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "聖胡安",
+ "identifier" : "san juan",
+ "population" : "418,140"
+ },
+ {
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧馬哈",
+ "identifier" : "omaha",
+ "population" : "443,885"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "家樂福",
+ "identifier" : "carrefour",
+ "population" : "442,156"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "邁阿密",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "加里寧格勒",
+ "identifier" : "kaliningrad",
+ "population" : "434,954"
+ },
+ {
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "圖盧茲",
+ "identifier" : "toulouse",
+ "population" : "433,055"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "特拉維夫",
+ "identifier" : "tel aviv",
+ "population" : "432,892"
+ },
+ {
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "東耶路撒冷",
+ "identifier" : "east jerusalem",
+ "population" : "428,304"
+ },
+ {
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "布拉迪斯拉發",
+ "identifier" : "bratislava",
+ "population" : "423,737"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "奧克蘭市",
+ "identifier" : "auckland",
+ "population" : "417,910"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "塞瓦斯托波爾",
+ "identifier" : "sevastopol",
+ "population" : "416,263"
+ },
+ {
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "明尼阿波利斯",
+ "identifier" : "minneapolis",
+ "population" : "410,939"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "加沙",
+ "identifier" : "gaza",
+ "population" : "410,000"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "庫爾斯克",
+ "identifier" : "kursk",
+ "population" : "409,431"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "巴拿馬",
+ "identifier" : "panama",
+ "population" : "408,168"
+ },
+ {
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "塔爾薩",
+ "identifier" : "tulsa",
+ "population" : "403,505"
+ },
+ {
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "特維爾",
+ "identifier" : "tver",
+ "population" : "400,212"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "曼徹斯特",
+ "identifier" : "manchester",
+ "population" : "395,515"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "塔林",
+ "identifier" : "tallinn",
+ "population" : "394,024"
+ },
+ {
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "坎大哈",
+ "identifier" : "kandahar",
+ "population" : "391,190"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "威奇托",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "新奧爾良",
+ "identifier" : "new orleans",
+ "population" : "389,617"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "惠靈頓",
+ "identifier" : "wellington",
+ "population" : "381,900"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "大加那利島拉斯帕爾馬斯",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "馬薩特蘭",
+ "identifier" : "mazatlan",
+ "population" : "381,583"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "地拉那",
+ "identifier" : "tirana",
+ "population" : "374,801"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "考納斯",
+ "identifier" : "kaunas",
+ "population" : "374,643"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "火奴魯魯",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "堪培拉",
+ "identifier" : "canberra",
+ "population" : "367,752"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "博洛尼亞",
+ "identifier" : "bologna",
+ "population" : "366,133"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "基督城",
+ "identifier" : "christchurch",
+ "population" : "363,926"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "哈利法克斯",
+ "identifier" : "halifax",
+ "population" : "359,111"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "安汶",
+ "identifier" : "ambon",
+ "population" : "355,596"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "佛羅倫斯",
+ "identifier" : "florence",
+ "population" : "349,296"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "多哈",
+ "identifier" : "doha",
+ "population" : "344,939"
+ },
+ {
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "蘇黎世",
+ "identifier" : "zurich",
+ "population" : "341,730"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "好啊",
+ "identifier" : "nice",
+ "population" : "338,620"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "辛菲羅波爾",
+ "identifier" : "simferopol",
+ "population" : "336,460"
+ },
+ {
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "特皮克",
+ "identifier" : "tepic",
+ "population" : "332,863"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "索契",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "斯摩棱斯克",
+ "identifier" : "smolensk",
+ "population" : "320,991"
+ },
+ {
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "撒馬爾罕",
+ "identifier" : "samarkand",
+ "population" : "319,366"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "摩爾曼斯克",
+ "identifier" : "murmansk",
+ "population" : "319,263"
+ },
+ {
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "弗拉季卡夫卡茲",
+ "identifier" : "vladikavkaz",
+ "population" : "317,370"
+ },
+ {
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "赤太",
+ "identifier" : "chita",
+ "population" : "308,500"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "新城堡",
+ "identifier" : "newcastle",
+ "population" : "308,308"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "韋略港",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "聖薩爾瓦多·德胡胡伊",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "匹茲堡",
+ "identifier" : "pittsburgh",
+ "population" : "304,391"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "布雷斯特",
+ "identifier" : "brest",
+ "population" : "144,899"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "錨地",
+ "identifier" : "anchorage",
+ "population" : "298,695"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "辛辛那提",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "臥龍崗市",
+ "identifier" : "wollongong",
+ "population" : "292,190"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "卡塔尼亞",
+ "identifier" : "catania",
+ "population" : "290,927"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "烏特勒支",
+ "identifier" : "utrecht",
+ "population" : "290,529"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "維多利亞州",
+ "identifier" : "victoria",
+ "population" : "289,625"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "莫爾茲比港",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "洛根市",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴里",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "南特",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "史特拉斯堡",
+ "identifier" : "strasbourg",
+ "population" : "274,845"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "貝爾法斯特",
+ "identifier" : "belfast",
+ "population" : "274,770"
+ },
+ {
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "盧布爾雅那",
+ "identifier" : "ljubljana",
+ "population" : "272,220"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "奧蘭多",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "彼得羅扎沃茨克",
+ "identifier" : "petrozavodsk",
+ "population" : "265,025"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "普利茅斯",
+ "identifier" : "plymouth",
+ "population" : "260,203"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "里約布蘭科",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "洛斯·莫奇斯",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "波爾圖",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "麥迪遜",
+ "identifier" : "madison",
+ "population" : "248,951"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "蒙彼利埃",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "奧胡斯",
+ "identifier" : "arhus",
+ "population" : "237,551"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "雅庫茨克",
+ "identifier" : "yakutsk",
+ "population" : "235,600"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "喬治敦",
+ "identifier" : "georgetown",
+ "population" : "235,017"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "波爾多",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "根特",
+ "identifier" : "gent",
+ "population" : "231,493"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "巴吞魯日",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里爾",
+ "identifier" : "lille",
+ "population" : "228,328"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "拿騷",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "吉朗",
+ "identifier" : "geelong",
+ "population" : "226,034"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "帕拉馬里博",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "聖克魯斯-德特內里費",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "格拉茨",
+ "identifier" : "graz",
+ "population" : "222,326"
+ },
+ {
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "墨西拿",
+ "identifier" : "messina",
+ "population" : "219,948"
+ },
+ {
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "維羅納",
+ "identifier" : "verona",
+ "population" : "219,103"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "霍巴特",
+ "identifier" : "hobart",
+ "population" : "216,656"
+ },
+ {
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "諾維薩德",
+ "identifier" : "novi sad",
+ "population" : "215,400"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "卑爾根",
+ "identifier" : "bergen",
+ "population" : "213,585"
+ },
+ {
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "得梅因",
+ "identifier" : "des moines",
+ "population" : "210,330"
+ },
+ {
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "科斯塔奈",
+ "identifier" : "kostanay",
+ "population" : "210,000"
+ },
+ {
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "林茲",
+ "identifier" : "linz",
+ "population" : "204,846"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕多瓦",
+ "identifier" : "padova",
+ "population" : "203,725"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "普斯科夫",
+ "identifier" : "pskov",
+ "population" : "201,990"
+ },
+ {
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "清邁",
+ "identifier" : "chiang mai",
+ "population" : "200,952"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "尼科西亞",
+ "identifier" : "nicosia",
+ "population" : "200,452"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "口服",
+ "identifier" : "oral",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "奧什",
+ "identifier" : "osh",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "薩斯卡通",
+ "identifier" : "saskatoon",
+ "population" : "198,958"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "小石頭",
+ "identifier" : "little rock",
+ "population" : "197,992"
+ },
+ {
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "萬象",
+ "identifier" : "vientiane",
+ "population" : "196,731"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "香港仔",
+ "identifier" : "aberdeen",
+ "population" : "196,670"
+ },
+ {
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "帕爾馬斯",
+ "identifier" : "palmas",
+ "population" : "196,272"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "湯斯維爾",
+ "identifier" : "townsville",
+ "population" : "196,219"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "鹽湖城",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "軟木",
+ "identifier" : "cork",
+ "population" : "190,384"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "塔拉哈西",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "聖塔倫",
+ "identifier" : "santarem",
+ "population" : "189,047"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "卡塔馬卡聖費爾南多·德爾瓦萊",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "的里雅斯特",
+ "identifier" : "trieste",
+ "population" : "187,056"
+ },
+ {
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "聖路易斯",
+ "identifier" : "san luis",
+ "population" : "183,982"
+ },
+ {
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "日內瓦",
+ "identifier" : "geneva",
+ "population" : "183,981"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "阿特勞",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "庫塔伊西",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "南薩哈林斯克",
+ "identifier" : "yuzhno-sakhalinsk",
+ "population" : "176,484"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "分裂",
+ "identifier" : "split",
+ "population" : "176,314"
+ },
+ {
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "里賈納",
+ "identifier" : "regina",
+ "population" : "176,183"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "圖爾庫",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "牛津",
+ "identifier" : "oxford",
+ "population" : "171,380"
+ },
+ {
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "傑克遜",
+ "identifier" : "jackson",
+ "population" : "170,674"
+ },
+ {
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "斯普林菲爾德",
+ "identifier" : "springfield",
+ "population" : "166,810"
+ },
+ {
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "巴塞爾",
+ "identifier" : "basel",
+ "population" : "164,488"
+ },
+ {
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "拉里奧哈",
+ "identifier" : "la rioja",
+ "population" : "162,620"
+ },
+ {
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "希伯倫",
+ "identifier" : "hebron",
+ "population" : "160,470"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "摩德納",
+ "identifier" : "modena",
+ "population" : "158,886"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "劍橋",
+ "identifier" : "cambridge",
+ "population" : "158,434"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "弗里斯科",
+ "identifier" : "frisco",
+ "population" : "154,407"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "帕薩迪納",
+ "identifier" : "pasadena",
+ "population" : "153,784"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "約克",
+ "identifier" : "york",
+ "population" : "153,717"
+ },
+ {
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "薩爾茨堡",
+ "identifier" : "salzburg",
+ "population" : "153,377"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "凱恩斯",
+ "identifier" : "cairns",
+ "population" : "153,075"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "漢密爾頓",
+ "identifier" : "hamilton",
+ "population" : "152,641"
+ },
+ {
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "拉古納",
+ "identifier" : "la laguna",
+ "population" : "150,661"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "帝力",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "第戎",
+ "identifier" : "dijon",
+ "population" : "149,782"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "烏普薩拉",
+ "identifier" : "uppsala",
+ "population" : "149,245"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "特隆赫姆",
+ "identifier" : "trondheim",
+ "population" : "147,139"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "麥納麥",
+ "identifier" : "manama",
+ "population" : "147,074"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕爾馬",
+ "identifier" : "parma",
+ "population" : "146,299"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "博伊西",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "歐登塞",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "亞眠",
+ "identifier" : "amiens",
+ "population" : "143,086"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "旅遊團",
+ "identifier" : "tours",
+ "population" : "141,621"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "波德戈里察",
+ "identifier" : "podgorica",
+ "population" : "136,473"
+ },
+ {
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "因斯布魯克",
+ "identifier" : "innsbruck",
+ "population" : "132,493"
+ },
+ {
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "圖文巴",
+ "identifier" : "toowoomba",
+ "population" : "131,258"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "達爾文",
+ "identifier" : "darwin",
+ "population" : "129,062"
+ },
+ {
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "伯爾尼",
+ "identifier" : "bern",
+ "population" : "121631"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..a4cdeb723
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json
@@ -0,0 +1,229 @@
+{
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "100的10%",
+ "100 的 10%"
+ ],
+ "identifier": "reversedPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "100減少10%",
+ "100 減少 10%"
+ ],
+ "identifier": "reversedPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "100加上10%",
+ "100 加上 10%"
+ ],
+ "identifier": "reversedPercentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼的20%",
+ "30 是甚麼的 20%"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "甚麼的20%等於30",
+ "甚麼的 20% 等於 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼減少20%"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "減少20%之後是30",
+ "減少 20% 之後是 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼加上20%",
+ "30 是甚麼加上 20%"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20%加上甚麼是30",
+ "20% 加上甚麼是 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20的多少%",
+ "10 是 20 的多少%",
+ "10佔20的幾%",
+ "10 佔 20 的幾%"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20裡減少多少%",
+ "10 是 20 裡減少多少%"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20是10加上多少的%",
+ "20 是 10 加上多少的%",
+ "20為10增加%",
+ "20 為 10 增加%"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "20除以3的餘數",
+ "20 除以 3 的餘數"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "20的一半",
+ "20 的一半"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最小",
+ "2 和 30 哪個最小",
+ "2和30比較小的",
+ "2 和 30 比較小的"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最大",
+ "2和30比較大的",
+ "2 和 30 哪個最大",
+ "2 和 30 比較大的"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2 和 32 的中間數",
+ "2和32的中間數"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是幾分之8",
+ "相比 6 比 600 是幾分之 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是8分之幾",
+ "相比 6 比 600 是 8 分之幾"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "1到5之間的隨機數",
+ "1 到 5 之間的隨機數",
+ "1 到 5 中的隨機數",
+ "1到5中的隨機數"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit_expression 中的 __unit"
+ ],
+ "identifier": "unitInUnitExpression"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__datestamp 和 __datestamp 之間的 __unit",
+ "由 __datestamp 至 __datestamp 的 __unit",
+ "__datestamp 至 __datestamp 中的 __unit"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit 至 __datestamp",
+ "__unit 之前 __datestamp",
+ "__unit 直到 __datestamp",
+ "__unit 直到 __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp 至 __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp 至 __timestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitSinceDate",
+ "prototypeExpressions": [
+ "__unit 自從 __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan 由 __datestamp",
+ "__timespan 之後 __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "新時間標記"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone 的時間",
+ "時間於 __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "在 __timezone 與 __timezone 中的時差",
+ "__timezone 和 __timezone 之間的時差",
+ "在 __timezone 和 __timezone 中的時差",
+ "__timezone 和 __timezone 的時差"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.strings
new file mode 100644
index 000000000..57a077d31
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..0abc9d8a4
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..4d6ae1492
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json
@@ -0,0 +1,132 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "位數"
+ ],
+ "multiplierTypes": [
+ "倍數"
+ ],
+ "divisionOperators": [
+ "÷",
+ "每"
+ ],
+ "roundingConverters": [
+ "數值簡化"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "tomorrowDateAliases": [
+ "明天"
+ ],
+ "laptimeTypes": [
+ "圈速"
+ ],
+ "roundingDownConverters": [
+ "下舍入"
+ ],
+ "numberTypes": [
+ "數目"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "dateTypes": [
+ "日期"
+ ],
+ "roundingUpConverters": [
+ "上舍入"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "todayDateAliases": [
+ "今天"
+ ],
+ "timestampTypes": [
+ "時間標記"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "additionOperators": [
+ "加"
+ ],
+ "timespanTypes": [
+ "時距"
+ ],
+ "yesterdayDateAliases": [
+ "昨天"
+ ],
+ "converterSymbols": [
+ "到",
+ "當成"
+ ],
+ "nowDateAliases": [
+ "現在"
+ ],
+ "monthOfYearDateAliases": [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月",
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+ ],
+ "fractionTypes": [
+ "分數"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "週一",
+ "週二",
+ "週二",
+ "週三",
+ "週四",
+ "週五",
+ "週六",
+ "週日"
+ ],
+ "percentTypes": [
+ "百分率"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..026b38932
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json
@@ -0,0 +1,1588 @@
+{
+ "energy" : [
+ {
+ "symbol" : "J",
+ "aliases" : [
+ "焦耳",
+ "焦耳"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "kJ",
+ "aliases" : [
+ "千焦耳",
+ "千焦耳"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "mJ",
+ "aliases" : [
+ "百萬焦耳",
+ "百萬焦耳"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "gJ",
+ "aliases" : [
+ "吉焦耳",
+ "吉焦耳"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "cal",
+ "aliases" : [
+ "卡路里",
+ "卡路里"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "kCal",
+ "aliases" : [
+ "千卡路里",
+ "千卡路里"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "Wh",
+ "aliases" : [
+ "瓦時",
+ "watt hours"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "W m",
+ "aliases" : [
+ "瓦分",
+ "瓦分"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "W s",
+ "aliases" : [
+ "瓦秒",
+ "瓦秒"
+ ],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "kWh",
+ "aliases" : [
+ "千瓦時",
+ "千瓦時"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "MWh",
+ "aliases" : [
+ "百萬瓦時",
+ "百萬瓦時"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "GWh",
+ "aliases" : [
+ "吉瓦時",
+ "吉瓦時"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "TWh",
+ "aliases" : [
+ "兆瓦時",
+ "兆瓦時"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "ML",
+ "aliases" : [
+ "百萬升",
+ "百萬升",
+ "公升",
+ "公升",
+ "ML"
+ ],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "kL",
+ "aliases" : [
+ "千升",
+ "千升",
+ "千升",
+ "千升",
+ "kL"
+ ],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "L",
+ "aliases" : [
+ "升",
+ "升",
+ "升",
+ "升",
+ "L"
+ ],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "mL",
+ "aliases" : [
+ "毫升",
+ "毫升",
+ "毫升",
+ "毫升",
+ "mL"
+ ],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "km³",
+ "aliases" : [
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "公里^3",
+ "公里^3",
+ "公里³",
+ "公里³",
+ "公里³",
+ "公里³",
+ "km3",
+ "km^3"
+ ],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "m³",
+ "aliases" : [
+ "立方公尺",
+ "立方公尺",
+ "立方米",
+ "立方米",
+ "m3",
+ "m^3",
+ "米³",
+ "米³",
+ "米³",
+ "米³"
+ ],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "cm³",
+ "aliases" : [
+ "立方公分",
+ "立方公分",
+ "立方厘米",
+ "立方厘米",
+ "cm3",
+ "cm^3",
+ "厘米³"
+ ],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "mm³",
+ "aliases" : [
+ "立方公釐",
+ "立方公釐",
+ "立方毫米",
+ "立方毫米",
+ "mm3",
+ "mm^3"
+ ],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "in³",
+ "aliases" : [
+ "立方吋",
+ "立方吋",
+ "吋³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "ft³",
+ "aliases" : [
+ "立方尺",
+ "立方尺",
+ "cuft",
+ "尺³",
+ "ft3",
+ "ft^3"
+ ],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "yd³",
+ "aliases" : [
+ "立方碼",
+ "立方碼",
+ "yd³",
+ "碼³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "mi³",
+ "aliases" : [
+ "立方英里",
+ "立方英里",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "英里³",
+ "英里^3",
+ "英里^3"
+ ],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "bsh",
+ "aliases" : [
+ "蒲式耳",
+ "蒲式耳"
+ ],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "metric cup",
+ "aliases" : [
+ "公制杯",
+ "公制杯"
+ ],
+ "identifier" : "metricCups"
+ },
+ {
+ "symbol" : "cup",
+ "aliases" : [
+ "美制杯",
+ "美制杯"
+ ],
+ "identifier" : "cups"
+ },
+ {
+ "symbol" : "af",
+ "aliases" : [
+ "英畝英尺",
+ "英畝英尺"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "品脫",
+ "品脫"
+ ],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "qt",
+ "aliases" : [
+ "夸脫",
+ "夸脫"
+ ],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "gal",
+ "aliases" : [
+ "加侖",
+ "加侖",
+ "gal"
+ ],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "tbsp",
+ "aliases" : [
+ "湯匙",
+ "湯匙",
+ "tbsp"
+ ],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "tsp",
+ "aliases" : [
+ "茶匙",
+ "茶匙",
+ "tsp"
+ ],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "fl oz",
+ "aliases" : [
+ "液盎司",
+ "液盎司",
+ "floz"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "B",
+ "aliases" : [
+ "位元組",
+ "位元組"
+ ],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "bit",
+ "aliases" : [
+ "位元",
+ "位元"
+ ],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "YB",
+ "aliases" : [
+ "佑位元組",
+ "佑位元組"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "ZB",
+ "aliases" : [
+ "皆位元組",
+ "皆位元組"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "EB",
+ "aliases" : [
+ "艾位元組",
+ "艾位元組"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "拍位元組",
+ "拍位元組"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "兆位元組",
+ "兆位元組",
+ "TB",
+ "tb"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "吉位元組",
+ "吉位元組",
+ "GB",
+ "gb"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "百萬位元組",
+ "百萬位元組",
+ "MB",
+ "mb"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "千位元組",
+ "千位元組",
+ "KB",
+ "kb"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "佑位元",
+ "佑位元",
+ "Ybit"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "皆位元",
+ "皆位元",
+ "Zbit"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "艾位元",
+ "艾位元",
+ "Ebit"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "拍位元",
+ "拍位元",
+ "Pbit"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "兆位元",
+ "兆位元",
+ "Tbit"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "吉位元",
+ "吉位元",
+ "Gbit"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "百萬位元",
+ "百萬位元",
+ "Mbit"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "千位元",
+ "千位元",
+ "Kbit",
+ "Kb"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [
+ "二進位佑位元組",
+ "二進位佑位元組",
+ "YiB"
+ ],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [
+ "二進位皆位元組",
+ "二進位皆位元組",
+ "ZiB"
+ ],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [
+ "二進位艾位元組",
+ "二進位艾位元組",
+ "EiB"
+ ],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [
+ "二進位拍位元組",
+ "二進位拍位元組",
+ "PiB"
+ ],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [
+ "二進位兆位元組",
+ "二進位兆位元組",
+ "TiB"
+ ],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [
+ "二進位吉位元組",
+ "二進位吉位元組",
+ "GiB"
+ ],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [
+ "二進位百萬位元組",
+ "二進位百萬位元組",
+ "MiB"
+ ],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [
+ "二進位千位元組",
+ "二進位千位元組",
+ "KiB"
+ ],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [
+ "二進位佑位元",
+ "二進位佑位元",
+ "Yibit"
+ ],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [
+ "二進位皆位元",
+ "二進位皆位元",
+ "Zibit"
+ ],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "二進位艾位元",
+ "二進位艾位元",
+ "Eibit"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [
+ "二進位拍位元",
+ "二進位拍位元",
+ "Pibit"
+ ],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [
+ "二進位兆位元",
+ "二進位兆位元",
+ "Tibit"
+ ],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [
+ "二進位吉位元",
+ "二進位吉位元",
+ "Gibit"
+ ],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [
+ "二進位百萬位元",
+ "二進位百萬位元",
+ "Mibit"
+ ],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [
+ "二進位千位元",
+ "二進位千位元",
+ "Kibit"
+ ],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "克耳文"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "攝氏溫度",
+ "攝氏溫度",
+ "ºC",
+ "C",
+ "degC",
+ "攝氏"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "華氏溫標",
+ "華氏溫標",
+ "ºF",
+ "F",
+ "degF",
+ "華氏"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "gBps"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "mBps"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "kBps"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "Pbps"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "tbps"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "gbps"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "mbps"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "kbps"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "m/s",
+ "aliases" : [
+ "公尺每秒",
+ "公尺每秒",
+ "米每秒",
+ "米每秒"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "km/h",
+ "aliases" : [
+ "公里每小時",
+ "公里每小時",
+ "公里每小時",
+ "公里每小時"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "mph",
+ "aliases" : [
+ "英里每小時",
+ "英里每小時"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "kn",
+ "aliases" : [
+ "節",
+ "節"
+ ],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "度",
+ "度"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "弧度",
+ "弧度"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "公尺",
+ "公尺",
+ "米",
+ "米"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "公里",
+ "公里",
+ "公里",
+ "公里"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "公分",
+ "公分",
+ "厘米",
+ "厘米"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "公釐",
+ "公釐",
+ "毫米",
+ "毫米"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "微米",
+ "微米",
+ "微米",
+ "微米"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "奈米",
+ "奈米",
+ "奈米",
+ "奈米"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "吋",
+ "吋"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "尺",
+ "尺"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "碼",
+ "碼"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "哩",
+ "哩"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "光年",
+ "光年"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "秒差距",
+ "秒差距"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "海里",
+ "海里"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "噚",
+ "噚"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "化朗",
+ "化朗"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "像素",
+ "像素"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pts"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "公里²",
+ "公里²",
+ "公里²",
+ "公里²",
+ "km^2",
+ "km2"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "平方公尺",
+ "平方公尺",
+ "平方米",
+ "平方米",
+ "m^2",
+ "米^2",
+ "米^2",
+ "公尺^2",
+ "公尺^2",
+ "公尺²",
+ "公尺²",
+ "米²",
+ "米²",
+ "m2"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "平方公分",
+ "平方公分",
+ "平方厘米",
+ "平方厘米",
+ "厘米^2",
+ "厘米²",
+ "公分^2",
+ "公分²",
+ "cm^2",
+ "cm2"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "平方公釐",
+ "平方公釐",
+ "平方毫米",
+ "平方毫米",
+ "公釐^2",
+ "公釐²",
+ "毫米^2",
+ "毫米²",
+ "mm^2",
+ "mm2"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "微米^2",
+ "微米²",
+ "微米^2",
+ "微米²",
+ "µm^2",
+ "µm2"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "平方吋",
+ "平方吋",
+ "sqin",
+ "吋^2",
+ "in2",
+ "吋²"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "平方尺",
+ "平方尺",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "尺^2",
+ "尺²"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "平方碼",
+ "平方碼",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "碼^2",
+ "碼²",
+ "sqyd"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "平方哩",
+ "平方哩",
+ "mi^2",
+ "mi2",
+ "哩^2",
+ "哩^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "哩²"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "英畝",
+ "英畝",
+ "ac"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "公頃",
+ "公頃",
+ "ha"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "公畝",
+ "aliases" : [],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L/100km",
+ "aliases" : [
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "每加侖英里"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "瓦特",
+ "瓦特"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "毫瓦",
+ "毫瓦"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "千瓦",
+ "千瓦"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "百萬瓦",
+ "百萬瓦"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "吉瓦",
+ "吉瓦"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "兆瓦",
+ "兆瓦"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "馬力"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "公斤",
+ "公斤"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "克",
+ "克"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "微克",
+ "微克"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "奈克",
+ "奈克"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "盎司",
+ "盎司"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "lbs",
+ "磅",
+ "磅"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "石",
+ "石"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "公頓",
+ "公頓"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "短噸",
+ "短噸",
+ "噸",
+ "美噸",
+ "美噸"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "克拉",
+ "克拉"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "金衡盎司",
+ "金衡盎司"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "小時",
+ "小時",
+ "hrs",
+ "h"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "秒",
+ "秒",
+ "sec",
+ "secs"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "分",
+ "分",
+ "mins"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "日"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "平日",
+ "平日",
+ "工作日",
+ "平日",
+ "平日",
+ "工作日"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "週"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "月"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "年"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "毫秒",
+ "毫秒"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "微秒",
+ "微秒"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "奈秒",
+ "奈秒"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "美元"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "赫茲",
+ "hz"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "千赫茲"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "百萬赫茲"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "吉赫茲"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "兆赫茲"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "毫赫茲"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "微赫茲"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "奈赫茲"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Cities.json
new file mode 100644
index 000000000..e00ce82fe
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Cities.json
@@ -0,0 +1,3569 @@
+[
+ {
+ "identifier": "shanghai",
+ "name": "Shanghai",
+ "population": "22,315,474",
+ "elevation": 12,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "istanbul",
+ "name": "Istanbul",
+ "population": "14,804,116",
+ "elevation": 39,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "buenos aires",
+ "name": "Buenos Aires",
+ "population": "13,076,300",
+ "elevation": 31,
+ "timezone_id": "America/Argentina/Buenos_Aires"
+ },
+ {
+ "identifier": "mumbai",
+ "name": "Mumbai",
+ "population": "12,691,836",
+ "elevation": 8,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "mexico city",
+ "name": "Mexico City",
+ "population": "12,294,193",
+ "elevation": 2240,
+ "timezone_id": "America/Mexico_City"
+ },
+ {
+ "identifier": "beijing",
+ "name": "Beijing",
+ "population": "11,716,620",
+ "elevation": 49,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "karachi",
+ "name": "Karachi",
+ "population": "11,624,219",
+ "elevation": 8,
+ "timezone_id": "Asia/Karachi"
+ },
+ {
+ "identifier": "tianjin",
+ "name": "Tianjin",
+ "population": "11,090,314",
+ "elevation": 11,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "guangzhou",
+ "name": "Guangzhou",
+ "population": "11,071,424",
+ "elevation": 15,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "delhi",
+ "name": "Delhi",
+ "population": "10,927,986",
+ "elevation": 227,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "moscow",
+ "name": "Moscow",
+ "population": "10,381,222",
+ "elevation": 144,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "shenzhen",
+ "name": "Shenzhen",
+ "population": "10,358,381",
+ "elevation": 4,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "dhaka",
+ "name": "Dhaka",
+ "population": "10,356,500",
+ "elevation": 23,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "seoul",
+ "name": "Seoul",
+ "population": "10,349,312",
+ "elevation": 38,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "sao paulo",
+ "name": "Sao Paulo",
+ "population": "10,021,295",
+ "elevation": 769,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "wuhan",
+ "name": "Wuhan",
+ "population": "9,785,388",
+ "elevation": 20,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "lagos",
+ "name": "Lagos",
+ "population": "9,000,000",
+ "elevation": 11,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "jakarta",
+ "name": "Jakarta",
+ "population": "8,540,121",
+ "elevation": 16,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "tokyo",
+ "name": "Tokyo",
+ "population": "8,336,599",
+ "elevation": 44,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "new york",
+ "name": "New York",
+ "population": "8,175,133",
+ "elevation": 57,
+ "aliases" : ["NYC"],
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "dongguan",
+ "name": "Dongguan",
+ "population": "8,000,000",
+ "elevation": 1,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "taipei",
+ "name": "Taipei",
+ "population": "7,871,900",
+ "elevation": 10,
+ "timezone_id": "Asia/Taipei"
+ },
+ {
+ "identifier": "kinshasa",
+ "name": "Kinshasa",
+ "population": "7,785,965",
+ "elevation": 281,
+ "timezone_id": "Africa/Kinshasa"
+ },
+ {
+ "identifier": "cairo",
+ "name": "Cairo",
+ "population": "7,734,614",
+ "elevation": 23,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "bogota",
+ "name": "Bogota",
+ "population": "7,674,366",
+ "elevation": 2582,
+ "timezone_id": "America/Bogota"
+ },
+ {
+ "identifier": "london",
+ "name": "London",
+ "population": "7,556,900",
+ "elevation": 25,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "chongqing",
+ "name": "Chongqing",
+ "population": "7,457,600",
+ "elevation": 225,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "chengdu",
+ "name": "Chengdu",
+ "population": "7,415,590",
+ "elevation": 499,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "baghdad",
+ "name": "Baghdad",
+ "population": "7,216,000",
+ "elevation": 41,
+ "timezone_id": "Asia/Baghdad"
+ },
+ {
+ "identifier": "nanjing",
+ "name": "Nanjing",
+ "population": "7,165,292",
+ "elevation": 22,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "tehran",
+ "name": "Tehran",
+ "population": "7,153,309",
+ "elevation": 1178,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "nanchong",
+ "name": "Nanchong",
+ "population": "7,150,000",
+ "elevation": 287,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "hong kong",
+ "name": "Hong Kong",
+ "population": "7,012,738",
+ "elevation": 60,
+ "timezone_id": "Asia/Hong_Kong"
+ },
+ {
+ "identifier": "xi'an",
+ "name": "Xi'an",
+ "population": "6,501,190",
+ "elevation": 416,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "rio de janeiro",
+ "name": "Rio de Janeiro",
+ "population": "6,023,699",
+ "elevation": 6,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "bangkok",
+ "name": "Bangkok",
+ "population": "5,104,476",
+ "elevation": 12,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "bengaluru",
+ "name": "Bengaluru",
+ "population": "5,104,047",
+ "elevation": 914,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "saint petersburg",
+ "name": "Saint Petersburg",
+ "population": "5,028,000",
+ "elevation": 11,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "santiago",
+ "name": "Santiago",
+ "population": "4,837,295",
+ "elevation": 556,
+ "timezone_id": "America/Santiago"
+ },
+ {
+ "identifier": "kolkata",
+ "name": "Kolkata",
+ "population": "4,631,392",
+ "elevation": 11,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "sydney",
+ "name": "Sydney",
+ "population": "4,627,345",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "yangon",
+ "name": "Yangon",
+ "population": "4,477,638",
+ "elevation": 30,
+ "timezone_id": "Asia/Yangon"
+ },
+ {
+ "identifier": "chennai",
+ "name": "Chennai",
+ "population": "4,328,063",
+ "elevation": 14,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "melbourne",
+ "name": "Melbourne",
+ "population": "4,246,375",
+ "elevation": 58,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "riyadh",
+ "name": "Riyadh",
+ "population": "4,205,961",
+ "elevation": 612,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "los angeles",
+ "name": "Los Angeles",
+ "population": "3,971,883",
+ "elevation": 96,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "chittagong",
+ "name": "Chittagong",
+ "population": "3,920,222",
+ "elevation": 15,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "alexandria",
+ "name": "Alexandria",
+ "population": "3,811,516",
+ "elevation": 9,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "ahmedabad",
+ "name": "Ahmedabad",
+ "population": "3,719,710",
+ "elevation": 56,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "busan",
+ "name": "Busan",
+ "population": "3,678,555",
+ "elevation": 26,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "abidjan",
+ "name": "Abidjan",
+ "population": "3,677,115",
+ "elevation": 76,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "kano",
+ "name": "Kano",
+ "population": "3,626,068",
+ "elevation": 484,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hyderabad",
+ "name": "Hyderabad",
+ "population": "3,597,816",
+ "elevation": 515,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "yokohama",
+ "name": "Yokohama",
+ "population": "3,574,443",
+ "elevation": 21,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "ibadan",
+ "name": "Ibadan",
+ "population": "3,565,108",
+ "elevation": 181,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "singapore",
+ "name": "Singapore",
+ "population": "3,547,809",
+ "elevation": 23,
+ "timezone_id": "Asia/Singapore"
+ },
+ {
+ "identifier": "ankara",
+ "name": "Ankara",
+ "population": "3,517,182",
+ "elevation": 874,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "ho chi minh city",
+ "name": "Ho Chi Minh City",
+ "population": "3,467,331",
+ "elevation": 7,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "cape town",
+ "name": "Cape Town",
+ "population": "3,433,441",
+ "elevation": 25,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "berlin",
+ "name": "Berlin",
+ "population": "3,426,354",
+ "elevation": 43,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "madrid",
+ "name": "Madrid",
+ "population": "3,255,944",
+ "elevation": 665,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pyongyang",
+ "name": "Pyongyang",
+ "population": "3,222,000",
+ "elevation": 43,
+ "timezone_id": "Asia/Pyongyang"
+ },
+ {
+ "identifier": "casablanca",
+ "name": "Casablanca",
+ "population": "3,144,909",
+ "elevation": 27,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "zhongshan",
+ "name": "Zhongshan",
+ "population": "3,121,275",
+ "elevation": 14,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "durban",
+ "name": "Durban",
+ "population": "3,120,282",
+ "elevation": 21,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "kabul",
+ "name": "Kabul",
+ "population": "3,043,532",
+ "elevation": 1798,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "urumqi",
+ "name": "Urumqi",
+ "population": "3,029,372",
+ "elevation": 862,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "caracas",
+ "name": "Caracas",
+ "population": "3,000,000",
+ "elevation": 887,
+ "timezone_id": "America/Caracas"
+ },
+ {
+ "identifier": "dubai",
+ "name": "Dubai",
+ "population": "2,956,587",
+ "elevation": 24,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "jeddah",
+ "name": "Jeddah",
+ "population": "2,867,446",
+ "elevation": 22,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "kyiv",
+ "name": "Kiev",
+ "population": "2,797,553",
+ "elevation": 187,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "luanda",
+ "name": "Luanda",
+ "population": "2,776,168",
+ "elevation": 73,
+ "timezone_id": "Africa/Luanda"
+ },
+ {
+ "identifier": "quezon city",
+ "name": "Quezon City",
+ "population": "2,761,720",
+ "elevation": 49,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "addis ababa",
+ "name": "Addis Ababa",
+ "population": "2,757,729",
+ "elevation": 2405,
+ "timezone_id": "Africa/Addis_Ababa"
+ },
+ {
+ "identifier": "nairobi",
+ "name": "Nairobi",
+ "population": "2,750,547",
+ "elevation": 1684,
+ "timezone_id": "Africa/Nairobi"
+ },
+ {
+ "identifier": "chicago",
+ "name": "Chicago",
+ "population": "2,720,546",
+ "elevation": 180,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "salvador",
+ "name": "Salvador",
+ "population": "2,711,840",
+ "elevation": 10,
+ "timezone_id": "America/Bahia"
+ },
+ {
+ "identifier": "dar es salaam",
+ "name": "Dar es Salaam",
+ "population": "2,698,652",
+ "elevation": 24,
+ "timezone_id": "Africa/Dar_es_Salaam"
+ },
+ {
+ "identifier": "toronto",
+ "name": "Toronto",
+ "population": "2,600,000",
+ "elevation": 175,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "osaka",
+ "name": "Osaka",
+ "population": "2,592,413",
+ "elevation": 24,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "mogadishu",
+ "name": "Mogadishu",
+ "population": "2,587,183",
+ "elevation": 12,
+ "timezone_id": "Africa/Mogadishu"
+ },
+ {
+ "identifier": "izmir",
+ "name": "Izmir",
+ "population": "2,500,603",
+ "elevation": 122,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "dakar",
+ "name": "Dakar",
+ "population": "2,476,400",
+ "elevation": 12,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "giza",
+ "name": "Giza",
+ "population": "2,443,203",
+ "elevation": 26,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "fortaleza",
+ "name": "Fortaleza",
+ "population": "2,400,000",
+ "elevation": 18,
+ "timezone_id": "America/Fortaleza"
+ },
+ {
+ "identifier": "surabaya",
+ "name": "Surabaya",
+ "population": "2,374,658",
+ "elevation": 8,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "belo horizonte",
+ "name": "Belo Horizonte",
+ "population": "2,373,224",
+ "elevation": 872,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "rome",
+ "name": "Rome",
+ "population": "2,318,895",
+ "elevation": 52,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "mashhad",
+ "name": "Mashhad",
+ "population": "2,307,177",
+ "elevation": 1003,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "brooklyn",
+ "name": "Brooklyn",
+ "population": "2,300,664",
+ "elevation": 18,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "houston",
+ "name": "Houston",
+ "population": "2,296,224",
+ "elevation": 30,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "queens",
+ "name": "Queens",
+ "population": "2,272,771",
+ "elevation": 13,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brasilia",
+ "name": "Brasilia",
+ "population": "2,207,718",
+ "elevation": 1136,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "santo domingo",
+ "name": "Santo Domingo",
+ "population": "2,201,941",
+ "elevation": 9,
+ "timezone_id": "America/Santo_Domingo"
+ },
+ {
+ "identifier": "nagoya",
+ "name": "Nagoya",
+ "population": "2,191,279",
+ "elevation": 23,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "brisbane",
+ "name": "Brisbane",
+ "population": "2,189,878",
+ "elevation": 27,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "havana",
+ "name": "Havana",
+ "population": "2,163,824",
+ "elevation": 41,
+ "timezone_id": "America/Havana"
+ },
+ {
+ "identifier": "paris",
+ "name": "Paris",
+ "population": "2,138,551",
+ "elevation": 42,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "johannesburg",
+ "name": "Johannesburg",
+ "population": "2,026,469",
+ "elevation": 1767,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "almaty",
+ "name": "Almaty",
+ "population": "2,000,900",
+ "elevation": 787,
+ "timezone_id": "Asia/Almaty"
+ },
+ {
+ "identifier": "tashkent",
+ "name": "Tashkent",
+ "population": "1,978,028",
+ "elevation": 424,
+ "timezone_id": "Asia/Tashkent"
+ },
+ {
+ "identifier": "algiers",
+ "name": "Algiers",
+ "population": "1,977,663",
+ "elevation": 113,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "khartoum",
+ "name": "Khartoum",
+ "population": "1,974,647",
+ "elevation": 381,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "accra",
+ "name": "Accra",
+ "population": "1,963,264",
+ "elevation": 33,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "guayaquil",
+ "name": "Guayaquil",
+ "population": "1,952,029",
+ "elevation": 1,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "sanaa",
+ "name": "Sanaa",
+ "population": "1,937,451",
+ "elevation": 2253,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "beirut",
+ "name": "Beirut",
+ "population": "1,916,100",
+ "elevation": 40,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "perth",
+ "name": "Perth",
+ "population": "1,896,548",
+ "elevation": 46,
+ "timezone_id": "Australia/Perth"
+ },
+ {
+ "identifier": "sapporo",
+ "name": "Sapporo",
+ "population": "1,883,027",
+ "elevation": 26,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "bucharest",
+ "name": "Bucharest",
+ "population": "1,877,155",
+ "elevation": 83,
+ "timezone_id": "Europe/Bucharest"
+ },
+ {
+ "identifier": "camayenne",
+ "name": "Camayenne",
+ "population": "1,871,242",
+ "elevation": 6,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "conakry",
+ "name": "Conakry",
+ "population": "1,767,200",
+ "elevation": 13,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "minsk",
+ "name": "Minsk",
+ "population": "1,742,124",
+ "elevation": 222,
+ "timezone_id": "Europe/Minsk"
+ },
+ {
+ "identifier": "budapest",
+ "name": "Budapest",
+ "population": "1,741,041",
+ "elevation": 75,
+ "timezone_id": "Europe/Budapest"
+ },
+ {
+ "identifier": "hamburg",
+ "name": "Hamburg",
+ "population": "1,739,117",
+ "elevation": 2,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "warsaw",
+ "name": "Warsaw",
+ "population": "1,702,139",
+ "elevation": 113,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "soweto",
+ "name": "Soweto",
+ "population": "1,695,047",
+ "elevation": 1632,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "vienna",
+ "name": "Vienna",
+ "population": "1,691,468",
+ "elevation": 193,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "rabat",
+ "name": "Rabat",
+ "population": "1,655,753",
+ "elevation": 46,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "barcelona",
+ "name": "Barcelona",
+ "population": "1,621,537",
+ "elevation": 47,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pretoria",
+ "name": "Pretoria",
+ "population": "1,619,438",
+ "elevation": 1332,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "aleppo",
+ "name": "Aleppo",
+ "population": "1,602,264",
+ "elevation": 401,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "manila",
+ "name": "Manila",
+ "population": "1,600,000",
+ "elevation": 13,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "montreal",
+ "name": "Montreal",
+ "population": "1,600,000",
+ "elevation": 216,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "kaduna",
+ "name": "Kaduna",
+ "population": "1,582,102",
+ "elevation": 626,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "phnom penh",
+ "name": "Phnom Penh",
+ "population": "1,573,544",
+ "elevation": 20,
+ "timezone_id": "Asia/Phnom_Penh"
+ },
+ {
+ "identifier": "damascus",
+ "name": "Damascus",
+ "population": "1,569,394",
+ "elevation": 701,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "philadelphia",
+ "name": "Philadelphia",
+ "population": "1,567,442",
+ "elevation": 40,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "phoenix",
+ "name": "Phoenix",
+ "population": "1,563,025",
+ "elevation": 366,
+ "timezone_id": "America/Phoenix"
+ },
+ {
+ "identifier": "isfahan",
+ "name": "Isfahan",
+ "population": "1,547,164",
+ "elevation": 1578,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "harare",
+ "name": "Harare",
+ "population": "1,542,813",
+ "elevation": 1494,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "kobe",
+ "name": "Kobe",
+ "population": "1,528,478",
+ "elevation": 35,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "stockholm",
+ "name": "Stockholm",
+ "population": "1,515,017",
+ "elevation": 12,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "manhattan",
+ "name": "Manhattan",
+ "population": "1,487,536",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "asuncion",
+ "name": "Asuncion",
+ "population": "1,482,200",
+ "elevation": 107,
+ "timezone_id": "America/Asuncion"
+ },
+ {
+ "identifier": "recife",
+ "name": "Recife",
+ "population": "1,478,098",
+ "elevation": 8,
+ "timezone_id": "America/Recife"
+ },
+ {
+ "identifier": "san antonio",
+ "name": "San Antonio",
+ "population": "1,469,845",
+ "elevation": 202,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kumasi",
+ "name": "Kumasi",
+ "population": "1,468,609",
+ "elevation": 270,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "kota bharu",
+ "name": "Kota Bharu",
+ "population": "1,459,994",
+ "elevation": 1,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "kyoto",
+ "name": "Kyoto",
+ "population": "1,459,640",
+ "elevation": 50,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "kuala lumpur",
+ "name": "Kuala Lumpur",
+ "population": "1,453,975",
+ "elevation": 56,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "karaj",
+ "name": "Karaj",
+ "population": "1,448,075",
+ "elevation": 1341,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kathmandu",
+ "name": "Kathmandu",
+ "population": "1,442,271",
+ "elevation": 1296,
+ "timezone_id": "Asia/Kathmandu"
+ },
+ {
+ "identifier": "hanoi",
+ "name": "Hanoi",
+ "population": "1,431,270",
+ "elevation": 10,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "kharkiv",
+ "name": "Kharkiv",
+ "population": "1,430,885",
+ "elevation": 113,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "cordoba",
+ "name": "Cordoba",
+ "population": "1,428,214",
+ "elevation": 395,
+ "timezone_id": "America/Argentina/Cordoba"
+ },
+ {
+ "identifier": "tabriz",
+ "name": "Tabriz",
+ "population": "1,424,641",
+ "elevation": 1396,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "novosibirsk",
+ "name": "Novosibirsk",
+ "population": "1,419,007",
+ "elevation": 164,
+ "timezone_id": "Asia/Novosibirsk"
+ },
+ {
+ "identifier": "belem",
+ "name": "Belem",
+ "population": "1,407,737",
+ "elevation": 15,
+ "timezone_id": "America/Belem"
+ },
+ {
+ "identifier": "quito",
+ "name": "Quito",
+ "population": "1,399,814",
+ "elevation": 2854,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "san diego",
+ "name": "San Diego",
+ "population": "1,394,928",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "fukuoka",
+ "name": "Fukuoka",
+ "population": "1,392,289",
+ "elevation": 3,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "antananarivo",
+ "name": "Antananarivo",
+ "population": "1,391,433",
+ "elevation": 1274,
+ "timezone_id": "Indian/Antananarivo"
+ },
+ {
+ "identifier": "the bronx",
+ "name": "The Bronx",
+ "population": "1,385,108",
+ "elevation": 19,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "lubumbashi",
+ "name": "Lubumbashi",
+ "population": "1,373,770",
+ "elevation": 1260,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "santa cruz de la sierra",
+ "name": "Santa Cruz de la Sierra",
+ "population": "1,364,389",
+ "elevation": 433,
+ "timezone_id": "America/La_Paz"
+ },
+ {
+ "identifier": "kampala",
+ "name": "Kampala",
+ "population": "1,353,189",
+ "elevation": 1223,
+ "timezone_id": "Africa/Kampala"
+ },
+ {
+ "identifier": "yekaterinburg",
+ "name": "Yekaterinburg",
+ "population": "1,349,772",
+ "elevation": 255,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "douala",
+ "name": "Douala",
+ "population": "1,338,082",
+ "elevation": 19,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "sharjah",
+ "name": "Sharjah",
+ "population": "1,324,473",
+ "elevation": 6,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "mecca",
+ "name": "Mecca",
+ "population": "1,323,624",
+ "elevation": 333,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "makassar",
+ "name": "Makassar",
+ "population": "1,321,717",
+ "elevation": 6,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "juarez",
+ "name": "Juarez",
+ "population": "1,321,004",
+ "elevation": 1124,
+ "timezone_id": "America/Ojinaga"
+ },
+ {
+ "identifier": "kawasaki",
+ "name": "Kawasaki",
+ "population": "1,306,785",
+ "elevation": 1,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "tijuana",
+ "name": "Tijuana",
+ "population": "1,300,983",
+ "elevation": 97,
+ "timezone_id": "America/Tijuana"
+ },
+ {
+ "identifier": "dallas",
+ "name": "Dallas",
+ "population": "1,300,092",
+ "elevation": 139,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "medina",
+ "name": "Medina",
+ "population": "1,300,000",
+ "elevation": 603,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "yaounde",
+ "name": "Yaounde",
+ "population": "1,299,369",
+ "elevation": 726,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "bamako",
+ "name": "Bamako",
+ "population": "1,297,281",
+ "elevation": 338,
+ "timezone_id": "Africa/Bamako"
+ },
+ {
+ "identifier": "brazzaville",
+ "name": "Brazzaville",
+ "population": "1,284,609",
+ "elevation": 284,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "nizhniy novgorod",
+ "name": "Nizhniy Novgorod",
+ "population": "1,284,164",
+ "elevation": 141,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "amman",
+ "name": "Amman",
+ "population": "1,275,857",
+ "elevation": 757,
+ "timezone_id": "Asia/Amman"
+ },
+ {
+ "identifier": "belgrade",
+ "name": "Belgrade",
+ "population": "1,273,651",
+ "elevation": 120,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "montevideo",
+ "name": "Montevideo",
+ "population": "1,270,737",
+ "elevation": 34,
+ "timezone_id": "America/Montevideo"
+ },
+ {
+ "identifier": "lusaka",
+ "name": "Lusaka",
+ "population": "1,267,440",
+ "elevation": 1277,
+ "timezone_id": "Africa/Lusaka"
+ },
+ {
+ "identifier": "munich",
+ "name": "Munich",
+ "population": "1,260,391",
+ "elevation": 524,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "shiraz",
+ "name": "Shiraz",
+ "population": "1,249,942",
+ "elevation": 1545,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "milan",
+ "name": "Milan",
+ "population": "1,236,837",
+ "elevation": 127,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "port-au-prince",
+ "name": "Port-au-Prince",
+ "population": "1,234,742",
+ "elevation": 53,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "adelaide",
+ "name": "Adelaide",
+ "population": "1,225,235",
+ "elevation": 56,
+ "timezone_id": "Australia/Adelaide"
+ },
+ {
+ "identifier": "omdurman",
+ "name": "Omdurman",
+ "population": "1,200,000",
+ "elevation": 391,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "saitama",
+ "name": "Saitama",
+ "population": "1,193,350",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "maputo",
+ "name": "Maputo",
+ "population": "1,191,613",
+ "elevation": 70,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "prague",
+ "name": "Prague",
+ "population": "1,165,581",
+ "elevation": 202,
+ "timezone_id": "Europe/Prague"
+ },
+ {
+ "identifier": "copenhagen",
+ "name": "Copenhagen",
+ "population": "1,153,615",
+ "elevation": 14,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "sofia",
+ "name": "Sofia",
+ "population": "1,152,556",
+ "elevation": 562,
+ "timezone_id": "Europe/Sofia"
+ },
+ {
+ "identifier": "tripoli",
+ "name": "Tripoli",
+ "population": "229,398",
+ "elevation": 51,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "port harcourt",
+ "name": "Port Harcourt",
+ "population": "1,148,665",
+ "elevation": 16,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hiroshima",
+ "name": "Hiroshima",
+ "population": "1,143,841",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "monterrey",
+ "name": "Monterrey",
+ "population": "1,135,512",
+ "elevation": 543,
+ "timezone_id": "America/Monterrey"
+ },
+ {
+ "identifier": "samara",
+ "name": "Samara",
+ "population": "1,134,730",
+ "elevation": 117,
+ "timezone_id": "Europe/Samara"
+ },
+ {
+ "identifier": "omsk",
+ "name": "Omsk",
+ "population": "1,129,281",
+ "elevation": 90,
+ "timezone_id": "Asia/Omsk"
+ },
+ {
+ "identifier": "benin city",
+ "name": "Benin City",
+ "population": "1,125,058",
+ "elevation": 88,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "baku",
+ "name": "Baku",
+ "population": "1,116,513",
+ "elevation": -23,
+ "timezone_id": "Asia/Baku"
+ },
+ {
+ "identifier": "maiduguri",
+ "name": "Maiduguri",
+ "population": "1,112,449",
+ "elevation": 325,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "kazan",
+ "name": "Kazan",
+ "population": "1,104,738",
+ "elevation": 61,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "yerevan",
+ "name": "Yerevan",
+ "population": "1,093,485",
+ "elevation": 994,
+ "timezone_id": "Asia/Yerevan"
+ },
+ {
+ "identifier": "ouagadougou",
+ "name": "Ouagadougou",
+ "population": "1,086,505",
+ "elevation": 299,
+ "timezone_id": "Africa/Ouagadougou"
+ },
+ {
+ "identifier": "rostov-na-donu",
+ "name": "Rostov-na-Donu",
+ "population": "1,074,482",
+ "elevation": 74,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chelyabinsk",
+ "name": "Chelyabinsk",
+ "population": "1,062,919",
+ "elevation": 219,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "tbilisi",
+ "name": "Tbilisi",
+ "population": "1,049,498",
+ "elevation": 491,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "ufa",
+ "name": "Ufa",
+ "population": "1,033,338",
+ "elevation": 158,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "san jose",
+ "name": "San Jose",
+ "population": "335,007",
+ "elevation": 1161,
+ "timezone_id": "America/Costa_Rica"
+ },
+ {
+ "identifier": "dublin",
+ "name": "Dublin",
+ "population": "1,024,027",
+ "elevation": 17,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "calgary",
+ "name": "Calgary",
+ "population": "1,019,942",
+ "elevation": 1042,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "brussels",
+ "name": "Brussels",
+ "population": "1,019,022",
+ "elevation": 28,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "volgograd",
+ "name": "Volgograd",
+ "population": "1,011,417",
+ "elevation": 65,
+ "timezone_id": "Europe/Volgograd"
+ },
+ {
+ "identifier": "odessa",
+ "name": "Odessa",
+ "population": "1,001,558",
+ "elevation": 58,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "guatemala city",
+ "name": "Guatemala City",
+ "population": "994,938",
+ "elevation": 1508,
+ "timezone_id": "America/Guatemala"
+ },
+ {
+ "identifier": "birmingham",
+ "name": "Birmingham",
+ "population": "984,333",
+ "elevation": 149,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "perm",
+ "name": "Perm",
+ "population": "982,419",
+ "elevation": 149,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "zaria",
+ "name": "Zaria",
+ "population": "975,153",
+ "elevation": 644,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "port elizabeth",
+ "name": "Port Elizabeth",
+ "population": "967,677",
+ "elevation": 75,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "fes",
+ "name": "Fes",
+ "population": "964,891",
+ "elevation": 406,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "cologne",
+ "name": "Cologne",
+ "population": "963,395",
+ "elevation": 58,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "naples",
+ "name": "Naples",
+ "population": "959,470",
+ "elevation": 14,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "maceio",
+ "name": "Maceio",
+ "population": "954,991",
+ "elevation": 11,
+ "timezone_id": "America/Maceio"
+ },
+ {
+ "identifier": "monrovia",
+ "name": "Monrovia",
+ "population": "939,524",
+ "elevation": 32,
+ "timezone_id": "Africa/Monrovia"
+ },
+ {
+ "identifier": "kingston",
+ "name": "Kingston",
+ "population": "937,700",
+ "elevation": 65,
+ "timezone_id": "America/Jamaica"
+ },
+ {
+ "identifier": "austin",
+ "name": "Austin",
+ "population": "931,830",
+ "elevation": 165,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "krasnoyarsk",
+ "name": "Krasnoyarsk",
+ "population": "927,200",
+ "elevation": 140,
+ "timezone_id": "Asia/Krasnoyarsk"
+ },
+ {
+ "identifier": "sale",
+ "name": "Sale",
+ "population": "903,485",
+ "elevation": 34,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "qom",
+ "name": "Qom",
+ "population": "900,000",
+ "elevation": 935,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bishkek",
+ "name": "Bishkek",
+ "population": "900,000",
+ "elevation": 767,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "abobo",
+ "name": "Abobo",
+ "population": "900,000",
+ "elevation": 105,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "aba",
+ "name": "Aba",
+ "population": "897,560",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "mendoza",
+ "name": "Mendoza",
+ "population": "876,884",
+ "elevation": 746,
+ "timezone_id": "America/Argentina/Mendoza"
+ },
+ {
+ "identifier": "mbuji-mayi",
+ "name": "Mbuji-Mayi",
+ "population": "874,761",
+ "elevation": 621,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "pikine",
+ "name": "Pikine",
+ "population": "874,062",
+ "elevation": 17,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "turin",
+ "name": "Turin",
+ "population": "870,456",
+ "elevation": 245,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san francisco",
+ "name": "San Francisco",
+ "aliases": ["San Fran"],
+ "population": "864,816",
+ "elevation": 28,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "liverpool",
+ "name": "Liverpool",
+ "population": "864,122",
+ "elevation": 30,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "saratov",
+ "name": "Saratov",
+ "population": "863,725",
+ "elevation": 72,
+ "timezone_id": "Europe/Saratov"
+ },
+ {
+ "identifier": "tegucigalpa",
+ "name": "Tegucigalpa",
+ "population": "850,848",
+ "elevation": 944,
+ "timezone_id": "America/Tegucigalpa"
+ },
+ {
+ "identifier": "voronezh",
+ "name": "Voronezh",
+ "population": "848,752",
+ "elevation": 156,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "ulan bator",
+ "name": "Ulan Bator",
+ "population": "844,818",
+ "elevation": 1284,
+ "timezone_id": "Asia/Ulaanbaatar"
+ },
+ {
+ "identifier": "ahvaz",
+ "name": "Ahvaz",
+ "population": "841,145",
+ "elevation": 23,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "marrakesh",
+ "name": "Marrakesh",
+ "population": "839,296",
+ "elevation": 457,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "denpasar",
+ "name": "Denpasar",
+ "aliases" : ["Bali"],
+ "population": "834,881",
+ "elevation": 33,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "fort worth",
+ "name": "Fort Worth",
+ "population": "833,319",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "indianapolis",
+ "name": "Indianapolis",
+ "population": "829,718",
+ "elevation": 248,
+ "timezone_id": "America/Indiana/Indianapolis"
+ },
+ {
+ "identifier": "jos",
+ "name": "Jos",
+ "population": "816,824",
+ "elevation": 1186,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "valencia",
+ "name": "Valencia",
+ "population": "814,208",
+ "elevation": 23,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "ilorin",
+ "name": "Ilorin",
+ "population": "814,192",
+ "elevation": 320,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "la paz",
+ "name": "La Paz",
+ "population": "215,178",
+ "elevation": 47,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "ottawa",
+ "name": "Ottawa",
+ "population": "812,129",
+ "elevation": 71,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "freetown",
+ "name": "Freetown",
+ "population": "802,639",
+ "elevation": 21,
+ "timezone_id": "Africa/Freetown"
+ },
+ {
+ "identifier": "jerusalem",
+ "name": "Jerusalem",
+ "population": "801,000",
+ "elevation": 786,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "muscat",
+ "name": "Muscat",
+ "population": "797,000",
+ "elevation": 14,
+ "timezone_id": "Asia/Muscat"
+ },
+ {
+ "identifier": "marseille",
+ "name": "Marseille",
+ "population": "794,811",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "pasragad branch",
+ "name": "Pasragad Branch",
+ "population": "787,878",
+ "elevation": 2010,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "boumerdas",
+ "name": "Boumerdas",
+ "population": "786,499",
+ "elevation": 5,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "san miguel de tucuman",
+ "name": "San Miguel de Tucuman",
+ "population": "781,023",
+ "elevation": 452,
+ "timezone_id": "America/Argentina/Tucuman"
+ },
+ {
+ "identifier": "merida",
+ "name": "Merida",
+ "population": "777,615",
+ "elevation": 14,
+ "timezone_id": "America/Merida"
+ },
+ {
+ "identifier": "niamey",
+ "name": "Niamey",
+ "population": "774,235",
+ "elevation": 206,
+ "timezone_id": "Africa/Niamey"
+ },
+ {
+ "identifier": "kahriz",
+ "name": "Kahriz",
+ "population": "766,706",
+ "elevation": 1302,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "krakow",
+ "name": "Krakow",
+ "population": "755,050",
+ "elevation": 219,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "da nang",
+ "name": "Da Nang",
+ "population": "752,493",
+ "elevation": 11,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "pietermaritzburg",
+ "name": "Pietermaritzburg",
+ "population": "750,845",
+ "elevation": 636,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "lome",
+ "name": "Lome",
+ "population": "749,700",
+ "elevation": 64,
+ "timezone_id": "Africa/Lome"
+ },
+ {
+ "identifier": "kigali",
+ "name": "Kigali",
+ "population": "745,261",
+ "elevation": 1542,
+ "timezone_id": "Africa/Kigali"
+ },
+ {
+ "identifier": "riga",
+ "name": "Riga",
+ "population": "742,572",
+ "elevation": 6,
+ "timezone_id": "Europe/Riga"
+ },
+ {
+ "identifier": "amsterdam",
+ "name": "Amsterdam",
+ "population": "741,636",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "oyo",
+ "name": "Oyo",
+ "population": "736,072",
+ "elevation": 298,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "nottingham",
+ "name": "Nottingham",
+ "population": "729,977",
+ "elevation": 46,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "campo grande",
+ "name": "Campo Grande",
+ "population": "729,151",
+ "elevation": 592,
+ "timezone_id": "America/Campo_Grande"
+ },
+ {
+ "identifier": "ashgabat",
+ "name": "Ashgabat",
+ "population": "727,700",
+ "elevation": 219,
+ "timezone_id": "Asia/Ashgabat"
+ },
+ {
+ "identifier": "n'djamena",
+ "name": "N'Djamena",
+ "population": "721,081",
+ "elevation": 299,
+ "timezone_id": "Africa/Ndjamena"
+ },
+ {
+ "identifier": "lviv",
+ "name": "Lviv",
+ "population": "717,803",
+ "elevation": 284,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "hermosillo",
+ "name": "Hermosillo",
+ "population": "715,061",
+ "elevation": 212,
+ "timezone_id": "America/Hermosillo"
+ },
+ {
+ "identifier": "edmonton",
+ "name": "Edmonton",
+ "population": "712,391",
+ "elevation": 610,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "bulawayo",
+ "name": "Bulawayo",
+ "population": "699,385",
+ "elevation": 1348,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "zagreb",
+ "name": "Zagreb",
+ "population": "698,966",
+ "elevation": 135,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "agadir",
+ "name": "Agadir",
+ "population": "698,310",
+ "elevation": 31,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sarajevo",
+ "name": "Sarajevo",
+ "population": "696,731",
+ "elevation": 509,
+ "timezone_id": "Europe/Sarajevo"
+ },
+ {
+ "identifier": "enugu",
+ "name": "Enugu",
+ "population": "688,862",
+ "elevation": 192,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "tangier",
+ "name": "Tangier",
+ "population": "688,356",
+ "elevation": 20,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sheffield",
+ "name": "Sheffield",
+ "population": "685,368",
+ "elevation": 75,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "seattle",
+ "name": "Seattle",
+ "population": "684,451",
+ "elevation": 56,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "denver",
+ "name": "Denver",
+ "population": "682,545",
+ "elevation": 1636,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "el paso",
+ "name": "El Paso",
+ "population": "681,124",
+ "elevation": 1137,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "dushanbe",
+ "name": "Dushanbe",
+ "population": "679,400",
+ "elevation": 767,
+ "timezone_id": "Asia/Dushanbe"
+ },
+ {
+ "identifier": "detroit",
+ "name": "Detroit",
+ "population": "677,116",
+ "elevation": 192,
+ "timezone_id": "America/Detroit"
+ },
+ {
+ "identifier": "culiacan",
+ "name": "Culiacan",
+ "population": "675,773",
+ "elevation": 95,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "matola",
+ "name": "Matola",
+ "population": "675,422",
+ "elevation": 42,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "boston",
+ "name": "Boston",
+ "population": "667,137",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "athens",
+ "name": "Athens",
+ "population": "664,046",
+ "elevation": 126,
+ "timezone_id": "Europe/Athens"
+ },
+ {
+ "identifier": "nouakchott",
+ "name": "Nouakchott",
+ "population": "661,400",
+ "elevation": 10,
+ "timezone_id": "Africa/Nouakchott"
+ },
+ {
+ "identifier": "pointe-noire",
+ "name": "Pointe-Noire",
+ "population": "659,084",
+ "elevation": 12,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "memphis",
+ "name": "Memphis",
+ "population": "655,770",
+ "elevation": 84,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "frankfurt am main",
+ "name": "Frankfurt am Main",
+ "aliases" : ["Frankfurt"],
+ "population": "650,000",
+ "elevation": 113,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "krasnodar",
+ "name": "Krasnodar",
+ "population": "649,851",
+ "elevation": 28,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "palermo",
+ "name": "Palermo",
+ "population": "648,260",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "colombo",
+ "name": "Colombo",
+ "population": "648,034",
+ "elevation": 1,
+ "timezone_id": "Asia/Colombo"
+ },
+ {
+ "identifier": "lilongwe",
+ "name": "Lilongwe",
+ "population": "646,750",
+ "elevation": 1056,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "oran",
+ "name": "Oran",
+ "population": "645,984",
+ "elevation": 118,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "chisinau",
+ "name": "Chisinau",
+ "population": "635,994",
+ "elevation": 55,
+ "timezone_id": "Europe/Chisinau"
+ },
+ {
+ "identifier": "tebessa",
+ "name": "Tebessa",
+ "population": "634,332",
+ "elevation": 867,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "portland",
+ "name": "Portland",
+ "population": "632,309",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "winnipeg",
+ "name": "Winnipeg",
+ "population": "632,063",
+ "elevation": 245,
+ "timezone_id": "America/Winnipeg"
+ },
+ {
+ "identifier": "oklahoma city",
+ "name": "Oklahoma City",
+ "population": "631,346",
+ "elevation": 395,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "cancun",
+ "name": "Cancun",
+ "population": "628,306",
+ "elevation": 11,
+ "timezone_id": "America/Cancun"
+ },
+ {
+ "identifier": "djibouti",
+ "name": "Djibouti",
+ "population": "623,891",
+ "elevation": 6,
+ "timezone_id": "Africa/Djibouti"
+ },
+ {
+ "identifier": "baltimore",
+ "name": "Baltimore",
+ "population": "621,849",
+ "elevation": 35,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kermanshah",
+ "name": "Kermanshah",
+ "population": "621,100",
+ "elevation": 1392,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bristol",
+ "name": "Bristol",
+ "population": "617,280",
+ "elevation": 21,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "benoni",
+ "name": "Benoni",
+ "population": "605,344",
+ "elevation": 1641,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "abu dhabi",
+ "name": "Abu Dhabi",
+ "population": "603,492",
+ "elevation": 13,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "washington",
+ "name": "Washington",
+ "population": "601,723",
+ "elevation": 6,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "milwaukee",
+ "name": "Milwaukee",
+ "population": "600,155",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vancouver",
+ "name": "Vancouver",
+ "population": "600,000",
+ "elevation": 70,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "barnaul",
+ "name": "Barnaul",
+ "population": "599,579",
+ "elevation": 189,
+ "timezone_id": "Asia/Barnaul"
+ },
+ {
+ "identifier": "rotterdam",
+ "name": "Rotterdam",
+ "population": "598,199",
+ "elevation": 9,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "rasht",
+ "name": "Rasht",
+ "population": "594,590",
+ "elevation": 4,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "abeokuta",
+ "name": "Abeokuta",
+ "population": "593,100",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "essen",
+ "name": "Essen",
+ "population": "593,085",
+ "elevation": 83,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "glasgow",
+ "name": "Glasgow",
+ "population": "591,620",
+ "elevation": 40,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "gold coast",
+ "name": "Gold Coast",
+ "population": "591,473",
+ "elevation": 12,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "abuja",
+ "name": "Abuja",
+ "population": "590,400",
+ "elevation": 476,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "stuttgart",
+ "name": "Stuttgart",
+ "population": "589,793",
+ "elevation": 252,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dortmund",
+ "name": "Dortmund",
+ "population": "588,462",
+ "elevation": 96,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vladivostok",
+ "name": "Vladivostok",
+ "population": "587,022",
+ "elevation": 40,
+ "timezone_id": "Asia/Vladivostok"
+ },
+ {
+ "identifier": "irkutsk",
+ "name": "Irkutsk",
+ "population": "586,695",
+ "elevation": 428,
+ "timezone_id": "Asia/Irkutsk"
+ },
+ {
+ "identifier": "blantyre",
+ "name": "Blantyre",
+ "population": "584,877",
+ "elevation": 1041,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "genoa",
+ "name": "Genoa",
+ "population": "580,223",
+ "elevation": 17,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "oslo",
+ "name": "Oslo",
+ "population": "580,000",
+ "elevation": 26,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "libreville",
+ "name": "Libreville",
+ "population": "578,156",
+ "elevation": 8,
+ "timezone_id": "Africa/Libreville"
+ },
+ {
+ "identifier": "kerman",
+ "name": "Kerman",
+ "population": "577,514",
+ "elevation": 1760,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "duesseldorf",
+ "name": "Duesseldorf",
+ "population": "573,057",
+ "elevation": 45,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "kuching",
+ "name": "Kuching",
+ "population": "570,407",
+ "elevation": 8,
+ "timezone_id": "Asia/Kuching"
+ },
+ {
+ "identifier": "albuquerque",
+ "name": "Albuquerque",
+ "population": "559,121",
+ "elevation": 1513,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "helsinki",
+ "name": "Helsinki",
+ "population": "558,457",
+ "elevation": 26,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "aden",
+ "name": "Aden",
+ "population": "550,602",
+ "elevation": 16,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "orenburg",
+ "name": "Orenburg",
+ "population": "550,204",
+ "elevation": 107,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "pristina",
+ "name": "Pristina",
+ "population": "550,000",
+ "elevation": 597,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bremen",
+ "name": "Bremen",
+ "population": "546,501",
+ "elevation": 3,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vilnius",
+ "name": "Vilnius",
+ "population": "542,366",
+ "elevation": 98,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "nashville",
+ "name": "Nashville",
+ "population": "530,852",
+ "elevation": 171,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "quebec",
+ "name": "Quebec",
+ "population": "528,595",
+ "elevation": 54,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "san salvador",
+ "name": "San Salvador",
+ "population": "525,990",
+ "elevation": 653,
+ "timezone_id": "America/El_Salvador"
+ },
+ {
+ "identifier": "macau",
+ "name": "Macau",
+ "population": "520,400",
+ "elevation": 22,
+ "timezone_id": "Asia/Macau"
+ },
+ {
+ "identifier": "tyumen",
+ "name": "Tyumen",
+ "population": "519,119",
+ "elevation": 81,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "lisbon",
+ "name": "Lisbon",
+ "population": "517,802",
+ "elevation": 45,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "hannover",
+ "name": "Hannover",
+ "population": "515,140",
+ "elevation": 57,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "salta",
+ "name": "Salta",
+ "population": "512,686",
+ "elevation": 1183,
+ "timezone_id": "America/Argentina/Salta"
+ },
+ {
+ "identifier": "leicester",
+ "name": "Leicester",
+ "population": "508,916",
+ "elevation": 65,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "leipzig",
+ "name": "Leipzig",
+ "population": "504,971",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "duisburg",
+ "name": "Duisburg",
+ "population": "504,358",
+ "elevation": 38,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "astrakhan",
+ "name": "Astrakhan",
+ "population": "502,533",
+ "elevation": -12,
+ "timezone_id": "Europe/Astrakhan"
+ },
+ {
+ "identifier": "nuernberg",
+ "name": "Nuernberg",
+ "population": "499,237",
+ "elevation": 300,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dresden",
+ "name": "Dresden",
+ "population": "486,854",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "tomsk",
+ "name": "Tomsk",
+ "population": "485,519",
+ "elevation": 117,
+ "timezone_id": "Asia/Tomsk"
+ },
+ {
+ "identifier": "yazd",
+ "name": "Yazd",
+ "population": "477,905",
+ "elevation": 1216,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kansas city",
+ "name": "Kansas City",
+ "population": "151,306",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "skopje",
+ "name": "Skopje",
+ "population": "474,889",
+ "elevation": 247,
+ "timezone_id": "Europe/Skopje"
+ },
+ {
+ "identifier": "the hague",
+ "name": "The Hague",
+ "population": "474,292",
+ "elevation": 4,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "lyon",
+ "name": "Lyon",
+ "population": "472,317",
+ "elevation": 173,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "edinburgh",
+ "name": "Edinburgh",
+ "population": "464,990",
+ "elevation": 66,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "antwerpen",
+ "name": "Antwerpen",
+ "population": "459,805",
+ "elevation": 2,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "pontianak",
+ "name": "Pontianak",
+ "population": "455,173",
+ "elevation": 2,
+ "timezone_id": "Asia/Pontianak"
+ },
+ {
+ "identifier": "leeds",
+ "name": "Leeds",
+ "population": "455,123",
+ "elevation": 50,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "cardiff",
+ "name": "Cardiff",
+ "population": "447,287",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "san juan",
+ "name": "San Juan",
+ "population": "418,140",
+ "elevation": 11,
+ "timezone_id": "America/Puerto_Rico"
+ },
+ {
+ "identifier": "omaha",
+ "name": "Omaha",
+ "population": "443,885",
+ "elevation": 315,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "carrefour",
+ "name": "Carrefour",
+ "population": "442,156",
+ "elevation": 32,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "miami",
+ "name": "Miami",
+ "population": "441,003",
+ "elevation": 25,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kaliningrad",
+ "name": "Kaliningrad",
+ "population": "434,954",
+ "elevation": 2,
+ "timezone_id": "Europe/Kaliningrad"
+ },
+ {
+ "identifier": "toulouse",
+ "name": "Toulouse",
+ "population": "433,055",
+ "elevation": 150,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tel aviv",
+ "name": "Tel Aviv",
+ "population": "432,892",
+ "elevation": 15,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "east jerusalem",
+ "name": "East Jerusalem",
+ "population": "428,304",
+ "elevation": 759,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "bratislava",
+ "name": "Bratislava",
+ "population": "423,737",
+ "elevation": 157,
+ "timezone_id": "Europe/Bratislava"
+ },
+ {
+ "identifier": "auckland",
+ "name": "Auckland",
+ "population": "417,910",
+ "elevation": 43,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "sevastopol",
+ "name": "Sevastopol",
+ "population": "416,263",
+ "elevation": 1,
+ "timezone_id": "Europe/Zaporozhye"
+ },
+ {
+ "identifier": "minneapolis",
+ "name": "Minneapolis",
+ "population": "410,939",
+ "elevation": 262,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "gaza",
+ "name": "Gaza",
+ "population": "410,000",
+ "elevation": 38,
+ "timezone_id": "Asia/Gaza"
+ },
+ {
+ "identifier": "kursk",
+ "name": "Kursk",
+ "population": "409,431",
+ "elevation": 219,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "panama",
+ "name": "Panama",
+ "population": "408,168",
+ "elevation": 17,
+ "timezone_id": "America/Panama"
+ },
+ {
+ "identifier": "tulsa",
+ "name": "Tulsa",
+ "population": "403,505",
+ "elevation": 226,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "tver",
+ "name": "Tver",
+ "population": "400,212",
+ "elevation": 132,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "manchester",
+ "name": "Manchester",
+ "population": "395,515",
+ "elevation": 51,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "tallinn",
+ "name": "Tallinn",
+ "population": "394,024",
+ "elevation": 12,
+ "timezone_id": "Europe/Tallinn"
+ },
+ {
+ "identifier": "kandahar",
+ "name": "Kandahar",
+ "population": "391,190",
+ "elevation": 1007,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "wichita",
+ "name": "Wichita",
+ "population": "389,965",
+ "elevation": 402,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "new orleans",
+ "name": "New Orleans",
+ "population": "389,617",
+ "elevation": 18,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "wellington",
+ "name": "Wellington",
+ "population": "381,900",
+ "elevation": 31,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "las palmas de gran canaria",
+ "name": "Las Palmas de Gran Canaria",
+ "population": "381,847",
+ "elevation": 23,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "mazatlan",
+ "name": "Mazatlan",
+ "population": "381,583",
+ "elevation": 10,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "tirana",
+ "name": "Tirana",
+ "population": "374,801",
+ "elevation": 113,
+ "timezone_id": "Europe/Tirane"
+ },
+ {
+ "identifier": "kaunas",
+ "name": "Kaunas",
+ "population": "374,643",
+ "elevation": 74,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "honolulu",
+ "name": "Honolulu",
+ "population": "371,657",
+ "elevation": 18,
+ "timezone_id": "Pacific/Honolulu"
+ },
+ {
+ "identifier": "canberra",
+ "name": "Canberra",
+ "population": "367,752",
+ "elevation": 571,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "bologna",
+ "name": "Bologna",
+ "population": "366,133",
+ "elevation": 71,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "christchurch",
+ "name": "Christchurch",
+ "population": "363,926",
+ "elevation": 14,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "halifax",
+ "name": "Halifax",
+ "population": "359,111",
+ "elevation": 6,
+ "timezone_id": "America/Halifax"
+ },
+ {
+ "identifier": "ambon",
+ "name": "Ambon",
+ "population": "355,596",
+ "elevation": 12,
+ "timezone_id": "Asia/Jayapura"
+ },
+ {
+ "identifier": "florence",
+ "name": "Florence",
+ "population": "349,296",
+ "elevation": 51,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "doha",
+ "name": "Doha",
+ "population": "344,939",
+ "elevation": 11,
+ "timezone_id": "Asia/Qatar"
+ },
+ {
+ "identifier": "zurich",
+ "name": "Zurich",
+ "population": "341,730",
+ "elevation": 429,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "nice",
+ "name": "Nice",
+ "population": "338,620",
+ "elevation": 18,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "simferopol",
+ "name": "Simferopol",
+ "population": "336,460",
+ "elevation": 247,
+ "timezone_id": "Europe/Simferopol"
+ },
+ {
+ "identifier": "tepic",
+ "name": "Tepic",
+ "population": "332,863",
+ "elevation": 932,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "sochi",
+ "name": "Sochi",
+ "population": "327,608",
+ "elevation": 14,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "smolensk",
+ "name": "Smolensk",
+ "population": "320,991",
+ "elevation": 250,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "samarkand",
+ "name": "Samarkand",
+ "population": "319,366",
+ "elevation": 719,
+ "timezone_id": "Asia/Samarkand"
+ },
+ {
+ "identifier": "murmansk",
+ "name": "Murmansk",
+ "population": "319,263",
+ "elevation": 96,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "vladikavkaz",
+ "name": "Vladikavkaz",
+ "population": "317,370",
+ "elevation": 671,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chita",
+ "name": "Chita",
+ "population": "308,500",
+ "elevation": 668,
+ "timezone_id": "Asia/Chita"
+ },
+ {
+ "identifier": "newcastle",
+ "name": "Newcastle",
+ "population": "308,308",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "porto velho",
+ "name": "Porto Velho",
+ "population": "306,180",
+ "elevation": 90,
+ "timezone_id": "America/Porto_Velho"
+ },
+ {
+ "identifier": "san salvador de jujuy",
+ "name": "San Salvador de Jujuy",
+ "population": "305,891",
+ "elevation": 1260,
+ "timezone_id": "America/Argentina/Jujuy"
+ },
+ {
+ "identifier": "pittsburgh",
+ "name": "Pittsburgh",
+ "population": "304,391",
+ "elevation": 239,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brest",
+ "name": "Brest",
+ "population": "144,899",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "anchorage",
+ "name": "Anchorage",
+ "population": "298,695",
+ "elevation": 16,
+ "timezone_id": "America/Anchorage"
+ },
+ {
+ "identifier": "cincinnati",
+ "name": "Cincinnati",
+ "population": "296,943",
+ "elevation": 267,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "wollongong",
+ "name": "Wollongong",
+ "population": "292,190",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "catania",
+ "name": "Catania",
+ "population": "290,927",
+ "elevation": 40,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "utrecht",
+ "name": "Utrecht",
+ "population": "290,529",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "victoria",
+ "name": "Victoria",
+ "population": "289,625",
+ "elevation": 41,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "port moresby",
+ "name": "Port Moresby",
+ "population": "283,733",
+ "elevation": 1,
+ "timezone_id": "Pacific/Port_Moresby"
+ },
+ {
+ "identifier": "logan city",
+ "name": "Logan City",
+ "population": "282,673",
+ "elevation": 39,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "bari",
+ "name": "Bari",
+ "population": "277,387",
+ "elevation": -9999,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "nantes",
+ "name": "Nantes",
+ "population": "277,269",
+ "elevation": 19,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "strasbourg",
+ "name": "Strasbourg",
+ "population": "274,845",
+ "elevation": 147,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "belfast",
+ "name": "Belfast",
+ "population": "274,770",
+ "elevation": 7,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "ljubljana",
+ "name": "Ljubljana",
+ "population": "272,220",
+ "elevation": 295,
+ "timezone_id": "Europe/Ljubljana"
+ },
+ {
+ "identifier": "orlando",
+ "name": "Orlando",
+ "population": "270,934",
+ "elevation": 54,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "petrozavodsk",
+ "name": "Petrozavodsk",
+ "population": "265,025",
+ "elevation": 73,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "plymouth",
+ "name": "Plymouth",
+ "population": "260,203",
+ "elevation": 14,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "rio branco",
+ "name": "Rio Branco",
+ "population": "257,642",
+ "elevation": 153,
+ "timezone_id": "America/Rio_Branco"
+ },
+ {
+ "identifier": "los mochis",
+ "name": "Los Mochis",
+ "population": "256,613",
+ "elevation": 14,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "porto",
+ "name": "Porto",
+ "population": "249,633",
+ "elevation": 97,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "madison",
+ "name": "Madison",
+ "population": "248,951",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "montpellier",
+ "name": "Montpellier",
+ "population": "248,252",
+ "elevation": 56,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "arhus",
+ "name": "Arhus",
+ "population": "237,551",
+ "elevation": 10,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "yakutsk",
+ "name": "Yakutsk",
+ "population": "235,600",
+ "elevation": 126,
+ "timezone_id": "Asia/Yakutsk"
+ },
+ {
+ "identifier": "georgetown",
+ "name": "Georgetown",
+ "population": "235,017",
+ "elevation": 3,
+ "timezone_id": "America/Guyana"
+ },
+ {
+ "identifier": "bordeaux",
+ "name": "Bordeaux",
+ "population": "231,844",
+ "elevation": 20,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "gent",
+ "name": "Gent",
+ "population": "231,493",
+ "elevation": 10,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "baton rouge",
+ "name": "Baton Rouge",
+ "population": "228,590",
+ "elevation": 10,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "lille",
+ "name": "Lille",
+ "population": "228,328",
+ "elevation": 27,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "nassau",
+ "name": "Nassau",
+ "population": "227,940",
+ "elevation": 5,
+ "timezone_id": "America/Nassau"
+ },
+ {
+ "identifier": "geelong",
+ "name": "Geelong",
+ "population": "226,034",
+ "elevation": -9999,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "paramaribo",
+ "name": "Paramaribo",
+ "population": "223,757",
+ "elevation": 5,
+ "timezone_id": "America/Paramaribo"
+ },
+ {
+ "identifier": "santa cruz de tenerife",
+ "name": "Santa Cruz de Tenerife",
+ "population": "222,417",
+ "elevation": 55,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "graz",
+ "name": "Graz",
+ "population": "222,326",
+ "elevation": 363,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "messina",
+ "name": "Messina",
+ "population": "219,948",
+ "elevation": 29,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "verona",
+ "name": "Verona",
+ "population": "219,103",
+ "elevation": 62,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "hobart",
+ "name": "Hobart",
+ "population": "216,656",
+ "elevation": 1,
+ "timezone_id": "Australia/Hobart"
+ },
+ {
+ "identifier": "novi sad",
+ "name": "Novi Sad",
+ "population": "215,400",
+ "elevation": 79,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bergen",
+ "name": "Bergen",
+ "population": "213,585",
+ "elevation": 20,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "des moines",
+ "name": "Des Moines",
+ "population": "210,330",
+ "elevation": 264,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kostanay",
+ "name": "Kostanay",
+ "population": "210,000",
+ "elevation": 167,
+ "timezone_id": "Asia/Qostanay"
+ },
+ {
+ "identifier": "linz",
+ "name": "Linz",
+ "population": "204,846",
+ "elevation": 268,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "padova",
+ "name": "Padova",
+ "population": "203,725",
+ "elevation": 18,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "pskov",
+ "name": "Pskov",
+ "population": "201,990",
+ "elevation": 51,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chiang mai",
+ "name": "Chiang Mai",
+ "population": "200,952",
+ "elevation": 313,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "nicosia",
+ "name": "Nicosia",
+ "population": "200,452",
+ "elevation": 147,
+ "timezone_id": "Asia/Nicosia"
+ },
+ {
+ "identifier": "oral",
+ "name": "Oral",
+ "population": "200,000",
+ "elevation": 35,
+ "timezone_id": "Asia/Oral"
+ },
+ {
+ "identifier": "osh",
+ "name": "Osh",
+ "population": "200,000",
+ "elevation": 988,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "saskatoon",
+ "name": "Saskatoon",
+ "population": "198,958",
+ "elevation": 484,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "little rock",
+ "name": "Little Rock",
+ "population": "197,992",
+ "elevation": 105,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vientiane",
+ "name": "Vientiane",
+ "population": "196,731",
+ "elevation": 174,
+ "timezone_id": "Asia/Vientiane"
+ },
+ {
+ "identifier": "aberdeen",
+ "name": "Aberdeen",
+ "population": "196,670",
+ "elevation": 13,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "palmas",
+ "name": "Palmas",
+ "population": "196,272",
+ "elevation": 271,
+ "timezone_id": "America/Araguaina"
+ },
+ {
+ "identifier": "townsville",
+ "name": "Townsville",
+ "population": "196,219",
+ "elevation": 15,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "salt lake city",
+ "name": "Salt Lake City",
+ "population": "192,672",
+ "elevation": 1311,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "cork",
+ "name": "Cork",
+ "population": "190,384",
+ "elevation": 10,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "tallahassee",
+ "name": "Tallahassee",
+ "population": "189,907",
+ "elevation": 71,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "santarem",
+ "name": "Santarem",
+ "population": "189,047",
+ "elevation": 51,
+ "timezone_id": "America/Santarem"
+ },
+ {
+ "identifier": "san fernando del valle de catamarca",
+ "name": "San Fernando del Valle de Catamarca",
+ "population": "188,812",
+ "elevation": 545,
+ "timezone_id": "America/Argentina/Catamarca"
+ },
+ {
+ "identifier": "trieste",
+ "name": "Trieste",
+ "population": "187,056",
+ "elevation": 19,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san luis",
+ "name": "San Luis",
+ "population": "183,982",
+ "elevation": 729,
+ "timezone_id": "America/Argentina/San_Luis"
+ },
+ {
+ "identifier": "geneva",
+ "name": "Geneva",
+ "population": "183,981",
+ "elevation": 400,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "atyrau",
+ "name": "Atyrau",
+ "population": "180,000",
+ "elevation": -25,
+ "timezone_id": "Asia/Atyrau"
+ },
+ {
+ "identifier": "kutaisi",
+ "name": "Kutaisi",
+ "population": "178,338",
+ "elevation": 153,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "yuzhno-sakhalinsk",
+ "name": "Yuzhno-Sakhalinsk",
+ "population": "176,484",
+ "elevation": 48,
+ "timezone_id": "Asia/Sakhalin"
+ },
+ {
+ "identifier": "split",
+ "name": "Split",
+ "population": "176,314",
+ "elevation": 12,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "regina",
+ "name": "Regina",
+ "population": "176,183",
+ "elevation": 577,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "turku",
+ "name": "Turku",
+ "population": "175,945",
+ "elevation": 22,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "oxford",
+ "name": "Oxford",
+ "population": "171,380",
+ "elevation": 72,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "jackson",
+ "name": "Jackson",
+ "population": "170,674",
+ "elevation": 100,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "springfield",
+ "name": "Springfield",
+ "population": "166,810",
+ "elevation": 399,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "basel",
+ "name": "Basel",
+ "population": "164,488",
+ "elevation": 279,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "la rioja",
+ "name": "La Rioja",
+ "population": "162,620",
+ "elevation": 502,
+ "timezone_id": "America/Argentina/La_Rioja"
+ },
+ {
+ "identifier": "hebron",
+ "name": "Hebron",
+ "population": "160,470",
+ "elevation": 903,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "modena",
+ "name": "Modena",
+ "population": "158,886",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "cambridge",
+ "name": "Cambridge",
+ "population": "158,434",
+ "elevation": 12,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "frisco",
+ "name": "Frisco",
+ "population": "154,407",
+ "elevation": 216,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "pasadena",
+ "name": "Pasadena",
+ "population": "153,784",
+ "elevation": 12,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "york",
+ "name": "York",
+ "population": "153,717",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "salzburg",
+ "name": "Salzburg",
+ "population": "153,377",
+ "elevation": 435,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "cairns",
+ "name": "Cairns",
+ "population": "153,075",
+ "elevation": 1,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "hamilton",
+ "name": "Hamilton",
+ "population": "152,641",
+ "elevation": 39,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "la laguna",
+ "name": "La Laguna",
+ "population": "150,661",
+ "elevation": 558,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "dili",
+ "name": "Dili",
+ "population": "150,000",
+ "elevation": 3,
+ "timezone_id": "Asia/Dili"
+ },
+ {
+ "identifier": "dijon",
+ "name": "Dijon",
+ "population": "149,782",
+ "elevation": 242,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "uppsala",
+ "name": "Uppsala",
+ "population": "149,245",
+ "elevation": 20,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "trondheim",
+ "name": "Trondheim",
+ "population": "147,139",
+ "elevation": 18,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "manama",
+ "name": "Manama",
+ "population": "147,074",
+ "elevation": 12,
+ "timezone_id": "Asia/Bahrain"
+ },
+ {
+ "identifier": "parma",
+ "name": "Parma",
+ "population": "146,299",
+ "elevation": 64,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "boise",
+ "name": "Boise",
+ "population": "145,987",
+ "elevation": 834,
+ "timezone_id": "America/Boise"
+ },
+ {
+ "identifier": "odense",
+ "name": "Odense",
+ "population": "145,931",
+ "elevation": 17,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "amiens",
+ "name": "Amiens",
+ "population": "143,086",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tours",
+ "name": "Tours",
+ "population": "141,621",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "podgorica",
+ "name": "Podgorica",
+ "population": "136,473",
+ "elevation": 49,
+ "timezone_id": "Europe/Podgorica"
+ },
+ {
+ "identifier": "innsbruck",
+ "name": "Innsbruck",
+ "population": "132,493",
+ "elevation": 587,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "toowoomba",
+ "name": "Toowoomba",
+ "population": "131,258",
+ "elevation": 599,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "darwin",
+ "name": "Darwin",
+ "population": "129,062",
+ "elevation": 31,
+ "timezone_id": "Australia/Darwin"
+ },
+ {
+ "identifier": "bern",
+ "name": "Bern",
+ "population": "121631",
+ "elevation": 549,
+ "timezone_id": "Europe/Zurich"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Countries.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Countries.json
new file mode 100644
index 000000000..fbf319baf
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Countries.json
@@ -0,0 +1,3392 @@
+[
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Kabul",
+ "code": "AF",
+ "capital": "Kabul",
+ "flagURL": "https://restcountries.eu/data/afg.svg",
+ "language": {
+ "name": "Pashto",
+ "code": "ps"
+ },
+ "currency": {
+ "name": "Afghan afghani",
+ "code": "AFN",
+ "symbol": "؋"
+ },
+ "name": "Afghanistan"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Tirane",
+ "code": "AL",
+ "capital": "Tirana",
+ "flagURL": "https://restcountries.eu/data/alb.svg",
+ "language": {
+ "name": "Albanian",
+ "code": "sq"
+ },
+ "currency": {
+ "name": "Albanian lek",
+ "code": "ALL",
+ "symbol": "L"
+ },
+ "name": "Albania"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Algiers",
+ "code": "DZ",
+ "capital": "Algiers",
+ "flagURL": "https://restcountries.eu/data/dza.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Algerian dinar",
+ "code": "DZD",
+ "symbol": "د.ج"
+ },
+ "name": "Algeria"
+ },
+ {
+ "region": "OC",
+ "code": "AS",
+ "capital": "Pago Pago",
+ "flagURL": "https://restcountries.eu/data/asm.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "United State Dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "American Samoa"
+ },
+ {
+ "region": "EU",
+ "code": "AD",
+ "capital": "Andorra la Vella",
+ "flagURL": "https://restcountries.eu/data/and.svg",
+ "language": {
+ "name": "Catalan",
+ "code": "ca"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Andorra",
+ "capitalCityTimezoneID": "Europe/Andorra"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Luanda",
+ "code": "AO",
+ "capital": "Luanda",
+ "flagURL": "https://restcountries.eu/data/ago.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Angolan kwanza",
+ "code": "AOA",
+ "symbol": "Kz"
+ },
+ "name": "Angola"
+ },
+ {
+ "region": "NA",
+ "code": "AI",
+ "capital": "The Valley",
+ "flagURL": "https://restcountries.eu/data/aia.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Anguilla"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Argentina/Buenos_Aires",
+ "code": "AR",
+ "capital": "Buenos Aires",
+ "flagURL": "https://restcountries.eu/data/arg.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Argentine peso",
+ "code": "ARS",
+ "symbol": "$"
+ },
+ "name": "Argentina"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Yerevan",
+ "code": "AM",
+ "capital": "Yerevan",
+ "flagURL": "https://restcountries.eu/data/arm.svg",
+ "language": {
+ "name": "Armenian",
+ "code": "hy"
+ },
+ "currency": {
+ "name": "Armenian dram",
+ "code": "AMD"
+ },
+ "name": "Armenia"
+ },
+ {
+ "region": "SA",
+ "code": "AW",
+ "capital": "Oranjestad",
+ "flagURL": "https://restcountries.eu/data/abw.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Aruban florin",
+ "code": "AWG",
+ "symbol": "ƒ"
+ },
+ "name": "Aruba"
+ },
+ {
+ "region": "OC",
+ "capitalCityTimezoneID": "Australia/Sydney",
+ "code": "AU",
+ "capital": "Canberra",
+ "flagURL": "https://restcountries.eu/data/aus.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Australian dollar",
+ "code": "AUD",
+ "symbol": "$"
+ },
+ "name": "Australia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Vienna",
+ "code": "AT",
+ "capital": "Vienna",
+ "flagURL": "https://restcountries.eu/data/aut.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Austria"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Baku",
+ "code": "AZ",
+ "capital": "Baku",
+ "flagURL": "https://restcountries.eu/data/aze.svg",
+ "language": {
+ "name": "Azerbaijani",
+ "code": "az"
+ },
+ "currency": {
+ "name": "Azerbaijani manat",
+ "code": "AZN"
+ },
+ "name": "Azerbaijan"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Nassau",
+ "code": "BS",
+ "capital": "Nassau",
+ "flagURL": "https://restcountries.eu/data/bhs.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Bahamian dollar",
+ "code": "BSD",
+ "symbol": "$"
+ },
+ "name": "Bahamas"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Bahrain",
+ "code": "BH",
+ "capital": "Manama",
+ "flagURL": "https://restcountries.eu/data/bhr.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Bahraini dinar",
+ "code": "BHD",
+ "symbol": ".د.ب"
+ },
+ "name": "Bahrain"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dhaka",
+ "code": "BD",
+ "capital": "Dhaka",
+ "flagURL": "https://restcountries.eu/data/bgd.svg",
+ "language": {
+ "name": "Bengali",
+ "code": "bn"
+ },
+ "currency": {
+ "name": "Bangladeshi taka",
+ "code": "BDT",
+ "symbol": "৳"
+ },
+ "name": "Bangladesh"
+ },
+ {
+ "region": "NA",
+ "code": "BB",
+ "capital": "Bridgetown",
+ "flagURL": "https://restcountries.eu/data/brb.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Barbadian dollar",
+ "code": "BBD",
+ "symbol": "$"
+ },
+ "name": "Barbados"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Minsk",
+ "code": "BY",
+ "capital": "Minsk",
+ "flagURL": "https://restcountries.eu/data/blr.svg",
+ "language": {
+ "name": "Belarusian",
+ "code": "be"
+ },
+ "currency": {
+ "name": "New Belarusian ruble",
+ "code": "BYN",
+ "symbol": "Br"
+ },
+ "name": "Belarus"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Brussels",
+ "code": "BE",
+ "capital": "Brussels",
+ "flagURL": "https://restcountries.eu/data/bel.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Belgium"
+ },
+ {
+ "region": "NA",
+ "code": "BZ",
+ "capital": "Belmopan",
+ "flagURL": "https://restcountries.eu/data/blz.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Belize dollar",
+ "code": "BZD",
+ "symbol": "$"
+ },
+ "name": "Belize"
+ },
+ {
+ "region": "AF",
+ "code": "BJ",
+ "capital": "Porto-Novo",
+ "flagURL": "https://restcountries.eu/data/ben.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Benin"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "Pacific/Auckland",
+ "code": "BM",
+ "capital": "Hamilton",
+ "flagURL": "https://restcountries.eu/data/bmu.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Bermudian dollar",
+ "code": "BMD",
+ "symbol": "$"
+ },
+ "name": "Bermuda"
+ },
+ {
+ "region": "AS",
+ "code": "BT",
+ "capital": "Thimphu",
+ "flagURL": "https://restcountries.eu/data/btn.svg",
+ "language": {
+ "name": "Dzongkha",
+ "code": "dz"
+ },
+ "currency": {
+ "name": "Bhutanese ngultrum",
+ "code": "BTN",
+ "symbol": "Nu."
+ },
+ "name": "Bhutan"
+ },
+ {
+ "region": "SA",
+ "code": "BO",
+ "capital": "Sucre",
+ "flagURL": "https://restcountries.eu/data/bol.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Bolivian boliviano",
+ "code": "BOB",
+ "symbol": "Bs."
+ },
+ "capitalCityTimezoneID": "America/La_Paz",
+ "name": "Bolivia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Sarajevo",
+ "code": "BA",
+ "capital": "Sarajevo",
+ "flagURL": "https://restcountries.eu/data/bih.svg",
+ "language": {
+ "name": "Bosnian",
+ "code": "bs"
+ },
+ "currency": {
+ "name": "Bosnia and Herzegovina convertible mark",
+ "code": "BAM"
+ },
+ "name": "Bosnia and Herzegovina"
+ },
+ {
+ "region": "AF",
+ "code": "BW",
+ "capital": "Gaborone",
+ "flagURL": "https://restcountries.eu/data/bwa.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Botswana pula",
+ "code": "BWP",
+ "symbol": "P"
+ },
+ "name": "Botswana"
+ },
+ {
+ "region": "SA",
+ "code": "BR",
+ "capital": "Brasília",
+ "flagURL": "https://restcountries.eu/data/bra.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Brazilian real",
+ "code": "BRL",
+ "symbol": "R$"
+ },
+ "name": "Brazil",
+ "capitalCityTimezoneID": "America/Sao_Paulo"
+ },
+ {
+ "region": "AF",
+ "code": "IO",
+ "capital": "Diego Garcia",
+ "flagURL": "https://restcountries.eu/data/iot.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "British Indian Ocean Territory"
+ },
+ {
+ "region": "AS",
+ "code": "BN",
+ "capital": "Bandar Seri Begawan",
+ "flagURL": "https://restcountries.eu/data/brn.svg",
+ "language": {
+ "name": "Malay",
+ "code": "ms"
+ },
+ "currency": {
+ "name": "Brunei dollar",
+ "code": "BND",
+ "symbol": "$"
+ },
+ "name": "Brunei"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Sofia",
+ "code": "BG",
+ "capital": "Sofia",
+ "flagURL": "https://restcountries.eu/data/bgr.svg",
+ "language": {
+ "name": "Bulgarian",
+ "code": "bg"
+ },
+ "currency": {
+ "name": "Bulgarian lev",
+ "code": "BGN",
+ "symbol": "лв"
+ },
+ "name": "Bulgaria"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Ouagadougou",
+ "code": "BF",
+ "capital": "Ouagadougou",
+ "flagURL": "https://restcountries.eu/data/bfa.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Burkina Faso"
+ },
+ {
+ "region": "AF",
+ "code": "BI",
+ "capital": "Bujumbura",
+ "flagURL": "https://restcountries.eu/data/bdi.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Burundian franc",
+ "code": "BIF",
+ "symbol": "Fr"
+ },
+ "name": "Burundi"
+ },
+ {
+ "region": "AF",
+ "code": "CV",
+ "capital": "Praia",
+ "flagURL": "https://restcountries.eu/data/cpv.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Cape Verdean escudo",
+ "code": "CVE",
+ "symbol": "Esc"
+ },
+ "name": "Cabo Verde"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Phnom_Penh",
+ "code": "KH",
+ "capital": "Phnom Penh",
+ "flagURL": "https://restcountries.eu/data/khm.svg",
+ "language": {
+ "name": "Khmer",
+ "code": "km"
+ },
+ "currency": {
+ "name": "Cambodian riel",
+ "code": "KHR",
+ "symbol": "៛"
+ },
+ "name": "Cambodia"
+ },
+ {
+ "region": "AF",
+ "code": "CM",
+ "capital": "Yaoundé",
+ "flagURL": "https://restcountries.eu/data/cmr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Cameroon"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Toronto",
+ "code": "CA",
+ "capital": "Ottawa",
+ "flagURL": "https://restcountries.eu/data/can.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Canadian dollar",
+ "code": "CAD",
+ "symbol": "$"
+ },
+ "name": "Canada"
+ },
+ {
+ "region": "AF",
+ "code": "CF",
+ "capital": "Bangui",
+ "flagURL": "https://restcountries.eu/data/caf.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Central African Republic"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Ndjamena",
+ "code": "TD",
+ "capital": "N'Djamena",
+ "flagURL": "https://restcountries.eu/data/tcd.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Chad"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Santiago",
+ "code": "CL",
+ "capital": "Santiago",
+ "flagURL": "https://restcountries.eu/data/chl.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Chilean peso",
+ "code": "CLP",
+ "symbol": "$"
+ },
+ "name": "Chile"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Shanghai",
+ "code": "CN",
+ "capital": "Beijing",
+ "flagURL": "https://restcountries.eu/data/chn.svg",
+ "language": {
+ "name": "Chinese",
+ "code": "zh"
+ },
+ "currency": {
+ "name": "Chinese yuan",
+ "code": "CNY",
+ "symbol": "¥"
+ },
+ "name": "China"
+ },
+ {
+ "region": "SA",
+ "code": "CO",
+ "capital": "Bogotá",
+ "flagURL": "https://restcountries.eu/data/col.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Colombian peso",
+ "code": "COP",
+ "symbol": "$"
+ },
+ "name": "Colombia",
+ "capitalCityTimezoneID": "America/Bogota"
+ },
+ {
+ "region": "AF",
+ "code": "KM",
+ "capital": "Moroni",
+ "flagURL": "https://restcountries.eu/data/com.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Comorian franc",
+ "code": "KMF",
+ "symbol": "Fr"
+ },
+ "name": "Comoros"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Brazzaville",
+ "code": "CG",
+ "capital": "Brazzaville",
+ "flagURL": "https://restcountries.eu/data/cog.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Congo"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Kinshasa",
+ "code": "CD",
+ "capital": "Kinshasa",
+ "flagURL": "https://restcountries.eu/data/cod.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Congolese franc",
+ "code": "CDF",
+ "symbol": "Fr"
+ },
+ "name": "Congo"
+ },
+ {
+ "region": "NA",
+ "code": "CR",
+ "capital": "San José",
+ "flagURL": "https://restcountries.eu/data/cri.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Costa Rican colón",
+ "code": "CRC",
+ "symbol": "₡"
+ },
+ "capitalCityTimezoneID": "America/Costa_Rica",
+ "name": "Costa Rica"
+ },
+ {
+ "region": "AF",
+ "code": "CI",
+ "capital": "Yamoussoukro",
+ "flagURL": "https://restcountries.eu/data/civ.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Côte d'Ivoire"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Zagreb",
+ "code": "HR",
+ "capital": "Zagreb",
+ "flagURL": "https://restcountries.eu/data/hrv.svg",
+ "language": {
+ "name": "Croatian",
+ "code": "hr"
+ },
+ "currency": {
+ "name": "Croatian kuna",
+ "code": "HRK",
+ "symbol": "kn"
+ },
+ "name": "Croatia"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Havana",
+ "code": "CU",
+ "capital": "Havana",
+ "flagURL": "https://restcountries.eu/data/cub.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Cuban convertible peso",
+ "code": "CUC",
+ "symbol": "$"
+ },
+ "name": "Cuba"
+ },
+ {
+ "region": "SA",
+ "code": "CW",
+ "capital": "Willemstad",
+ "flagURL": "https://restcountries.eu/data/cuw.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Netherlands Antillean guilder",
+ "code": "ANG",
+ "symbol": "ƒ"
+ },
+ "name": "Curaçao"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Asia/Nicosia",
+ "code": "CY",
+ "capital": "Nicosia",
+ "flagURL": "https://restcountries.eu/data/cyp.svg",
+ "language": {
+ "name": "Turkish",
+ "code": "tr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Cyprus"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Prague",
+ "code": "CZ",
+ "capital": "Prague",
+ "flagURL": "https://restcountries.eu/data/cze.svg",
+ "language": {
+ "name": "Czech",
+ "code": "cs"
+ },
+ "currency": {
+ "name": "Czech koruna",
+ "code": "CZK",
+ "symbol": "Kč"
+ },
+ "name": "Czech Republic"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Copenhagen",
+ "code": "DK",
+ "capital": "Copenhagen",
+ "flagURL": "https://restcountries.eu/data/dnk.svg",
+ "language": {
+ "name": "Danish",
+ "code": "da"
+ },
+ "currency": {
+ "name": "Danish krone",
+ "code": "DKK",
+ "symbol": "kr"
+ },
+ "name": "Denmark"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Djibouti",
+ "code": "DJ",
+ "capital": "Djibouti",
+ "flagURL": "https://restcountries.eu/data/dji.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Djiboutian franc",
+ "code": "DJF",
+ "symbol": "Fr"
+ },
+ "name": "Djibouti"
+ },
+ {
+ "region": "NA",
+ "code": "DM",
+ "capital": "Roseau",
+ "flagURL": "https://restcountries.eu/data/dma.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Dominica"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Santo_Domingo",
+ "code": "DO",
+ "capital": "Santo Domingo",
+ "flagURL": "https://restcountries.eu/data/dom.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Dominican peso",
+ "code": "DOP",
+ "symbol": "$"
+ },
+ "name": "Dominican Republic"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Guayaquil",
+ "code": "EC",
+ "capital": "Quito",
+ "flagURL": "https://restcountries.eu/data/ecu.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "Ecuador"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Cairo",
+ "code": "EG",
+ "capital": "Cairo",
+ "flagURL": "https://restcountries.eu/data/egy.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Egyptian pound",
+ "code": "EGP",
+ "symbol": "£"
+ },
+ "name": "Egypt"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/El_Salvador",
+ "code": "SV",
+ "capital": "San Salvador",
+ "flagURL": "https://restcountries.eu/data/slv.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "El Salvador"
+ },
+ {
+ "region": "AF",
+ "code": "GQ",
+ "capital": "Malabo",
+ "flagURL": "https://restcountries.eu/data/gnq.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Equatorial Guinea"
+ },
+ {
+ "region": "AF",
+ "code": "ER",
+ "capital": "Asmara",
+ "flagURL": "https://restcountries.eu/data/eri.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Eritrean nakfa",
+ "code": "ERN",
+ "symbol": "Nfk"
+ },
+ "name": "Eritrea"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Tallinn",
+ "code": "EE",
+ "capital": "Tallinn",
+ "flagURL": "https://restcountries.eu/data/est.svg",
+ "language": {
+ "name": "Estonian",
+ "code": "et"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Estonia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Addis_Ababa",
+ "code": "ET",
+ "capital": "Addis Ababa",
+ "flagURL": "https://restcountries.eu/data/eth.svg",
+ "language": {
+ "name": "Amharic",
+ "code": "am"
+ },
+ "currency": {
+ "name": "Ethiopian birr",
+ "code": "ETB",
+ "symbol": "Br"
+ },
+ "name": "Ethiopia"
+ },
+ {
+ "region": "OC",
+ "code": "FJ",
+ "capital": "Suva",
+ "flagURL": "https://restcountries.eu/data/fji.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Fijian dollar",
+ "code": "FJD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "Pacific/Fiji",
+ "name": "Fiji"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Helsinki",
+ "code": "FI",
+ "capital": "Helsinki",
+ "flagURL": "https://restcountries.eu/data/fin.svg",
+ "language": {
+ "name": "Finnish",
+ "code": "fi"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Finland"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Paris",
+ "code": "FR",
+ "capital": "Paris",
+ "flagURL": "https://restcountries.eu/data/fra.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "France"
+ },
+ {
+ "region": "SA",
+ "code": "GF",
+ "capital": "Cayenne",
+ "flagURL": "https://restcountries.eu/data/guf.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "French Guiana"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Libreville",
+ "code": "GA",
+ "capital": "Libreville",
+ "flagURL": "https://restcountries.eu/data/gab.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Gabon"
+ },
+ {
+ "region": "AF",
+ "code": "GM",
+ "capital": "Banjul",
+ "flagURL": "https://restcountries.eu/data/gmb.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Gambian dalasi",
+ "code": "GMD",
+ "symbol": "D"
+ },
+ "name": "Gambia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tbilisi",
+ "code": "GE",
+ "capital": "Tbilisi",
+ "flagURL": "https://restcountries.eu/data/geo.svg",
+ "language": {
+ "name": "Georgian",
+ "code": "ka"
+ },
+ "currency": {
+ "name": "Georgian Lari",
+ "code": "GEL",
+ "symbol": "ლ"
+ },
+ "name": "Georgia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Berlin",
+ "code": "DE",
+ "capital": "Berlin",
+ "flagURL": "https://restcountries.eu/data/deu.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Germany"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Accra",
+ "code": "GH",
+ "capital": "Accra",
+ "flagURL": "https://restcountries.eu/data/gha.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Ghanaian cedi",
+ "code": "GHS",
+ "symbol": "₵"
+ },
+ "name": "Ghana"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Athens",
+ "code": "GR",
+ "capital": "Athens",
+ "flagURL": "https://restcountries.eu/data/grc.svg",
+ "language": {
+ "name": "Greek (modern)",
+ "code": "el"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Greece"
+ },
+ {
+ "region": "NA",
+ "code": "GL",
+ "capital": "Nuuk",
+ "flagURL": "https://restcountries.eu/data/grl.svg",
+ "language": {
+ "name": "Kalaallisut",
+ "code": "kl"
+ },
+ "currency": {
+ "name": "Danish krone",
+ "code": "DKK",
+ "symbol": "kr"
+ },
+ "capitalCityTimezoneID": "America/Godthab",
+ "name": "Greenland"
+ },
+ {
+ "region": "NA",
+ "code": "GD",
+ "capital": "St. George's",
+ "flagURL": "https://restcountries.eu/data/grd.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Grenada"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Guatemala",
+ "code": "GT",
+ "capital": "Guatemala City",
+ "flagURL": "https://restcountries.eu/data/gtm.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Guatemalan quetzal",
+ "code": "GTQ",
+ "symbol": "Q"
+ },
+ "name": "Guatemala"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Conakry",
+ "code": "GN",
+ "capital": "Conakry",
+ "flagURL": "https://restcountries.eu/data/gin.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Guinean franc",
+ "code": "GNF",
+ "symbol": "Fr"
+ },
+ "name": "Guinea"
+ },
+ {
+ "region": "AF",
+ "code": "GW",
+ "capital": "Bissau",
+ "flagURL": "https://restcountries.eu/data/gnb.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Guinea-Bissau"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Guyana",
+ "code": "GY",
+ "capital": "Georgetown",
+ "flagURL": "https://restcountries.eu/data/guy.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Guyanese dollar",
+ "code": "GYD",
+ "symbol": "$"
+ },
+ "name": "Guyana"
+ },
+ {
+ "region": "Americas",
+ "capitalCityTimezoneID": "America/Port-au-Prince",
+ "code": "HT",
+ "capital": "Port-au-Prince",
+ "flagURL": "https://restcountries.eu/data/hti.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Haitian gourde",
+ "code": "HTG",
+ "symbol": "G"
+ },
+ "name": "Haiti"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Rome",
+ "code": "VA",
+ "capital": "Rome",
+ "flagURL": "https://restcountries.eu/data/vat.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "The Vatican"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Tegucigalpa",
+ "code": "HN",
+ "capital": "Tegucigalpa",
+ "flagURL": "https://restcountries.eu/data/hnd.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Honduran lempira",
+ "code": "HNL",
+ "symbol": "L"
+ },
+ "name": "Honduras"
+ },
+ {
+ "region": "AS",
+ "code": "HK",
+ "capital": "City of Victoria",
+ "flagURL": "https://restcountries.eu/data/hkg.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Hong Kong dollar",
+ "code": "HKD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "Asia/Hong_Kong",
+ "name": "Hong Kong"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Budapest",
+ "code": "HU",
+ "capital": "Budapest",
+ "flagURL": "https://restcountries.eu/data/hun.svg",
+ "language": {
+ "name": "Hungarian",
+ "code": "hu"
+ },
+ "currency": {
+ "name": "Hungarian forint",
+ "code": "HUF",
+ "symbol": "Ft"
+ },
+ "name": "Hungary"
+ },
+ {
+ "region": "EU",
+ "code": "IS",
+ "capital": "Reykjavík",
+ "flagURL": "https://restcountries.eu/data/isl.svg",
+ "capitalCityTimezoneID": "Atlantic/Reykjavik",
+ "language": {
+ "name": "Icelandic",
+ "code": "is"
+ },
+ "currency": {
+ "name": "Icelandic króna",
+ "code": "ISK",
+ "symbol": "kr"
+ },
+ "name": "Iceland"
+ },
+ {
+ "region": "AS",
+ "code": "IN",
+ "capital": "New Delhi",
+ "flagURL": "https://restcountries.eu/data/ind.svg",
+ "language": {
+ "name": "Hindi",
+ "code": "hi"
+ },
+ "currency": {
+ "name": "Indian rupee",
+ "code": "INR",
+ "symbol": "₹"
+ },
+ "capitalCityTimezoneID": "Asia/Kolkata",
+ "name": "India"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Jakarta",
+ "code": "ID",
+ "capital": "Jakarta",
+ "flagURL": "https://restcountries.eu/data/idn.svg",
+ "language": {
+ "name": "Indonesian",
+ "code": "id"
+ },
+ "currency": {
+ "name": "Indonesian rupiah",
+ "code": "IDR",
+ "symbol": "Rp"
+ },
+ "name": "Indonesia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tehran",
+ "code": "IR",
+ "capital": "Tehran",
+ "flagURL": "https://restcountries.eu/data/irn.svg",
+ "language": {
+ "name": "Persian (Farsi)",
+ "code": "fa"
+ },
+ "currency": {
+ "name": "Iranian rial",
+ "code": "IRR",
+ "symbol": "﷼"
+ },
+ "name": "Iran"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Baghdad",
+ "code": "IQ",
+ "capital": "Baghdad",
+ "flagURL": "https://restcountries.eu/data/irq.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Iraqi dinar",
+ "code": "IQD",
+ "symbol": "ع.د"
+ },
+ "name": "Iraq"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Dublin",
+ "code": "IE",
+ "capital": "Dublin",
+ "flagURL": "https://restcountries.eu/data/irl.svg",
+ "language": {
+ "name": "Irish",
+ "code": "ga"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Ireland"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Jerusalem",
+ "code": "IL",
+ "capital": "Jerusalem",
+ "flagURL": "https://restcountries.eu/data/isr.svg",
+ "language": {
+ "name": "Hebrew (modern)",
+ "code": "he"
+ },
+ "currency": {
+ "name": "Israeli new shekel",
+ "code": "ILS",
+ "symbol": "₪"
+ },
+ "name": "Israel"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Rome",
+ "code": "IT",
+ "capital": "Rome",
+ "flagURL": "https://restcountries.eu/data/ita.svg",
+ "language": {
+ "name": "Italian",
+ "code": "it"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Italy"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Jamaica",
+ "code": "JM",
+ "capital": "Kingston",
+ "flagURL": "https://restcountries.eu/data/jam.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Jamaican dollar",
+ "code": "JMD",
+ "symbol": "$"
+ },
+ "name": "Jamaica"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tokyo",
+ "code": "JP",
+ "capital": "Tokyo",
+ "flagURL": "https://restcountries.eu/data/jpn.svg",
+ "language": {
+ "name": "Japanese",
+ "code": "ja"
+ },
+ "currency": {
+ "name": "Japanese yen",
+ "code": "JPY",
+ "symbol": "¥"
+ },
+ "name": "Japan"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Amman",
+ "code": "JO",
+ "capital": "Amman",
+ "flagURL": "https://restcountries.eu/data/jor.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Jordanian dinar",
+ "code": "JOD",
+ "symbol": "د.ا"
+ },
+ "name": "Jordan"
+ },
+ {
+ "region": "AS",
+ "code": "KZ",
+ "capital": "Astana",
+ "flagURL": "https://restcountries.eu/data/kaz.svg",
+ "language": {
+ "name": "Kazakh",
+ "code": "kk"
+ },
+ "currency": {
+ "name": "Kazakhstani tenge",
+ "code": "KZT"
+ },
+ "capitalCityTimezoneID": "Asia/Almaty",
+ "name": "Kazakhstan"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Nairobi",
+ "code": "KE",
+ "capital": "Nairobi",
+ "flagURL": "https://restcountries.eu/data/ken.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Kenyan shilling",
+ "code": "KES",
+ "symbol": "Sh"
+ },
+ "name": "Kenya"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Pyongyang",
+ "code": "KP",
+ "capital": "Pyongyang",
+ "flagURL": "https://restcountries.eu/data/prk.svg",
+ "language": {
+ "name": "Korean",
+ "code": "ko"
+ },
+ "currency": {
+ "name": "North Korean won",
+ "code": "KPW",
+ "symbol": "₩"
+ },
+ "name": "North Korea"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Seoul",
+ "code": "KR",
+ "capital": "Seoul",
+ "flagURL": "https://restcountries.eu/data/kor.svg",
+ "language": {
+ "name": "Korean",
+ "code": "ko"
+ },
+ "currency": {
+ "name": "South Korean won",
+ "code": "KRW",
+ "symbol": "₩"
+ },
+ "name": "South Korea"
+ },
+ {
+ "region": "AS",
+ "code": "KW",
+ "capital": "Kuwait City",
+ "flagURL": "https://restcountries.eu/data/kwt.svg",
+ "capitalCityTimezoneID": "Asia/Kuwait",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Kuwaiti dinar",
+ "code": "KWD",
+ "symbol": "د.ك"
+ },
+ "name": "Kuwait"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Bishkek",
+ "code": "KG",
+ "capital": "Bishkek",
+ "flagURL": "https://restcountries.eu/data/kgz.svg",
+ "language": {
+ "name": "Kyrgyz",
+ "code": "ky"
+ },
+ "currency": {
+ "name": "Kyrgyzstani som",
+ "code": "KGS",
+ "symbol": "с"
+ },
+ "name": "Kyrgyzstan"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Vientiane",
+ "code": "LA",
+ "capital": "Vientiane",
+ "flagURL": "https://restcountries.eu/data/lao.svg",
+ "language": {
+ "name": "Lao",
+ "code": "lo"
+ },
+ "currency": {
+ "name": "Lao kip",
+ "code": "LAK",
+ "symbol": "₭"
+ },
+ "name": "Lao People's Democratic Republic"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Riga",
+ "code": "LV",
+ "capital": "Riga",
+ "flagURL": "https://restcountries.eu/data/lva.svg",
+ "language": {
+ "name": "Latvian",
+ "code": "lv"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Latvia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Beirut",
+ "code": "LB",
+ "capital": "Beirut",
+ "flagURL": "https://restcountries.eu/data/lbn.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Lebanese pound",
+ "code": "LBP",
+ "symbol": "ل.ل"
+ },
+ "name": "Lebanon"
+ },
+ {
+ "region": "AF",
+ "code": "LS",
+ "capital": "Maseru",
+ "flagURL": "https://restcountries.eu/data/lso.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Lesotho loti",
+ "code": "LSL",
+ "symbol": "L"
+ },
+ "name": "Lesotho"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Monrovia",
+ "code": "LR",
+ "capital": "Monrovia",
+ "flagURL": "https://restcountries.eu/data/lbr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Liberian dollar",
+ "code": "LRD",
+ "symbol": "$"
+ },
+ "name": "Liberia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Asia/Beirut",
+ "code": "LY",
+ "capital": "Tripoli",
+ "flagURL": "https://restcountries.eu/data/lby.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Libyan dinar",
+ "code": "LYD",
+ "symbol": "ل.د"
+ },
+ "name": "Libya"
+ },
+ {
+ "region": "EU",
+ "code": "LI",
+ "capital": "Vaduz",
+ "flagURL": "https://restcountries.eu/data/lie.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Swiss franc",
+ "code": "CHF",
+ "symbol": "Fr"
+ },
+ "capitalCityTimezoneID": "Europe/Vaduz",
+ "name": "Liechtenstein"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Vilnius",
+ "code": "LT",
+ "capital": "Vilnius",
+ "flagURL": "https://restcountries.eu/data/ltu.svg",
+ "language": {
+ "name": "Lithuanian",
+ "code": "lt"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Lithuania"
+ },
+ {
+ "region": "EU",
+ "code": "LU",
+ "capital": "Luxembourg",
+ "flagURL": "https://restcountries.eu/data/lux.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "capitalCityTimezoneID": "Europe/Luxembourg",
+ "name": "Luxembourg"
+ },
+ {
+ "region": "AS",
+ "code": "MO",
+ "capital": "",
+ "flagURL": "https://restcountries.eu/data/mac.svg",
+ "language": {
+ "name": "Chinese",
+ "code": "zh"
+ },
+ "currency": {
+ "name": "Macanese pataca",
+ "code": "MOP",
+ "symbol": "P"
+ },
+ "capitalCityTimezoneID": "Asia/Macau",
+ "name": "Macao"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Skopje",
+ "code": "MK",
+ "capital": "Skopje",
+ "flagURL": "https://restcountries.eu/data/mkd.svg",
+ "language": {
+ "name": "Macedonian",
+ "code": "mk"
+ },
+ "currency": {
+ "name": "Macedonian denar",
+ "code": "MKD",
+ "symbol": "ден"
+ },
+ "name": "Macedonia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Indian/Antananarivo",
+ "code": "MG",
+ "capital": "Antananarivo",
+ "flagURL": "https://restcountries.eu/data/mdg.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Malagasy ariary",
+ "code": "MGA",
+ "symbol": "Ar"
+ },
+ "name": "Madagascar"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Blantyre",
+ "code": "MW",
+ "capital": "Lilongwe",
+ "flagURL": "https://restcountries.eu/data/mwi.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Malawian kwacha",
+ "code": "MWK",
+ "symbol": "MK"
+ },
+ "name": "Malawi"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Kuala_Lumpur",
+ "code": "MY",
+ "capital": "Kuala Lumpur",
+ "flagURL": "https://restcountries.eu/data/mys.svg",
+ "language": {
+ "name": "Malaysian"
+ },
+ "currency": {
+ "name": "Malaysian ringgit",
+ "code": "MYR",
+ "symbol": "RM"
+ },
+ "name": "Malaysia"
+ },
+ {
+ "region": "AS",
+ "code": "MV",
+ "capital": "Malé",
+ "flagURL": "https://restcountries.eu/data/mdv.svg",
+ "language": {
+ "name": "Divehi",
+ "code": "dv"
+ },
+ "currency": {
+ "name": "Maldivian rufiyaa",
+ "code": "MVR",
+ "symbol": ".ރ"
+ },
+ "name": "Maldives"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Bamako",
+ "code": "ML",
+ "capital": "Bamako",
+ "flagURL": "https://restcountries.eu/data/mli.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Mali"
+ },
+ {
+ "region": "EU",
+ "code": "MT",
+ "capital": "Valletta",
+ "flagURL": "https://restcountries.eu/data/mlt.svg",
+ "language": {
+ "name": "Maltese",
+ "code": "mt"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "capitalCityTimezoneID": "Europe/Malta",
+ "name": "Malta"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Nouakchott",
+ "code": "MR",
+ "capital": "Nouakchott",
+ "flagURL": "https://restcountries.eu/data/mrt.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Mauritanian ouguiya",
+ "code": "MRO",
+ "symbol": "UM"
+ },
+ "name": "Mauritania"
+ },
+ {
+ "region": "AF",
+ "code": "MU",
+ "capital": "Port Louis",
+ "flagURL": "https://restcountries.eu/data/mus.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Mauritian rupee",
+ "code": "MUR",
+ "symbol": "₨"
+ },
+ "name": "Mauritius"
+ },
+ {
+ "region": "AF",
+ "code": "YT",
+ "capital": "Mamoudzou",
+ "flagURL": "https://restcountries.eu/data/myt.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Mayotte"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Mexico_City",
+ "code": "MX",
+ "capital": "Mexico City",
+ "flagURL": "https://restcountries.eu/data/mex.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Mexican peso",
+ "code": "MXN",
+ "symbol": "$"
+ },
+ "name": "Mexico"
+ },
+ {
+ "region": "EU",
+ "code": "MD",
+ "capital": "Chișinău",
+ "flagURL": "https://restcountries.eu/data/mda.svg",
+ "language": {
+ "name": "Romanian",
+ "code": "ro"
+ },
+ "currency": {
+ "name": "Moldovan leu",
+ "code": "MDL",
+ "symbol": "L"
+ },
+ "capitalCityTimezoneID": "Europe/Chisinau",
+ "name": "Moldova"
+ },
+ {
+ "region": "EU",
+ "code": "MC",
+ "capital": "Monaco",
+ "capitalCityTimezoneID": "Europe/Monaco",
+ "flagURL": "https://restcountries.eu/data/mco.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Monaco"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Ulaanbaatar",
+ "code": "MN",
+ "capital": "Ulan Bator",
+ "flagURL": "https://restcountries.eu/data/mng.svg",
+ "language": {
+ "name": "Mongolian",
+ "code": "mn"
+ },
+ "currency": {
+ "name": "Mongolian tögrög",
+ "code": "MNT",
+ "symbol": "₮"
+ },
+ "name": "Mongolia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Podgorica",
+ "code": "ME",
+ "capital": "Podgorica",
+ "flagURL": "https://restcountries.eu/data/mne.svg",
+ "language": {
+ "name": "Serbian",
+ "code": "sr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Montenegro"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "Europe/London",
+ "code": "MS",
+ "capital": "Plymouth",
+ "flagURL": "https://restcountries.eu/data/msr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Montserrat"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Casablanca",
+ "code": "MA",
+ "capital": "Rabat",
+ "flagURL": "https://restcountries.eu/data/mar.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Moroccan dirham",
+ "code": "MAD",
+ "symbol": "د.م."
+ },
+ "name": "Morocco"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Maputo",
+ "code": "MZ",
+ "capital": "Maputo",
+ "flagURL": "https://restcountries.eu/data/moz.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Mozambican metical",
+ "code": "MZN",
+ "symbol": "MT"
+ },
+ "name": "Mozambique"
+ },
+ {
+ "region": "AS",
+ "code": "MM",
+ "capital": "Naypyidaw",
+ "flagURL": "https://restcountries.eu/data/mmr.svg",
+ "language": {
+ "name": "Burmese",
+ "code": "my"
+ },
+ "currency": {
+ "name": "Burmese kyat",
+ "code": "MMK",
+ "symbol": "Ks"
+ },
+ "capitalCityTimezoneID": "Asia/Rangoon",
+ "name": "Myanmar"
+ },
+ {
+ "region": "AF",
+ "code": "NA",
+ "capital": "Windhoek",
+ "flagURL": "https://restcountries.eu/data/nam.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Namibian dollar",
+ "code": "NAD",
+ "symbol": "$"
+ },
+ "name": "Namibia"
+ },
+ {
+ "region": "OC",
+ "code": "NR",
+ "capital": "Yaren",
+ "flagURL": "https://restcountries.eu/data/nru.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Australian dollar",
+ "code": "AUD",
+ "symbol": "$"
+ },
+ "name": "Nauru"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Kathmandu",
+ "code": "NP",
+ "capital": "Kathmandu",
+ "flagURL": "https://restcountries.eu/data/npl.svg",
+ "language": {
+ "name": "Nepali",
+ "code": "ne"
+ },
+ "currency": {
+ "name": "Nepalese rupee",
+ "code": "NPR",
+ "symbol": "₨"
+ },
+ "name": "Nepal"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Amsterdam",
+ "code": "NL",
+ "capital": "Amsterdam",
+ "flagURL": "https://restcountries.eu/data/nld.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Netherlands"
+ },
+ {
+ "region": "OC",
+ "code": "NC",
+ "capital": "Nouméa",
+ "flagURL": "https://restcountries.eu/data/ncl.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "CFP franc",
+ "code": "XPF",
+ "symbol": "Fr"
+ },
+ "name": "New Caledonia"
+ },
+ {
+ "region": "OC",
+ "capitalCityTimezoneID": "Pacific/Auckland",
+ "code": "NZ",
+ "capital": "Wellington",
+ "flagURL": "https://restcountries.eu/data/nzl.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "New Zealand dollar",
+ "code": "NZD",
+ "symbol": "$"
+ },
+ "name": "New Zealand"
+ },
+ {
+ "region": "NA",
+ "code": "NI",
+ "capital": "Managua",
+ "flagURL": "https://restcountries.eu/data/nic.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Nicaraguan córdoba",
+ "code": "NIO",
+ "symbol": "C$"
+ },
+ "name": "Nicaragua"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Niamey",
+ "code": "NE",
+ "capital": "Niamey",
+ "flagURL": "https://restcountries.eu/data/ner.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Niger"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Lagos",
+ "code": "NG",
+ "capital": "Abuja",
+ "flagURL": "https://restcountries.eu/data/nga.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Nigerian naira",
+ "code": "NGN",
+ "symbol": "₦"
+ },
+ "name": "Nigeria"
+ },
+ {
+ "region": "OC",
+ "code": "NU",
+ "capital": "Alofi",
+ "flagURL": "https://restcountries.eu/data/niu.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "New Zealand dollar",
+ "code": "NZD",
+ "symbol": "$"
+ },
+ "name": "Niue"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Oslo",
+ "code": "NO",
+ "capital": "Oslo",
+ "flagURL": "https://restcountries.eu/data/nor.svg",
+ "language": {
+ "name": "Norwegian",
+ "code": "no"
+ },
+ "currency": {
+ "name": "Norwegian krone",
+ "code": "NOK",
+ "symbol": "kr"
+ },
+ "name": "Norway"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Muscat",
+ "code": "OM",
+ "capital": "Muscat",
+ "flagURL": "https://restcountries.eu/data/omn.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Omani rial",
+ "code": "OMR",
+ "symbol": "ر.ع."
+ },
+ "name": "Oman"
+ },
+ {
+ "region": "AS",
+ "code": "PK",
+ "capital": "Islamabad",
+ "flagURL": "https://restcountries.eu/data/pak.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Pakistani rupee",
+ "code": "PKR",
+ "symbol": "₨"
+ },
+ "capitalCityTimezoneID": "Asia/Karachi",
+ "name": "Pakistan"
+ },
+ {
+ "region": "AS",
+ "code": "PS",
+ "capital": "Ramallah",
+ "flagURL": "https://restcountries.eu/data/pse.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Israeli new sheqel",
+ "code": "ILS",
+ "symbol": "₪"
+ },
+ "capitalCityTimezoneID": "Asia/Gaza",
+ "name": "Palestine"
+ },
+ {
+ "region": "NA",
+ "code": "PA",
+ "capital": "Panama City",
+ "flagURL": "https://restcountries.eu/data/pan.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "America/Panama",
+ "name": "Panama"
+ },
+ {
+ "region": "OC",
+ "capitalCityTimezoneID": "Pacific/Port_Moresby",
+ "code": "PG",
+ "capital": "Port Moresby",
+ "flagURL": "https://restcountries.eu/data/png.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Papua New Guinean kina",
+ "code": "PGK",
+ "symbol": "K"
+ },
+ "name": "Papua New Guinea"
+ },
+ {
+ "region": "SA",
+ "code": "PY",
+ "capital": "Asunción",
+ "flagURL": "https://restcountries.eu/data/pry.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Paraguayan guaraní",
+ "code": "PYG",
+ "symbol": "₲"
+ },
+ "capitalCityTimezoneID": "America/Asuncion",
+ "name": "Paraguay"
+ },
+ {
+ "region": "SA",
+ "code": "PE",
+ "capital": "Lima",
+ "flagURL": "https://restcountries.eu/data/per.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Peruvian sol",
+ "code": "PEN",
+ "symbol": "S/."
+ },
+ "capitalCityTimezoneID": "America/Lima",
+ "name": "Peru"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Manila",
+ "code": "PH",
+ "capital": "Manila",
+ "flagURL": "https://restcountries.eu/data/phl.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Philippine peso",
+ "code": "PHP",
+ "symbol": "₱"
+ },
+ "name": "Philippines"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Warsaw",
+ "code": "PL",
+ "capital": "Warsaw",
+ "flagURL": "https://restcountries.eu/data/pol.svg",
+ "language": {
+ "name": "Polish",
+ "code": "pl"
+ },
+ "currency": {
+ "name": "Polish złoty",
+ "code": "PLN",
+ "symbol": "zł"
+ },
+ "name": "Poland"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Lisbon",
+ "code": "PT",
+ "capital": "Lisbon",
+ "flagURL": "https://restcountries.eu/data/prt.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Portugal"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Puerto_Rico",
+ "code": "PR",
+ "capital": "San Juan",
+ "flagURL": "https://restcountries.eu/data/pri.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "Puerto Rico"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Qatar",
+ "code": "QA",
+ "capital": "Doha",
+ "flagURL": "https://restcountries.eu/data/qat.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Qatari riyal",
+ "code": "QAR",
+ "symbol": "ر.ق"
+ },
+ "name": "Qatar"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Belgrade",
+ "code": "XK",
+ "capital": "Pristina",
+ "flagURL": "https://restcountries.eu/data/kos.svg",
+ "language": {
+ "name": "Albanian",
+ "code": "sq"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Republic of Kosovo"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Bucharest",
+ "code": "RO",
+ "capital": "Bucharest",
+ "flagURL": "https://restcountries.eu/data/rou.svg",
+ "language": {
+ "name": "Romanian",
+ "code": "ro"
+ },
+ "currency": {
+ "name": "Romanian leu",
+ "code": "RON",
+ "symbol": "lei"
+ },
+ "name": "Romania"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Moscow",
+ "code": "RU",
+ "capital": "Moscow",
+ "flagURL": "https://restcountries.eu/data/rus.svg",
+ "language": {
+ "name": "Russian",
+ "code": "ru"
+ },
+ "currency": {
+ "name": "Russian ruble",
+ "code": "RUB",
+ "symbol": "₽"
+ },
+ "name": "Russia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Kigali",
+ "code": "RW",
+ "capital": "Kigali",
+ "flagURL": "https://restcountries.eu/data/rwa.svg",
+ "language": {
+ "name": "Kinyarwanda",
+ "code": "rw"
+ },
+ "currency": {
+ "name": "Rwandan franc",
+ "code": "RWF",
+ "symbol": "Fr"
+ },
+ "name": "Rwanda"
+ },
+ {
+ "region": "OC",
+ "code": "WS",
+ "capital": "Apia",
+ "flagURL": "https://restcountries.eu/data/wsm.svg",
+ "language": {
+ "name": "Samoan",
+ "code": "sm"
+ },
+ "currency": {
+ "name": "Samoan tālā",
+ "code": "WST",
+ "symbol": "T"
+ },
+ "name": "Samoa"
+ },
+ {
+ "region": "EU",
+ "code": "SM",
+ "capital": "City of San Marino",
+ "flagURL": "https://restcountries.eu/data/smr.svg",
+ "language": {
+ "name": "Italian",
+ "code": "it"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "San Marino"
+ },
+ {
+ "region": "AF",
+ "code": "ST",
+ "capital": "São Tomé",
+ "flagURL": "https://restcountries.eu/data/stp.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "São Tomé and Príncipe dobra",
+ "code": "STD",
+ "symbol": "Db"
+ },
+ "name": "Sao Tome and Principe"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Riyadh",
+ "code": "SA",
+ "capital": "Riyadh",
+ "flagURL": "https://restcountries.eu/data/sau.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Saudi riyal",
+ "code": "SAR",
+ "symbol": "ر.س"
+ },
+ "name": "Saudi Arabia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Dakar",
+ "code": "SN",
+ "capital": "Dakar",
+ "flagURL": "https://restcountries.eu/data/sen.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Senegal"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Belgrade",
+ "code": "RS",
+ "capital": "Belgrade",
+ "flagURL": "https://restcountries.eu/data/srb.svg",
+ "language": {
+ "name": "Serbian",
+ "code": "sr"
+ },
+ "currency": {
+ "name": "Serbian dinar",
+ "code": "RSD",
+ "symbol": "дин."
+ },
+ "name": "Serbia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "America/Vancouver",
+ "code": "SC",
+ "capital": "Victoria",
+ "flagURL": "https://restcountries.eu/data/syc.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Seychellois rupee",
+ "code": "SCR",
+ "symbol": "₨"
+ },
+ "name": "Seychelles"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Freetown",
+ "code": "SL",
+ "capital": "Freetown",
+ "flagURL": "https://restcountries.eu/data/sle.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Sierra Leonean leone",
+ "code": "SLL",
+ "symbol": "Le"
+ },
+ "name": "Sierra Leone"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Singapore",
+ "code": "SG",
+ "capital": "Singapore",
+ "flagURL": "https://restcountries.eu/data/sgp.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Singapore dollar",
+ "code": "SGD",
+ "symbol": "$"
+ },
+ "name": "Singapore"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Bratislava",
+ "code": "SK",
+ "capital": "Bratislava",
+ "flagURL": "https://restcountries.eu/data/svk.svg",
+ "language": {
+ "name": "Slovak",
+ "code": "sk"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Slovakia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Ljubljana",
+ "code": "SI",
+ "capital": "Ljubljana",
+ "flagURL": "https://restcountries.eu/data/svn.svg",
+ "language": {
+ "name": "Slovene",
+ "code": "sl"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Slovenia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Mogadishu",
+ "code": "SO",
+ "capital": "Mogadishu",
+ "flagURL": "https://restcountries.eu/data/som.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Somali shilling",
+ "code": "SOS",
+ "symbol": "Sh"
+ },
+ "name": "Somalia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Johannesburg",
+ "code": "ZA",
+ "capital": "Pretoria",
+ "flagURL": "https://restcountries.eu/data/zaf.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "South African rand",
+ "code": "ZAR",
+ "symbol": "R"
+ },
+ "name": "South Africa"
+ },
+ {
+ "region": "AF",
+ "code": "SS",
+ "capital": "Juba",
+ "flagURL": "https://restcountries.eu/data/ssd.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "South Sudanese pound",
+ "code": "SSP",
+ "symbol": "£"
+ },
+ "name": "South Sudan"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Madrid",
+ "code": "ES",
+ "capital": "Madrid",
+ "flagURL": "https://restcountries.eu/data/esp.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Spain"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Colombo",
+ "code": "LK",
+ "capital": "Colombo",
+ "flagURL": "https://restcountries.eu/data/lka.svg",
+ "language": {
+ "name": "Sinhalese",
+ "code": "si"
+ },
+ "currency": {
+ "name": "Sri Lankan rupee",
+ "code": "LKR",
+ "symbol": "Rs"
+ },
+ "name": "Sri Lanka"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Khartoum",
+ "code": "SD",
+ "capital": "Khartoum",
+ "flagURL": "https://restcountries.eu/data/sdn.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Sudanese pound",
+ "code": "SDG",
+ "symbol": "ج.س."
+ },
+ "name": "Sudan"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Paramaribo",
+ "code": "SR",
+ "capital": "Paramaribo",
+ "flagURL": "https://restcountries.eu/data/sur.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Surinamese dollar",
+ "code": "SRD",
+ "symbol": "$"
+ },
+ "name": "Suriname"
+ },
+ {
+ "region": "AF",
+ "code": "SZ",
+ "capital": "Lobamba",
+ "flagURL": "https://restcountries.eu/data/swz.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Swazi lilangeni",
+ "code": "SZL",
+ "symbol": "L"
+ },
+ "name": "Swaziland"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Stockholm",
+ "code": "SE",
+ "capital": "Stockholm",
+ "flagURL": "https://restcountries.eu/data/swe.svg",
+ "language": {
+ "name": "Swedish",
+ "code": "sv"
+ },
+ "currency": {
+ "name": "Swedish krona",
+ "code": "SEK",
+ "symbol": "kr"
+ },
+ "name": "Sweden"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Zurich",
+ "code": "CH",
+ "capital": "Bern",
+ "flagURL": "https://restcountries.eu/data/che.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Swiss franc",
+ "code": "CHF",
+ "symbol": "Fr"
+ },
+ "name": "Switzerland"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Damascus",
+ "code": "SY",
+ "capital": "Damascus",
+ "flagURL": "https://restcountries.eu/data/syr.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Syrian pound",
+ "code": "SYP",
+ "symbol": "£"
+ },
+ "name": "Syrian Arab Republic"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Taipei",
+ "code": "TW",
+ "capital": "Taipei",
+ "flagURL": "https://restcountries.eu/data/twn.svg",
+ "language": {
+ "name": "Chinese",
+ "code": "zh"
+ },
+ "currency": {
+ "name": "New Taiwan dollar",
+ "code": "TWD",
+ "symbol": "$"
+ },
+ "name": "Taiwan"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dushanbe",
+ "code": "TJ",
+ "capital": "Dushanbe",
+ "flagURL": "https://restcountries.eu/data/tjk.svg",
+ "language": {
+ "name": "Tajik",
+ "code": "tg"
+ },
+ "currency": {
+ "name": "Tajikistani somoni",
+ "code": "TJS",
+ "symbol": "ЅМ"
+ },
+ "name": "Tajikistan"
+ },
+ {
+ "region": "AF",
+ "code": "TZ",
+ "capital": "Dodoma",
+ "flagURL": "https://restcountries.eu/data/tza.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Tanzanian shilling",
+ "code": "TZS",
+ "symbol": "Sh"
+ },
+ "capitalCityTimezoneID": "Africa/Dar_es_Salaam",
+ "name": "Tanzania"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Bangkok",
+ "code": "TH",
+ "capital": "Bangkok",
+ "flagURL": "https://restcountries.eu/data/tha.svg",
+ "language": {
+ "name": "Thai",
+ "code": "th"
+ },
+ "currency": {
+ "name": "Thai baht",
+ "code": "THB",
+ "symbol": "฿"
+ },
+ "name": "Thailand"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dili",
+ "code": "TL",
+ "capital": "Dili",
+ "flagURL": "https://restcountries.eu/data/tls.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "East Timor"
+ },
+ {
+ "region": "AF",
+ "code": "TG",
+ "capital": "Lomé",
+ "flagURL": "https://restcountries.eu/data/tgo.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Togo"
+ },
+ {
+ "region": "OC",
+ "code": "TO",
+ "capital": "Nuku'alofa",
+ "flagURL": "https://restcountries.eu/data/ton.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Tongan paʻanga",
+ "code": "TOP",
+ "symbol": "T$"
+ },
+ "capitalCityTimezoneID": "Pacific/Tongatapu",
+ "name": "Tonga"
+ },
+ {
+ "region": "AF",
+ "code": "TN",
+ "capital": "Tunis",
+ "flagURL": "https://restcountries.eu/data/tun.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Tunisian dinar",
+ "code": "TND",
+ "symbol": "د.ت"
+ },
+ "capitalCityTimezoneID": "Africa/Tunis",
+ "name": "Tunisia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Europe/Istanbul",
+ "code": "TR",
+ "capital": "Ankara",
+ "flagURL": "https://restcountries.eu/data/tur.svg",
+ "language": {
+ "name": "Turkish",
+ "code": "tr"
+ },
+ "currency": {
+ "name": "Turkish lira",
+ "code": "TRY"
+ },
+ "name": "Turkey"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Ashgabat",
+ "code": "TM",
+ "capital": "Ashgabat",
+ "flagURL": "https://restcountries.eu/data/tkm.svg",
+ "language": {
+ "name": "Turkmen",
+ "code": "tk"
+ },
+ "currency": {
+ "name": "Turkmenistan manat",
+ "code": "TMT",
+ "symbol": "m"
+ },
+ "name": "Turkmenistan"
+ },
+ {
+ "region": "OC",
+ "code": "TV",
+ "capital": "Funafuti",
+ "flagURL": "https://restcountries.eu/data/tuv.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Australian dollar",
+ "code": "AUD",
+ "symbol": "$"
+ },
+ "name": "Tuvalu"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Kampala",
+ "code": "UG",
+ "capital": "Kampala",
+ "flagURL": "https://restcountries.eu/data/uga.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Ugandan shilling",
+ "code": "UGX",
+ "symbol": "Sh"
+ },
+ "name": "Uganda"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Kiev",
+ "code": "UA",
+ "capital": "Kiev",
+ "flagURL": "https://restcountries.eu/data/ukr.svg",
+ "language": {
+ "name": "Ukrainian",
+ "code": "uk"
+ },
+ "currency": {
+ "name": "Ukrainian hryvnia",
+ "code": "UAH",
+ "symbol": "₴"
+ },
+ "name": "Ukraine"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dubai",
+ "code": "AE",
+ "capital": "Abu Dhabi",
+ "flagURL": "https://restcountries.eu/data/are.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "United Arab Emirates dirham",
+ "code": "AED",
+ "symbol": "د.إ"
+ },
+ "aliases": ["UAE"],
+ "name": "United Arab Emirates"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/London",
+ "code": "GB",
+ "capital": "London",
+ "flagURL": "https://restcountries.eu/data/gbr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "British pound",
+ "code": "GBP",
+ "symbol": "£"
+ },
+ "aliases": ["Britain", "UK", "Scotland", "Ireland", "Wales"],
+ "name": "United Kingdom"
+ },
+ {
+ "region": "NA",
+ "code": "US",
+ "capital": "Washington, D.C.",
+ "flagURL": "https://restcountries.eu/data/usa.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "America/New_York",
+ "aliases": ["America", "USA", "United States"],
+ "name": "United States of America"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Montevideo",
+ "code": "UY",
+ "capital": "Montevideo",
+ "flagURL": "https://restcountries.eu/data/ury.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Uruguayan peso",
+ "code": "UYU",
+ "symbol": "$"
+ },
+ "name": "Uruguay"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tashkent",
+ "code": "UZ",
+ "capital": "Tashkent",
+ "flagURL": "https://restcountries.eu/data/uzb.svg",
+ "language": {
+ "name": "Uzbek",
+ "code": "uz"
+ },
+ "currency": {
+ "name": "Uzbekistani so'm",
+ "code": "UZS"
+ },
+ "name": "Uzbekistan"
+ },
+ {
+ "region": "OC",
+ "code": "VU",
+ "capital": "Port Vila",
+ "flagURL": "https://restcountries.eu/data/vut.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Vanuatu vatu",
+ "code": "VUV",
+ "symbol": "Vt"
+ },
+ "capitalCityTimezoneID": "Pacific/Efate",
+ "name": "Vanuatu"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Caracas",
+ "code": "VE",
+ "capital": "Caracas",
+ "flagURL": "https://restcountries.eu/data/ven.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Venezuelan bolívar",
+ "code": "VEF",
+ "symbol": "Bs F"
+ },
+ "name": "Venezuela"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Ho_Chi_Minh",
+ "code": "VN",
+ "capital": "Hanoi",
+ "flagURL": "https://restcountries.eu/data/vnm.svg",
+ "language": {
+ "name": "Vietnamese",
+ "code": "vi"
+ },
+ "currency": {
+ "name": "Vietnamese đồng",
+ "code": "VND",
+ "symbol": "₫"
+ },
+ "name": "Viet Nam"
+ },
+ {
+ "region": "AS",
+ "code": "YE",
+ "capital": "Sana'a",
+ "flagURL": "https://restcountries.eu/data/yem.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Yemeni rial",
+ "code": "YER",
+ "symbol": "﷼"
+ },
+ "capitalCityTimezoneID": "Asia/Aden",
+ "name": "Yemen"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Lusaka",
+ "code": "ZM",
+ "capital": "Lusaka",
+ "flagURL": "https://restcountries.eu/data/zmb.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Zambian kwacha",
+ "code": "ZMW",
+ "symbol": "ZK"
+ },
+ "name": "Zambia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Harare",
+ "code": "ZW",
+ "capital": "Harare",
+ "flagURL": "https://restcountries.eu/data/zwe.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Botswana pula",
+ "code": "BWP",
+ "symbol": "P"
+ },
+ "name": "Zimbabwe"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
new file mode 100644
index 000000000..0662876ef
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
@@ -0,0 +1,730 @@
+{
+ "HRK" : {
+ "value" : 0.14492904853499922,
+ "code" : "HRK"
+ },
+ "HUF" : {
+ "value" : 0.0031565724021449374,
+ "code" : "HUF"
+ },
+ "CDF" : {
+ "value" : 0.00055066070592531789,
+ "code" : "CDF"
+ },
+ "XMR" : {
+ "value" : 63.43125998,
+ "code" : "XMR"
+ },
+ "ILS" : {
+ "value" : 0.28450327719324997,
+ "code" : "ILS"
+ },
+ "NGN" : {
+ "value" : 0.0025791139662877049,
+ "code" : "NGN"
+ },
+ "GYD" : {
+ "value" : 0.0047774081337857727,
+ "code" : "GYD"
+ },
+ "BYR" : {
+ "value" : 5.1020408163265308e-05,
+ "code" : "BYR"
+ },
+ "BHD" : {
+ "value" : 2.6481437836148753,
+ "code" : "BHD"
+ },
+ "SZL" : {
+ "value" : 0.055832456624183194,
+ "code" : "SZL"
+ },
+ "INR" : {
+ "value" : 0.013244594900687922,
+ "code" : "INR"
+ },
+ "SDG" : {
+ "value" : 0.018066818937430035,
+ "code" : "SDG"
+ },
+ "PEN" : {
+ "value" : 0.29378894906992292,
+ "code" : "PEN"
+ },
+ "EUR" : {
+ "value" : 1.098520841686669,
+ "code" : "EUR"
+ },
+ "TRX" : {
+ "value" : 0.01492488,
+ "code" : "TRX"
+ },
+ "QAR" : {
+ "value" : 0.2746511792697684,
+ "code" : "QAR"
+ },
+ "PGK" : {
+ "value" : 0.28621131210141498,
+ "code" : "PGK"
+ },
+ "LRD" : {
+ "value" : 0.005039049204783614,
+ "code" : "LRD"
+ },
+ "ISK" : {
+ "value" : 0.0070283824144839668,
+ "code" : "ISK"
+ },
+ "SYP" : {
+ "value" : 0.0019491840506026894,
+ "code" : "SYP"
+ },
+ "TRY" : {
+ "value" : 0.14707169230248823,
+ "code" : "TRY"
+ },
+ "UAH" : {
+ "value" : 0.037400250260034594,
+ "code" : "UAH"
+ },
+ "SGD" : {
+ "value" : 0.70706106532890722,
+ "code" : "SGD"
+ },
+ "MMK" : {
+ "value" : 0.00071152292211045594,
+ "code" : "MMK"
+ },
+ "NIO" : {
+ "value" : 0.029644476461796555,
+ "code" : "NIO"
+ },
+ "BIF" : {
+ "value" : 0.00052823751756257687,
+ "code" : "BIF"
+ },
+ "AFN" : {
+ "value" : 0.013054842217218737,
+ "code" : "AFN"
+ },
+ "LKR" : {
+ "value" : 0.005360736560914881,
+ "code" : "LKR"
+ },
+ "LTC" : {
+ "value" : 43.582596539999997,
+ "code" : "LTC"
+ },
+ "GTQ" : {
+ "value" : 0.13004462611389725,
+ "code" : "GTQ"
+ },
+ "XRP" : {
+ "value" : 0.19793100999999999,
+ "code" : "XRP"
+ },
+ "CHF" : {
+ "value" : 1.033185932140348,
+ "code" : "CHF"
+ },
+ "THB" : {
+ "value" : 0.031427754396750697,
+ "code" : "THB"
+ },
+ "AMD" : {
+ "value" : 0.00207606734847182,
+ "code" : "AMD"
+ },
+ "AOA" : {
+ "value" : 0.0017316827353721443,
+ "code" : "AOA"
+ },
+ "SEK" : {
+ "value" : 0.10440434969401696,
+ "code" : "SEK"
+ },
+ "DASH" : {
+ "value" : 75.360202450000003,
+ "code" : "DASH"
+ },
+ "SAR" : {
+ "value" : 0.2663164782521969,
+ "code" : "SAR"
+ },
+ "KWD" : {
+ "value" : 3.2384363533911289,
+ "code" : "KWD"
+ },
+ "IRR" : {
+ "value" : 2.37501483391515e-05,
+ "code" : "IRR"
+ },
+ "WST" : {
+ "value" : 0.36509328498524657,
+ "code" : "WST"
+ },
+ "BNB" : {
+ "value" : 16.571442189999999,
+ "code" : "BNB"
+ },
+ "BMD" : {
+ "value" : 1,
+ "code" : "BMD"
+ },
+ "BGN" : {
+ "value" : 0.56184762467679716,
+ "code" : "BGN"
+ },
+ "PHP" : {
+ "value" : 0.01975697927641051,
+ "code" : "PHP"
+ },
+ "ZMW" : {
+ "value" : 0.055235914524189821,
+ "code" : "ZMW"
+ },
+ "XAF" : {
+ "value" : 0.0016747515577241058,
+ "code" : "XAF"
+ },
+ "BDT" : {
+ "value" : 0.011772159736906356,
+ "code" : "BDT"
+ },
+ "NOK" : {
+ "value" : 0.10110620296665822,
+ "code" : "NOK"
+ },
+ "BOB" : {
+ "value" : 0.1448300802807618,
+ "code" : "BOB"
+ },
+ "TZS" : {
+ "value" : 0.00043198346421901678,
+ "code" : "TZS"
+ },
+ "XAG" : {
+ "value" : 17.222968550859424,
+ "code" : "XAG"
+ },
+ "VEF" : {
+ "value" : 0.1001251664706049,
+ "code" : "VEF"
+ },
+ "ANG" : {
+ "value" : 0.55713813738692186,
+ "code" : "ANG"
+ },
+ "VUV" : {
+ "value" : 0.0083010903075365523,
+ "code" : "VUV"
+ },
+ "BND" : {
+ "value" : 0.70692710803896297,
+ "code" : "BND"
+ },
+ "XCD" : {
+ "value" : 0.37002090618119926,
+ "code" : "XCD"
+ },
+ "SCR" : {
+ "value" : 0.056999274342238344,
+ "code" : "SCR"
+ },
+ "KYD" : {
+ "value" : 1.2000926471523601,
+ "code" : "KYD"
+ },
+ "DJF" : {
+ "value" : 0.0056268309356187571,
+ "code" : "DJF"
+ },
+ "CLF" : {
+ "value" : 34.456619116532288,
+ "code" : "CLF"
+ },
+ "LSL" : {
+ "value" : 0.05535562028103716,
+ "code" : "LSL"
+ },
+ "MOP" : {
+ "value" : 0.12524683019059812,
+ "code" : "MOP"
+ },
+ "ALL" : {
+ "value" : 0.0088873476253140456,
+ "code" : "ALL"
+ },
+ "UZS" : {
+ "value" : 9.8725590760133264e-05,
+ "code" : "UZS"
+ },
+ "UYU" : {
+ "value" : 0.022942214686775337,
+ "code" : "UYU"
+ },
+ "PLN" : {
+ "value" : 0.24306948141126142,
+ "code" : "PLN"
+ },
+ "LTL" : {
+ "value" : 0.33866849096093798,
+ "code" : "LTL"
+ },
+ "LYD" : {
+ "value" : 0.70511220450510281,
+ "code" : "LYD"
+ },
+ "JPY" : {
+ "value" : 0.0092808717456008376,
+ "code" : "JPY"
+ },
+ "MNT" : {
+ "value" : 0.00035728175233808797,
+ "code" : "MNT"
+ },
+ "FJD" : {
+ "value" : 0.44498831905662473,
+ "code" : "FJD"
+ },
+ "ZWL" : {
+ "value" : 0.0031055900524671115,
+ "code" : "ZWL"
+ },
+ "KPW" : {
+ "value" : 0.0011110363173807097,
+ "code" : "KPW"
+ },
+ "PKR" : {
+ "value" : 0.0062037571938768415,
+ "code" : "PKR"
+ },
+ "MRO" : {
+ "value" : 0.0028011203383314152,
+ "code" : "MRO"
+ },
+ "OMR" : {
+ "value" : 2.5972002181648186,
+ "code" : "OMR"
+ },
+ "GBP" : {
+ "value" : 1.2235109871286642,
+ "code" : "GBP"
+ },
+ "LVL" : {
+ "value" : 1.6531931425548445,
+ "code" : "LVL"
+ },
+ "SHP" : {
+ "value" : 1.2239437671275633,
+ "code" : "SHP"
+ },
+ "GEL" : {
+ "value" : 0.31154094068540877,
+ "code" : "GEL"
+ },
+ "TND" : {
+ "value" : 0.34677069787602949,
+ "code" : "TND"
+ },
+ "DKK" : {
+ "value" : 0.14732205337477994,
+ "code" : "DKK"
+ },
+ "KRW" : {
+ "value" : 0.00081241596998828818,
+ "code" : "KRW"
+ },
+ "NPR" : {
+ "value" : 0.0082777496242315562,
+ "code" : "NPR"
+ },
+ "BSD" : {
+ "value" : 1.0000590034812054,
+ "code" : "BSD"
+ },
+ "CRC" : {
+ "value" : 0.0017559340209898735,
+ "code" : "CRC"
+ },
+ "EGP" : {
+ "value" : 0.063054473453215437,
+ "code" : "EGP"
+ },
+ "MAD" : {
+ "value" : 0.10204590820909329,
+ "code" : "MAD"
+ },
+ "AUD" : {
+ "value" : 0.65917014433848653,
+ "code" : "AUD"
+ },
+ "BTC" : {
+ "value" : 9318.9785578200008,
+ "code" : "BTC"
+ },
+ "SLL" : {
+ "value" : 0.00010261672298827924,
+ "code" : "SLL"
+ },
+ "MWK" : {
+ "value" : 0.0013577148194343087,
+ "code" : "MWK"
+ },
+ "RSD" : {
+ "value" : 0.0093423201844629912,
+ "code" : "RSD"
+ },
+ "NZD" : {
+ "value" : 0.61422797685588981,
+ "code" : "NZD"
+ },
+ "SRD" : {
+ "value" : 0.13408463636782955,
+ "code" : "SRD"
+ },
+ "CLP" : {
+ "value" : 0.0012487488753798847,
+ "code" : "CLP"
+ },
+ "RUB" : {
+ "value" : 0.014138171758795495,
+ "code" : "RUB"
+ },
+ "NAD" : {
+ "value" : 0.055355558996211078,
+ "code" : "NAD"
+ },
+ "HKD" : {
+ "value" : 0.12896486352293318,
+ "code" : "HKD"
+ },
+ "GMD" : {
+ "value" : 0.019454282096622998,
+ "code" : "GMD"
+ },
+ "VND" : {
+ "value" : 4.2961362827225422e-05,
+ "code" : "VND"
+ },
+ "LAK" : {
+ "value" : 0.0001112392094137459,
+ "code" : "LAK"
+ },
+ "CUC" : {
+ "value" : 1,
+ "code" : "CUC"
+ },
+ "RON" : {
+ "value" : 0.22687595217001175,
+ "code" : "RON"
+ },
+ "MUR" : {
+ "value" : 0.02510042743768888,
+ "code" : "MUR"
+ },
+ "XAU" : {
+ "value" : 1733.1022530329287,
+ "code" : "XAU"
+ },
+ "GGP" : {
+ "value" : 1.2239437671275633,
+ "code" : "GGP"
+ },
+ "MXN" : {
+ "value" : 0.043794314919838449,
+ "code" : "MXN"
+ },
+ "BRL" : {
+ "value" : 0.17892198786622648,
+ "code" : "BRL"
+ },
+ "STD" : {
+ "value" : 4.5350048495809031e-05,
+ "code" : "STD"
+ },
+ "AWG" : {
+ "value" : 0.55555555555555558,
+ "code" : "AWG"
+ },
+ "MVR" : {
+ "value" : 0.064725199779183507,
+ "code" : "MVR"
+ },
+ "PAB" : {
+ "value" : 1.0000590034812054,
+ "code" : "PAB"
+ },
+ "TJS" : {
+ "value" : 0.097589500306626206,
+ "code" : "TJS"
+ },
+ "GNF" : {
+ "value" : 0.00010461826968145518,
+ "code" : "GNF"
+ },
+ "MGA" : {
+ "value" : 0.00026213480308829283,
+ "code" : "MGA"
+ },
+ "XDR" : {
+ "value" : 1.3653554702966917,
+ "code" : "XDR"
+ },
+ "ETB" : {
+ "value" : 0.029248580851544938,
+ "code" : "ETB"
+ },
+ "ZAR" : {
+ "value" : 0.05703725998934886,
+ "code" : "ZAR"
+ },
+ "COP" : {
+ "value" : 0.00026235150904588007,
+ "code" : "COP"
+ },
+ "IDR" : {
+ "value" : 6.7932475119730993e-05,
+ "code" : "IDR"
+ },
+ "SVC" : {
+ "value" : 0.11429099126405379,
+ "code" : "SVC"
+ },
+ "CVE" : {
+ "value" : 0.0099629527601613407,
+ "code" : "CVE"
+ },
+ "ETC" : {
+ "value" : 6.34598935,
+ "code" : "ETC"
+ },
+ "TTD" : {
+ "value" : 0.14800871297691554,
+ "code" : "TTD"
+ },
+ "GIP" : {
+ "value" : 1.2239437671275633,
+ "code" : "GIP"
+ },
+ "PYG" : {
+ "value" : 0.00015129248329562634,
+ "code" : "PYG"
+ },
+ "DOGE" : {
+ "value" : 0.0024541300000000001,
+ "code" : "DOGE"
+ },
+ "MZN" : {
+ "value" : 0.014539099425791353,
+ "code" : "MZN"
+ },
+ "FKP" : {
+ "value" : 1.2239437671275633,
+ "code" : "FKP"
+ },
+ "KZT" : {
+ "value" : 0.0024216670033994636,
+ "code" : "KZT"
+ },
+ "USD" : {
+ "value" : 1,
+ "code" : "USD"
+ },
+ "UGX" : {
+ "value" : 0.00026407177766677375,
+ "code" : "UGX"
+ },
+ "RWF" : {
+ "value" : 0.0010487894766981003,
+ "code" : "RWF"
+ },
+ "GHS" : {
+ "value" : 0.1736202744033713,
+ "code" : "GHS"
+ },
+ "ARS" : {
+ "value" : 0.014687716887089395,
+ "code" : "ARS"
+ },
+ "JEP" : {
+ "value" : 1.2239437671275633,
+ "code" : "JEP"
+ },
+ "DOP" : {
+ "value" : 0.01807415144750818,
+ "code" : "DOP"
+ },
+ "LBP" : {
+ "value" : 0.00066138773607610235,
+ "code" : "LBP"
+ },
+ "BZD" : {
+ "value" : 0.49612280031553413,
+ "code" : "BZD"
+ },
+ "BTN" : {
+ "value" : 0.013244403345589262,
+ "code" : "BTN"
+ },
+ "ADA" : {
+ "value" : 0.055333640000000003,
+ "code" : "ADA"
+ },
+ "MYR" : {
+ "value" : 0.23022372450876591,
+ "code" : "MYR"
+ },
+ "YER" : {
+ "value" : 0.0039948065437631674,
+ "code" : "YER"
+ },
+ "JMD" : {
+ "value" : 0.006803018199842469,
+ "code" : "JMD"
+ },
+ "TOP" : {
+ "value" : 0.43508508741512031,
+ "code" : "TOP"
+ },
+ "SOS" : {
+ "value" : 0.0017182113785871572,
+ "code" : "SOS"
+ },
+ "TMT" : {
+ "value" : 0.28490028490028491,
+ "code" : "TMT"
+ },
+ "MDL" : {
+ "value" : 0.056627645877204424,
+ "code" : "MDL"
+ },
+ "XOF" : {
+ "value" : 0.0016747515577241058,
+ "code" : "XOF"
+ },
+ "ETH" : {
+ "value" : 205.71375277000001,
+ "code" : "ETH"
+ },
+ "TWD" : {
+ "value" : 0.03343811165620806,
+ "code" : "TWD"
+ },
+ "BBD" : {
+ "value" : 0.49529519098087271,
+ "code" : "BBD"
+ },
+ "CAD" : {
+ "value" : 0.71893310327474036,
+ "code" : "CAD"
+ },
+ "CNY" : {
+ "value" : 0.14072220606262223,
+ "code" : "CNY"
+ },
+ "JOD" : {
+ "value" : 1.4104392248790194,
+ "code" : "JOD"
+ },
+ "XPF" : {
+ "value" : 0.0092115128324525945,
+ "code" : "XPF"
+ },
+ "XLM" : {
+ "value" : 0.068425250000000007,
+ "code" : "XLM"
+ },
+ "IQD" : {
+ "value" : 0.00083769121244326632,
+ "code" : "IQD"
+ },
+ "HNL" : {
+ "value" : 0.040298045959840822,
+ "code" : "HNL"
+ },
+ "AED" : {
+ "value" : 0.27225404569511902,
+ "code" : "AED"
+ },
+ "EOS" : {
+ "value" : 2.5032196999999998,
+ "code" : "EOS"
+ },
+ "ERN" : {
+ "value" : 0.066665991117956666,
+ "code" : "ERN"
+ },
+ "KES" : {
+ "value" : 0.0093591569945238647,
+ "code" : "KES"
+ },
+ "KMF" : {
+ "value" : 0.0022294061217904768,
+ "code" : "KMF"
+ },
+ "MKD" : {
+ "value" : 0.017829505849539937,
+ "code" : "MKD"
+ },
+ "DZD" : {
+ "value" : 0.007789974800989515,
+ "code" : "DZD"
+ },
+ "BSV" : {
+ "value" : 193.44753942,
+ "code" : "BSV"
+ },
+ "BWP" : {
+ "value" : 0.082500865227824072,
+ "code" : "BWP"
+ },
+ "SBD" : {
+ "value" : 0.12014800311615861,
+ "code" : "SBD"
+ },
+ "AZN" : {
+ "value" : 0.58747986412765707,
+ "code" : "AZN"
+ },
+ "BCH" : {
+ "value" : 235.7315255,
+ "code" : "BCH"
+ },
+ "KGS" : {
+ "value" : 0.01332812612331113,
+ "code" : "KGS"
+ },
+ "BYN" : {
+ "value" : 0.4182779080248708,
+ "code" : "BYN"
+ },
+ "KHR" : {
+ "value" : 0.00024331990144781915,
+ "code" : "KHR"
+ },
+ "NEO" : {
+ "value" : 9.8775383399999992,
+ "code" : "NEO"
+ },
+ "ZMK" : {
+ "value" : 0.00011109625114812615,
+ "code" : "ZMK"
+ },
+ "HTG" : {
+ "value" : 0.009394342069601741,
+ "code" : "HTG"
+ },
+ "CZK" : {
+ "value" : 0.040534238014289292,
+ "code" : "CZK"
+ },
+ "IMP" : {
+ "value" : 1.2239437671275633,
+ "code" : "IMP"
+ },
+ "BAM" : {
+ "value" : 0.5616873086752604,
+ "code" : "BAM"
+ }
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..ea5261e51
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
@@ -0,0 +1,313 @@
+{
+ "financial": [
+ {
+ "prototypeExpressions": [
+ "present value of 1000 after __timespan at 10%",
+ "present value of 1000 over __timespan at 10%"
+ ],
+ "identifier": "presentValue"
+ },
+ {
+ "prototypeExpressions": [
+ "annual return on 500 invested 1000 returned after __timespan",
+ "yearly return on 500 invested 1000 returned after __timespan",
+ "annual return on 500 invested 1000 returned over __timespan",
+ "yearly return on 500 invested 1000 returned over __timespan"
+ ],
+ "identifier": "returnOnInvestmentAfter"
+ },
+ {
+ "identifier": "returnOnInvestment",
+ "prototypeExpressions": [
+ "500 invested 1000 returned"
+ ]
+ },
+ {
+ "identifier": "totalLoanRepayment",
+ "prototypeExpressions": [
+ "total repayment on 10000 for __timespan at 6%",
+ "total repayment on 10000 after __timespan at 6%",
+ "total repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "annual repayment on 10000 for __timespan at 6%",
+ "annual repayment on 10000 after __timespan at 6%",
+ "annual repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 after __timespan at 6%",
+ "yearly repayment on 10000 for __timespan at 6%"
+ ],
+ "identifier": "annualLoanRepayment"
+ },
+ {
+ "identifier": "monthlyLoanRepayment",
+ "prototypeExpressions": [
+ "monthly repayment on 10000 for __timespan at 6%",
+ "monthly repayment on 10000 after __timespan at 6%",
+ "monthly repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "total interest on 10000 for __timespan at 6%",
+ "total interest on 10000 after __timespan at 6%",
+ "total interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "totalInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "annualInterestOnLoanRepayment",
+ "prototypeExpressions": [
+ "annual interest on 10000 for __timespan at 6%",
+ "annual interest on 10000 after __timespan at 6%",
+ "annual interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 after __timespan at 6%",
+ "yearly interest on 10000 for __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "monthly interest on 10000 for __timespan at 6%",
+ "monthly interest on 10000 after __timespan at 6%",
+ "monthly interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "monthlyInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "compoundInterest",
+ "prototypeExpressions": [
+ "100 after __timespan at 10%",
+ "100 for __timespan at 10%",
+ "100 over __timespan at 10%"
+ ]
+ }
+ ],
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "10% of 100"
+ ],
+ "identifier": "percentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10% off 100"
+ ],
+ "identifier": "percentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "10% on 100"
+ ],
+ "identifier": "percentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30 is 20% of what"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% of what is 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 is 20% off what"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% off what is 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 is 20% on what"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% on what is 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10 is what % of 20",
+ "10 as a % of 20",
+ "10 as % of 20"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10 is what % off 20",
+ "10 as a % off 20",
+ "10 as % off 20"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20 is what % on 10",
+ "20 as a % on 10",
+ "20 as % on 10"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "remainder of 20 divided by 3"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "half of 20"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "smaller of 2 and 30",
+ "lesser of 2 and 30"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "larger of 2 and 30",
+ "greater of 2 and 30"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "midpoint between 2 and 32"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "6 is to 600 as what is to 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "6 is to 600 as 8 is to what"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "random number between 1 and 5",
+ "random between 1 and 5"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ],
+ "identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ],
+ "identifier": "unitInTimespan"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__unit between __datestamp and __datestamp",
+ "__unit from __datestamp to __datestamp",
+ "__unit in __datestamp to __datestamp"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit to __datestamp",
+ "__unit before __datestamp",
+ "__unit until __datestamp",
+ "__unit till __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp to __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp to __timestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitSinceDate",
+ "prototypeExpressions": [
+ "__unit since __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan from __datestamp",
+ "__timespan after __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan ago"
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
+ {
+ "prototypeExpressions": [
+ "new timestamp"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone time",
+ "time in __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "time difference between __timezone and __timezone",
+ "difference between __timezone and __timezone",
+ "time difference between __timezone & __timezone",
+ "difference between __timezone & __timezone"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..e3332a1d4
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
@@ -0,0 +1,139 @@
+{
+ "fixtures": {
+ "decimalPlacesTypes": [
+ "dp",
+ "digit",
+ "digits"
+ ],
+ "multiplierTypes": [
+ "multiplier"
+ ],
+ "divisionOperators": [
+ "÷",
+ "per"
+ ],
+ "roundingConverters": [
+ "rounded"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "tomorrowDateAliases": [
+ "tomorrow"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "laptime"
+ ],
+ "numberTypes": [
+ "number"
+ ],
+ "roundingDownConverters": [
+ "rounded down"
+ ],
+ "yesterdayDateAliases": [
+ "yesterday"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "todayDateAliases": [
+ "today"
+ ],
+ "timestampTypes": [
+ "timestamp"
+ ],
+ "roundingUpConverters": [
+ "rounded up"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "dateTypes": [
+ "date"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "monthOfYearDateAliases": [
+ "jan",
+ "feb",
+ "mar",
+ "apr",
+ "may",
+ "june",
+ "july",
+ "aug",
+ "sept",
+ "oct",
+ "nov",
+ "dec",
+ "january",
+ "february",
+ "march",
+ "april",
+ "may",
+ "june",
+ "july",
+ "august",
+ "september",
+ "october",
+ "november",
+ "december"
+ ],
+ "colons": [
+ ":",
+ ":"
+ ],
+ "additionOperators": [
+ "plus"
+ ],
+ "timespanTypes": [
+ "timespan"
+ ],
+ "nowDateAliases": [
+ "now"
+ ],
+ "converterSymbols": [
+ "to",
+ "as"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "fractionTypes": [
+ "fraction"
+ ],
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "percentTypes": [
+ "percent",
+ "percentage"
+ ],
+ "dayOfWeekDateAliases": [
+ "monday",
+ "tuesday",
+ "wednesday",
+ "thursday",
+ "friday",
+ "saturday",
+ "sunday",
+ "mon",
+ "tu",
+ "tues",
+ "wed",
+ "thur",
+ "fri",
+ "sat",
+ "sun"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/TimeZoneAbbrieviations.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/TimeZoneAbbrieviations.json
new file mode 100644
index 000000000..5614c4c42
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/TimeZoneAbbrieviations.json
@@ -0,0 +1,64 @@
+{
+ "ACDT": "10.5",
+ "ACST": "9.5",
+ "ADT": "-3.0",
+ "AEDT": "11.0",
+ "AEST": "10.0",
+ "AKDT": "-8.0",
+ "AKST": "-9.0",
+ "ART": "-3.0",
+ "AST": "-4.0",
+ "AWST": "8.0",
+ "AWDT": "9.0",
+ "BDT": "6.0",
+ "BRST": "-2.0",
+ "BRT": "-3.0",
+ "BST": "1.0",
+ "CAT": "2.0",
+ "CDT": "-5.0",
+ "CEST": "2.0",
+ "CET": "1.0",
+ "CLST": "-3.0",
+ "CLT": "-4.0",
+ "COT": "-5.0",
+ "CST": "-6.0",
+ "EAT": "3.0",
+ "EDT": "-4.0",
+ "EEST": "3.0",
+ "EET": "2.0",
+ "EST": "-5.0",
+ "GMT": "0.0",
+ "GST": "4.0",
+ "HKT": "8.0",
+ "HST": "-10.0",
+ "ICT": "7.0",
+ "IRST": "3.5",
+ "IST": "5.5",
+ "JST": "8.0",
+ "KST": "9.0",
+ "MDT": "-6.0",
+ "MSD": "-6.0",
+ "MSK": "3.0",
+ "MST": "-7.0",
+ "NDT": "-2.5",
+ "NST": "-3.5",
+ "NZDT": "13.0",
+ "NZST": "12.0",
+ "PDT": "-7.0",
+ "PET": "-5.0",
+ "PHT": "8.0",
+ "PKT": "5.0",
+ "PST": "-8.0",
+ "SAST": "2.0",
+ "SGT": "8.0",
+ "SST": "-11.0",
+ "TRT": "3.0",
+ "UTC": "0.0",
+ "WAT": "1.0",
+ "WEST": "1.0",
+ "WET": "0.0",
+ "WIB": "7.0",
+ "WIT": "9.0",
+ "WITA": "8.0"
+
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..025cac593
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/UnitDescriptions.json
@@ -0,0 +1,1647 @@
+{
+ "energy" : [
+ {
+ "symbol" : "J",
+ "aliases" : [
+ "joule",
+ "joules"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "kJ",
+ "aliases" : [
+ "kilojoule",
+ "kilojoules"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "mJ",
+ "aliases" : [
+ "megajoule",
+ "megajoules"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "gJ",
+ "aliases" : [
+ "gigajoule",
+ "gigajoules"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "cal",
+ "aliases" : [
+ "calorie",
+ "calories"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "kCal",
+ "aliases" : [
+ "kilocalorie",
+ "kilocalories"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "Wh",
+ "aliases" : [
+ "watt hour",
+ "watt hours"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "W m",
+ "aliases" : [
+ "watt minute",
+ "watt minutes"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "W s",
+ "aliases" : [
+ "watt second",
+ "watt seconds"
+ ],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "kWh",
+ "aliases" : [
+ "kilowatt hour",
+ "kilowatt hours"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "MWh",
+ "aliases" : [
+ "megawatt hour",
+ "megawatt hours"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "GWh",
+ "aliases" : [
+ "gigawatt hour",
+ "gigawatt hours"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "TWh",
+ "aliases" : [
+ "terawatt hour",
+ "terawatt hours"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "ML",
+ "aliases" : [
+ "megaliter",
+ "megaliters",
+ "megalitre",
+ "megalitres",
+ "ML"
+ ],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "kL",
+ "aliases" : [
+ "kiloliter",
+ "kiloliters",
+ "kilolitre",
+ "kilolitres",
+ "kL"
+ ],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "L",
+ "aliases" : [
+ "liter",
+ "liters",
+ "litre",
+ "litres",
+ "L"
+ ],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "mL",
+ "aliases" : [
+ "milliliter",
+ "milliliters",
+ "millilitre",
+ "millilitres",
+ "mL"
+ ],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "km³",
+ "aliases" : [
+ "cubic kilometer",
+ "cubic kilometers",
+ "cubic kilometre",
+ "cubic kilometres",
+ "kilometer^3",
+ "kilometers^3",
+ "kilometer³",
+ "kilometre³",
+ "kilometers³",
+ "kilometres³",
+ "km3",
+ "km^3"
+ ],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "m³",
+ "aliases" : [
+ "cubic meter",
+ "cubic meters",
+ "cubic metre",
+ "cubic metres",
+ "m3",
+ "m^3",
+ "meter³",
+ "metre³",
+ "meters³",
+ "metres³"
+ ],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "cm³",
+ "aliases" : [
+ "cubic centimeter",
+ "cubic centimeters",
+ "cubic centimetre",
+ "cubic centimetres",
+ "cm3",
+ "cm^3",
+ "centimeter³"
+ ],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "mm³",
+ "aliases" : [
+ "cubic millimeter",
+ "cubic millimeters",
+ "cubic millimetre",
+ "cubic millimetres",
+ "mm3",
+ "mm^3"
+ ],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "in³",
+ "aliases" : [
+ "cubic inch",
+ "inches^3",
+ "cubic inches",
+ "in³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "ft³",
+ "aliases" : [
+ "cubic foot",
+ "cubic feet",
+ "cuft",
+ "ft³",
+ "ft3",
+ "ft^3"
+ ],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "yd³",
+ "aliases" : [
+ "cubic yard",
+ "cubic yards",
+ "yd³",
+ "yard³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "mi³",
+ "aliases" : [
+ "cubic mile",
+ "cubic miles",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "mile³",
+ "mile^3",
+ "miles^3"
+ ],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "bsh",
+ "aliases" : [
+ "bushel",
+ "bushels"
+ ],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "metric cup",
+ "aliases" : [
+ "metric cup",
+ "metric cups"
+ ],
+ "identifier" : "metricCups"
+ },
+ {
+ "symbol" : "cup",
+ "aliases" : [
+ "cup",
+ "cups"
+ ],
+ "identifier" : "cups"
+ },
+ {
+ "symbol" : "af",
+ "aliases" : [
+ "acre feet",
+ "acre foot"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pint",
+ "pints"
+ ],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "qt",
+ "aliases" : [
+ "quart",
+ "quarts"
+ ],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "gal",
+ "aliases" : [
+ "gallon",
+ "gallons",
+ "gal"
+ ],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "tbsp",
+ "aliases" : [
+ "tablespoon",
+ "tablespoons",
+ "tbsp"
+ ],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "tsp",
+ "aliases" : [
+ "teaspoon",
+ "teaspoons",
+ "tsp"
+ ],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "fl oz",
+ "aliases" : [
+ "fluid ounce",
+ "fluid ounces",
+ "floz"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "B",
+ "aliases" : [
+ "byte",
+ "bytes"
+ ],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "bit",
+ "aliases" : [
+ "bit",
+ "bits"
+ ],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "YB",
+ "aliases" : [
+ "yottabyte",
+ "yottabytes"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "ZB",
+ "aliases" : [
+ "zettabyte",
+ "zettabytes"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "EB",
+ "aliases" : [
+ "exabyte",
+ "exabytes"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "petabyte",
+ "petabytes"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "terabyte",
+ "terabytes",
+ "TB",
+ "tb"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "gigabyte",
+ "gigabytes",
+ "GB",
+ "gb"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "megabyte",
+ "megabytes",
+ "MB",
+ "mb"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "kilobyte",
+ "kilobytes",
+ "KB",
+ "kb"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "yottabit",
+ "yottabits",
+ "Ybit"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "zettabit",
+ "zettabits",
+ "Zbit"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "exabit",
+ "exabits",
+ "Ebit"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "petabit",
+ "petabits",
+ "Pbit"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "terabit",
+ "terabits",
+ "Tbit"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "gigabit",
+ "gigabits",
+ "Gbit"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "megabit",
+ "megabits",
+ "Mbit"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "kilobit",
+ "kilobits",
+ "Kbit",
+ "Kb"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [
+ "yobibyte",
+ "yobibytes",
+ "YiB"
+ ],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [
+ "zebibyte",
+ "zebibytes",
+ "ZiB"
+ ],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [
+ "exbibyte",
+ "exbibytes",
+ "EiB"
+ ],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [
+ "pebibyte",
+ "pebibytes",
+ "PiB"
+ ],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [
+ "tebibyte",
+ "tebibytes",
+ "TiB"
+ ],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [
+ "gibibyte",
+ "gibibytes",
+ "GiB"
+ ],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [
+ "mebibyte",
+ "mebibytes",
+ "MiB"
+ ],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [
+ "kibibyte",
+ "kibibytes",
+ "KiB"
+ ],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [
+ "yobibit",
+ "yobibits",
+ "Yibit"
+ ],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [
+ "zebibit",
+ "zebibits",
+ "Zibit"
+ ],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "exbibit",
+ "exbibits",
+ "Eibit"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [
+ "pebibit",
+ "pebibits",
+ "Pibit"
+ ],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [
+ "tebibit",
+ "tebibits",
+ "Tibit"
+ ],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [
+ "gibibit",
+ "gibibits",
+ "Gibit"
+ ],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [
+ "mebibit",
+ "mebibits",
+ "Mibit"
+ ],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [
+ "kibibit",
+ "kibibits",
+ "Kibit"
+ ],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "kelvin"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "degree celsius",
+ "degrees celsius",
+ "ºC",
+ "C",
+ "degC",
+ "celcius"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "degree fahrenheit",
+ "degrees fahrenheit",
+ "ºF",
+ "F",
+ "degF",
+ "fahrenheit"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [
+
+ ],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [
+
+ ],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "gBps"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "mBps"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "kBps"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "Pbps"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "tbps"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "gbps"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "mbps"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "kbps"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "m\/s",
+ "aliases" : [
+ "meter per second",
+ "meters per second",
+ "metre per second",
+ "metres per second"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "km\/h",
+ "aliases" : [
+ "kilometer per hour",
+ "kilometers per hour",
+ "kilometre per hour",
+ "kilometres per hour",
+ "kph"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "mph",
+ "aliases" : [
+ "mile per hour",
+ "miles per hour"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "kn",
+ "aliases" : [
+ "knot",
+ "knots"
+ ],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "degree",
+ "degrees"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "radian",
+ "radians"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "meter",
+ "meters",
+ "metre",
+ "metres"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "kilometer",
+ "kilometers",
+ "kilometre",
+ "kilometres"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "centimeter",
+ "centimeters",
+ "centimetre",
+ "centimetres"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "millimeter",
+ "millimetres",
+ "millimetre",
+ "millimeters"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "micrometre",
+ "micrometres",
+ "micrometre",
+ "micrometers"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "nanometer",
+ "nanometers",
+ "nanometre",
+ "nanometres"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "inch",
+ "inches"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "foot",
+ "feet"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "yard",
+ "yards"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "mile",
+ "miles"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "light year",
+ "light years"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "parsec",
+ "parsecs"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "nautical mile",
+ "nautical miles"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "fathom",
+ "fathoms"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "furlong",
+ "furlongs"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "pixel",
+ "pixels"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [
+
+ ],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pts"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "square kilometer",
+ "square kilometers",
+ "square kilometre",
+ "square kilometres",
+ "kilometre²",
+ "kilometres²",
+ "kilometer²",
+ "kilometers²",
+ "km^2",
+ "km2"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "square meter",
+ "square meters",
+ "square metre",
+ "square metres",
+ "m^2",
+ "metre^2",
+ "metres^2",
+ "meter^2",
+ "meters^2",
+ "meter²",
+ "meters²",
+ "metres²",
+ "metre²",
+ "m2"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "square centimeter",
+ "square centimeters",
+ "square centimetre",
+ "square centimetres",
+ "centimetres^2",
+ "centimetres²",
+ "centimeters^2",
+ "centimeters²",
+ "cm^2",
+ "cm2"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "square millimeter",
+ "square millimeters",
+ "square millimetre",
+ "square millimetres",
+ "millimeters^2",
+ "millimeters²",
+ "millimetres^2",
+ "millimetres²",
+ "mm^2",
+ "mm2"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "square micrometer",
+ "square micrometers",
+ "square micrometre",
+ "square micrometres",
+ "micrometers^2",
+ "micrometers²",
+ "micrometres^2",
+ "micrometres²",
+ "µm^2",
+ "µm2"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "square inch",
+ "square inches",
+ "sqin",
+ "in^2",
+ "in2",
+ "inches²"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "square foot",
+ "square feet",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "feett^2",
+ "feet²"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "square yard",
+ "square yards",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "yard^2",
+ "yards²",
+ "sqyd"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "square mile",
+ "square miles",
+ "mi^2",
+ "mi2",
+ "mile^2",
+ "miles^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "miles²"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "acre",
+ "acres",
+ "ac"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "hectare",
+ "hectares",
+ "ha"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "ares",
+ "aliases" : [
+
+ ],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L\/100km",
+ "aliases" : [
+ "l\/100 km",
+ "l\/100km",
+ "l \/ 100km",
+ "liters \/ 100km",
+ "litres \/ 100km",
+ "l \/ 100 km",
+ "liters \/ 100 km",
+ "litres \/ 100 km"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "miles per gallon"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "watt",
+ "watts"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "milliwatt",
+ "milliwatts"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "kilowatt",
+ "kilowatts"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "megawatt",
+ "megawatts"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "gigawatt",
+ "gigawatts"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "terawatt",
+ "terawatts"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "horsepower"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "kilogram",
+ "kilograms"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "gram",
+ "grams"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "milligram",
+ "milligrams"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "nanogram",
+ "nanograms"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "ounce",
+ "ounces"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "lbs",
+ "pound",
+ "pounds"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "stone",
+ "stones"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "metric ton",
+ "metric tons"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "short ton",
+ "short tons",
+ "tons",
+ "tonne",
+ "tonnes"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "carat",
+ "carats"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "ounce troy",
+ "ounces troy"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "hour",
+ "hours",
+ "hrs",
+ "h"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "second",
+ "seconds",
+ "sec",
+ "secs"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "minute",
+ "minutes",
+ "mins"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "days"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "weekday",
+ "weekdays",
+ "workdays",
+ "week day",
+ "week days",
+ "work days"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "weeks"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "months"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "years"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "millisecond",
+ "milliseconds"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "microsecond",
+ "microseconds"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "nanosecond",
+ "nanoseconds"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "usd",
+ "US$"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "hertz",
+ "hz"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "kilohertz"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "megahertz"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "gigahertz"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "terahertz"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "millihertz"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "microhertz"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "nanohertz"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h
new file mode 100644
index 000000000..c8858af55
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Headers/SoulverCore-Swift.h
@@ -0,0 +1,292 @@
+// Generated by Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgcc-compat"
+
+#if !defined(__has_include)
+# define __has_include(x) 0
+#endif
+#if !defined(__has_attribute)
+# define __has_attribute(x) 0
+#endif
+#if !defined(__has_feature)
+# define __has_feature(x) 0
+#endif
+#if !defined(__has_warning)
+# define __has_warning(x) 0
+#endif
+
+#if __has_include()
+# include
+#endif
+
+#pragma clang diagnostic ignored "-Wauto-import"
+#include
+#include
+#include
+#include
+
+#if !defined(SWIFT_TYPEDEFS)
+# define SWIFT_TYPEDEFS 1
+# if __has_include()
+# include
+# elif !defined(__cplusplus)
+typedef uint_least16_t char16_t;
+typedef uint_least32_t char32_t;
+# endif
+typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
+typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
+typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
+typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
+typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
+typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
+typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
+typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
+typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
+typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
+typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
+typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
+#endif
+
+#if !defined(SWIFT_PASTE)
+# define SWIFT_PASTE_HELPER(x, y) x##y
+# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
+#endif
+#if !defined(SWIFT_METATYPE)
+# define SWIFT_METATYPE(X) Class
+#endif
+#if !defined(SWIFT_CLASS_PROPERTY)
+# if __has_feature(objc_class_property)
+# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
+# else
+# define SWIFT_CLASS_PROPERTY(...)
+# endif
+#endif
+
+#if __has_attribute(objc_runtime_name)
+# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
+#else
+# define SWIFT_RUNTIME_NAME(X)
+#endif
+#if __has_attribute(swift_name)
+# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
+#else
+# define SWIFT_COMPILE_NAME(X)
+#endif
+#if __has_attribute(objc_method_family)
+# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
+#else
+# define SWIFT_METHOD_FAMILY(X)
+#endif
+#if __has_attribute(noescape)
+# define SWIFT_NOESCAPE __attribute__((noescape))
+#else
+# define SWIFT_NOESCAPE
+#endif
+#if __has_attribute(ns_consumed)
+# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
+#else
+# define SWIFT_RELEASES_ARGUMENT
+#endif
+#if __has_attribute(warn_unused_result)
+# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+# define SWIFT_WARN_UNUSED_RESULT
+#endif
+#if __has_attribute(noreturn)
+# define SWIFT_NORETURN __attribute__((noreturn))
+#else
+# define SWIFT_NORETURN
+#endif
+#if !defined(SWIFT_CLASS_EXTRA)
+# define SWIFT_CLASS_EXTRA
+#endif
+#if !defined(SWIFT_PROTOCOL_EXTRA)
+# define SWIFT_PROTOCOL_EXTRA
+#endif
+#if !defined(SWIFT_ENUM_EXTRA)
+# define SWIFT_ENUM_EXTRA
+#endif
+#if !defined(SWIFT_CLASS)
+# if __has_attribute(objc_subclassing_restricted)
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# else
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# endif
+#endif
+#if !defined(SWIFT_RESILIENT_CLASS)
+# if __has_attribute(objc_class_stub)
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# else
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# endif
+#endif
+
+#if !defined(SWIFT_PROTOCOL)
+# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+#endif
+
+#if !defined(SWIFT_EXTENSION)
+# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
+#endif
+
+#if !defined(OBJC_DESIGNATED_INITIALIZER)
+# if __has_attribute(objc_designated_initializer)
+# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+# else
+# define OBJC_DESIGNATED_INITIALIZER
+# endif
+#endif
+#if !defined(SWIFT_ENUM_ATTR)
+# if defined(__has_attribute) && __has_attribute(enum_extensibility)
+# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
+# else
+# define SWIFT_ENUM_ATTR(_extensibility)
+# endif
+#endif
+#if !defined(SWIFT_ENUM)
+# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# if __has_feature(generalized_swift_name)
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# else
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
+# endif
+#endif
+#if !defined(SWIFT_UNAVAILABLE)
+# define SWIFT_UNAVAILABLE __attribute__((unavailable))
+#endif
+#if !defined(SWIFT_UNAVAILABLE_MSG)
+# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
+#endif
+#if !defined(SWIFT_AVAILABILITY)
+# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
+#endif
+#if !defined(SWIFT_WEAK_IMPORT)
+# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
+#endif
+#if !defined(SWIFT_DEPRECATED)
+# define SWIFT_DEPRECATED __attribute__((deprecated))
+#endif
+#if !defined(SWIFT_DEPRECATED_MSG)
+# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
+#endif
+#if __has_feature(attribute_diagnose_if_objc)
+# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
+#else
+# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
+#endif
+#if !defined(IBSegueAction)
+# define IBSegueAction
+#endif
+#if __has_feature(modules)
+#if __has_warning("-Watimport-in-framework-header")
+#pragma clang diagnostic ignored "-Watimport-in-framework-header"
+#endif
+@import Foundation;
+#endif
+
+#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
+#pragma clang diagnostic ignored "-Wduplicate-method-arg"
+#if __has_warning("-Wpragma-clang-attribute")
+# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
+#endif
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wnullability"
+
+#if __has_attribute(external_source_symbol)
+# pragma push_macro("any")
+# undef any
+# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SoulverCore",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
+# pragma pop_macro("any")
+#endif
+
+
+/// Subclass of Operation
that add support of asynchronous operations.
+/// How to use:
+///
+/// -
+/// Call
super.main()
when override main
method, call super.start()
when override start
method.
+///
+/// -
+/// When operation is finished or cancelled set
self.state = .finished
+///
+///
+SWIFT_CLASS("_TtC11SoulverCore21AsynchronousOperation")
+@interface AsynchronousOperation : NSOperation
+@property (nonatomic, readonly, getter=isAsynchronous) BOOL asynchronous;
+@property (nonatomic, readonly, getter=isExecuting) BOOL executing;
+@property (nonatomic, readonly, getter=isFinished) BOOL finished;
+- (void)start;
+- (void)main;
+- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@class NSUnitConverter;
+@class NSCoder;
+
+SWIFT_CLASS("_TtC11SoulverCore8NullUnit")
+@interface NullUnit : NSDimension
++ (nonnull instancetype)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+
+
+
+
+SWIFT_CLASS("_TtC11SoulverCore19UnitComputerStorage")
+@interface UnitComputerStorage : NSDimension
++ (UnitComputerStorage * _Nonnull)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+SWIFT_CLASS("_TtC11SoulverCore12UnitCurrency")
+@interface UnitCurrency : NSDimension
++ (UnitCurrency * _Nonnull)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+SWIFT_CLASS("_TtC11SoulverCore16UnitDataTransfer")
+@interface UnitDataTransfer : NSDimension
++ (UnitDataTransfer * _Nonnull)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+
+
+
+
+
+#if __has_attribute(external_source_symbol)
+# pragma clang attribute pop
+#endif
+#pragma clang diagnostic pop
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Headers/SoulverCore.h b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Headers/SoulverCore.h
new file mode 100644
index 000000000..114ccaec8
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Headers/SoulverCore.h
@@ -0,0 +1,17 @@
+//
+// SoulverCore.h
+// SoulverCore
+//
+// Created by Zac Cohan on 3/10/18.
+// Copyright © 2020 Zac Cohan. All rights reserved.
+//
+
+#import
+// In this header, you should import all the public headers of your framework using statements like #import
+
+//! Project version number for SoulverCore.
+FOUNDATION_EXPORT double SoulverCoreVersionNumber;
+
+//! Project version string for SoulverCore.
+FOUNDATION_EXPORT const unsigned char SoulverCoreVersionString[];
+
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Info.plist b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Info.plist
new file mode 100644
index 000000000..07dd4f309
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Info.plist differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
new file mode 100644
index 000000000..713d393c9
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
new file mode 100644
index 000000000..0dd96177d
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
@@ -0,0 +1,1600 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
+// swift-module-flags: -target x86_64-apple-ios12.2-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
+import Foundation
+@_exported import SoulverCore
+import Swift
+import os
+import os.signpost
+public enum TokenType : Swift.CaseIterable {
+ case number
+ case `operator`
+ case percentageSymbol
+ case converterSymbol
+ case unit
+ case bracket
+ case whitespace
+ case variable
+ case variableDeclarationSymbol
+ case pi
+ case typeName
+ case conditionalKeyword
+ case colon
+ case function
+ case timezone
+ case object
+ case propertySelector
+ case label
+ case fraction
+ case converter
+ case timestamp
+ case datestamp
+ case iso8601
+ case timespan
+ case laptime
+ case dateWord
+ case unitExpression
+ case compoundUnitExpression
+ case conditionalExpression
+ case percentage
+ case multiplier
+ case boolean
+ case rate
+ case functionExpression
+ case wordFunction
+ case declaredVariable
+ case variableDeclaration
+ case subexpression
+ case comment
+ case wordComment
+ case bracketComment
+ case slashComment
+ case legacyQuotationComment
+ case labelExpression
+ case externalExpression
+ case evaluatedExternalExpression
+ case unidentified
+ case custom
+ case error
+ public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public typealias AllCases = [SoulverCore.TokenType]
+ public static var allCases: [SoulverCore.TokenType] {
+ get
+ }
+}
+public enum TokenSubType {
+ case additionOperator
+ case subtractionOperator
+ case multiplicationOperator
+ case divisionOperator
+ case reverseDivisionOperator
+ case powerOperator
+ case modOperator
+ case lesserOf
+ case greaterOf
+ case greaterThan
+ case greaterThanOrEqualTo
+ case lessThan
+ case lessThanOrEqualTo
+ case equalTo
+ case notEqualTo
+ case `false`
+ case `true`
+ case openBracket
+ case closeBracket
+ case numberConverter
+ case fractionConverter
+ case multiplierConveter
+ case percentageConverter
+ case unitConverter
+ case rateConverter
+ case dateConverter
+ case iso8601Converter
+ case timestampConverter
+ case timespanConverter
+ case laptimeConverter
+ case timezoneConverter
+ case roundingToDpConverter
+ case roundingUpConverter
+ case roundingConverter
+ case roundingDownConverter
+ case dateWordToday
+ case dateWordNow
+ case dateWordTomorrow
+ case dateWordYesterday
+ case dateWordDayOfWeek
+ case dateWordMonthOfYear
+ case numberTypeName
+ case fractionTypeName
+ case multiplierTypeName
+ case percentageTypeName
+ case rateTypeName
+ case timestampTypeName
+ case timespanTypeName
+ case laptimeTypeName
+ case dateTypeName
+ case iso8601TypeName
+ case decimalPlacesTypeName
+ case binaryTypeName
+ case hexTypeName
+ case conditionalKeywordIf
+ case conditionalKeywordThen
+ case conditionalKeywordElse
+ case conditionalKeywordUnless
+ case conditionalKeywordAnd
+ case conditionalKeywordOr
+ case unitMismatchError
+ case infinityError
+ case divideByZeroError
+ case imaginaryNumberError
+ case unsupportedUnitMultiplication
+ case unsupportedRate
+ case badDivision
+ case unknownError
+ case notSpecified
+ public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct Laptime {
+}
+public class LineCollection {
+ public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public var lineSheet: SoulverCore.LineSheet {
+ get
+ set
+ }
+ public var customization: SoulverCore.EngineCustomization
+ public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? {
+ get
+ set
+ }
+ public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? {
+ get
+ set
+ }
+ public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard)
+ public var currentPage: SoulverCore.PageIndex {
+ get
+ set
+ }
+ public func addPage(addStartingLine: Swift.Bool = true)
+ public func removeCurrentPage()
+ public func beginChanges()
+ public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line
+ public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression])
+ public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String)
+ public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String)
+ public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex)
+ public func removeLineAt(lineIndex: SoulverCore.LineIndex)
+ public subscript(index: Swift.Int) -> SoulverCore.Line {
+ get
+ set(newValue)
+ }
+ public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex)
+ public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex)
+ public func evaluateAll()
+ public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil)
+ public func evaluateExternallyLineAt(index: SoulverCore.LineIndex, evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference
+ @discardableResult
+ public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken
+ public func remove(observer: SoulverCore.LineCollectionObserverToken)
+ public var quickSum: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickAverage: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
+ public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
+ public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
+ public func clearStates()
+ public var lineCount: Swift.Int {
+ get
+ }
+ public var completeLineCount: Swift.Int {
+ get
+ }
+ public var hasMultiplePages: Swift.Bool {
+ get
+ }
+ public var pageCount: Swift.Int {
+ get
+ }
+ public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public var allIndexes: Foundation.IndexSet {
+ get
+ }
+ public var lastIndex: Swift.Int {
+ get
+ }
+ public var firstIndex: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public func linesInPage(pageIndex: SoulverCore.PageIndex) -> [SoulverCore.Line]
+ public var lines: [SoulverCore.Line] {
+ get
+ }
+ public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line]
+ public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList
+ public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token?
+ public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line?
+ public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line?
+ public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String?
+ @objc deinit
+}
+public typealias LineCollectionStateTicket = Swift.String
+extension LineCollection : Swift.CustomDebugStringConvertible {
+ public typealias MultiLineText = Swift.String
+ public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
+ convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ @objc deinit
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public enum EvaluationError : Swift.Error {
+ case UnitMismatch
+ case UnsupportedUnitMultiplication
+ case UnsupportedRate
+ case Infinity
+ case ImaginaryNumber
+ case DivideByZero
+ case BadDivision
+ case Other
+ public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+infix operator ~ : AdditionPrecedence
+public typealias CocoaUnit = Foundation.Dimension
+extension String {
+ public func foundationLocalized() -> Swift.String
+ public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
+}
+@_hasMissingDesignatedInitializers public class LineCollectionEnumerator {
+ public typealias EnumerationExpression = Swift.String
+ public typealias EnumerationResult = Swift.String
+ public enum ReferenceSubstituionPolicy {
+ case dontSubstitue
+ case formattedResult
+ case plainTextReference
+ case markdownLinkStyle
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public enum ResultFormatting {
+ case formatted
+ case raw
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public struct LineCollectionEnumerationOptions {
+ public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy
+ public var resultFormatting: SoulverCore.LineCollectionEnumerator.ResultFormatting
+ public init()
+ }
+ public typealias LineCollectionEnumerationHandler = ((SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: (SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: ((SoulverCore.LineIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult) -> T?)) -> T?
+ @objc deinit
+}
+public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
+ public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func < (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public let type: SoulverCore.TokenType
+ public let subType: SoulverCore.TokenSubType
+ public var stringValue: Swift.String
+ public var range: Foundation.NSRange
+ public var subtokens: SoulverCore.TokenList?
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Token : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class TokenList {
+ public var count: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public var tokens: [SoulverCore.Token] {
+ get
+ }
+ public var flattenedTokens: [SoulverCore.Token] {
+ get
+ }
+ public subscript(index: Swift.Int) -> SoulverCore.Token {
+ get
+ set(newValue)
+ }
+ public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token]
+ public func allTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func onlyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func anyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ @objc deinit
+}
+extension TokenList : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList {
+ public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
+ public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
+ public func tokenFor(characterIndex: Swift.Int) -> SoulverCore.Token?
+ public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token?
+}
+public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void
+public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
+public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
+public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
+extension TokenList {
+ public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
+ public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+}
+extension TokenList {
+ public func containsToken(token: SoulverCore.Token) -> Swift.Bool
+ public func scanForTokenWithType(_ tokenTypes: Swift.Set, ignoreParentsWithTypes parentTypes: Swift.Set? = nil) -> Swift.Bool
+}
+extension TokenList {
+ public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
+ public func typesPrecheck(_ types: Swift.Set) -> Swift.Bool
+}
+extension TokenList {
+ public static var EmptyList: SoulverCore.TokenList
+}
+public struct Timestamp {
+ public let decimalValue: Foundation.Decimal
+}
+public class VariableList : Swift.CustomDebugStringConvertible {
+ public init()
+ convenience public init(variables: [SoulverCore.Variable])
+ public func provideVariableDefinitionsVia(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult)
+ public func allVariables() -> [SoulverCore.Variable]
+ public func lineReferences() -> [SoulverCore.Variable]
+ public func isLineReference(variable: SoulverCore.Variable) -> Swift.Bool
+ public func variablesExludingLineReferences() -> [SoulverCore.Variable]
+ public func singleWordVariables() -> [SoulverCore.Variable]
+ public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable]
+ public func setVariable(_ variable: SoulverCore.Variable, isLineReference: Swift.Bool = false)
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct CalculationResult {
+ public let evaluationResult: SoulverCore.EvaluationResult
+ public let stringValue: Swift.String
+}
+extension CalculationResult {
+ public var isEmptyResult: Swift.Bool {
+ get
+ }
+}
+public let EmptyResult: SoulverCore.CalculationResult
+public struct ExportOptions {
+ public var plainTextSeparator: Swift.String
+ public var useUnformattedResults: Swift.Bool
+ public var substituteLineReferences: Swift.Bool
+ public var includeAnswers: Swift.Bool
+ public init()
+}
+@_hasMissingDesignatedInitializers public class LineCollectionExporter {
+ public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers public class ResultContextualMetadata {
+ public class func humanReadableMetadataFor(formattedResult: SoulverCore.CalculationResult, customization: SoulverCore.EngineCustomization) -> Swift.String?
+ @objc deinit
+}
+public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
+ public let locale: Foundation.Locale
+ public var unitSystem: SoulverCore.UnitMeasurementSystem
+ public var customVariables: [SoulverCore.Variable]
+ public var customUnits: [SoulverCore.CustomUnit] {
+ get
+ set
+ }
+ public var currencyUnits: [SoulverCore.UnitDescription] {
+ get
+ set
+ }
+ public var customSymbols: [SoulverCore.UnitSymbolReplacement] {
+ get
+ set
+ }
+ public var featureFlags: SoulverCore.EngineFeatureFlags
+ public init(locale: Foundation.Locale)
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var standard: SoulverCore.EngineCustomization {
+ get
+ }
+ public func convertTo(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+ public static func == (a: SoulverCore.EngineCustomization, b: SoulverCore.EngineCustomization) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension EngineCustomization {
+ public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+}
+extension EngineCustomization {
+ public func isOperator(text: Swift.String) -> Swift.Bool
+}
+public typealias Scalar = Swift.String
+@_hasMissingDesignatedInitializers public class LineCollectionArchiver {
+ public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?) throws -> SoulverCore.LineCollection
+ @objc deinit
+}
+public let UntokenizedLineReference: Swift.String
+public protocol RoutineOwner : AnyObject {
+ func routineCompleted(routine: SoulverCore.Routine)
+}
+public protocol Routine : AnyObject {
+ var routineOwner: SoulverCore.RoutineOwner? { get set }
+ func go()
+ func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+extension Routine {
+ public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+public typealias RawExpression = Swift.String
+infix operator *+* : AdditionPrecedence
+@_hasMissingDesignatedInitializers public class LineOperationsController {
+ public var baseVariables: SoulverCore.VariableList
+ public var externalEvaluators: [SoulverCore.ExternalEvaluator] {
+ get
+ set
+ }
+ public var beautifcationOptions: SoulverCore.ExpressionBeautificationOptions?
+ @objc deinit
+}
+extension NSNotification.Name {
+ public static let currenciesUpdateSucceeded: Foundation.Notification.Name
+ public static let currenciesUpdateFailed: Foundation.Notification.Name
+ public static let currenciesUpdateStarted: Foundation.Notification.Name
+}
+public enum CurrencySet : Swift.String {
+ case popular
+ case realWorld
+ case realWorldPlusCrypto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public struct CurrencySourceCredentials {
+ public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?)
+}
+@_hasMissingDesignatedInitializers public class CurrencyList {
+ public static let shared: SoulverCore.CurrencyList
+ public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials
+ public var defaultCurrencySet: SoulverCore.CurrencySet {
+ get
+ set
+ }
+ public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil)
+ public func saveCurrenciesTo(url: Foundation.URL)
+ public func loadCurrenciesFrom(url: Foundation.URL) throws
+ @objc deinit
+}
+public typealias PrivateUnicodeSymbol = Swift.String
+@_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator {
+ public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
+ @objc deinit
+}
+public typealias VariableName = Swift.String
+public typealias VariableValue = Swift.String
+public struct Variable : Swift.Codable {
+ public let name: SoulverCore.VariableName
+ public let value: SoulverCore.VariableValue?
+ public init(name: SoulverCore.VariableName, value: SoulverCore.VariableValue?)
+ public var declaringLineIndex: SoulverCore.LineIndex?
+ public var definition: SoulverCore.EvaluationResult?
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Variable : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public struct Datestamp {
+ public let date: Foundation.Date
+ public let hasTimeComponent: Swift.Bool
+ public var timezone: Foundation.TimeZone?
+}
+extension String {
+ public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
+ public func wrappedIn(_ character: Swift.String) -> Swift.String
+ public func bracketed() -> Swift.String
+ public func invertedCommad() -> Swift.String
+ public func spaced() -> Swift.String
+ public static var standardEasternEuropeanThousandsSeparator: Swift.String
+ public static var standardWhitespace: Swift.String
+ public static let standardDecimalPoint: Swift.String
+ public static let newlineSymbol: Swift.String
+ public var isNewline: Swift.Bool {
+ get
+ }
+ public var isSingleWhitespace: Swift.Bool {
+ get
+ }
+ public var isLowerecased: Swift.Bool {
+ get
+ }
+ public var isUppercased: Swift.Bool {
+ get
+ }
+ public var isMixedCase: Swift.Bool {
+ get
+ }
+ public func replaceCharactersFromSet(characterSet: Foundation.CharacterSet, replacementString: Swift.String = "") -> Swift.String
+ public var whitespaceStandardized: Swift.String {
+ get
+ }
+ public var whitespaceRemoved: Swift.String {
+ get
+ }
+ public var whitespaceTrimmed: Swift.String {
+ get
+ }
+}
+extension String {
+ public var completeStringRange: Foundation.NSRange {
+ get
+ }
+ public var completeRange: Swift.Range {
+ get
+ }
+ public var dirtyWordCount: Swift.Int {
+ get
+ }
+ public var dirtyLineCount: Swift.Int {
+ get
+ }
+ public var newLineCount: Swift.Int {
+ get
+ }
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func removingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func removingSuffix(_ suffix: Swift.String) -> Swift.String
+ public func addingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func addingSuffix(_ suffix: Swift.String) -> Swift.String
+}
+extension String {
+ public func enumerateLinguisticTags(invoking body: @escaping (Swift.String, Foundation.NSRange) -> Swift.Void)
+ public var words: [Swift.String] {
+ get
+ }
+ public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
+ public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public var lemma: Swift.String? {
+ get
+ }
+ public var lemmas: [Swift.String] {
+ get
+ }
+}
+extension String {
+ public func containsPattern(_ regex: Swift.String) -> Swift.Bool
+ public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
+ public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
+ public func erasingPattern(_ pattern: Swift.String) -> Swift.String
+ public var trailingDigit: Swift.Int? {
+ get
+ }
+}
+extension String {
+ public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
+ public func rangesOf(string: Swift.String) -> [Swift.Range]
+ public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
+}
+public enum LineStyle : Swift.Int {
+ case normal
+ case heading
+ case label
+ case comment
+ public typealias RawValue = Swift.Int
+ public init?(rawValue: Swift.Int)
+ public var rawValue: Swift.Int {
+ get
+ }
+}
+public class LineStyler {
+ public static let MARKDOWN_HEADING_CHARACTER: Swift.String
+ public static let HEADING_INDICATOR: Swift.String
+ public static let COMMENT_INDICATOR: Swift.String
+ public static let LABEL_INDICATOR: Swift.String
+ public init()
+ public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle
+ public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String
+ public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public var defaultLabel: Swift.String {
+ get
+ }
+ @objc deinit
+}
+extension Decimal {
+ public var doubleValue: Swift.Double {
+ get
+ }
+}
+extension Token {
+ public var number: Foundation.Decimal? {
+ get
+ }
+ public var scalar: SoulverCore.Scalar? {
+ get
+ }
+ public var variable: SoulverCore.Variable? {
+ get
+ }
+ public var isLineReference: Swift.Bool {
+ get
+ }
+}
+extension NumberFormatter {
+ open func string(from number: Foundation.Decimal) -> Swift.String?
+}
+public class Calculator {
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var customization: SoulverCore.EngineCustomization {
+ get
+ }
+ public init(customization: SoulverCore.EngineCustomization)
+ public func calculate(_ expression: SoulverCore.RawExpression, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult
+ @objc deinit
+}
+indirect public enum EvaluationResult {
+ case rawString(Swift.String)
+ case decimal(Foundation.Decimal)
+ case percentage(SoulverCore.Percentage)
+ case fraction(SoulverCore.Fraction)
+ case multiplier(SoulverCore.Multiplier)
+ case boolean(Swift.Bool)
+ case unitExpression(SoulverCore.UnitExpression)
+ case rate(SoulverCore.UnitRate)
+ case date(SoulverCore.Datestamp)
+ case iso8601(SoulverCore.iso8601)
+ case timestamp(SoulverCore.Timestamp)
+ case timespan(SoulverCore.Timespan)
+ case laptime(SoulverCore.Laptime)
+ case error(SoulverCore.EvaluationError)
+ case variable(SoulverCore.Variable)
+ case none
+ public var equivalentTokenType: SoulverCore.TokenType {
+ get
+ }
+}
+public protocol TokenMetadata {
+ func safeCopy() -> SoulverCore.TokenMetadata
+}
+public struct Fraction {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
+public struct Multiplier {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class LineCollectionCompletions {
+ public class func completionsFor(textFragment: Swift.String, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String]
+ @objc deinit
+}
+public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case before
+ case beforeWithSpace
+ case after
+ case afterWithSpace
+ public var description: Swift.String {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition]
+ public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] {
+ get
+ }
+}
+public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public let originalSymbol: Swift.String
+ public let replacementSymbol: Swift.String
+ public let position: SoulverCore.UnitSymbolReplacementPosition
+ public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before)
+ public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement]
+ public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
+ public let name: Swift.String
+ public let definition: Swift.Double
+ public let equivalentUnit: SoulverCore.UnitIdentifier
+ public let legacyDefinition: Swift.String?
+ public init(name: Swift.String, definition: Swift.Double, equivalentUnit: SoulverCore.UnitIdentifier)
+ public init(from decoder: Swift.Decoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct Percentage {
+ public let decimalValue: Foundation.Decimal
+}
+public typealias ExternalEvaluatorSymbol = Swift.String
+public protocol ExternalEvaluator {
+ var symbol: SoulverCore.ExternalEvaluatorSymbol { get }
+ func evaluate(_ expression: SoulverCore.RawExpression) -> SoulverCore.CalculationResult
+}
+@_hasMissingDesignatedInitializers public class LineSection : Swift.Codable {
+ public var lines: [SoulverCore.Line]
+ @objc deinit
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public typealias UID = Swift.String
+public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Swift.CustomStringConvertible {
+ public let UID: SoulverCore.UID
+ public init(UID: SoulverCore.UID)
+ public var description: Swift.String {
+ get
+ }
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct iso8601 {
+ public let datestamp: SoulverCore.Datestamp
+}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
+public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift.Equatable {
+ case customaryUS
+ case imperial
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LocaleProvider {
+ public class func localeWith(identifier: Swift.String) -> Foundation.Locale
+ @objc deinit
+}
+public enum SIThreshold : Swift.String {
+ case septillion
+ case sextillion
+ case quintillion
+ case quadrillion
+ case trillion
+ case billion
+ case million
+ case hundredThousand
+ case thousand
+ case hecto
+ case deca
+ case centi
+ case milli
+ case micro
+ case nano
+ case pico
+ case femto
+ case atto
+ case zetto
+ case yocto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public enum ApparentLineType {
+ case regular
+ case comment
+ case variableDeclaration
+ public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public enum LineCalculationBehaviour : Swift.String, Swift.Codable {
+ case evaluatesExpression
+ case sumsLinesAbove
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public class Line : Swift.Codable {
+ public var expression: SoulverCore.RawExpression {
+ get
+ set
+ }
+ public var behaviour: SoulverCore.LineCalculationBehaviour
+ public var skipStatistics: Swift.Bool
+ public var lineReference: SoulverCore.LineReference?
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var result: SoulverCore.CalculationResult?
+ public var parsedExpression: SoulverCore.TokenList?
+ public var apparentLineType: SoulverCore.ApparentLineType?
+ public var lineIndex: SoulverCore.LineIndex?
+ public var explicitDependencies: Foundation.IndexSet?
+ public var variableEnvironment: SoulverCore.VariableList?
+ public var rawResult: Swift.String {
+ get
+ }
+ public var formattedResult: Swift.String {
+ get
+ }
+ convenience public init(_ expression: SoulverCore.RawExpression)
+ public init()
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ @objc deinit
+}
+extension Line {
+ public var isSubtotal: Swift.Bool {
+ get
+ }
+ public var isHeading: Swift.Bool {
+ get
+ }
+}
+extension Line {
+ public var declaredVariable: SoulverCore.Variable? {
+ get
+ }
+}
+extension Line : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var EmptyLine: SoulverCore.Line {
+ get
+ }
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Line : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension Line {
+ public var includesLineReferences: Swift.Bool {
+ get
+ }
+}
+extension UnitLength {
+ public static let pixel: Foundation.UnitLength
+ public static let em: Foundation.UnitLength
+ public static let point: Foundation.UnitLength
+}
+@objc @_inheritsConvenienceInitializers final public class UnitCurrency : Foundation.Dimension {
+ convenience public init(symbol: Swift.String, coefficient: Swift.Double)
+ public static let usd: SoulverCore.UnitCurrency
+ public static let aud: SoulverCore.UnitCurrency
+ public static let eur: SoulverCore.UnitCurrency
+ @objc override final public class func baseUnit() -> SoulverCore.UnitCurrency
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitComputerStorage : Foundation.Dimension {
+ public static let bytes: SoulverCore.UnitComputerStorage
+ public static let bits: SoulverCore.UnitComputerStorage
+ public static let nibbles: SoulverCore.UnitComputerStorage
+ public static let yottabytes: SoulverCore.UnitComputerStorage
+ public static let zettabytes: SoulverCore.UnitComputerStorage
+ public static let exabytes: SoulverCore.UnitComputerStorage
+ public static let petabytes: SoulverCore.UnitComputerStorage
+ public static let terabytes: SoulverCore.UnitComputerStorage
+ public static let gigabytes: SoulverCore.UnitComputerStorage
+ public static let megabytes: SoulverCore.UnitComputerStorage
+ public static let kilobytes: SoulverCore.UnitComputerStorage
+ public static let yottabits: SoulverCore.UnitComputerStorage
+ public static let zettabits: SoulverCore.UnitComputerStorage
+ public static let exabits: SoulverCore.UnitComputerStorage
+ public static let petabits: SoulverCore.UnitComputerStorage
+ public static let terabits: SoulverCore.UnitComputerStorage
+ public static let gigabits: SoulverCore.UnitComputerStorage
+ public static let megabits: SoulverCore.UnitComputerStorage
+ public static let kilobits: SoulverCore.UnitComputerStorage
+ public static let yobibytes: SoulverCore.UnitComputerStorage
+ public static let zebibytes: SoulverCore.UnitComputerStorage
+ public static let exbibytes: SoulverCore.UnitComputerStorage
+ public static let pebibytes: SoulverCore.UnitComputerStorage
+ public static let tebibytes: SoulverCore.UnitComputerStorage
+ public static let gibibytes: SoulverCore.UnitComputerStorage
+ public static let mebibytes: SoulverCore.UnitComputerStorage
+ public static let kibibytes: SoulverCore.UnitComputerStorage
+ public static let yobibits: SoulverCore.UnitComputerStorage
+ public static let zebibits: SoulverCore.UnitComputerStorage
+ public static let exbibits: SoulverCore.UnitComputerStorage
+ public static let pebibits: SoulverCore.UnitComputerStorage
+ public static let tebibits: SoulverCore.UnitComputerStorage
+ public static let gibibits: SoulverCore.UnitComputerStorage
+ public static let mebibits: SoulverCore.UnitComputerStorage
+ public static let kibibits: SoulverCore.UnitComputerStorage
+ @objc override final public class func baseUnit() -> SoulverCore.UnitComputerStorage
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitDataTransfer : Foundation.Dimension {
+ public static let bytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let bitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibitsPerSecond: SoulverCore.UnitDataTransfer
+ @objc override final public class func baseUnit() -> SoulverCore.UnitDataTransfer
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class NullUnit : Foundation.Dimension {
+ @objc override final public class func baseUnit() -> Self
+ @objc deinit
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+}
+public typealias LineIndex = Swift.Int
+public typealias PageIndex = Swift.Int
+@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable {
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct Timespan {
+ public let dateComponents: Foundation.DateComponents
+}
+public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public var calendarCalculations: Swift.Bool
+ public var units: Swift.Bool
+ public var wordFunctions: Swift.Bool
+ public var variableDeclarations: Swift.Bool
+ public var bracketComments: Swift.Bool
+ public var inAmbiguityPreferSomethingToNothing: Swift.Bool
+ public var leftToRightOperatorEvaluation: Swift.Bool
+ public init()
+ public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Int {
+ public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
+}
+public struct UnitRate {
+ public let value: Foundation.Decimal
+ public let ofUnit: SoulverCore.CocoaUnit?
+ public let perUnit: SoulverCore.CocoaUnit
+}
+extension UnitRate : Swift.Comparable {
+ public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
+ public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
+}
+extension UnitRate : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension UnitExpression : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case metersPerSecondSquared
+ case gravity
+ case degrees
+ case arcMinutes
+ case arcSeconds
+ case radians
+ case gradians
+ case revolutions
+ case squareMegameters
+ case squareKilometers
+ case squareMeters
+ case squareCentimeters
+ case squareMillimeters
+ case squareMicrometers
+ case squareNanometers
+ case squareInches
+ case squareFeet
+ case squareYards
+ case squareMiles
+ case acres
+ case ares
+ case hectares
+ case gramsPerLiter
+ case milligramsPerDeciliter
+ case partsPerMillion
+ case picoseconds
+ case nanoseconds
+ case microseconds
+ case milliseconds
+ case seconds
+ case minutes
+ case hours
+ case days
+ case weekdays
+ case weeks
+ case months
+ case years
+ case coulombs
+ case megaampereHours
+ case kiloampereHours
+ case ampereHours
+ case milliampereHours
+ case microampereHours
+ case megaamperes
+ case kiloamperes
+ case amperes
+ case milliamperes
+ case microamperes
+ case megavolts
+ case kilovolts
+ case volts
+ case millivolts
+ case microvolts
+ case megaohms
+ case kiloohms
+ case ohms
+ case milliohms
+ case microohms
+ case joules
+ case kilojoules
+ case megajoules
+ case gigajoules
+ case kilocalories
+ case calories
+ case wattSeconds
+ case wattMinutes
+ case wattHours
+ case kilowattHours
+ case megawattHours
+ case gigawattHours
+ case terawattHours
+ case terahertz
+ case gigahertz
+ case megahertz
+ case kilohertz
+ case hertz
+ case millihertz
+ case microhertz
+ case nanohertz
+ case litersPer100Kilometers
+ case milesPerImperialGallon
+ case milesPerGallon
+ case megameters
+ case kilometers
+ case hectometers
+ case decameters
+ case meters
+ case decimeters
+ case centimeters
+ case millimeters
+ case micrometers
+ case nanometers
+ case picometers
+ case inches
+ case feet
+ case yards
+ case miles
+ case scandinavianMiles
+ case lightyears
+ case nauticalMiles
+ case fathoms
+ case furlongs
+ case parsecs
+ case lux
+ case kilograms
+ case grams
+ case decigrams
+ case centigrams
+ case milligrams
+ case micrograms
+ case nanograms
+ case picograms
+ case ounces
+ case pounds
+ case stones
+ case metricTons
+ case shortTons
+ case carats
+ case ouncesTroy
+ case slugs
+ case terawatts
+ case gigawatts
+ case megawatts
+ case kilowatts
+ case watts
+ case milliwatts
+ case microwatts
+ case nanowatts
+ case picowatts
+ case femtowatts
+ case horsepower
+ case newtonsPerMetersSquared
+ case gigapascals
+ case megapascals
+ case kilopascals
+ case hectopascals
+ case inchesOfMercury
+ case bars
+ case millibars
+ case millimetersOfMercury
+ case poundsForcePerSquareInch
+ case metersPerSecond
+ case kilometersPerHour
+ case milesPerHour
+ case knots
+ case kelvin
+ case celsius
+ case fahrenheit
+ case megaliters
+ case kiloliters
+ case liters
+ case milliliters
+ case cubicKilometers
+ case cubicMeters
+ case cubicCentimeters
+ case cubicMillimeters
+ case cubicInches
+ case cubicFeet
+ case cubicYards
+ case cubicMiles
+ case acreFeet
+ case bushels
+ case teaspoons
+ case tablespoons
+ case fluidOunces
+ case cups
+ case pints
+ case quarts
+ case gallons
+ case imperialTeaspoons
+ case imperialTablespoons
+ case imperialFluidOunces
+ case imperialPints
+ case imperialQuarts
+ case imperialGallons
+ case metricCups
+ case bytes
+ case bits
+ case yottabytes
+ case zettabytes
+ case exabytes
+ case petabytes
+ case terabytes
+ case gigabytes
+ case megabytes
+ case kilobytes
+ case yottabits
+ case zettabits
+ case exabits
+ case petabits
+ case terabits
+ case gigabits
+ case megabits
+ case kilobits
+ case yobibytes
+ case zebibytes
+ case exbibytes
+ case pebibytes
+ case tebibytes
+ case gibibytes
+ case mebibytes
+ case kibibytes
+ case yobibits
+ case zebibits
+ case exbibits
+ case pebibits
+ case tebibits
+ case gibibits
+ case mebibits
+ case kibibits
+ case pixel
+ case em
+ case point
+ case bytesPerSecond
+ case bitsPerSecond
+ case yottabytesPerSecond
+ case zettabytesPerSecond
+ case exabytesPerSecond
+ case petabytesPerSecond
+ case terabytesPerSecond
+ case gigabytesPerSecond
+ case megabytesPerSecond
+ case kilobytesPerSecond
+ case yottabitsPerSecond
+ case zettabitsPerSecond
+ case exabitsPerSecond
+ case petabitsPerSecond
+ case terabitsPerSecond
+ case gigabitsPerSecond
+ case megabitsPerSecond
+ case kilobitsPerSecond
+ case yobibytesPerSecond
+ case zebibytesPerSecond
+ case exbibytesPerSecond
+ case pebibytesPerSecond
+ case tebibytesPerSecond
+ case gibibytesPerSecond
+ case mebibytesPerSecond
+ case kibibytesPerSecond
+ case yobibitsPerSecond
+ case zebibitsPerSecond
+ case exbibitsPerSecond
+ case pebibitsPerSecond
+ case tebibitsPerSecond
+ case gibibitsPerSecond
+ case mebibitsPerSecond
+ case kibibitsPerSecond
+ case usd
+ case aud
+ case eur
+ case undefined
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitIdentifier]
+ public static var allCases: [SoulverCore.UnitIdentifier] {
+ get
+ }
+}
+extension UnitIdentifier {
+ public var unitType: SoulverCore.UnitType {
+ get
+ }
+}
+public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable {
+ case length
+ case mass
+ case duration
+ case currency
+ case volume
+ case speed
+ case acceleration
+ case temperature
+ case concentrationMass
+ case dispersion
+ case dataStorage
+ case dataTransfer
+ case area
+ case frequency
+ case angle
+ case illuminance
+ case energy
+ case power
+ case pressure
+ case fuelEfficiency
+ case electricCurrent
+ case electricCharge
+ case electricPotential
+ case electricResistance
+ case other
+ public var label: Swift.String {
+ get
+ }
+ public var baseUnitIdentifier: SoulverCore.UnitIdentifier {
+ get
+ }
+ public var associatedOtherUnits: [SoulverCore.UnitIdentifier] {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public var rawValue: Swift.String {
+ get
+ }
+ public init?(rawValue: Swift.String)
+ public typealias AllCases = [SoulverCore.UnitType]
+ public static var allCases: [SoulverCore.UnitType] {
+ get
+ }
+}
+public func cocoaUnitFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.CocoaUnit
+public func unitIdentifierFor(cocoaUnit: SoulverCore.CocoaUnit) -> SoulverCore.UnitIdentifier?
+public func motherUnitIdentifierFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.UnitIdentifier
+@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
+ @objc override dynamic public var isAsynchronous: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isExecuting: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isFinished: Swift.Bool {
+ @objc get
+ }
+ public var state: SoulverCore.AsynchronousOperation.State {
+ get
+ set
+ }
+ public enum State : Swift.String {
+ case ready
+ case executing
+ case finished
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ }
+ @objc override dynamic open func start()
+ @objc override dynamic open func main()
+ @objc override dynamic public init()
+ @objc deinit
+}
+public struct UnitExpression {
+ public let value: Foundation.Decimal
+ public let unit: SoulverCore.CocoaUnit
+}
+extension UnitExpression : Swift.Comparable {
+ public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+ public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+}
+public typealias TokenIndex = Swift.Int
+public struct TokenIndexPath : Swift.Equatable {
+ public let tokenIndex: SoulverCore.TokenIndex
+ public let lineIndex: SoulverCore.LineIndex
+ public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
+ public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
+}
+public struct NotationPreferences : Swift.Equatable {
+ public enum NotationStyle {
+ case auto
+ case on
+ case off
+ public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public var notationStyle: SoulverCore.NotationPreferences.NotationStyle
+ public var upperNotationThreshold: SoulverCore.SIThreshold
+ public var lowerNotationThreshold: SoulverCore.SIThreshold
+ public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
+}
+public struct FormattingPreferences : Swift.Codable, Swift.Equatable {
+ public static var maximumDp: Swift.Int
+ public var dp: Swift.Int
+ public var thousandsSeparatorDisabled: Swift.Bool
+ public var currencyFormattingDisabled: Swift.Bool
+ public var implicitUnitsDisabled: Swift.Bool
+ public var notationPreferences: SoulverCore.NotationPreferences
+ public var referencesTakeFormattedValue: Swift.Bool
+ public var fractionizeWherePossible: Swift.Bool
+ public init()
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool
+}
+public struct ExpressionBeautificationOptions {
+ public var quickOperators: Swift.Bool
+ public var autoThousandsSeparators: Swift.Bool
+ public var padStandardOperators: Swift.Bool
+ public var fancyTimes: Swift.Bool
+ public var fancyMinus: Swift.Bool
+ public var collapseSpaces: Swift.Bool
+ public var formatsSlashCommentsWithSpaces: Swift.Bool
+ public static var defaults: SoulverCore.ExpressionBeautificationOptions {
+ get
+ }
+ public init()
+}
+extension Array where Element : Swift.Equatable {
+ public func doesNotContain(_ element: Element) -> Swift.Bool
+}
+extension Array {
+ public subscript(safe index: Swift.Array.Index) -> Element? {
+ get
+ }
+ public var lastIndex: Swift.Int? {
+ get
+ }
+ public func isValid(index: Swift.Int) -> Swift.Bool
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public mutating func trim(where predicate: (Element) throws -> Swift.Bool)
+ public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index)
+}
+extension IndexSet {
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func isJust(_ integer: Swift.Int) -> Swift.Bool
+ public var onlyFirst: Foundation.IndexSet {
+ get
+ }
+ public var removingFirstIndex: Foundation.IndexSet {
+ get
+ }
+ public var smartDescription: Swift.String {
+ get
+ }
+ public var secondLastIndex: Swift.Int? {
+ get
+ }
+}
+public struct UnitDescription : Swift.Hashable, Swift.Codable {
+ public init(unit: SoulverCore.CocoaUnit, symbol: Swift.String, aliases: [Swift.String])
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool
+}
+extension Dimension {
+ public var svUnitType: SoulverCore.UnitType {
+ get
+ }
+}
+extension SoulverCore.TokenType : Swift.Equatable {}
+extension SoulverCore.TokenType : Swift.Hashable {}
+extension SoulverCore.TokenSubType : Swift.Equatable {}
+extension SoulverCore.TokenSubType : Swift.Hashable {}
+extension SoulverCore.EvaluationError : Swift.Equatable {}
+extension SoulverCore.EvaluationError : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.Equatable {}
+extension SoulverCore.CurrencySet : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.RawRepresentable {}
+extension SoulverCore.LineStyle : Swift.Equatable {}
+extension SoulverCore.LineStyle : Swift.Hashable {}
+extension SoulverCore.LineStyle : Swift.RawRepresentable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Equatable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Hashable {}
+extension SoulverCore.UnitMeasurementSystem : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.Equatable {}
+extension SoulverCore.SIThreshold : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.RawRepresentable {}
+extension SoulverCore.ApparentLineType : Swift.Equatable {}
+extension SoulverCore.ApparentLineType : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Equatable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.RawRepresentable {}
+extension SoulverCore.UnitIdentifier : Swift.Equatable {}
+extension SoulverCore.UnitIdentifier : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.Equatable {}
+extension SoulverCore.UnitType : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.RawRepresentable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Equatable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Hashable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.RawRepresentable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Equatable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Hashable {}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
new file mode 100644
index 000000000..713d393c9
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
new file mode 100644
index 000000000..0dd96177d
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
@@ -0,0 +1,1600 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
+// swift-module-flags: -target x86_64-apple-ios12.2-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
+import Foundation
+@_exported import SoulverCore
+import Swift
+import os
+import os.signpost
+public enum TokenType : Swift.CaseIterable {
+ case number
+ case `operator`
+ case percentageSymbol
+ case converterSymbol
+ case unit
+ case bracket
+ case whitespace
+ case variable
+ case variableDeclarationSymbol
+ case pi
+ case typeName
+ case conditionalKeyword
+ case colon
+ case function
+ case timezone
+ case object
+ case propertySelector
+ case label
+ case fraction
+ case converter
+ case timestamp
+ case datestamp
+ case iso8601
+ case timespan
+ case laptime
+ case dateWord
+ case unitExpression
+ case compoundUnitExpression
+ case conditionalExpression
+ case percentage
+ case multiplier
+ case boolean
+ case rate
+ case functionExpression
+ case wordFunction
+ case declaredVariable
+ case variableDeclaration
+ case subexpression
+ case comment
+ case wordComment
+ case bracketComment
+ case slashComment
+ case legacyQuotationComment
+ case labelExpression
+ case externalExpression
+ case evaluatedExternalExpression
+ case unidentified
+ case custom
+ case error
+ public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public typealias AllCases = [SoulverCore.TokenType]
+ public static var allCases: [SoulverCore.TokenType] {
+ get
+ }
+}
+public enum TokenSubType {
+ case additionOperator
+ case subtractionOperator
+ case multiplicationOperator
+ case divisionOperator
+ case reverseDivisionOperator
+ case powerOperator
+ case modOperator
+ case lesserOf
+ case greaterOf
+ case greaterThan
+ case greaterThanOrEqualTo
+ case lessThan
+ case lessThanOrEqualTo
+ case equalTo
+ case notEqualTo
+ case `false`
+ case `true`
+ case openBracket
+ case closeBracket
+ case numberConverter
+ case fractionConverter
+ case multiplierConveter
+ case percentageConverter
+ case unitConverter
+ case rateConverter
+ case dateConverter
+ case iso8601Converter
+ case timestampConverter
+ case timespanConverter
+ case laptimeConverter
+ case timezoneConverter
+ case roundingToDpConverter
+ case roundingUpConverter
+ case roundingConverter
+ case roundingDownConverter
+ case dateWordToday
+ case dateWordNow
+ case dateWordTomorrow
+ case dateWordYesterday
+ case dateWordDayOfWeek
+ case dateWordMonthOfYear
+ case numberTypeName
+ case fractionTypeName
+ case multiplierTypeName
+ case percentageTypeName
+ case rateTypeName
+ case timestampTypeName
+ case timespanTypeName
+ case laptimeTypeName
+ case dateTypeName
+ case iso8601TypeName
+ case decimalPlacesTypeName
+ case binaryTypeName
+ case hexTypeName
+ case conditionalKeywordIf
+ case conditionalKeywordThen
+ case conditionalKeywordElse
+ case conditionalKeywordUnless
+ case conditionalKeywordAnd
+ case conditionalKeywordOr
+ case unitMismatchError
+ case infinityError
+ case divideByZeroError
+ case imaginaryNumberError
+ case unsupportedUnitMultiplication
+ case unsupportedRate
+ case badDivision
+ case unknownError
+ case notSpecified
+ public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct Laptime {
+}
+public class LineCollection {
+ public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public var lineSheet: SoulverCore.LineSheet {
+ get
+ set
+ }
+ public var customization: SoulverCore.EngineCustomization
+ public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? {
+ get
+ set
+ }
+ public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? {
+ get
+ set
+ }
+ public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard)
+ public var currentPage: SoulverCore.PageIndex {
+ get
+ set
+ }
+ public func addPage(addStartingLine: Swift.Bool = true)
+ public func removeCurrentPage()
+ public func beginChanges()
+ public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line
+ public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression])
+ public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String)
+ public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String)
+ public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex)
+ public func removeLineAt(lineIndex: SoulverCore.LineIndex)
+ public subscript(index: Swift.Int) -> SoulverCore.Line {
+ get
+ set(newValue)
+ }
+ public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex)
+ public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex)
+ public func evaluateAll()
+ public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil)
+ public func evaluateExternallyLineAt(index: SoulverCore.LineIndex, evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference
+ @discardableResult
+ public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken
+ public func remove(observer: SoulverCore.LineCollectionObserverToken)
+ public var quickSum: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickAverage: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
+ public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
+ public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
+ public func clearStates()
+ public var lineCount: Swift.Int {
+ get
+ }
+ public var completeLineCount: Swift.Int {
+ get
+ }
+ public var hasMultiplePages: Swift.Bool {
+ get
+ }
+ public var pageCount: Swift.Int {
+ get
+ }
+ public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public var allIndexes: Foundation.IndexSet {
+ get
+ }
+ public var lastIndex: Swift.Int {
+ get
+ }
+ public var firstIndex: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public func linesInPage(pageIndex: SoulverCore.PageIndex) -> [SoulverCore.Line]
+ public var lines: [SoulverCore.Line] {
+ get
+ }
+ public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line]
+ public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList
+ public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token?
+ public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line?
+ public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line?
+ public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String?
+ @objc deinit
+}
+public typealias LineCollectionStateTicket = Swift.String
+extension LineCollection : Swift.CustomDebugStringConvertible {
+ public typealias MultiLineText = Swift.String
+ public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
+ convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ @objc deinit
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public enum EvaluationError : Swift.Error {
+ case UnitMismatch
+ case UnsupportedUnitMultiplication
+ case UnsupportedRate
+ case Infinity
+ case ImaginaryNumber
+ case DivideByZero
+ case BadDivision
+ case Other
+ public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+infix operator ~ : AdditionPrecedence
+public typealias CocoaUnit = Foundation.Dimension
+extension String {
+ public func foundationLocalized() -> Swift.String
+ public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
+}
+@_hasMissingDesignatedInitializers public class LineCollectionEnumerator {
+ public typealias EnumerationExpression = Swift.String
+ public typealias EnumerationResult = Swift.String
+ public enum ReferenceSubstituionPolicy {
+ case dontSubstitue
+ case formattedResult
+ case plainTextReference
+ case markdownLinkStyle
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public enum ResultFormatting {
+ case formatted
+ case raw
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public struct LineCollectionEnumerationOptions {
+ public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy
+ public var resultFormatting: SoulverCore.LineCollectionEnumerator.ResultFormatting
+ public init()
+ }
+ public typealias LineCollectionEnumerationHandler = ((SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: (SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: ((SoulverCore.LineIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult) -> T?)) -> T?
+ @objc deinit
+}
+public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
+ public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func < (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public let type: SoulverCore.TokenType
+ public let subType: SoulverCore.TokenSubType
+ public var stringValue: Swift.String
+ public var range: Foundation.NSRange
+ public var subtokens: SoulverCore.TokenList?
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Token : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class TokenList {
+ public var count: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public var tokens: [SoulverCore.Token] {
+ get
+ }
+ public var flattenedTokens: [SoulverCore.Token] {
+ get
+ }
+ public subscript(index: Swift.Int) -> SoulverCore.Token {
+ get
+ set(newValue)
+ }
+ public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token]
+ public func allTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func onlyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func anyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ @objc deinit
+}
+extension TokenList : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList {
+ public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
+ public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
+ public func tokenFor(characterIndex: Swift.Int) -> SoulverCore.Token?
+ public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token?
+}
+public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void
+public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
+public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
+public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
+extension TokenList {
+ public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
+ public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+}
+extension TokenList {
+ public func containsToken(token: SoulverCore.Token) -> Swift.Bool
+ public func scanForTokenWithType(_ tokenTypes: Swift.Set, ignoreParentsWithTypes parentTypes: Swift.Set? = nil) -> Swift.Bool
+}
+extension TokenList {
+ public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
+ public func typesPrecheck(_ types: Swift.Set) -> Swift.Bool
+}
+extension TokenList {
+ public static var EmptyList: SoulverCore.TokenList
+}
+public struct Timestamp {
+ public let decimalValue: Foundation.Decimal
+}
+public class VariableList : Swift.CustomDebugStringConvertible {
+ public init()
+ convenience public init(variables: [SoulverCore.Variable])
+ public func provideVariableDefinitionsVia(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult)
+ public func allVariables() -> [SoulverCore.Variable]
+ public func lineReferences() -> [SoulverCore.Variable]
+ public func isLineReference(variable: SoulverCore.Variable) -> Swift.Bool
+ public func variablesExludingLineReferences() -> [SoulverCore.Variable]
+ public func singleWordVariables() -> [SoulverCore.Variable]
+ public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable]
+ public func setVariable(_ variable: SoulverCore.Variable, isLineReference: Swift.Bool = false)
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct CalculationResult {
+ public let evaluationResult: SoulverCore.EvaluationResult
+ public let stringValue: Swift.String
+}
+extension CalculationResult {
+ public var isEmptyResult: Swift.Bool {
+ get
+ }
+}
+public let EmptyResult: SoulverCore.CalculationResult
+public struct ExportOptions {
+ public var plainTextSeparator: Swift.String
+ public var useUnformattedResults: Swift.Bool
+ public var substituteLineReferences: Swift.Bool
+ public var includeAnswers: Swift.Bool
+ public init()
+}
+@_hasMissingDesignatedInitializers public class LineCollectionExporter {
+ public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers public class ResultContextualMetadata {
+ public class func humanReadableMetadataFor(formattedResult: SoulverCore.CalculationResult, customization: SoulverCore.EngineCustomization) -> Swift.String?
+ @objc deinit
+}
+public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
+ public let locale: Foundation.Locale
+ public var unitSystem: SoulverCore.UnitMeasurementSystem
+ public var customVariables: [SoulverCore.Variable]
+ public var customUnits: [SoulverCore.CustomUnit] {
+ get
+ set
+ }
+ public var currencyUnits: [SoulverCore.UnitDescription] {
+ get
+ set
+ }
+ public var customSymbols: [SoulverCore.UnitSymbolReplacement] {
+ get
+ set
+ }
+ public var featureFlags: SoulverCore.EngineFeatureFlags
+ public init(locale: Foundation.Locale)
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var standard: SoulverCore.EngineCustomization {
+ get
+ }
+ public func convertTo(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+ public static func == (a: SoulverCore.EngineCustomization, b: SoulverCore.EngineCustomization) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension EngineCustomization {
+ public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+}
+extension EngineCustomization {
+ public func isOperator(text: Swift.String) -> Swift.Bool
+}
+public typealias Scalar = Swift.String
+@_hasMissingDesignatedInitializers public class LineCollectionArchiver {
+ public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?) throws -> SoulverCore.LineCollection
+ @objc deinit
+}
+public let UntokenizedLineReference: Swift.String
+public protocol RoutineOwner : AnyObject {
+ func routineCompleted(routine: SoulverCore.Routine)
+}
+public protocol Routine : AnyObject {
+ var routineOwner: SoulverCore.RoutineOwner? { get set }
+ func go()
+ func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+extension Routine {
+ public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+public typealias RawExpression = Swift.String
+infix operator *+* : AdditionPrecedence
+@_hasMissingDesignatedInitializers public class LineOperationsController {
+ public var baseVariables: SoulverCore.VariableList
+ public var externalEvaluators: [SoulverCore.ExternalEvaluator] {
+ get
+ set
+ }
+ public var beautifcationOptions: SoulverCore.ExpressionBeautificationOptions?
+ @objc deinit
+}
+extension NSNotification.Name {
+ public static let currenciesUpdateSucceeded: Foundation.Notification.Name
+ public static let currenciesUpdateFailed: Foundation.Notification.Name
+ public static let currenciesUpdateStarted: Foundation.Notification.Name
+}
+public enum CurrencySet : Swift.String {
+ case popular
+ case realWorld
+ case realWorldPlusCrypto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public struct CurrencySourceCredentials {
+ public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?)
+}
+@_hasMissingDesignatedInitializers public class CurrencyList {
+ public static let shared: SoulverCore.CurrencyList
+ public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials
+ public var defaultCurrencySet: SoulverCore.CurrencySet {
+ get
+ set
+ }
+ public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil)
+ public func saveCurrenciesTo(url: Foundation.URL)
+ public func loadCurrenciesFrom(url: Foundation.URL) throws
+ @objc deinit
+}
+public typealias PrivateUnicodeSymbol = Swift.String
+@_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator {
+ public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
+ @objc deinit
+}
+public typealias VariableName = Swift.String
+public typealias VariableValue = Swift.String
+public struct Variable : Swift.Codable {
+ public let name: SoulverCore.VariableName
+ public let value: SoulverCore.VariableValue?
+ public init(name: SoulverCore.VariableName, value: SoulverCore.VariableValue?)
+ public var declaringLineIndex: SoulverCore.LineIndex?
+ public var definition: SoulverCore.EvaluationResult?
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Variable : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public struct Datestamp {
+ public let date: Foundation.Date
+ public let hasTimeComponent: Swift.Bool
+ public var timezone: Foundation.TimeZone?
+}
+extension String {
+ public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
+ public func wrappedIn(_ character: Swift.String) -> Swift.String
+ public func bracketed() -> Swift.String
+ public func invertedCommad() -> Swift.String
+ public func spaced() -> Swift.String
+ public static var standardEasternEuropeanThousandsSeparator: Swift.String
+ public static var standardWhitespace: Swift.String
+ public static let standardDecimalPoint: Swift.String
+ public static let newlineSymbol: Swift.String
+ public var isNewline: Swift.Bool {
+ get
+ }
+ public var isSingleWhitespace: Swift.Bool {
+ get
+ }
+ public var isLowerecased: Swift.Bool {
+ get
+ }
+ public var isUppercased: Swift.Bool {
+ get
+ }
+ public var isMixedCase: Swift.Bool {
+ get
+ }
+ public func replaceCharactersFromSet(characterSet: Foundation.CharacterSet, replacementString: Swift.String = "") -> Swift.String
+ public var whitespaceStandardized: Swift.String {
+ get
+ }
+ public var whitespaceRemoved: Swift.String {
+ get
+ }
+ public var whitespaceTrimmed: Swift.String {
+ get
+ }
+}
+extension String {
+ public var completeStringRange: Foundation.NSRange {
+ get
+ }
+ public var completeRange: Swift.Range {
+ get
+ }
+ public var dirtyWordCount: Swift.Int {
+ get
+ }
+ public var dirtyLineCount: Swift.Int {
+ get
+ }
+ public var newLineCount: Swift.Int {
+ get
+ }
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func removingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func removingSuffix(_ suffix: Swift.String) -> Swift.String
+ public func addingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func addingSuffix(_ suffix: Swift.String) -> Swift.String
+}
+extension String {
+ public func enumerateLinguisticTags(invoking body: @escaping (Swift.String, Foundation.NSRange) -> Swift.Void)
+ public var words: [Swift.String] {
+ get
+ }
+ public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
+ public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public var lemma: Swift.String? {
+ get
+ }
+ public var lemmas: [Swift.String] {
+ get
+ }
+}
+extension String {
+ public func containsPattern(_ regex: Swift.String) -> Swift.Bool
+ public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
+ public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
+ public func erasingPattern(_ pattern: Swift.String) -> Swift.String
+ public var trailingDigit: Swift.Int? {
+ get
+ }
+}
+extension String {
+ public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
+ public func rangesOf(string: Swift.String) -> [Swift.Range]
+ public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
+}
+public enum LineStyle : Swift.Int {
+ case normal
+ case heading
+ case label
+ case comment
+ public typealias RawValue = Swift.Int
+ public init?(rawValue: Swift.Int)
+ public var rawValue: Swift.Int {
+ get
+ }
+}
+public class LineStyler {
+ public static let MARKDOWN_HEADING_CHARACTER: Swift.String
+ public static let HEADING_INDICATOR: Swift.String
+ public static let COMMENT_INDICATOR: Swift.String
+ public static let LABEL_INDICATOR: Swift.String
+ public init()
+ public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle
+ public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String
+ public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public var defaultLabel: Swift.String {
+ get
+ }
+ @objc deinit
+}
+extension Decimal {
+ public var doubleValue: Swift.Double {
+ get
+ }
+}
+extension Token {
+ public var number: Foundation.Decimal? {
+ get
+ }
+ public var scalar: SoulverCore.Scalar? {
+ get
+ }
+ public var variable: SoulverCore.Variable? {
+ get
+ }
+ public var isLineReference: Swift.Bool {
+ get
+ }
+}
+extension NumberFormatter {
+ open func string(from number: Foundation.Decimal) -> Swift.String?
+}
+public class Calculator {
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var customization: SoulverCore.EngineCustomization {
+ get
+ }
+ public init(customization: SoulverCore.EngineCustomization)
+ public func calculate(_ expression: SoulverCore.RawExpression, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult
+ @objc deinit
+}
+indirect public enum EvaluationResult {
+ case rawString(Swift.String)
+ case decimal(Foundation.Decimal)
+ case percentage(SoulverCore.Percentage)
+ case fraction(SoulverCore.Fraction)
+ case multiplier(SoulverCore.Multiplier)
+ case boolean(Swift.Bool)
+ case unitExpression(SoulverCore.UnitExpression)
+ case rate(SoulverCore.UnitRate)
+ case date(SoulverCore.Datestamp)
+ case iso8601(SoulverCore.iso8601)
+ case timestamp(SoulverCore.Timestamp)
+ case timespan(SoulverCore.Timespan)
+ case laptime(SoulverCore.Laptime)
+ case error(SoulverCore.EvaluationError)
+ case variable(SoulverCore.Variable)
+ case none
+ public var equivalentTokenType: SoulverCore.TokenType {
+ get
+ }
+}
+public protocol TokenMetadata {
+ func safeCopy() -> SoulverCore.TokenMetadata
+}
+public struct Fraction {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
+public struct Multiplier {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class LineCollectionCompletions {
+ public class func completionsFor(textFragment: Swift.String, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String]
+ @objc deinit
+}
+public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case before
+ case beforeWithSpace
+ case after
+ case afterWithSpace
+ public var description: Swift.String {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition]
+ public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] {
+ get
+ }
+}
+public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public let originalSymbol: Swift.String
+ public let replacementSymbol: Swift.String
+ public let position: SoulverCore.UnitSymbolReplacementPosition
+ public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before)
+ public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement]
+ public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
+ public let name: Swift.String
+ public let definition: Swift.Double
+ public let equivalentUnit: SoulverCore.UnitIdentifier
+ public let legacyDefinition: Swift.String?
+ public init(name: Swift.String, definition: Swift.Double, equivalentUnit: SoulverCore.UnitIdentifier)
+ public init(from decoder: Swift.Decoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct Percentage {
+ public let decimalValue: Foundation.Decimal
+}
+public typealias ExternalEvaluatorSymbol = Swift.String
+public protocol ExternalEvaluator {
+ var symbol: SoulverCore.ExternalEvaluatorSymbol { get }
+ func evaluate(_ expression: SoulverCore.RawExpression) -> SoulverCore.CalculationResult
+}
+@_hasMissingDesignatedInitializers public class LineSection : Swift.Codable {
+ public var lines: [SoulverCore.Line]
+ @objc deinit
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public typealias UID = Swift.String
+public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Swift.CustomStringConvertible {
+ public let UID: SoulverCore.UID
+ public init(UID: SoulverCore.UID)
+ public var description: Swift.String {
+ get
+ }
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct iso8601 {
+ public let datestamp: SoulverCore.Datestamp
+}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
+public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift.Equatable {
+ case customaryUS
+ case imperial
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LocaleProvider {
+ public class func localeWith(identifier: Swift.String) -> Foundation.Locale
+ @objc deinit
+}
+public enum SIThreshold : Swift.String {
+ case septillion
+ case sextillion
+ case quintillion
+ case quadrillion
+ case trillion
+ case billion
+ case million
+ case hundredThousand
+ case thousand
+ case hecto
+ case deca
+ case centi
+ case milli
+ case micro
+ case nano
+ case pico
+ case femto
+ case atto
+ case zetto
+ case yocto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public enum ApparentLineType {
+ case regular
+ case comment
+ case variableDeclaration
+ public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public enum LineCalculationBehaviour : Swift.String, Swift.Codable {
+ case evaluatesExpression
+ case sumsLinesAbove
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public class Line : Swift.Codable {
+ public var expression: SoulverCore.RawExpression {
+ get
+ set
+ }
+ public var behaviour: SoulverCore.LineCalculationBehaviour
+ public var skipStatistics: Swift.Bool
+ public var lineReference: SoulverCore.LineReference?
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var result: SoulverCore.CalculationResult?
+ public var parsedExpression: SoulverCore.TokenList?
+ public var apparentLineType: SoulverCore.ApparentLineType?
+ public var lineIndex: SoulverCore.LineIndex?
+ public var explicitDependencies: Foundation.IndexSet?
+ public var variableEnvironment: SoulverCore.VariableList?
+ public var rawResult: Swift.String {
+ get
+ }
+ public var formattedResult: Swift.String {
+ get
+ }
+ convenience public init(_ expression: SoulverCore.RawExpression)
+ public init()
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ @objc deinit
+}
+extension Line {
+ public var isSubtotal: Swift.Bool {
+ get
+ }
+ public var isHeading: Swift.Bool {
+ get
+ }
+}
+extension Line {
+ public var declaredVariable: SoulverCore.Variable? {
+ get
+ }
+}
+extension Line : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var EmptyLine: SoulverCore.Line {
+ get
+ }
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Line : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension Line {
+ public var includesLineReferences: Swift.Bool {
+ get
+ }
+}
+extension UnitLength {
+ public static let pixel: Foundation.UnitLength
+ public static let em: Foundation.UnitLength
+ public static let point: Foundation.UnitLength
+}
+@objc @_inheritsConvenienceInitializers final public class UnitCurrency : Foundation.Dimension {
+ convenience public init(symbol: Swift.String, coefficient: Swift.Double)
+ public static let usd: SoulverCore.UnitCurrency
+ public static let aud: SoulverCore.UnitCurrency
+ public static let eur: SoulverCore.UnitCurrency
+ @objc override final public class func baseUnit() -> SoulverCore.UnitCurrency
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitComputerStorage : Foundation.Dimension {
+ public static let bytes: SoulverCore.UnitComputerStorage
+ public static let bits: SoulverCore.UnitComputerStorage
+ public static let nibbles: SoulverCore.UnitComputerStorage
+ public static let yottabytes: SoulverCore.UnitComputerStorage
+ public static let zettabytes: SoulverCore.UnitComputerStorage
+ public static let exabytes: SoulverCore.UnitComputerStorage
+ public static let petabytes: SoulverCore.UnitComputerStorage
+ public static let terabytes: SoulverCore.UnitComputerStorage
+ public static let gigabytes: SoulverCore.UnitComputerStorage
+ public static let megabytes: SoulverCore.UnitComputerStorage
+ public static let kilobytes: SoulverCore.UnitComputerStorage
+ public static let yottabits: SoulverCore.UnitComputerStorage
+ public static let zettabits: SoulverCore.UnitComputerStorage
+ public static let exabits: SoulverCore.UnitComputerStorage
+ public static let petabits: SoulverCore.UnitComputerStorage
+ public static let terabits: SoulverCore.UnitComputerStorage
+ public static let gigabits: SoulverCore.UnitComputerStorage
+ public static let megabits: SoulverCore.UnitComputerStorage
+ public static let kilobits: SoulverCore.UnitComputerStorage
+ public static let yobibytes: SoulverCore.UnitComputerStorage
+ public static let zebibytes: SoulverCore.UnitComputerStorage
+ public static let exbibytes: SoulverCore.UnitComputerStorage
+ public static let pebibytes: SoulverCore.UnitComputerStorage
+ public static let tebibytes: SoulverCore.UnitComputerStorage
+ public static let gibibytes: SoulverCore.UnitComputerStorage
+ public static let mebibytes: SoulverCore.UnitComputerStorage
+ public static let kibibytes: SoulverCore.UnitComputerStorage
+ public static let yobibits: SoulverCore.UnitComputerStorage
+ public static let zebibits: SoulverCore.UnitComputerStorage
+ public static let exbibits: SoulverCore.UnitComputerStorage
+ public static let pebibits: SoulverCore.UnitComputerStorage
+ public static let tebibits: SoulverCore.UnitComputerStorage
+ public static let gibibits: SoulverCore.UnitComputerStorage
+ public static let mebibits: SoulverCore.UnitComputerStorage
+ public static let kibibits: SoulverCore.UnitComputerStorage
+ @objc override final public class func baseUnit() -> SoulverCore.UnitComputerStorage
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitDataTransfer : Foundation.Dimension {
+ public static let bytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let bitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibitsPerSecond: SoulverCore.UnitDataTransfer
+ @objc override final public class func baseUnit() -> SoulverCore.UnitDataTransfer
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class NullUnit : Foundation.Dimension {
+ @objc override final public class func baseUnit() -> Self
+ @objc deinit
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+}
+public typealias LineIndex = Swift.Int
+public typealias PageIndex = Swift.Int
+@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable {
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct Timespan {
+ public let dateComponents: Foundation.DateComponents
+}
+public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public var calendarCalculations: Swift.Bool
+ public var units: Swift.Bool
+ public var wordFunctions: Swift.Bool
+ public var variableDeclarations: Swift.Bool
+ public var bracketComments: Swift.Bool
+ public var inAmbiguityPreferSomethingToNothing: Swift.Bool
+ public var leftToRightOperatorEvaluation: Swift.Bool
+ public init()
+ public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Int {
+ public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
+}
+public struct UnitRate {
+ public let value: Foundation.Decimal
+ public let ofUnit: SoulverCore.CocoaUnit?
+ public let perUnit: SoulverCore.CocoaUnit
+}
+extension UnitRate : Swift.Comparable {
+ public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
+ public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
+}
+extension UnitRate : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension UnitExpression : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case metersPerSecondSquared
+ case gravity
+ case degrees
+ case arcMinutes
+ case arcSeconds
+ case radians
+ case gradians
+ case revolutions
+ case squareMegameters
+ case squareKilometers
+ case squareMeters
+ case squareCentimeters
+ case squareMillimeters
+ case squareMicrometers
+ case squareNanometers
+ case squareInches
+ case squareFeet
+ case squareYards
+ case squareMiles
+ case acres
+ case ares
+ case hectares
+ case gramsPerLiter
+ case milligramsPerDeciliter
+ case partsPerMillion
+ case picoseconds
+ case nanoseconds
+ case microseconds
+ case milliseconds
+ case seconds
+ case minutes
+ case hours
+ case days
+ case weekdays
+ case weeks
+ case months
+ case years
+ case coulombs
+ case megaampereHours
+ case kiloampereHours
+ case ampereHours
+ case milliampereHours
+ case microampereHours
+ case megaamperes
+ case kiloamperes
+ case amperes
+ case milliamperes
+ case microamperes
+ case megavolts
+ case kilovolts
+ case volts
+ case millivolts
+ case microvolts
+ case megaohms
+ case kiloohms
+ case ohms
+ case milliohms
+ case microohms
+ case joules
+ case kilojoules
+ case megajoules
+ case gigajoules
+ case kilocalories
+ case calories
+ case wattSeconds
+ case wattMinutes
+ case wattHours
+ case kilowattHours
+ case megawattHours
+ case gigawattHours
+ case terawattHours
+ case terahertz
+ case gigahertz
+ case megahertz
+ case kilohertz
+ case hertz
+ case millihertz
+ case microhertz
+ case nanohertz
+ case litersPer100Kilometers
+ case milesPerImperialGallon
+ case milesPerGallon
+ case megameters
+ case kilometers
+ case hectometers
+ case decameters
+ case meters
+ case decimeters
+ case centimeters
+ case millimeters
+ case micrometers
+ case nanometers
+ case picometers
+ case inches
+ case feet
+ case yards
+ case miles
+ case scandinavianMiles
+ case lightyears
+ case nauticalMiles
+ case fathoms
+ case furlongs
+ case parsecs
+ case lux
+ case kilograms
+ case grams
+ case decigrams
+ case centigrams
+ case milligrams
+ case micrograms
+ case nanograms
+ case picograms
+ case ounces
+ case pounds
+ case stones
+ case metricTons
+ case shortTons
+ case carats
+ case ouncesTroy
+ case slugs
+ case terawatts
+ case gigawatts
+ case megawatts
+ case kilowatts
+ case watts
+ case milliwatts
+ case microwatts
+ case nanowatts
+ case picowatts
+ case femtowatts
+ case horsepower
+ case newtonsPerMetersSquared
+ case gigapascals
+ case megapascals
+ case kilopascals
+ case hectopascals
+ case inchesOfMercury
+ case bars
+ case millibars
+ case millimetersOfMercury
+ case poundsForcePerSquareInch
+ case metersPerSecond
+ case kilometersPerHour
+ case milesPerHour
+ case knots
+ case kelvin
+ case celsius
+ case fahrenheit
+ case megaliters
+ case kiloliters
+ case liters
+ case milliliters
+ case cubicKilometers
+ case cubicMeters
+ case cubicCentimeters
+ case cubicMillimeters
+ case cubicInches
+ case cubicFeet
+ case cubicYards
+ case cubicMiles
+ case acreFeet
+ case bushels
+ case teaspoons
+ case tablespoons
+ case fluidOunces
+ case cups
+ case pints
+ case quarts
+ case gallons
+ case imperialTeaspoons
+ case imperialTablespoons
+ case imperialFluidOunces
+ case imperialPints
+ case imperialQuarts
+ case imperialGallons
+ case metricCups
+ case bytes
+ case bits
+ case yottabytes
+ case zettabytes
+ case exabytes
+ case petabytes
+ case terabytes
+ case gigabytes
+ case megabytes
+ case kilobytes
+ case yottabits
+ case zettabits
+ case exabits
+ case petabits
+ case terabits
+ case gigabits
+ case megabits
+ case kilobits
+ case yobibytes
+ case zebibytes
+ case exbibytes
+ case pebibytes
+ case tebibytes
+ case gibibytes
+ case mebibytes
+ case kibibytes
+ case yobibits
+ case zebibits
+ case exbibits
+ case pebibits
+ case tebibits
+ case gibibits
+ case mebibits
+ case kibibits
+ case pixel
+ case em
+ case point
+ case bytesPerSecond
+ case bitsPerSecond
+ case yottabytesPerSecond
+ case zettabytesPerSecond
+ case exabytesPerSecond
+ case petabytesPerSecond
+ case terabytesPerSecond
+ case gigabytesPerSecond
+ case megabytesPerSecond
+ case kilobytesPerSecond
+ case yottabitsPerSecond
+ case zettabitsPerSecond
+ case exabitsPerSecond
+ case petabitsPerSecond
+ case terabitsPerSecond
+ case gigabitsPerSecond
+ case megabitsPerSecond
+ case kilobitsPerSecond
+ case yobibytesPerSecond
+ case zebibytesPerSecond
+ case exbibytesPerSecond
+ case pebibytesPerSecond
+ case tebibytesPerSecond
+ case gibibytesPerSecond
+ case mebibytesPerSecond
+ case kibibytesPerSecond
+ case yobibitsPerSecond
+ case zebibitsPerSecond
+ case exbibitsPerSecond
+ case pebibitsPerSecond
+ case tebibitsPerSecond
+ case gibibitsPerSecond
+ case mebibitsPerSecond
+ case kibibitsPerSecond
+ case usd
+ case aud
+ case eur
+ case undefined
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitIdentifier]
+ public static var allCases: [SoulverCore.UnitIdentifier] {
+ get
+ }
+}
+extension UnitIdentifier {
+ public var unitType: SoulverCore.UnitType {
+ get
+ }
+}
+public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable {
+ case length
+ case mass
+ case duration
+ case currency
+ case volume
+ case speed
+ case acceleration
+ case temperature
+ case concentrationMass
+ case dispersion
+ case dataStorage
+ case dataTransfer
+ case area
+ case frequency
+ case angle
+ case illuminance
+ case energy
+ case power
+ case pressure
+ case fuelEfficiency
+ case electricCurrent
+ case electricCharge
+ case electricPotential
+ case electricResistance
+ case other
+ public var label: Swift.String {
+ get
+ }
+ public var baseUnitIdentifier: SoulverCore.UnitIdentifier {
+ get
+ }
+ public var associatedOtherUnits: [SoulverCore.UnitIdentifier] {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public var rawValue: Swift.String {
+ get
+ }
+ public init?(rawValue: Swift.String)
+ public typealias AllCases = [SoulverCore.UnitType]
+ public static var allCases: [SoulverCore.UnitType] {
+ get
+ }
+}
+public func cocoaUnitFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.CocoaUnit
+public func unitIdentifierFor(cocoaUnit: SoulverCore.CocoaUnit) -> SoulverCore.UnitIdentifier?
+public func motherUnitIdentifierFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.UnitIdentifier
+@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
+ @objc override dynamic public var isAsynchronous: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isExecuting: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isFinished: Swift.Bool {
+ @objc get
+ }
+ public var state: SoulverCore.AsynchronousOperation.State {
+ get
+ set
+ }
+ public enum State : Swift.String {
+ case ready
+ case executing
+ case finished
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ }
+ @objc override dynamic open func start()
+ @objc override dynamic open func main()
+ @objc override dynamic public init()
+ @objc deinit
+}
+public struct UnitExpression {
+ public let value: Foundation.Decimal
+ public let unit: SoulverCore.CocoaUnit
+}
+extension UnitExpression : Swift.Comparable {
+ public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+ public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+}
+public typealias TokenIndex = Swift.Int
+public struct TokenIndexPath : Swift.Equatable {
+ public let tokenIndex: SoulverCore.TokenIndex
+ public let lineIndex: SoulverCore.LineIndex
+ public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
+ public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
+}
+public struct NotationPreferences : Swift.Equatable {
+ public enum NotationStyle {
+ case auto
+ case on
+ case off
+ public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public var notationStyle: SoulverCore.NotationPreferences.NotationStyle
+ public var upperNotationThreshold: SoulverCore.SIThreshold
+ public var lowerNotationThreshold: SoulverCore.SIThreshold
+ public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
+}
+public struct FormattingPreferences : Swift.Codable, Swift.Equatable {
+ public static var maximumDp: Swift.Int
+ public var dp: Swift.Int
+ public var thousandsSeparatorDisabled: Swift.Bool
+ public var currencyFormattingDisabled: Swift.Bool
+ public var implicitUnitsDisabled: Swift.Bool
+ public var notationPreferences: SoulverCore.NotationPreferences
+ public var referencesTakeFormattedValue: Swift.Bool
+ public var fractionizeWherePossible: Swift.Bool
+ public init()
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool
+}
+public struct ExpressionBeautificationOptions {
+ public var quickOperators: Swift.Bool
+ public var autoThousandsSeparators: Swift.Bool
+ public var padStandardOperators: Swift.Bool
+ public var fancyTimes: Swift.Bool
+ public var fancyMinus: Swift.Bool
+ public var collapseSpaces: Swift.Bool
+ public var formatsSlashCommentsWithSpaces: Swift.Bool
+ public static var defaults: SoulverCore.ExpressionBeautificationOptions {
+ get
+ }
+ public init()
+}
+extension Array where Element : Swift.Equatable {
+ public func doesNotContain(_ element: Element) -> Swift.Bool
+}
+extension Array {
+ public subscript(safe index: Swift.Array.Index) -> Element? {
+ get
+ }
+ public var lastIndex: Swift.Int? {
+ get
+ }
+ public func isValid(index: Swift.Int) -> Swift.Bool
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public mutating func trim(where predicate: (Element) throws -> Swift.Bool)
+ public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index)
+}
+extension IndexSet {
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func isJust(_ integer: Swift.Int) -> Swift.Bool
+ public var onlyFirst: Foundation.IndexSet {
+ get
+ }
+ public var removingFirstIndex: Foundation.IndexSet {
+ get
+ }
+ public var smartDescription: Swift.String {
+ get
+ }
+ public var secondLastIndex: Swift.Int? {
+ get
+ }
+}
+public struct UnitDescription : Swift.Hashable, Swift.Codable {
+ public init(unit: SoulverCore.CocoaUnit, symbol: Swift.String, aliases: [Swift.String])
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool
+}
+extension Dimension {
+ public var svUnitType: SoulverCore.UnitType {
+ get
+ }
+}
+extension SoulverCore.TokenType : Swift.Equatable {}
+extension SoulverCore.TokenType : Swift.Hashable {}
+extension SoulverCore.TokenSubType : Swift.Equatable {}
+extension SoulverCore.TokenSubType : Swift.Hashable {}
+extension SoulverCore.EvaluationError : Swift.Equatable {}
+extension SoulverCore.EvaluationError : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.Equatable {}
+extension SoulverCore.CurrencySet : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.RawRepresentable {}
+extension SoulverCore.LineStyle : Swift.Equatable {}
+extension SoulverCore.LineStyle : Swift.Hashable {}
+extension SoulverCore.LineStyle : Swift.RawRepresentable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Equatable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Hashable {}
+extension SoulverCore.UnitMeasurementSystem : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.Equatable {}
+extension SoulverCore.SIThreshold : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.RawRepresentable {}
+extension SoulverCore.ApparentLineType : Swift.Equatable {}
+extension SoulverCore.ApparentLineType : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Equatable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.RawRepresentable {}
+extension SoulverCore.UnitIdentifier : Swift.Equatable {}
+extension SoulverCore.UnitIdentifier : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.Equatable {}
+extension SoulverCore.UnitType : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.RawRepresentable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Equatable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Hashable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.RawRepresentable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Equatable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Hashable {}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/module.modulemap b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/module.modulemap
new file mode 100644
index 000000000..2ed647f59
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/module.modulemap
@@ -0,0 +1,11 @@
+framework module SoulverCore {
+ umbrella header "SoulverCore.h"
+
+ export *
+ module * { export * }
+}
+
+module SoulverCore.Swift {
+ header "SoulverCore-Swift.h"
+ requires objc
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/SoulverCore b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/SoulverCore
new file mode 100755
index 000000000..ce78812ac
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/SoulverCore differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources
new file mode 100644
index 000000000..bcf585d19
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources
@@ -0,0 +1,746 @@
+
+
+
+
+ files
+
+ Base.lproj/Cities.json
+
+ D+wxjw9nMpw75+T3tngLf/JRJjU=
+
+ Base.lproj/Countries.json
+
+ T4V6G0MLWaLrwcBBSufR3V0TWBE=
+
+ Base.lproj/DefaultCurrencyRates.json
+
+ w+JkWfn+Jf/J7FPeUkK0b13cDUs=
+
+ Base.lproj/FunctionDescriptions.json
+
+ bZsiMXg7mwh7jSvlT3ZaomxJ1W8=
+
+ Base.lproj/LocalizedFixtures.json
+
+ NWMiLnjTuUerTiivFSr0jwI3bh0=
+
+ Base.lproj/TimeZoneAbbrieviations.json
+
+ bQAAIqFU+QMb2jjPaP2Ee1f1wtU=
+
+ Base.lproj/UnitDescriptions.json
+
+ GsUHwlNlikAuPVJ6aemlQZAghUU=
+
+ Headers/SoulverCore-Swift.h
+
+ 1IX0ZwtRUUFarI2OBQpvRd3CXB4=
+
+ Headers/SoulverCore.h
+
+ 9Qoof5tv9LEhTfcvrFTFpKLHYQM=
+
+ Info.plist
+
+ mE26pH4C1x6XcfXkIqci9DSqbx8=
+
+ Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
+
+ p9p6eRplCltprUlRkmzNmkJirYc=
+
+ Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
+
+ nKs5OIWP83JT2PBg5zaXU1iDRNI=
+
+ Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
+
+ cIg0aIXQiZ9Vhgu4oPf3VtcSvvQ=
+
+ Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
+
+ p9p6eRplCltprUlRkmzNmkJirYc=
+
+ Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
+
+ nKs5OIWP83JT2PBg5zaXU1iDRNI=
+
+ Modules/SoulverCore.swiftmodule/x86_64.swiftmodule
+
+ cIg0aIXQiZ9Vhgu4oPf3VtcSvvQ=
+
+ Modules/module.modulemap
+
+ kzVEEwhzI++IzD8g3BkOCqV67gQ=
+
+ de.lproj/Cities.json
+
+ hash
+
+ L8VvUoV/rZ5dLN7zd2E2hsIdyQw=
+
+ optional
+
+
+ de.lproj/FunctionDescriptions.json
+
+ hash
+
+ FFtsGMtVMhM9/WCV1zAmQJKlAqA=
+
+ optional
+
+
+ de.lproj/Localizable.strings
+
+ hash
+
+ FluTI3sIgBDUX4aKH0hhIqhZixA=
+
+ optional
+
+
+ de.lproj/Localizable.stringsdict
+
+ hash
+
+ t4EOmdfoyxrqZUKDaHiiWJyEsYw=
+
+ optional
+
+
+ de.lproj/LocalizedFixtures.json
+
+ hash
+
+ WPkt6GEJUvbVdyraTRey4PDWsWc=
+
+ optional
+
+
+ de.lproj/UnitDescriptions.json
+
+ hash
+
+ hMxxzzhXjmjlk/UIQCyrIv20eWs=
+
+ optional
+
+
+ en.lproj/Localizable.strings
+
+ hash
+
+ Z+oxesnVG+PCd8izmo2kxJWcu34=
+
+ optional
+
+
+ en.lproj/Localizable.stringsdict
+
+ hash
+
+ nrfdmFWk0QsvYHNY291WwDmI86M=
+
+ optional
+
+
+ ru.lproj/Cities.json
+
+ hash
+
+ Jo/z9MOsm7XJxZLB3VqGIntgfeU=
+
+ optional
+
+
+ ru.lproj/FunctionDescriptions.json
+
+ hash
+
+ Yc6Xdp3ilb6s0DE6sxR+MxlYkbs=
+
+ optional
+
+
+ ru.lproj/Localizable.strings
+
+ hash
+
+ Pd5Jht23mEwd3RL/693smSRtXSA=
+
+ optional
+
+
+ ru.lproj/Localizable.stringsdict
+
+ hash
+
+ 5gubX0DDuInu2bw9hl3yx6oFmAw=
+
+ optional
+
+
+ ru.lproj/LocalizedFixtures.json
+
+ hash
+
+ d/bH9nNW3gXexhnIQF4vzbshGNI=
+
+ optional
+
+
+ ru.lproj/UnitDescriptions.json
+
+ hash
+
+ GXq2GgZYNsqY8AUOMhkz+ghriwQ=
+
+ optional
+
+
+ zh-Hans.lproj/Cities.json
+
+ hash
+
+ RnSBjZx8f9BVieGocwbUOdkwZSg=
+
+ optional
+
+
+ zh-Hans.lproj/FunctionDescriptions.json
+
+ hash
+
+ AAOL8iQ0HsBa0Pn+t2azz3FE0J0=
+
+ optional
+
+
+ zh-Hans.lproj/Localizable.strings
+
+ hash
+
+ z+RhVhtikIG3oHSsApIQYJya/Jo=
+
+ optional
+
+
+ zh-Hans.lproj/Localizable.stringsdict
+
+ hash
+
+ l5F3x7fEQ9B7J7r+9Ye54ebjiFA=
+
+ optional
+
+
+ zh-Hans.lproj/LocalizedFixtures.json
+
+ hash
+
+ 42FDLUhGyJDSbFKWLOKTTz8gDQ0=
+
+ optional
+
+
+ zh-Hans.lproj/UnitDescriptions.json
+
+ hash
+
+ +UaCPhAYhzFJeTOtePE2Ne9B81Q=
+
+ optional
+
+
+ zh-Hant.lproj/Cities.json
+
+ hash
+
+ w6mEHSk1DxEOsfLTWyJf5Arw89U=
+
+ optional
+
+
+ zh-Hant.lproj/FunctionDescriptions.json
+
+ hash
+
+ +2zJc1PdbvBZH2IiWBQLt45qBx0=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.strings
+
+ hash
+
+ TCQCejIQ8wHLD/9/l3mEbXMa5ZI=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.stringsdict
+
+ hash
+
+ H5EMvVqbHpgKqmDNCcxsNA4+Lmk=
+
+ optional
+
+
+ zh-Hant.lproj/LocalizedFixtures.json
+
+ hash
+
+ MpFAMujwyD1Rt4zQpR3wcUjx5Uk=
+
+ optional
+
+
+ zh-Hant.lproj/UnitDescriptions.json
+
+ hash
+
+ vb6zAuF1o4wFVwYFsEtKR4C/8uY=
+
+ optional
+
+
+
+ files2
+
+ Base.lproj/Cities.json
+
+ hash2
+
+ VtN8FaDIdYK7S8kgkLlfzf+BKaRfziShpz4zaeEjZ00=
+
+
+ Base.lproj/Countries.json
+
+ hash2
+
+ GP0iXsGXAGabUlN55ghRN0tD1EDxrRcw/SkbFSavH+0=
+
+
+ Base.lproj/DefaultCurrencyRates.json
+
+ hash2
+
+ B78NglfTyJQfUcmDdPJ66JLH5xF7p94oTDU4qAFdxqE=
+
+
+ Base.lproj/FunctionDescriptions.json
+
+ hash2
+
+ AJo8KngstAGzlyOFfpful2Xm5w8CCiGg9KaxyxC+wPs=
+
+
+ Base.lproj/LocalizedFixtures.json
+
+ hash2
+
+ 7AdNHE+HXvkwO3sJk+nijmaU2oUm+s+kdLF2p4GMjww=
+
+
+ Base.lproj/TimeZoneAbbrieviations.json
+
+ hash2
+
+ ke9cD+p6Sn6uznpB197nCuEx562XHcdK0gQh2Otj+cA=
+
+
+ Base.lproj/UnitDescriptions.json
+
+ hash2
+
+ Y2QVB5AYxgmg8zWXiMRgQZaMm9yNIxO/NUcUH/FdSFo=
+
+
+ Headers/SoulverCore-Swift.h
+
+ hash2
+
+ Qua9vZtr/ntvdD/1rTkM8/I1nUefYDPBa3Npf15k0Go=
+
+
+ Headers/SoulverCore.h
+
+ hash2
+
+ r/gbiFDE4KZGAgcvkiC2Ad1O4Z+9w1mpI/qKRcl5br0=
+
+
+ Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
+
+ hash2
+
+ dz6y7orAJZmrYJ2yW7qu2PsrLV/caC7mvkSlC54H25Q=
+
+
+ Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
+
+ hash2
+
+ gtTxF2HvuNuhKrvje/5YoXdJ3YLEZl5sC7Krlfd8fTM=
+
+
+ Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
+
+ hash2
+
+ 9ggaUu/O5e5X9zt5fact5Fl9C30HScJqy7/qMWYadKs=
+
+
+ Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
+
+ hash2
+
+ dz6y7orAJZmrYJ2yW7qu2PsrLV/caC7mvkSlC54H25Q=
+
+
+ Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
+
+ hash2
+
+ gtTxF2HvuNuhKrvje/5YoXdJ3YLEZl5sC7Krlfd8fTM=
+
+
+ Modules/SoulverCore.swiftmodule/x86_64.swiftmodule
+
+ hash2
+
+ 9ggaUu/O5e5X9zt5fact5Fl9C30HScJqy7/qMWYadKs=
+
+
+ Modules/module.modulemap
+
+ hash2
+
+ 4rn8eR//75PhTvY/+NwnPaPv0Wr2igS6nO+75LRG65A=
+
+
+ de.lproj/Cities.json
+
+ hash2
+
+ xcW3TODoyBvoexVV/X2wGLz+0y63lh7nzhFWamUkv6E=
+
+ optional
+
+
+ de.lproj/FunctionDescriptions.json
+
+ hash2
+
+ W9+9K7tYx1xIbd53T+QBfzTbtIHhF4yOQ45omYfEHSk=
+
+ optional
+
+
+ de.lproj/Localizable.strings
+
+ hash2
+
+ 7QXg2Qxzz7mLExx/xHmKkrx9bNLcwCjr0YOdYWjn8Kg=
+
+ optional
+
+
+ de.lproj/Localizable.stringsdict
+
+ hash2
+
+ Me0/g27RnjXbLm0D5spFtKou/VcwFm72J7Ll/HW99aA=
+
+ optional
+
+
+ de.lproj/LocalizedFixtures.json
+
+ hash2
+
+ JqxwJLB5cNNmlGVVL/CKvHYme8ZN6fu8ATbN5WEjOSk=
+
+ optional
+
+
+ de.lproj/UnitDescriptions.json
+
+ hash2
+
+ omxfk0lbjRTtfSLEwRv9Ej2UZmCQx4NRI0m4eHShgCY=
+
+ optional
+
+
+ en.lproj/Localizable.strings
+
+ hash2
+
+ /lv3cyg0CBfF49ahjco8hIMAGpM2JcrE9lHtwuJIEnI=
+
+ optional
+
+
+ en.lproj/Localizable.stringsdict
+
+ hash2
+
+ TI6rPmfi2QNhCQTZd1CBoEXsiGzzHIwpaia4vWYU4zc=
+
+ optional
+
+
+ ru.lproj/Cities.json
+
+ hash2
+
+ 1kmeM1YyiLJCSmdXFnd5E4wkaJZi6TQj7Y6jMe3Gqx0=
+
+ optional
+
+
+ ru.lproj/FunctionDescriptions.json
+
+ hash2
+
+ I7swt5Nw8nDkVuG6L86+0NDYZ5+rNjHhPCJRZLrxTd8=
+
+ optional
+
+
+ ru.lproj/Localizable.strings
+
+ hash2
+
+ Mlx4it6QkBBC/G/Oc+dl+gn2AJNHO8fVHYpsJn37s2c=
+
+ optional
+
+
+ ru.lproj/Localizable.stringsdict
+
+ hash2
+
+ dj/85zi+H6z+gJ0QoAHVWMHYa8GLE7SdFmamTvh+v1E=
+
+ optional
+
+
+ ru.lproj/LocalizedFixtures.json
+
+ hash2
+
+ cd92/ijtDhKkz4Od87o3DGq5Bs1fdm2lPtE0T7oUqcM=
+
+ optional
+
+
+ ru.lproj/UnitDescriptions.json
+
+ hash2
+
+ ytcVBNo+vIIZEIKxZQ9yIOvLNMjM4AAIhESjMnp1X7c=
+
+ optional
+
+
+ zh-Hans.lproj/Cities.json
+
+ hash2
+
+ 4mSxJJMmhuA+/H/J/hTLUdk6zQLFv6ZzOhdynZjLyV4=
+
+ optional
+
+
+ zh-Hans.lproj/FunctionDescriptions.json
+
+ hash2
+
+ yxDBRkCbuYYx6Hk3QwFdKJ/xAB0aIRxItIbb2Lgi7Aw=
+
+ optional
+
+
+ zh-Hans.lproj/Localizable.strings
+
+ hash2
+
+ 642pgwKhwE/yRZrgL/LFM7vmtzY+cIHPJoJ/Gu41fgg=
+
+ optional
+
+
+ zh-Hans.lproj/Localizable.stringsdict
+
+ hash2
+
+ VMjKVuZCymRXjk35Ioj/2i3HwvGSR6VTCp98NgmHa6o=
+
+ optional
+
+
+ zh-Hans.lproj/LocalizedFixtures.json
+
+ hash2
+
+ z9edktWAbtNftUV+i/xmih0GrVPoqKkw7bTxEMvqRWA=
+
+ optional
+
+
+ zh-Hans.lproj/UnitDescriptions.json
+
+ hash2
+
+ TubogqT8dkrsejJW93FX4UfMo22LziWBXa730UH5hrI=
+
+ optional
+
+
+ zh-Hant.lproj/Cities.json
+
+ hash2
+
+ lBUP7gqPieqCEeaHmDEVJTVc82hYAFDe1cHooiy/El8=
+
+ optional
+
+
+ zh-Hant.lproj/FunctionDescriptions.json
+
+ hash2
+
+ vrlVhJKG9pQ4Po4nrqchKWfOUAPu+ALtMvytjinihUI=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.strings
+
+ hash2
+
+ 3/vC+UXH+TUtmvvn8OqI0kEVV17MhsktOrdCyoY9ctU=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.stringsdict
+
+ hash2
+
+ Hcw/XrVcnGIz9UWovPcDpmoEUUEwuwP3SEYnMwiymBI=
+
+ optional
+
+
+ zh-Hant.lproj/LocalizedFixtures.json
+
+ hash2
+
+ 7WQGxDYdRY62qF+1IMU2Ie6pwxk8yHeaio2R5MXx65U=
+
+ optional
+
+
+ zh-Hant.lproj/UnitDescriptions.json
+
+ hash2
+
+ imP7PDmCUOpC0zgWpF90/NDIUZPSylzBCgFcBfp0WJA=
+
+ optional
+
+
+
+ rules
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/Cities.json
new file mode 100644
index 000000000..2d5b33507
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/Cities.json
@@ -0,0 +1,3566 @@
+[
+ {
+ "identifier": "shanghai",
+ "name": "Shanghai",
+ "population": "22,315,474",
+ "elevation": 12,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "istanbul",
+ "name": "Istanbul",
+ "population": "14,804,116",
+ "elevation": 39,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "buenos aires",
+ "name": "Buenos Aires",
+ "population": "13,076,300",
+ "elevation": 31,
+ "timezone_id": "America/Argentina/Buenos_Aires"
+ },
+ {
+ "identifier": "mumbai",
+ "name": "Mumbai",
+ "population": "12,691,836",
+ "elevation": 8,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "mexico city",
+ "name": "Mexico City",
+ "population": "12,294,193",
+ "elevation": 2240,
+ "timezone_id": "America/Mexico_City"
+ },
+ {
+ "identifier": "beijing",
+ "name": "Beijing",
+ "population": "11,716,620",
+ "elevation": 49,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "karachi",
+ "name": "Karachi",
+ "population": "11,624,219",
+ "elevation": 8,
+ "timezone_id": "Asia/Karachi"
+ },
+ {
+ "identifier": "tianjin",
+ "name": "Tianjin",
+ "population": "11,090,314",
+ "elevation": 11,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "guangzhou",
+ "name": "Guangzhou",
+ "population": "11,071,424",
+ "elevation": 15,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "delhi",
+ "name": "Delhi",
+ "population": "10,927,986",
+ "elevation": 227,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "moscow",
+ "name": "Moskau",
+ "population": "10,381,222",
+ "elevation": 144,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "shenzhen",
+ "name": "Shenzhen",
+ "population": "10,358,381",
+ "elevation": 4,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "dhaka",
+ "name": "Dhaka",
+ "population": "10,356,500",
+ "elevation": 23,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "seoul",
+ "name": "Seoul",
+ "population": "10,349,312",
+ "elevation": 38,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "sao paulo",
+ "name": "Sao Paulo",
+ "population": "10,021,295",
+ "elevation": 769,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "wuhan",
+ "name": "Wuhan",
+ "population": "9,785,388",
+ "elevation": 20,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "lagos",
+ "name": "Lagos",
+ "population": "9,000,000",
+ "elevation": 11,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "jakarta",
+ "name": "Jakarta",
+ "population": "8,540,121",
+ "elevation": 16,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "tokyo",
+ "name": "Tokio",
+ "population": "8,336,599",
+ "elevation": 44,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "new york",
+ "name": "New York",
+ "population": "8,175,133",
+ "elevation": 57,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "dongguan",
+ "name": "Dongguan",
+ "population": "8,000,000",
+ "elevation": 1,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "taipei",
+ "name": "Taipei",
+ "population": "7,871,900",
+ "elevation": 10,
+ "timezone_id": "Asia/Taipei"
+ },
+ {
+ "identifier": "kinshasa",
+ "name": "Kinshasa",
+ "population": "7,785,965",
+ "elevation": 281,
+ "timezone_id": "Africa/Kinshasa"
+ },
+ {
+ "identifier": "cairo",
+ "name": "Kairo",
+ "population": "7,734,614",
+ "elevation": 23,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "bogota",
+ "name": "Bogota",
+ "population": "7,674,366",
+ "elevation": 2582,
+ "timezone_id": "America/Bogota"
+ },
+ {
+ "identifier": "london",
+ "name": "London",
+ "population": "7,556,900",
+ "elevation": 25,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "chongqing",
+ "name": "Chongqing",
+ "population": "7,457,600",
+ "elevation": 225,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "chengdu",
+ "name": "Chengdu",
+ "population": "7,415,590",
+ "elevation": 499,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "baghdad",
+ "name": "Baghdad",
+ "population": "7,216,000",
+ "elevation": 41,
+ "timezone_id": "Asia/Baghdad"
+ },
+ {
+ "identifier": "nanjing",
+ "name": "Nanjing",
+ "population": "7,165,292",
+ "elevation": 22,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "tehran",
+ "name": "Teheran",
+ "population": "7,153,309",
+ "elevation": 1178,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "nanchong",
+ "name": "Nanchong",
+ "population": "7,150,000",
+ "elevation": 287,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "hong kong",
+ "name": "Hong Kong",
+ "population": "7,012,738",
+ "elevation": 60,
+ "timezone_id": "Asia/Hong_Kong"
+ },
+ {
+ "identifier": "xi'an",
+ "name": "Xi'an",
+ "population": "6,501,190",
+ "elevation": 416,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "rio de janeiro",
+ "name": "Rio de Janeiro",
+ "population": "6,023,699",
+ "elevation": 6,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "bangkok",
+ "name": "Bangkok",
+ "population": "5,104,476",
+ "elevation": 12,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "bengaluru",
+ "name": "Bengaluru",
+ "population": "5,104,047",
+ "elevation": 914,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "saint petersburg",
+ "name": "Sankt Petersburg",
+ "population": "5,028,000",
+ "elevation": 11,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "santiago",
+ "name": "Santiago",
+ "population": "4,837,295",
+ "elevation": 556,
+ "timezone_id": "America/Santiago"
+ },
+ {
+ "identifier": "kolkata",
+ "name": "Kalkutta",
+ "population": "4,631,392",
+ "elevation": 11,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "sydney",
+ "name": "Sydney",
+ "population": "4,627,345",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "yangon",
+ "name": "Yangon",
+ "population": "4,477,638",
+ "elevation": 30,
+ "timezone_id": "Asia/Yangon"
+ },
+ {
+ "identifier": "chennai",
+ "name": "Chennai",
+ "population": "4,328,063",
+ "elevation": 14,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "melbourne",
+ "name": "Melbourne",
+ "population": "4,246,375",
+ "elevation": 58,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "riyadh",
+ "name": "Riad",
+ "population": "4,205,961",
+ "elevation": 612,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "los angeles",
+ "name": "Los Angeles",
+ "population": "3,971,883",
+ "elevation": 96,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "chittagong",
+ "name": "Chittagong",
+ "population": "3,920,222",
+ "elevation": 15,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "alexandria",
+ "name": "Alexandria",
+ "population": "3,811,516",
+ "elevation": 9,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "ahmedabad",
+ "name": "Ahmedabad",
+ "population": "3,719,710",
+ "elevation": 56,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "busan",
+ "name": "Busan",
+ "population": "3,678,555",
+ "elevation": 26,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "abidjan",
+ "name": "Abidjan",
+ "population": "3,677,115",
+ "elevation": 76,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "kano",
+ "name": "Kano",
+ "population": "3,626,068",
+ "elevation": 484,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hyderabad",
+ "name": "Haiderabad",
+ "population": "3,597,816",
+ "elevation": 515,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "yokohama",
+ "name": "Yokohama",
+ "population": "3,574,443",
+ "elevation": 21,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "ibadan",
+ "name": "Ibadan",
+ "population": "3,565,108",
+ "elevation": 181,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "singapore",
+ "name": "Singapur",
+ "population": "3,547,809",
+ "elevation": 23,
+ "timezone_id": "Asia/Singapore"
+ },
+ {
+ "identifier": "ankara",
+ "name": "Ankara",
+ "population": "3,517,182",
+ "elevation": 874,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "ho chi minh city",
+ "name": "Ho-Chi-Minh-Stadt",
+ "population": "3,467,331",
+ "elevation": 7,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "cape town",
+ "name": "Kapstadt",
+ "population": "3,433,441",
+ "elevation": 25,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "berlin",
+ "name": "Berlin",
+ "population": "3,426,354",
+ "elevation": 43,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "madrid",
+ "name": "Madrid",
+ "population": "3,255,944",
+ "elevation": 665,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pyongyang",
+ "name": "Pjöngjang",
+ "population": "3,222,000",
+ "elevation": 43,
+ "timezone_id": "Asia/Pyongyang"
+ },
+ {
+ "identifier": "casablanca",
+ "name": "Casablanca",
+ "population": "3,144,909",
+ "elevation": 27,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "zhongshan",
+ "name": "Zhongshan",
+ "population": "3,121,275",
+ "elevation": 14,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "durban",
+ "name": "Durban",
+ "population": "3,120,282",
+ "elevation": 21,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "kabul",
+ "name": "Kabul",
+ "population": "3,043,532",
+ "elevation": 1798,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "urumqi",
+ "name": "Urumqi",
+ "population": "3,029,372",
+ "elevation": 862,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "caracas",
+ "name": "Caracas",
+ "population": "3,000,000",
+ "elevation": 887,
+ "timezone_id": "America/Caracas"
+ },
+ {
+ "identifier": "dubai",
+ "name": "Dubai",
+ "population": "2,956,587",
+ "elevation": 24,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "jeddah",
+ "name": "Jeddah",
+ "population": "2,867,446",
+ "elevation": 22,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "kyiv",
+ "name": "Kiew",
+ "population": "2,797,553",
+ "elevation": 187,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "luanda",
+ "name": "Luanda",
+ "population": "2,776,168",
+ "elevation": 73,
+ "timezone_id": "Africa/Luanda"
+ },
+ {
+ "identifier": "quezon city",
+ "name": "Quezon City",
+ "population": "2,761,720",
+ "elevation": 49,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "addis ababa",
+ "name": "Addis Abeba",
+ "population": "2,757,729",
+ "elevation": 2405,
+ "timezone_id": "Africa/Addis_Ababa"
+ },
+ {
+ "identifier": "nairobi",
+ "name": "Nairobi",
+ "population": "2,750,547",
+ "elevation": 1684,
+ "timezone_id": "Africa/Nairobi"
+ },
+ {
+ "identifier": "chicago",
+ "name": "Chicago",
+ "population": "2,720,546",
+ "elevation": 180,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "salvador",
+ "name": "Salvador",
+ "population": "2,711,840",
+ "elevation": 10,
+ "timezone_id": "America/Bahia"
+ },
+ {
+ "identifier": "dar es salaam",
+ "name": "Daressalam",
+ "population": "2,698,652",
+ "elevation": 24,
+ "timezone_id": "Africa/Dar_es_Salaam"
+ },
+ {
+ "identifier": "toronto",
+ "name": "Toronto",
+ "population": "2,600,000",
+ "elevation": 175,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "osaka",
+ "name": "Osaka",
+ "population": "2,592,413",
+ "elevation": 24,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "mogadishu",
+ "name": "Mogadischu",
+ "population": "2,587,183",
+ "elevation": 12,
+ "timezone_id": "Africa/Mogadishu"
+ },
+ {
+ "identifier": "izmir",
+ "name": "Izmir",
+ "population": "2,500,603",
+ "elevation": 122,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "dakar",
+ "name": "Dakar",
+ "population": "2,476,400",
+ "elevation": 12,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "giza",
+ "name": "Gizeh",
+ "population": "2,443,203",
+ "elevation": 26,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "fortaleza",
+ "name": "Fortaleza",
+ "population": "2,400,000",
+ "elevation": 18,
+ "timezone_id": "America/Fortaleza"
+ },
+ {
+ "identifier": "surabaya",
+ "name": "Surabaya",
+ "population": "2,374,658",
+ "elevation": 8,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "belo horizonte",
+ "name": "Belo Horizonte",
+ "population": "2,373,224",
+ "elevation": 872,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "rome",
+ "name": "Rom",
+ "population": "2,318,895",
+ "elevation": 52,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "mashhad",
+ "name": "Mashhad",
+ "population": "2,307,177",
+ "elevation": 1003,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "brooklyn",
+ "name": "Brooklyn",
+ "population": "2,300,664",
+ "elevation": 18,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "houston",
+ "name": "Houston",
+ "population": "2,296,224",
+ "elevation": 30,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "queens",
+ "name": "Queens",
+ "population": "2,272,771",
+ "elevation": 13,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brasilia",
+ "name": "Brasilia",
+ "population": "2,207,718",
+ "elevation": 1136,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "santo domingo",
+ "name": "Santo Domingo",
+ "population": "2,201,941",
+ "elevation": 9,
+ "timezone_id": "America/Santo_Domingo"
+ },
+ {
+ "identifier": "nagoya",
+ "name": "Nagoya",
+ "population": "2,191,279",
+ "elevation": 23,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "brisbane",
+ "name": "Brisbane",
+ "population": "2,189,878",
+ "elevation": 27,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "havana",
+ "name": "Havanna",
+ "population": "2,163,824",
+ "elevation": 41,
+ "timezone_id": "America/Havana"
+ },
+ {
+ "identifier": "paris",
+ "name": "Paris",
+ "population": "2,138,551",
+ "elevation": 42,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "johannesburg",
+ "name": "Johannesburg",
+ "population": "2,026,469",
+ "elevation": 1767,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "almaty",
+ "name": "Almaty",
+ "population": "2,000,900",
+ "elevation": 787,
+ "timezone_id": "Asia/Almaty"
+ },
+ {
+ "identifier": "tashkent",
+ "name": "Taschkent",
+ "population": "1,978,028",
+ "elevation": 424,
+ "timezone_id": "Asia/Tashkent"
+ },
+ {
+ "identifier": "algiers",
+ "name": "Algiers",
+ "population": "1,977,663",
+ "elevation": 113,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "khartoum",
+ "name": "Khartum",
+ "population": "1,974,647",
+ "elevation": 381,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "accra",
+ "name": "Accra",
+ "population": "1,963,264",
+ "elevation": 33,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "guayaquil",
+ "name": "Guayaquil",
+ "population": "1,952,029",
+ "elevation": 1,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "sanaa",
+ "name": "Sanaa",
+ "population": "1,937,451",
+ "elevation": 2253,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "beirut",
+ "name": "Beirut",
+ "population": "1,916,100",
+ "elevation": 40,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "perth",
+ "name": "Perth",
+ "population": "1,896,548",
+ "elevation": 46,
+ "timezone_id": "Australia/Perth"
+ },
+ {
+ "identifier": "sapporo",
+ "name": "Sapporo",
+ "population": "1,883,027",
+ "elevation": 26,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "bucharest",
+ "name": "Bukarest",
+ "population": "1,877,155",
+ "elevation": 83,
+ "timezone_id": "Europe/Bucharest"
+ },
+ {
+ "identifier": "camayenne",
+ "name": "Camayenne",
+ "population": "1,871,242",
+ "elevation": 6,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "conakry",
+ "name": "Conakry",
+ "population": "1,767,200",
+ "elevation": 13,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "minsk",
+ "name": "Minsk",
+ "population": "1,742,124",
+ "elevation": 222,
+ "timezone_id": "Europe/Minsk"
+ },
+ {
+ "identifier": "budapest",
+ "name": "Budapest",
+ "population": "1,741,041",
+ "elevation": 75,
+ "timezone_id": "Europe/Budapest"
+ },
+ {
+ "identifier": "hamburg",
+ "name": "Hamburg",
+ "population": "1,739,117",
+ "elevation": 2,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "warsaw",
+ "name": "Warschau",
+ "population": "1,702,139",
+ "elevation": 113,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "soweto",
+ "name": "Soweto",
+ "population": "1,695,047",
+ "elevation": 1632,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "vienna",
+ "name": "Wien",
+ "population": "1,691,468",
+ "elevation": 193,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "rabat",
+ "name": "Rabat",
+ "population": "1,655,753",
+ "elevation": 46,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "barcelona",
+ "name": "Barcelona",
+ "population": "1,621,537",
+ "elevation": 47,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pretoria",
+ "name": "Pretoria",
+ "population": "1,619,438",
+ "elevation": 1332,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "aleppo",
+ "name": "Aleppo",
+ "population": "1,602,264",
+ "elevation": 401,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "manila",
+ "name": "Manila",
+ "population": "1,600,000",
+ "elevation": 13,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "montreal",
+ "name": "Montreal",
+ "population": "1,600,000",
+ "elevation": 216,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "kaduna",
+ "name": "Kaduna",
+ "population": "1,582,102",
+ "elevation": 626,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "phnom penh",
+ "name": "Phnom Penh",
+ "population": "1,573,544",
+ "elevation": 20,
+ "timezone_id": "Asia/Phnom_Penh"
+ },
+ {
+ "identifier": "damascus",
+ "name": "Damaskus",
+ "population": "1,569,394",
+ "elevation": 701,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "philadelphia",
+ "name": "Philadelphia",
+ "population": "1,567,442",
+ "elevation": 40,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "phoenix",
+ "name": "Phoenix",
+ "population": "1,563,025",
+ "elevation": 366,
+ "timezone_id": "America/Phoenix"
+ },
+ {
+ "identifier": "isfahan",
+ "name": "Isfahan",
+ "population": "1,547,164",
+ "elevation": 1578,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "harare",
+ "name": "Harare",
+ "population": "1,542,813",
+ "elevation": 1494,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "kobe",
+ "name": "Kobe",
+ "population": "1,528,478",
+ "elevation": 35,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "stockholm",
+ "name": "Stockholm",
+ "population": "1,515,017",
+ "elevation": 12,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "manhattan",
+ "name": "Manhattan",
+ "population": "1,487,536",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "asuncion",
+ "name": "Asuncion",
+ "population": "1,482,200",
+ "elevation": 107,
+ "timezone_id": "America/Asuncion"
+ },
+ {
+ "identifier": "recife",
+ "name": "Recife",
+ "population": "1,478,098",
+ "elevation": 8,
+ "timezone_id": "America/Recife"
+ },
+ {
+ "identifier": "san antonio",
+ "name": "San Antonio",
+ "population": "1,469,845",
+ "elevation": 202,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kumasi",
+ "name": "Kumasi",
+ "population": "1,468,609",
+ "elevation": 270,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "kota bharu",
+ "name": "Kota Bharu",
+ "population": "1,459,994",
+ "elevation": 1,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "kyoto",
+ "name": "Kyoto",
+ "population": "1,459,640",
+ "elevation": 50,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "kuala lumpur",
+ "name": "Kuala Lumpur",
+ "population": "1,453,975",
+ "elevation": 56,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "karaj",
+ "name": "Karadsch",
+ "population": "1,448,075",
+ "elevation": 1341,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kathmandu",
+ "name": "Kathmandu",
+ "population": "1,442,271",
+ "elevation": 1296,
+ "timezone_id": "Asia/Kathmandu"
+ },
+ {
+ "identifier": "hanoi",
+ "name": "Hanoi",
+ "population": "1,431,270",
+ "elevation": 10,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "kharkiv",
+ "name": "Kharkiv",
+ "population": "1,430,885",
+ "elevation": 113,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "cordoba",
+ "name": "Cordoba",
+ "population": "1,428,214",
+ "elevation": 395,
+ "timezone_id": "America/Argentina/Cordoba"
+ },
+ {
+ "identifier": "tabriz",
+ "name": "Tabriz",
+ "population": "1,424,641",
+ "elevation": 1396,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "novosibirsk",
+ "name": "Nowosibirsk",
+ "population": "1,419,007",
+ "elevation": 164,
+ "timezone_id": "Asia/Novosibirsk"
+ },
+ {
+ "identifier": "belem",
+ "name": "Belem",
+ "population": "1,407,737",
+ "elevation": 15,
+ "timezone_id": "America/Belem"
+ },
+ {
+ "identifier": "quito",
+ "name": "Quito",
+ "population": "1,399,814",
+ "elevation": 2854,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "san diego",
+ "name": "San Diego",
+ "population": "1,394,928",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "fukuoka",
+ "name": "Fukuoka",
+ "population": "1,392,289",
+ "elevation": 3,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "antananarivo",
+ "name": "Antananarivo",
+ "population": "1,391,433",
+ "elevation": 1274,
+ "timezone_id": "Indian/Antananarivo"
+ },
+ {
+ "identifier": "the bronx",
+ "name": "The Bronx",
+ "population": "1,385,108",
+ "elevation": 19,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "lubumbashi",
+ "name": "Lubumbashi",
+ "population": "1,373,770",
+ "elevation": 1260,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "santa cruz de la sierra",
+ "name": "Santa Cruz de la Sierra",
+ "population": "1,364,389",
+ "elevation": 433,
+ "timezone_id": "America/La_Paz"
+ },
+ {
+ "identifier": "kampala",
+ "name": "Kampala",
+ "population": "1,353,189",
+ "elevation": 1223,
+ "timezone_id": "Africa/Kampala"
+ },
+ {
+ "identifier": "yekaterinburg",
+ "name": "Jekaterinburg",
+ "population": "1,349,772",
+ "elevation": 255,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "douala",
+ "name": "Douala",
+ "population": "1,338,082",
+ "elevation": 19,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "sharjah",
+ "name": "Sharjah",
+ "population": "1,324,473",
+ "elevation": 6,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "mecca",
+ "name": "Mekka",
+ "population": "1,323,624",
+ "elevation": 333,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "makassar",
+ "name": "Makassar",
+ "population": "1,321,717",
+ "elevation": 6,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "juarez",
+ "name": "Juarez",
+ "population": "1,321,004",
+ "elevation": 1124,
+ "timezone_id": "America/Ojinaga"
+ },
+ {
+ "identifier": "kawasaki",
+ "name": "Kawasaki",
+ "population": "1,306,785",
+ "elevation": 1,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "tijuana",
+ "name": "Tijuana",
+ "population": "1,300,983",
+ "elevation": 97,
+ "timezone_id": "America/Tijuana"
+ },
+ {
+ "identifier": "dallas",
+ "name": "Dallas",
+ "population": "1,300,092",
+ "elevation": 139,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "medina",
+ "name": "Medina",
+ "population": "1,300,000",
+ "elevation": 603,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "yaounde",
+ "name": "Yaounde",
+ "population": "1,299,369",
+ "elevation": 726,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "bamako",
+ "name": "Bamako",
+ "population": "1,297,281",
+ "elevation": 338,
+ "timezone_id": "Africa/Bamako"
+ },
+ {
+ "identifier": "brazzaville",
+ "name": "Brazzaville",
+ "population": "1,284,609",
+ "elevation": 284,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "nizhniy novgorod",
+ "name": "Nischni Nowgorod",
+ "population": "1,284,164",
+ "elevation": 141,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "amman",
+ "name": "Amman",
+ "population": "1,275,857",
+ "elevation": 757,
+ "timezone_id": "Asia/Amman"
+ },
+ {
+ "identifier": "belgrade",
+ "name": "Belgrad",
+ "population": "1,273,651",
+ "elevation": 120,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "montevideo",
+ "name": "Montevideo",
+ "population": "1,270,737",
+ "elevation": 34,
+ "timezone_id": "America/Montevideo"
+ },
+ {
+ "identifier": "lusaka",
+ "name": "Lusaka",
+ "population": "1,267,440",
+ "elevation": 1277,
+ "timezone_id": "Africa/Lusaka"
+ },
+ {
+ "identifier": "munich",
+ "name": "München",
+ "population": "1,260,391",
+ "elevation": 524,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "shiraz",
+ "name": "Shiraz",
+ "population": "1,249,942",
+ "elevation": 1545,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "milan",
+ "name": "Mailand",
+ "population": "1,236,837",
+ "elevation": 127,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "port-au-prince",
+ "name": "Port-au-Prince",
+ "population": "1,234,742",
+ "elevation": 53,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "adelaide",
+ "name": "Adelaide",
+ "population": "1,225,235",
+ "elevation": 56,
+ "timezone_id": "Australia/Adelaide"
+ },
+ {
+ "identifier": "omdurman",
+ "name": "Omdurman",
+ "population": "1,200,000",
+ "elevation": 391,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "saitama",
+ "name": "Saitama",
+ "population": "1,193,350",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "maputo",
+ "name": "Maputo",
+ "population": "1,191,613",
+ "elevation": 70,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "prague",
+ "name": "Prag",
+ "population": "1,165,581",
+ "elevation": 202,
+ "timezone_id": "Europe/Prague"
+ },
+ {
+ "identifier": "copenhagen",
+ "name": "Kopenhagen",
+ "population": "1,153,615",
+ "elevation": 14,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "sofia",
+ "name": "Sofia",
+ "population": "1,152,556",
+ "elevation": 562,
+ "timezone_id": "Europe/Sofia"
+ },
+ {
+ "identifier": "tripoli",
+ "name": "Tripoli",
+ "population": "229,398",
+ "elevation": 51,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "port harcourt",
+ "name": "Port Harcourt",
+ "population": "1,148,665",
+ "elevation": 16,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hiroshima",
+ "name": "Hiroshima",
+ "population": "1,143,841",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "monterrey",
+ "name": "Monterrey",
+ "population": "1,135,512",
+ "elevation": 543,
+ "timezone_id": "America/Monterrey"
+ },
+ {
+ "identifier": "samara",
+ "name": "Samara",
+ "population": "1,134,730",
+ "elevation": 117,
+ "timezone_id": "Europe/Samara"
+ },
+ {
+ "identifier": "omsk",
+ "name": "Omsk",
+ "population": "1,129,281",
+ "elevation": 90,
+ "timezone_id": "Asia/Omsk"
+ },
+ {
+ "identifier": "benin city",
+ "name": "Benin City",
+ "population": "1,125,058",
+ "elevation": 88,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "baku",
+ "name": "Baku",
+ "population": "1,116,513",
+ "elevation": -23,
+ "timezone_id": "Asia/Baku"
+ },
+ {
+ "identifier": "maiduguri",
+ "name": "Maiduguri",
+ "population": "1,112,449",
+ "elevation": 325,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "kazan",
+ "name": "Kazan",
+ "population": "1,104,738",
+ "elevation": 61,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "yerevan",
+ "name": "Jerewan",
+ "population": "1,093,485",
+ "elevation": 994,
+ "timezone_id": "Asia/Yerevan"
+ },
+ {
+ "identifier": "ouagadougou",
+ "name": "Ouagadougou",
+ "population": "1,086,505",
+ "elevation": 299,
+ "timezone_id": "Africa/Ouagadougou"
+ },
+ {
+ "identifier": "rostov-na-donu",
+ "name": "Rostow-na-donu",
+ "population": "1,074,482",
+ "elevation": 74,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chelyabinsk",
+ "name": "Chelyabinsk",
+ "population": "1,062,919",
+ "elevation": 219,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "tbilisi",
+ "name": "Tbilisi",
+ "population": "1,049,498",
+ "elevation": 491,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "ufa",
+ "name": "Ufa",
+ "population": "1,033,338",
+ "elevation": 158,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "san jose",
+ "name": "San Jose",
+ "population": "335,007",
+ "elevation": 1161,
+ "timezone_id": "America/Costa_Rica"
+ },
+ {
+ "identifier": "dublin",
+ "name": "Dublin",
+ "population": "1,024,027",
+ "elevation": 17,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "calgary",
+ "name": "Calgary",
+ "population": "1,019,942",
+ "elevation": 1042,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "brussels",
+ "name": "Brüssel",
+ "population": "1,019,022",
+ "elevation": 28,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "volgograd",
+ "name": "Wolgograd",
+ "population": "1,011,417",
+ "elevation": 65,
+ "timezone_id": "Europe/Volgograd"
+ },
+ {
+ "identifier": "odessa",
+ "name": "Odessa",
+ "population": "1,001,558",
+ "elevation": 58,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "guatemala city",
+ "name": "Guatemala-Stadt",
+ "population": "994,938",
+ "elevation": 1508,
+ "timezone_id": "America/Guatemala"
+ },
+ {
+ "identifier": "birmingham",
+ "name": "Birmingham",
+ "population": "984,333",
+ "elevation": 149,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "perm",
+ "name": "Perm",
+ "population": "982,419",
+ "elevation": 149,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "zaria",
+ "name": "Zaria",
+ "population": "975,153",
+ "elevation": 644,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "port elizabeth",
+ "name": "Port Elizabeth",
+ "population": "967,677",
+ "elevation": 75,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "fes",
+ "name": "Fes",
+ "population": "964,891",
+ "elevation": 406,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "cologne",
+ "name": "Köln",
+ "population": "963,395",
+ "elevation": 58,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "naples",
+ "name": "Neapel",
+ "population": "959,470",
+ "elevation": 14,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "maceio",
+ "name": "Maceio",
+ "population": "954,991",
+ "elevation": 11,
+ "timezone_id": "America/Maceio"
+ },
+ {
+ "identifier": "monrovia",
+ "name": "Monrovia",
+ "population": "939,524",
+ "elevation": 32,
+ "timezone_id": "Africa/Monrovia"
+ },
+ {
+ "identifier": "kingston",
+ "name": "Kingston",
+ "population": "937,700",
+ "elevation": 65,
+ "timezone_id": "America/Jamaica"
+ },
+ {
+ "identifier": "austin",
+ "name": "Austin",
+ "population": "931,830",
+ "elevation": 165,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "krasnoyarsk",
+ "name": "Krasnoyarsk",
+ "population": "927,200",
+ "elevation": 140,
+ "timezone_id": "Asia/Krasnoyarsk"
+ },
+ {
+ "identifier": "sale",
+ "name": "Sale",
+ "population": "903,485",
+ "elevation": 34,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "qom",
+ "name": "Qom",
+ "population": "900,000",
+ "elevation": 935,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bishkek",
+ "name": "Bishkek",
+ "population": "900,000",
+ "elevation": 767,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "abobo",
+ "name": "Abobo",
+ "population": "900,000",
+ "elevation": 105,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "aba",
+ "name": "Aba",
+ "population": "897,560",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "mendoza",
+ "name": "Mendoza",
+ "population": "876,884",
+ "elevation": 746,
+ "timezone_id": "America/Argentina/Mendoza"
+ },
+ {
+ "identifier": "mbuji-mayi",
+ "name": "Mbuji-Mayi",
+ "population": "874,761",
+ "elevation": 621,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "pikine",
+ "name": "Pikine",
+ "population": "874,062",
+ "elevation": 17,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "turin",
+ "name": "Turin",
+ "population": "870,456",
+ "elevation": 245,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san francisco",
+ "name": "San Francisco",
+ "aliases": ["San Fran"],
+ "population": "864,816",
+ "elevation": 28,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "liverpool",
+ "name": "Liverpool",
+ "population": "864,122",
+ "elevation": 30,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "saratov",
+ "name": "Saratow",
+ "population": "863,725",
+ "elevation": 72,
+ "timezone_id": "Europe/Saratov"
+ },
+ {
+ "identifier": "tegucigalpa",
+ "name": "Tegucigalpa",
+ "population": "850,848",
+ "elevation": 944,
+ "timezone_id": "America/Tegucigalpa"
+ },
+ {
+ "identifier": "voronezh",
+ "name": "Woronesch",
+ "population": "848,752",
+ "elevation": 156,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "ulan bator",
+ "name": "Ulan Bator",
+ "population": "844,818",
+ "elevation": 1284,
+ "timezone_id": "Asia/Ulaanbaatar"
+ },
+ {
+ "identifier": "ahvaz",
+ "name": "Ahvaz",
+ "population": "841,145",
+ "elevation": 23,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "marrakesh",
+ "name": "Marrakesch",
+ "population": "839,296",
+ "elevation": 457,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "denpasar",
+ "name": "Denpasar",
+ "population": "834,881",
+ "elevation": 33,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "fort worth",
+ "name": "Fort Worth",
+ "population": "833,319",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "indianapolis",
+ "name": "Indianapolis",
+ "population": "829,718",
+ "elevation": 248,
+ "timezone_id": "America/Indiana/Indianapolis"
+ },
+ {
+ "identifier": "jos",
+ "name": "Jos",
+ "population": "816,824",
+ "elevation": 1186,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "valencia",
+ "name": "Valencia",
+ "population": "814,208",
+ "elevation": 23,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "ilorin",
+ "name": "Ilorin",
+ "population": "814,192",
+ "elevation": 320,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "la paz",
+ "name": "La Paz",
+ "population": "215,178",
+ "elevation": 47,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "ottawa",
+ "name": "Ottawa",
+ "population": "812,129",
+ "elevation": 71,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "freetown",
+ "name": "Freetown",
+ "population": "802,639",
+ "elevation": 21,
+ "timezone_id": "Africa/Freetown"
+ },
+ {
+ "identifier": "jerusalem",
+ "name": "Jerusalem",
+ "population": "801,000",
+ "elevation": 786,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "muscat",
+ "name": "Muscat",
+ "population": "797,000",
+ "elevation": 14,
+ "timezone_id": "Asia/Muscat"
+ },
+ {
+ "identifier": "marseille",
+ "name": "Marseille",
+ "population": "794,811",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "pasragad branch",
+ "name": "Pasragad Branch",
+ "population": "787,878",
+ "elevation": 2010,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "boumerdas",
+ "name": "Boumerdas",
+ "population": "786,499",
+ "elevation": 5,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "san miguel de tucuman",
+ "name": "San Miguel de Tucuman",
+ "population": "781,023",
+ "elevation": 452,
+ "timezone_id": "America/Argentina/Tucuman"
+ },
+ {
+ "identifier": "merida",
+ "name": "Merida",
+ "population": "777,615",
+ "elevation": 14,
+ "timezone_id": "America/Merida"
+ },
+ {
+ "identifier": "niamey",
+ "name": "Niamey",
+ "population": "774,235",
+ "elevation": 206,
+ "timezone_id": "Africa/Niamey"
+ },
+ {
+ "identifier": "kahriz",
+ "name": "Kahriz",
+ "population": "766,706",
+ "elevation": 1302,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "krakow",
+ "name": "Krakau",
+ "population": "755,050",
+ "elevation": 219,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "da nang",
+ "name": "Da Nang",
+ "population": "752,493",
+ "elevation": 11,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "pietermaritzburg",
+ "name": "Pietermaritzburg",
+ "population": "750,845",
+ "elevation": 636,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "lome",
+ "name": "Lome",
+ "population": "749,700",
+ "elevation": 64,
+ "timezone_id": "Africa/Lome"
+ },
+ {
+ "identifier": "kigali",
+ "name": "Kigali",
+ "population": "745,261",
+ "elevation": 1542,
+ "timezone_id": "Africa/Kigali"
+ },
+ {
+ "identifier": "riga",
+ "name": "Riga",
+ "population": "742,572",
+ "elevation": 6,
+ "timezone_id": "Europe/Riga"
+ },
+ {
+ "identifier": "amsterdam",
+ "name": "Amsterdam",
+ "population": "741,636",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "oyo",
+ "name": "Oyo",
+ "population": "736,072",
+ "elevation": 298,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "nottingham",
+ "name": "Nottingham",
+ "population": "729,977",
+ "elevation": 46,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "campo grande",
+ "name": "Campo Grande",
+ "population": "729,151",
+ "elevation": 592,
+ "timezone_id": "America/Campo_Grande"
+ },
+ {
+ "identifier": "ashgabat",
+ "name": "Aschgabat",
+ "population": "727,700",
+ "elevation": 219,
+ "timezone_id": "Asia/Ashgabat"
+ },
+ {
+ "identifier": "n'djamena",
+ "name": "N'Djamena",
+ "population": "721,081",
+ "elevation": 299,
+ "timezone_id": "Africa/Ndjamena"
+ },
+ {
+ "identifier": "lviv",
+ "name": "Lviv",
+ "population": "717,803",
+ "elevation": 284,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "hermosillo",
+ "name": "Hermosillo",
+ "population": "715,061",
+ "elevation": 212,
+ "timezone_id": "America/Hermosillo"
+ },
+ {
+ "identifier": "edmonton",
+ "name": "Edmonton",
+ "population": "712,391",
+ "elevation": 610,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "bulawayo",
+ "name": "Bulawayo",
+ "population": "699,385",
+ "elevation": 1348,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "zagreb",
+ "name": "Zagreb",
+ "population": "698,966",
+ "elevation": 135,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "agadir",
+ "name": "Agadir",
+ "population": "698,310",
+ "elevation": 31,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sarajevo",
+ "name": "Sarajevo",
+ "population": "696,731",
+ "elevation": 509,
+ "timezone_id": "Europe/Sarajevo"
+ },
+ {
+ "identifier": "enugu",
+ "name": "Enugu",
+ "population": "688,862",
+ "elevation": 192,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "tangier",
+ "name": "Tangier",
+ "population": "688,356",
+ "elevation": 20,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sheffield",
+ "name": "Sheffield",
+ "population": "685,368",
+ "elevation": 75,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "seattle",
+ "name": "Seattle",
+ "population": "684,451",
+ "elevation": 56,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "denver",
+ "name": "Denver",
+ "population": "682,545",
+ "elevation": 1636,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "el paso",
+ "name": "El Paso",
+ "population": "681,124",
+ "elevation": 1137,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "dushanbe",
+ "name": "Dushanbe",
+ "population": "679,400",
+ "elevation": 767,
+ "timezone_id": "Asia/Dushanbe"
+ },
+ {
+ "identifier": "detroit",
+ "name": "Detroit",
+ "population": "677,116",
+ "elevation": 192,
+ "timezone_id": "America/Detroit"
+ },
+ {
+ "identifier": "culiacan",
+ "name": "Culiacan",
+ "population": "675,773",
+ "elevation": 95,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "matola",
+ "name": "Matola",
+ "population": "675,422",
+ "elevation": 42,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "boston",
+ "name": "Boston",
+ "population": "667,137",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "athens",
+ "name": "Athen",
+ "population": "664,046",
+ "elevation": 126,
+ "timezone_id": "Europe/Athens"
+ },
+ {
+ "identifier": "nouakchott",
+ "name": "Nouakchott",
+ "population": "661,400",
+ "elevation": 10,
+ "timezone_id": "Africa/Nouakchott"
+ },
+ {
+ "identifier": "pointe-noire",
+ "name": "Pointe-Noire",
+ "population": "659,084",
+ "elevation": 12,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "memphis",
+ "name": "Memphis",
+ "population": "655,770",
+ "elevation": 84,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "frankfurt am main",
+ "name": "Frankfurt am Main",
+ "population": "650,000",
+ "elevation": 113,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "krasnodar",
+ "name": "Krasnodar",
+ "population": "649,851",
+ "elevation": 28,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "palermo",
+ "name": "Palermo",
+ "population": "648,260",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "colombo",
+ "name": "Colombo",
+ "population": "648,034",
+ "elevation": 1,
+ "timezone_id": "Asia/Colombo"
+ },
+ {
+ "identifier": "lilongwe",
+ "name": "Lilongwe",
+ "population": "646,750",
+ "elevation": 1056,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "oran",
+ "name": "Oran",
+ "population": "645,984",
+ "elevation": 118,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "chisinau",
+ "name": "Chisinau",
+ "population": "635,994",
+ "elevation": 55,
+ "timezone_id": "Europe/Chisinau"
+ },
+ {
+ "identifier": "tebessa",
+ "name": "Tebessa",
+ "population": "634,332",
+ "elevation": 867,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "portland",
+ "name": "Portland",
+ "population": "632,309",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "winnipeg",
+ "name": "Winnipeg",
+ "population": "632,063",
+ "elevation": 245,
+ "timezone_id": "America/Winnipeg"
+ },
+ {
+ "identifier": "oklahoma city",
+ "name": "Oklahoma City",
+ "population": "631,346",
+ "elevation": 395,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "cancun",
+ "name": "Cancun",
+ "population": "628,306",
+ "elevation": 11,
+ "timezone_id": "America/Cancun"
+ },
+ {
+ "identifier": "djibouti",
+ "name": "Dschibuti",
+ "population": "623,891",
+ "elevation": 6,
+ "timezone_id": "Africa/Djibouti"
+ },
+ {
+ "identifier": "baltimore",
+ "name": "Baltimore",
+ "population": "621,849",
+ "elevation": 35,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kermanshah",
+ "name": "Kermanshah",
+ "population": "621,100",
+ "elevation": 1392,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bristol",
+ "name": "Bristol",
+ "population": "617,280",
+ "elevation": 21,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "benoni",
+ "name": "Benoni",
+ "population": "605,344",
+ "elevation": 1641,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "abu dhabi",
+ "name": "Abu Dhabi",
+ "population": "603,492",
+ "elevation": 13,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "washington",
+ "name": "Washington",
+ "population": "601,723",
+ "elevation": 6,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "milwaukee",
+ "name": "Milwaukee",
+ "population": "600,155",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vancouver",
+ "name": "Vancouver",
+ "population": "600,000",
+ "elevation": 70,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "barnaul",
+ "name": "Barnaul",
+ "population": "599,579",
+ "elevation": 189,
+ "timezone_id": "Asia/Barnaul"
+ },
+ {
+ "identifier": "rotterdam",
+ "name": "Rotterdam",
+ "population": "598,199",
+ "elevation": 9,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "rasht",
+ "name": "Rascht",
+ "population": "594,590",
+ "elevation": 4,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "abeokuta",
+ "name": "Abeokuta",
+ "population": "593,100",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "essen",
+ "name": "Essen",
+ "population": "593,085",
+ "elevation": 83,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "glasgow",
+ "name": "Glasgow",
+ "population": "591,620",
+ "elevation": 40,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "gold coast",
+ "name": "Gold Coast",
+ "population": "591,473",
+ "elevation": 12,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "abuja",
+ "name": "Abuja",
+ "population": "590,400",
+ "elevation": 476,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "stuttgart",
+ "name": "Stuttgart",
+ "population": "589,793",
+ "elevation": 252,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dortmund",
+ "name": "Dortmund",
+ "population": "588,462",
+ "elevation": 96,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vladivostok",
+ "name": "Wladiwostok",
+ "population": "587,022",
+ "elevation": 40,
+ "timezone_id": "Asia/Vladivostok"
+ },
+ {
+ "identifier": "irkutsk",
+ "name": "Irkutsk",
+ "population": "586,695",
+ "elevation": 428,
+ "timezone_id": "Asia/Irkutsk"
+ },
+ {
+ "identifier": "blantyre",
+ "name": "Blantyre",
+ "population": "584,877",
+ "elevation": 1041,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "genoa",
+ "name": "Genua",
+ "population": "580,223",
+ "elevation": 17,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "oslo",
+ "name": "Oslo",
+ "population": "580,000",
+ "elevation": 26,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "libreville",
+ "name": "Libreville",
+ "population": "578,156",
+ "elevation": 8,
+ "timezone_id": "Africa/Libreville"
+ },
+ {
+ "identifier": "kerman",
+ "name": "Kerman",
+ "population": "577,514",
+ "elevation": 1760,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "duesseldorf",
+ "name": "Düsseldorf",
+ "population": "573,057",
+ "elevation": 45,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "kuching",
+ "name": "Kuching",
+ "population": "570,407",
+ "elevation": 8,
+ "timezone_id": "Asia/Kuching"
+ },
+ {
+ "identifier": "albuquerque",
+ "name": "Albuquerque",
+ "population": "559,121",
+ "elevation": 1513,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "helsinki",
+ "name": "Helsinki",
+ "population": "558,457",
+ "elevation": 26,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "aden",
+ "name": "Aden",
+ "population": "550,602",
+ "elevation": 16,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "orenburg",
+ "name": "Orenburg",
+ "population": "550,204",
+ "elevation": 107,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "pristina",
+ "name": "Pristina",
+ "population": "550,000",
+ "elevation": 597,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bremen",
+ "name": "Bremen",
+ "population": "546,501",
+ "elevation": 3,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vilnius",
+ "name": "Vilnius",
+ "population": "542,366",
+ "elevation": 98,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "nashville",
+ "name": "Nashville",
+ "population": "530,852",
+ "elevation": 171,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "quebec",
+ "name": "Quebec",
+ "population": "528,595",
+ "elevation": 54,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "san salvador",
+ "name": "San Salvador",
+ "population": "525,990",
+ "elevation": 653,
+ "timezone_id": "America/El_Salvador"
+ },
+ {
+ "identifier": "macau",
+ "name": "Macau",
+ "population": "520,400",
+ "elevation": 22,
+ "timezone_id": "Asia/Macau"
+ },
+ {
+ "identifier": "tyumen",
+ "name": "Tyumen",
+ "population": "519,119",
+ "elevation": 81,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "lisbon",
+ "name": "Lissabon",
+ "population": "517,802",
+ "elevation": 45,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "hannover",
+ "name": "Hannover",
+ "population": "515,140",
+ "elevation": 57,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "salta",
+ "name": "Salta",
+ "population": "512,686",
+ "elevation": 1183,
+ "timezone_id": "America/Argentina/Salta"
+ },
+ {
+ "identifier": "leicester",
+ "name": "Leicester",
+ "population": "508,916",
+ "elevation": 65,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "leipzig",
+ "name": "Leipzig",
+ "population": "504,971",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "duisburg",
+ "name": "Duisburg",
+ "population": "504,358",
+ "elevation": 38,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "astrakhan",
+ "name": "Astrakhan",
+ "population": "502,533",
+ "elevation": -12,
+ "timezone_id": "Europe/Astrakhan"
+ },
+ {
+ "identifier": "nuernberg",
+ "name": "Nürnberg",
+ "population": "499,237",
+ "elevation": 300,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dresden",
+ "name": "Dresden",
+ "population": "486,854",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "tomsk",
+ "name": "Tomsk",
+ "population": "485,519",
+ "elevation": 117,
+ "timezone_id": "Asia/Tomsk"
+ },
+ {
+ "identifier": "yazd",
+ "name": "Yazd",
+ "population": "477,905",
+ "elevation": 1216,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kansas city",
+ "name": "Kansas City",
+ "population": "151,306",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "skopje",
+ "name": "Skopje",
+ "population": "474,889",
+ "elevation": 247,
+ "timezone_id": "Europe/Skopje"
+ },
+ {
+ "identifier": "the hague",
+ "name": "Den Haag",
+ "population": "474,292",
+ "elevation": 4,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "lyon",
+ "name": "Lyon",
+ "population": "472,317",
+ "elevation": 173,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "edinburgh",
+ "name": "Edinburgh",
+ "population": "464,990",
+ "elevation": 66,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "antwerpen",
+ "name": "Antwerpen",
+ "population": "459,805",
+ "elevation": 2,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "pontianak",
+ "name": "Pontianak",
+ "population": "455,173",
+ "elevation": 2,
+ "timezone_id": "Asia/Pontianak"
+ },
+ {
+ "identifier": "leeds",
+ "name": "Leeds",
+ "population": "455,123",
+ "elevation": 50,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "cardiff",
+ "name": "Cardiff",
+ "population": "447,287",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "san juan",
+ "name": "San Juan",
+ "population": "418,140",
+ "elevation": 11,
+ "timezone_id": "America/Puerto_Rico"
+ },
+ {
+ "identifier": "omaha",
+ "name": "Omaha",
+ "population": "443,885",
+ "elevation": 315,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "carrefour",
+ "name": "Carrefour",
+ "population": "442,156",
+ "elevation": 32,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "miami",
+ "name": "Miami",
+ "population": "441,003",
+ "elevation": 25,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kaliningrad",
+ "name": "Kaliningrad",
+ "population": "434,954",
+ "elevation": 2,
+ "timezone_id": "Europe/Kaliningrad"
+ },
+ {
+ "identifier": "toulouse",
+ "name": "Toulouse",
+ "population": "433,055",
+ "elevation": 150,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tel aviv",
+ "name": "Tel Aviv",
+ "population": "432,892",
+ "elevation": 15,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "east jerusalem",
+ "name": "Ostjerusalem",
+ "population": "428,304",
+ "elevation": 759,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "bratislava",
+ "name": "Bratislava",
+ "population": "423,737",
+ "elevation": 157,
+ "timezone_id": "Europe/Bratislava"
+ },
+ {
+ "identifier": "auckland",
+ "name": "Auckland",
+ "population": "417,910",
+ "elevation": 43,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "sevastopol",
+ "name": "Sewastopol",
+ "population": "416,263",
+ "elevation": 1,
+ "timezone_id": "Europe/Zaporozhye"
+ },
+ {
+ "identifier": "minneapolis",
+ "name": "Minneapolis",
+ "population": "410,939",
+ "elevation": 262,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "gaza",
+ "name": "Gaza",
+ "population": "410,000",
+ "elevation": 38,
+ "timezone_id": "Asia/Gaza"
+ },
+ {
+ "identifier": "kursk",
+ "name": "Kursk",
+ "population": "409,431",
+ "elevation": 219,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "panama",
+ "name": "Panama",
+ "population": "408,168",
+ "elevation": 17,
+ "timezone_id": "America/Panama"
+ },
+ {
+ "identifier": "tulsa",
+ "name": "Tulsa",
+ "population": "403,505",
+ "elevation": 226,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "tver",
+ "name": "Tver",
+ "population": "400,212",
+ "elevation": 132,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "manchester",
+ "name": "Manchester",
+ "population": "395,515",
+ "elevation": 51,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "tallinn",
+ "name": "Tallinn",
+ "population": "394,024",
+ "elevation": 12,
+ "timezone_id": "Europe/Tallinn"
+ },
+ {
+ "identifier": "kandahar",
+ "name": "Kandahar",
+ "population": "391,190",
+ "elevation": 1007,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "wichita",
+ "name": "Wichita",
+ "population": "389,965",
+ "elevation": 402,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "new orleans",
+ "name": "New Orleans",
+ "population": "389,617",
+ "elevation": 18,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "wellington",
+ "name": "Wellington",
+ "population": "381,900",
+ "elevation": 31,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "las palmas de gran canaria",
+ "name": "Las Palmas de Gran Canaria",
+ "population": "381,847",
+ "elevation": 23,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "mazatlan",
+ "name": "Mazatlan",
+ "population": "381,583",
+ "elevation": 10,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "tirana",
+ "name": "Tirana",
+ "population": "374,801",
+ "elevation": 113,
+ "timezone_id": "Europe/Tirane"
+ },
+ {
+ "identifier": "kaunas",
+ "name": "Kaunas",
+ "population": "374,643",
+ "elevation": 74,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "honolulu",
+ "name": "Honolulu",
+ "population": "371,657",
+ "elevation": 18,
+ "timezone_id": "Pacific/Honolulu"
+ },
+ {
+ "identifier": "canberra",
+ "name": "Canberra",
+ "population": "367,752",
+ "elevation": 571,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "bologna",
+ "name": "Bologna",
+ "population": "366,133",
+ "elevation": 71,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "christchurch",
+ "name": "Christchurch",
+ "population": "363,926",
+ "elevation": 14,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "halifax",
+ "name": "Halifax",
+ "population": "359,111",
+ "elevation": 6,
+ "timezone_id": "America/Halifax"
+ },
+ {
+ "identifier": "ambon",
+ "name": "Ambon",
+ "population": "355,596",
+ "elevation": 12,
+ "timezone_id": "Asia/Jayapura"
+ },
+ {
+ "identifier": "florence",
+ "name": "Florenz",
+ "population": "349,296",
+ "elevation": 51,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "doha",
+ "name": "Doha",
+ "population": "344,939",
+ "elevation": 11,
+ "timezone_id": "Asia/Qatar"
+ },
+ {
+ "identifier": "zurich",
+ "name": "Zürich",
+ "population": "341,730",
+ "elevation": 429,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "nice",
+ "name": "Nizza",
+ "population": "338,620",
+ "elevation": 18,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "simferopol",
+ "name": "Simferopol",
+ "population": "336,460",
+ "elevation": 247,
+ "timezone_id": "Europe/Simferopol"
+ },
+ {
+ "identifier": "tepic",
+ "name": "Tepic",
+ "population": "332,863",
+ "elevation": 932,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "sochi",
+ "name": "Sotschi",
+ "population": "327,608",
+ "elevation": 14,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "smolensk",
+ "name": "Smolensk",
+ "population": "320,991",
+ "elevation": 250,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "samarkand",
+ "name": "Samarkand",
+ "population": "319,366",
+ "elevation": 719,
+ "timezone_id": "Asia/Samarkand"
+ },
+ {
+ "identifier": "murmansk",
+ "name": "Murmansk",
+ "population": "319,263",
+ "elevation": 96,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "vladikavkaz",
+ "name": "Wladikawkas",
+ "population": "317,370",
+ "elevation": 671,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chita",
+ "name": "Chita",
+ "population": "308,500",
+ "elevation": 668,
+ "timezone_id": "Asia/Chita"
+ },
+ {
+ "identifier": "newcastle",
+ "name": "Newcastle",
+ "population": "308,308",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "porto velho",
+ "name": "Porto Velho",
+ "population": "306,180",
+ "elevation": 90,
+ "timezone_id": "America/Porto_Velho"
+ },
+ {
+ "identifier": "san salvador de jujuy",
+ "name": "San Salvador de Jujuy",
+ "population": "305,891",
+ "elevation": 1260,
+ "timezone_id": "America/Argentina/Jujuy"
+ },
+ {
+ "identifier": "pittsburgh",
+ "name": "Pittsburgh",
+ "population": "304,391",
+ "elevation": 239,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brest",
+ "name": "Brest",
+ "population": "144,899",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "anchorage",
+ "name": "Anchorage",
+ "population": "298,695",
+ "elevation": 16,
+ "timezone_id": "America/Anchorage"
+ },
+ {
+ "identifier": "cincinnati",
+ "name": "Cincinnati",
+ "population": "296,943",
+ "elevation": 267,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "wollongong",
+ "name": "Wollongong",
+ "population": "292,190",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "catania",
+ "name": "Catania",
+ "population": "290,927",
+ "elevation": 40,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "utrecht",
+ "name": "Utrecht",
+ "population": "290,529",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "victoria",
+ "name": "Victoria",
+ "population": "289,625",
+ "elevation": 41,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "port moresby",
+ "name": "Port Moresby",
+ "population": "283,733",
+ "elevation": 1,
+ "timezone_id": "Pacific/Port_Moresby"
+ },
+ {
+ "identifier": "logan city",
+ "name": "Logan City",
+ "population": "282,673",
+ "elevation": 39,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "bari",
+ "name": "Bari",
+ "population": "277,387",
+ "elevation": -9999,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "nantes",
+ "name": "Nantes",
+ "population": "277,269",
+ "elevation": 19,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "strasbourg",
+ "name": "Straßburg",
+ "population": "274,845",
+ "elevation": 147,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "belfast",
+ "name": "Belfast",
+ "population": "274,770",
+ "elevation": 7,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "ljubljana",
+ "name": "Ljubljana",
+ "population": "272,220",
+ "elevation": 295,
+ "timezone_id": "Europe/Ljubljana"
+ },
+ {
+ "identifier": "orlando",
+ "name": "Orlando",
+ "population": "270,934",
+ "elevation": 54,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "petrozavodsk",
+ "name": "Petrosawodsk",
+ "population": "265,025",
+ "elevation": 73,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "plymouth",
+ "name": "Plymouth",
+ "population": "260,203",
+ "elevation": 14,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "rio branco",
+ "name": "Rio Branco",
+ "population": "257,642",
+ "elevation": 153,
+ "timezone_id": "America/Rio_Branco"
+ },
+ {
+ "identifier": "los mochis",
+ "name": "Los Mochis",
+ "population": "256,613",
+ "elevation": 14,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "porto",
+ "name": "Porto",
+ "population": "249,633",
+ "elevation": 97,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "madison",
+ "name": "Madison",
+ "population": "248,951",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "montpellier",
+ "name": "Montpellier",
+ "population": "248,252",
+ "elevation": 56,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "arhus",
+ "name": "Aarhus",
+ "population": "237,551",
+ "elevation": 10,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "yakutsk",
+ "name": "Jakutsk",
+ "population": "235,600",
+ "elevation": 126,
+ "timezone_id": "Asia/Yakutsk"
+ },
+ {
+ "identifier": "georgetown",
+ "name": "Georgetown",
+ "population": "235,017",
+ "elevation": 3,
+ "timezone_id": "America/Guyana"
+ },
+ {
+ "identifier": "bordeaux",
+ "name": "Bordeaux",
+ "population": "231,844",
+ "elevation": 20,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "gent",
+ "name": "Gent",
+ "population": "231,493",
+ "elevation": 10,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "baton rouge",
+ "name": "Baton Rouge",
+ "population": "228,590",
+ "elevation": 10,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "lille",
+ "name": "Lille",
+ "population": "228,328",
+ "elevation": 27,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "nassau",
+ "name": "Nassau",
+ "population": "227,940",
+ "elevation": 5,
+ "timezone_id": "America/Nassau"
+ },
+ {
+ "identifier": "geelong",
+ "name": "Geelong",
+ "population": "226,034",
+ "elevation": -9999,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "paramaribo",
+ "name": "Paramaribo",
+ "population": "223,757",
+ "elevation": 5,
+ "timezone_id": "America/Paramaribo"
+ },
+ {
+ "identifier": "santa cruz de tenerife",
+ "name": "Santa Cruz de Tenerife",
+ "population": "222,417",
+ "elevation": 55,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "graz",
+ "name": "Graz",
+ "population": "222,326",
+ "elevation": 363,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "messina",
+ "name": "Messina",
+ "population": "219,948",
+ "elevation": 29,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "verona",
+ "name": "Verona",
+ "population": "219,103",
+ "elevation": 62,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "hobart",
+ "name": "Hobart",
+ "population": "216,656",
+ "elevation": 1,
+ "timezone_id": "Australia/Hobart"
+ },
+ {
+ "identifier": "novi sad",
+ "name": "Novi Sad",
+ "population": "215,400",
+ "elevation": 79,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bergen",
+ "name": "Bergen",
+ "population": "213,585",
+ "elevation": 20,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "des moines",
+ "name": "Des Moines",
+ "population": "210,330",
+ "elevation": 264,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kostanay",
+ "name": "Kostanay",
+ "population": "210,000",
+ "elevation": 167,
+ "timezone_id": "Asia/Qostanay"
+ },
+ {
+ "identifier": "linz",
+ "name": "Linz",
+ "population": "204,846",
+ "elevation": 268,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "padova",
+ "name": "Padua",
+ "population": "203,725",
+ "elevation": 18,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "pskov",
+ "name": "Pskov",
+ "population": "201,990",
+ "elevation": 51,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chiang mai",
+ "name": "Chiang Mai",
+ "population": "200,952",
+ "elevation": 313,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "nicosia",
+ "name": "Nicosia",
+ "population": "200,452",
+ "elevation": 147,
+ "timezone_id": "Asia/Nicosia"
+ },
+ {
+ "identifier": "oral",
+ "name": "Oral",
+ "population": "200,000",
+ "elevation": 35,
+ "timezone_id": "Asia/Oral"
+ },
+ {
+ "identifier": "osh",
+ "name": "Osh",
+ "population": "200,000",
+ "elevation": 988,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "saskatoon",
+ "name": "Saskatoon",
+ "population": "198,958",
+ "elevation": 484,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "little rock",
+ "name": "Little Rock",
+ "population": "197,992",
+ "elevation": 105,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vientiane",
+ "name": "Vientiane",
+ "population": "196,731",
+ "elevation": 174,
+ "timezone_id": "Asia/Vientiane"
+ },
+ {
+ "identifier": "aberdeen",
+ "name": "Aberdeen",
+ "population": "196,670",
+ "elevation": 13,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "palmas",
+ "name": "Palmas",
+ "population": "196,272",
+ "elevation": 271,
+ "timezone_id": "America/Araguaina"
+ },
+ {
+ "identifier": "townsville",
+ "name": "Townsville",
+ "population": "196,219",
+ "elevation": 15,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "salt lake city",
+ "name": "Salt Lake City",
+ "population": "192,672",
+ "elevation": 1311,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "cork",
+ "name": "Cork",
+ "population": "190,384",
+ "elevation": 10,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "tallahassee",
+ "name": "Tallahassee",
+ "population": "189,907",
+ "elevation": 71,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "santarem",
+ "name": "Santarem",
+ "population": "189,047",
+ "elevation": 51,
+ "timezone_id": "America/Santarem"
+ },
+ {
+ "identifier": "san fernando del valle de catamarca",
+ "name": "San Fernando del Valle de Catamarca",
+ "population": "188,812",
+ "elevation": 545,
+ "timezone_id": "America/Argentina/Catamarca"
+ },
+ {
+ "identifier": "trieste",
+ "name": "Triest",
+ "population": "187,056",
+ "elevation": 19,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san luis",
+ "name": "San Luis",
+ "population": "183,982",
+ "elevation": 729,
+ "timezone_id": "America/Argentina/San_Luis"
+ },
+ {
+ "identifier": "geneva",
+ "name": "Genf",
+ "population": "183,981",
+ "elevation": 400,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "atyrau",
+ "name": "Atyrau",
+ "population": "180,000",
+ "elevation": -25,
+ "timezone_id": "Asia/Atyrau"
+ },
+ {
+ "identifier": "kutaisi",
+ "name": "Kutaisi",
+ "population": "178,338",
+ "elevation": 153,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "yuzhno-sakhalinsk",
+ "name": "Juschno-Sachalinsk",
+ "population": "176,484",
+ "elevation": 48,
+ "timezone_id": "Asia/Sakhalin"
+ },
+ {
+ "identifier": "split",
+ "name": "Split",
+ "population": "176,314",
+ "elevation": 12,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "regina",
+ "name": "Regina",
+ "population": "176,183",
+ "elevation": 577,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "turku",
+ "name": "Turku",
+ "population": "175,945",
+ "elevation": 22,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "oxford",
+ "name": "Oxford",
+ "population": "171,380",
+ "elevation": 72,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "jackson",
+ "name": "Jackson",
+ "population": "170,674",
+ "elevation": 100,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "springfield",
+ "name": "Springfield",
+ "population": "166,810",
+ "elevation": 399,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "basel",
+ "name": "Basel",
+ "population": "164,488",
+ "elevation": 279,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "la rioja",
+ "name": "La Rioja",
+ "population": "162,620",
+ "elevation": 502,
+ "timezone_id": "America/Argentina/La_Rioja"
+ },
+ {
+ "identifier": "hebron",
+ "name": "Hebron",
+ "population": "160,470",
+ "elevation": 903,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "modena",
+ "name": "Modena",
+ "population": "158,886",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "cambridge",
+ "name": "Cambridge",
+ "population": "158,434",
+ "elevation": 12,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "frisco",
+ "name": "Frisco",
+ "population": "154,407",
+ "elevation": 216,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "pasadena",
+ "name": "Pasadena",
+ "population": "153,784",
+ "elevation": 12,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "york",
+ "name": "York",
+ "population": "153,717",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "salzburg",
+ "name": "Salzburg",
+ "population": "153,377",
+ "elevation": 435,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "cairns",
+ "name": "Cairns",
+ "population": "153,075",
+ "elevation": 1,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "hamilton",
+ "name": "Hamilton",
+ "population": "152,641",
+ "elevation": 39,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "la laguna",
+ "name": "La Laguna",
+ "population": "150,661",
+ "elevation": 558,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "dili",
+ "name": "Dili",
+ "population": "150,000",
+ "elevation": 3,
+ "timezone_id": "Asia/Dili"
+ },
+ {
+ "identifier": "dijon",
+ "name": "Dijon",
+ "population": "149,782",
+ "elevation": 242,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "uppsala",
+ "name": "Uppsala",
+ "population": "149,245",
+ "elevation": 20,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "trondheim",
+ "name": "Trondheim",
+ "population": "147,139",
+ "elevation": 18,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "manama",
+ "name": "Manama",
+ "population": "147,074",
+ "elevation": 12,
+ "timezone_id": "Asia/Bahrain"
+ },
+ {
+ "identifier": "parma",
+ "name": "Parma",
+ "population": "146,299",
+ "elevation": 64,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "boise",
+ "name": "Boise",
+ "population": "145,987",
+ "elevation": 834,
+ "timezone_id": "America/Boise"
+ },
+ {
+ "identifier": "odense",
+ "name": "Odense",
+ "population": "145,931",
+ "elevation": 17,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "amiens",
+ "name": "Amiens",
+ "population": "143,086",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tours",
+ "name": "Touren",
+ "population": "141,621",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "podgorica",
+ "name": "Podgorica",
+ "population": "136,473",
+ "elevation": 49,
+ "timezone_id": "Europe/Podgorica"
+ },
+ {
+ "identifier": "innsbruck",
+ "name": "Innsbruck",
+ "population": "132,493",
+ "elevation": 587,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "toowoomba",
+ "name": "Toowoomba",
+ "population": "131,258",
+ "elevation": 599,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "darwin",
+ "name": "Darwin",
+ "population": "129,062",
+ "elevation": 31,
+ "timezone_id": "Australia/Darwin"
+ },
+ {
+ "identifier": "bern",
+ "name": "Bern",
+ "population": "121631",
+ "elevation": 549,
+ "timezone_id": "Europe/Zurich"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..17cd6316d
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/FunctionDescriptions.json
@@ -0,0 +1,216 @@
+{
+ "percentage": [
+ {
+ "identifier": "percentOf",
+ "prototypeExpressions": [
+ "10% von 100"
+ ]
+ },
+ {
+ "identifier": "percentOff",
+ "prototypeExpressions": [
+ "10% off 100"
+ ]
+ },
+ {
+ "identifier": "percentOn",
+ "prototypeExpressions": [
+ "10% on 100"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhat",
+ "prototypeExpressions": [
+ "30 ist 20% von was"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhatClassic",
+ "prototypeExpressions": [
+ "20% von was ist 30"
+ ]
+ },
+ {
+ "identifier": "isPercentOffWhat",
+ "prototypeExpressions": [
+ "30 ist 20% off was"
+ ]
+ },
+ {
+ "identifier": "isPercentOffWhatClassic",
+ "prototypeExpressions": [
+ "20% off what is 30"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhat",
+ "prototypeExpressions": [
+ "30 ist 20% on was"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhatClassic",
+ "prototypeExpressions": [
+ "20% on what is 30"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOf",
+ "prototypeExpressions": [
+ "10 ist wieviel % von 20",
+ "10 als % von 20"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOff",
+ "prototypeExpressions": [
+ "10 ist wieviel % off 20"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOn",
+ "prototypeExpressions": [
+ "20 ist wieviel % on 10",
+ "20 sind welche % auf 10",
+ "20 als % auf 10"
+ ]
+ }
+ ],
+ "general": [
+ {
+ "identifier": "remainder",
+ "prototypeExpressions": [
+ "rest von 20 durch 3",
+ "rest von 20 geteilt durch 3"
+ ]
+ },
+ {
+ "identifier": "halfOf",
+ "prototypeExpressions": [
+ "hälfte von 20"
+ ]
+ },
+ {
+ "identifier": "lesserOf",
+ "prototypeExpressions": [
+ "kleinere wert von 2 und 30",
+ "kleinere zahl von 2 und 30"
+ ]
+ },
+ {
+ "identifier": "greaterOf",
+ "prototypeExpressions": [
+ "größere wert von 2 und 30",
+ "größere zahl von 2 und 30",
+ "zahl von 2 und 30 ist größer",
+ "welche der zahlen von 2 und 30 ist größer"
+ ]
+ },
+ {
+ "identifier": "midpoint",
+ "prototypeExpressions": [
+ "mitte zwischen 2 und 32"
+ ]
+ },
+ {
+ "identifier": "proportionsFindNumerator",
+ "prototypeExpressions": [
+ "6 ist zu 600 wie was zu 8",
+ "6 verhält sich zu 600 wie was zu 8"
+ ]
+ },
+ {
+ "identifier": "proportionsFindDenominator",
+ "prototypeExpressions": [
+ "6 ist zu 600 wie 8 zu was",
+ "6 verhält sich zu 600 wie 8 zu was"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "zufallszahl zwischen 1 und 5",
+ "zufällig zwischen 1 und 5"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "identifier": "unitInUnitExpression",
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ]
+ }
+ ],
+ "datetime": [
+ {
+ "identifier": "calendarUnitBetweenDates",
+ "prototypeExpressions": [
+ "__unit zwischen __datestamp und __datestamp",
+ "__unit zwischen dem __datestamp und dem __datestamp",
+ "__unit von __datestamp bis __datestamp",
+ "__unit vom __datestamp bis zum __datestamp",
+ "__unit in __datestamp als __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit bis __datestamp",
+ "__unit vor __datestamp",
+ "__unit vor dem __datestamp",
+ "__unit bis zum __datestamp"
+ ]
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "__datestamp bis __datestamp",
+ "__datestamp bis zum __datestamp"
+ ]
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp bis __timestamp",
+ "__timestamp bis zum __timestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit seit __datestamp",
+ "__unit seit dem __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "neuer zeitstempel"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan von __datestamp",
+ "__timespan nach __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone zeit",
+ "zeit in __timezone"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "prototypeExpressions": [
+ "zeitdifferenz zwischen __timezone und __timezone",
+ "differenz zwischen __timezone und __timezone",
+ "zeitdifferenz zwischen __timezone & __timezone",
+ "differenz zwischen __timezone & __timezone"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/Localizable.strings
new file mode 100644
index 000000000..49b09f6e0
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..cda6617a7
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..7cb8c512f
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/LocalizedFixtures.json
@@ -0,0 +1,148 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "Nk",
+ "Nk-Stelle",
+ "Stellen",
+ "Nk-Stellen"
+ ],
+ "multiplierTypes": [
+ "multiplier",
+ "Multiplikator"
+ ],
+ "divisionOperators": [
+ "÷",
+ "pro"
+ ],
+ "roundingConverters": [
+ "gerundet"
+ ],
+ "tomorrowDateAliases": [
+ "morgen"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "laptime",
+ "Rundenzeit"
+ ],
+ "numberTypes": [
+ "Zahl",
+ "Nummer"
+ ],
+ "roundingDownConverters": [
+ "abgerundet"
+ ],
+ "yesterdayDateAliases": [
+ "gestern"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "todayDateAliases": [
+ "heute"
+ ],
+ "timestampTypes": [
+ "Zeitstempel"
+ ],
+ "roundingUpConverters": [
+ "aufgerundet"
+ ],
+ "dateTypes": [
+ "Datum"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "monthOfYearDateAliases": [
+ "Jan",
+ "Jän",
+ "Feb",
+ "Mrz",
+ "Apr",
+ "Mai",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Okt",
+ "Nov",
+ "Dez",
+ "Januar",
+ "Jänner",
+ "Februar",
+ "März",
+ "April",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Dezember"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "additionOperators": [
+ ],
+ "timespanTypes": [
+ "Zeitdauer",
+ "Zeitspanne"
+ ],
+ "nowDateAliases": [
+ "jetzt"
+ ],
+ "converterSymbols": [
+ "bis",
+ "als",
+ "nach",
+ "mit"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "fractionTypes": [
+ "Bruch"
+ ],
+ "dayOfWeekDateAliases": [
+ "Montag",
+ "Mon",
+ "Mo",
+ "Dienstag",
+ "Die",
+ "Di",
+ "Mittwoch",
+ "Mit",
+ "Mi",
+ "Donnerstag",
+ "Don",
+ "Do",
+ "Freitag",
+ "Fre",
+ "Fr",
+ "Samstag",
+ "Sam",
+ "Sa",
+ "Sonntag",
+ "Son",
+ "So"
+ ],
+ "percentTypes": [
+ "Prozent",
+ "Prozentrechnung"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..2d9c2a8bc
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/UnitDescriptions.json
@@ -0,0 +1,1563 @@
+{
+ "speed": [
+ {
+ "aliases": [
+ "Meter pro Sekunde"
+ ],
+ "symbol": "m/s",
+ "identifier": "metersPerSecond"
+ },
+ {
+ "aliases": [
+ "kilometer per hour",
+ "kilometers per hour",
+ "kilometre per hour",
+ "kilometres per hour",
+ "kph"
+ ],
+ "symbol": "km/h",
+ "identifier": "kilometersPerHour"
+ },
+ {
+ "aliases": [
+ "mile per hour",
+ "miles per hour"
+ ],
+ "symbol": "mph",
+ "identifier": "milesPerHour"
+ },
+ {
+ "aliases": [
+ "knot",
+ "knots"
+ ],
+ "symbol": "kn",
+ "identifier": "knots"
+ }
+ ],
+ "volume": [
+ {
+ "aliases": [
+ "Megaliter",
+ "Megalitern",
+ "ML"
+ ],
+ "symbol": "ML",
+ "identifier": "megaliters"
+ },
+ {
+ "aliases": [
+ "Kiloliter",
+ "Kilolitern",
+ "kL"
+ ],
+ "symbol": "kL",
+ "identifier": "kiloliters"
+ },
+ {
+ "aliases": [
+ "Liter",
+ "Litern",
+ "L"
+ ],
+ "symbol": "l",
+ "identifier": "liters"
+ },
+ {
+ "aliases": [
+ "Milliliter",
+ "Millilitern",
+ "mL"
+ ],
+ "symbol": "ml",
+ "identifier": "milliliters"
+ },
+ {
+ "aliases": [
+ "Kubikkilometer",
+ "Kubikkilometern",
+ "Kilometer^3",
+ "Kilometer³",
+ "km3",
+ "km^3"
+ ],
+ "symbol": "km³",
+ "identifier": "cubicKilometers"
+ },
+ {
+ "aliases": [
+ "Kubikmeter",
+ "Kubikmetern",
+ "m3",
+ "m^3",
+ "Meter³"
+ ],
+ "symbol": "m³",
+ "identifier": "cubicMeters"
+ },
+ {
+ "aliases": [
+ "Kubilzentimeter",
+ "Kubilzentimetern",
+ "cm3",
+ "cm^3",
+ "Zentimeter³"
+ ],
+ "symbol": "cm³",
+ "identifier": "cubicCentimeters"
+ },
+ {
+ "aliases": [
+ "Kubikmillimeter",
+ "Kubikmillimetern",
+ "mm3",
+ "mm^3"
+ ],
+ "symbol": "mm³",
+ "identifier": "cubicMillimeters"
+ },
+ {
+ "aliases": [
+ "cubic inch",
+ "cubic inches",
+ "in³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "symbol": "in³",
+ "identifier": "cubicInches"
+ },
+ {
+ "aliases": [
+ "cubic foot",
+ "cubic feet",
+ "cuft",
+ "ft³",
+ "ft3",
+ "ft^3"
+ ],
+ "symbol": "ft³",
+ "identifier": "cubicFeet"
+ },
+ {
+ "aliases": [
+ "cubic yard",
+ "cubic yards",
+ "yd³",
+ "yard³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "symbol": "yd³",
+ "identifier": "cubicYards"
+ },
+ {
+ "aliases": [
+ "cubic mile",
+ "cubic miles",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "mile³",
+ "mile^3",
+ "miles^3"
+ ],
+ "symbol": "mi³",
+ "identifier": "cubicMiles"
+ },
+ {
+ "aliases": [
+ "bushel",
+ "bushels"
+ ],
+ "symbol": "bsh",
+ "identifier": "bushels"
+ },
+ {
+ "aliases": [
+ "Tasse",
+ "Tassen"
+ ],
+ "symbol": "Tasse",
+ "identifier": "metricCups"
+ },
+ {
+ "aliases": [
+ "cup",
+ "cups"
+ ],
+ "symbol": "cup",
+ "identifier": "cups"
+ },
+ {
+ "aliases": [
+ "acre feet",
+ "acre foot"
+ ],
+ "symbol": "af",
+ "identifier": "acreFeet"
+ },
+ {
+ "aliases": [
+ "pint",
+ "pints"
+ ],
+ "symbol": "pt",
+ "identifier": "pints"
+ },
+ {
+ "aliases": [
+ "quart",
+ "quarts"
+ ],
+ "symbol": "qt",
+ "identifier": "quarts"
+ },
+ {
+ "aliases": [
+ "Gallone",
+ "Gallonen",
+ "gal"
+ ],
+ "symbol": "gal",
+ "identifier": "gallons"
+ },
+ {
+ "aliases": [
+ "Esslöffel",
+ "tbsp"
+ ],
+ "symbol": "EL",
+ "identifier": "tablespoons"
+ },
+ {
+ "aliases": [
+ "Teelöffel",
+ "tsp"
+ ],
+ "symbol": "TL",
+ "identifier": "teaspoons"
+ },
+ {
+ "aliases": [
+ "Flüssigunze",
+ "Flüssigunzen",
+ "floz"
+ ],
+ "symbol": "fl oz",
+ "identifier": "fluidOunces"
+ }
+ ],
+ "dataStorage": [
+ {
+ "aliases": [
+ "byte",
+ "bytes"
+ ],
+ "symbol": "B",
+ "identifier": "bytes"
+ },
+ {
+ "aliases": [
+ "bit",
+ "bits"
+ ],
+ "symbol": "bit",
+ "identifier": "bits"
+ },
+ {
+ "aliases": [
+ "yottabyte",
+ "yottabytes"
+ ],
+ "symbol": "YB",
+ "identifier": "yottabytes"
+ },
+ {
+ "aliases": [
+ "zettabyte",
+ "zettabytes"
+ ],
+ "symbol": "ZB",
+ "identifier": "zettabytes"
+ },
+ {
+ "aliases": [
+ "exabyte",
+ "exabytes"
+ ],
+ "symbol": "EB",
+ "identifier": "exabytes"
+ },
+ {
+ "aliases": [
+ "petabyte",
+ "petabytes"
+ ],
+ "symbol": "PB",
+ "identifier": "petabytes"
+ },
+ {
+ "aliases": [
+ "terabyte",
+ "terabytes",
+ "TB",
+ "tb"
+ ],
+ "symbol": "TB",
+ "identifier": "terabytes"
+ },
+ {
+ "aliases": [
+ "gigabyte",
+ "gigabytes",
+ "GB",
+ "gb"
+ ],
+ "symbol": "GB",
+ "identifier": "gigabytes"
+ },
+ {
+ "aliases": [
+ "megabyte",
+ "megabytes",
+ "MB",
+ "mb"
+ ],
+ "symbol": "MB",
+ "identifier": "megabytes"
+ },
+ {
+ "aliases": [
+ "kilobyte",
+ "kilobytes",
+ "KB",
+ "kb"
+ ],
+ "symbol": "kB",
+ "identifier": "kilobytes"
+ },
+ {
+ "aliases": [
+ "yottabit",
+ "yottabits",
+ "Ybit"
+ ],
+ "symbol": "Yb",
+ "identifier": "yottabits"
+ },
+ {
+ "aliases": [
+ "zettabit",
+ "zettabits",
+ "Zbit"
+ ],
+ "symbol": "Zb",
+ "identifier": "zettabits"
+ },
+ {
+ "aliases": [
+ "exabit",
+ "exabits",
+ "Ebit"
+ ],
+ "symbol": "Eb",
+ "identifier": "exabits"
+ },
+ {
+ "aliases": [
+ "petabit",
+ "petabits",
+ "Pbit"
+ ],
+ "symbol": "Pb",
+ "identifier": "petabits"
+ },
+ {
+ "aliases": [
+ "terabit",
+ "terabits",
+ "Tbit"
+ ],
+ "symbol": "Tb",
+ "identifier": "terabits"
+ },
+ {
+ "aliases": [
+ "gigabit",
+ "gigabits",
+ "Gbit"
+ ],
+ "symbol": "Gb",
+ "identifier": "gigabits"
+ },
+ {
+ "aliases": [
+ "megabit",
+ "megabits",
+ "Mbit"
+ ],
+ "symbol": "Mb",
+ "identifier": "megabits"
+ },
+ {
+ "aliases": [
+ "kilobit",
+ "kilobits",
+ "Kbit",
+ "Kb"
+ ],
+ "symbol": "kb",
+ "identifier": "kilobits"
+ },
+ {
+ "aliases": [
+ "yobibyte",
+ "yobibytes",
+ "YiB"
+ ],
+ "symbol": "YiB",
+ "identifier": "yobibytes"
+ },
+ {
+ "aliases": [
+ "zebibyte",
+ "zebibytes",
+ "ZiB"
+ ],
+ "symbol": "ZiB",
+ "identifier": "zebibytes"
+ },
+ {
+ "aliases": [
+ "exbibyte",
+ "exbibytes",
+ "EiB"
+ ],
+ "symbol": "EiB",
+ "identifier": "exbibytes"
+ },
+ {
+ "aliases": [
+ "pebibyte",
+ "pebibytes",
+ "PiB"
+ ],
+ "symbol": "PiB",
+ "identifier": "pebibytes"
+ },
+ {
+ "aliases": [
+ "tebibyte",
+ "tebibytes",
+ "TiB"
+ ],
+ "symbol": "TiB",
+ "identifier": "tebibytes"
+ },
+ {
+ "aliases": [
+ "gibibyte",
+ "gibibytes",
+ "GiB"
+ ],
+ "symbol": "GiB",
+ "identifier": "gibibytes"
+ },
+ {
+ "aliases": [
+ "mebibyte",
+ "mebibytes",
+ "MiB"
+ ],
+ "symbol": "MiB",
+ "identifier": "mebibytes"
+ },
+ {
+ "aliases": [
+ "kibibyte",
+ "kibibytes",
+ "KiB"
+ ],
+ "symbol": "KiB",
+ "identifier": "kibibytes"
+ },
+ {
+ "aliases": [
+ "yobibit",
+ "yobibits",
+ "Yibit"
+ ],
+ "symbol": "Yib",
+ "identifier": "yobibits"
+ },
+ {
+ "aliases": [
+ "zebibit",
+ "zebibits",
+ "Zibit"
+ ],
+ "symbol": "Zib",
+ "identifier": "zebibits"
+ },
+ {
+ "aliases": [
+ "exbibit",
+ "exbibits",
+ "Eibit"
+ ],
+ "symbol": "Eib",
+ "identifier": "exbibits"
+ },
+ {
+ "aliases": [
+ "pebibit",
+ "pebibits",
+ "Pibit"
+ ],
+ "symbol": "Pib",
+ "identifier": "pebibits"
+ },
+ {
+ "aliases": [
+ "tebibit",
+ "tebibits",
+ "Tibit"
+ ],
+ "symbol": "Tib",
+ "identifier": "tebibits"
+ },
+ {
+ "aliases": [
+ "gibibit",
+ "gibibits",
+ "Gibit"
+ ],
+ "symbol": "Gib",
+ "identifier": "gibibits"
+ },
+ {
+ "aliases": [
+ "mebibit",
+ "mebibits",
+ "Mibit"
+ ],
+ "symbol": "Mib",
+ "identifier": "mebibits"
+ },
+ {
+ "aliases": [
+ "kibibit",
+ "kibibits",
+ "Kibit"
+ ],
+ "symbol": "Kib",
+ "identifier": "kibibits"
+ }
+ ],
+ "energy": [
+ {
+ "aliases": [
+ "joule",
+ "joules"
+ ],
+ "symbol": "J",
+ "identifier": "joules"
+ },
+ {
+ "aliases": [
+ "kilojoule",
+ "kilojoules"
+ ],
+ "symbol": "kJ",
+ "identifier": "kilojoules"
+ },
+ {
+ "aliases": [
+ "megajoule",
+ "megajoules"
+ ],
+ "symbol": "mJ",
+ "identifier": "megajoules"
+ },
+ {
+ "aliases": [
+ "gigajoule",
+ "gigajoules"
+ ],
+ "symbol": "gJ",
+ "identifier": "gigajoules"
+ },
+ {
+ "aliases": [
+ "calorie",
+ "calories"
+ ],
+ "symbol": "cal",
+ "identifier": "calories"
+ },
+ {
+ "aliases": [
+ "kilocalorie",
+ "kilocalories"
+ ],
+ "symbol": "kCal",
+ "identifier": "kilocalories"
+ },
+ {
+ "aliases": [
+ "watt hour",
+ "watt hours"
+ ],
+ "symbol": "Wh",
+ "identifier": "wattHours"
+ },
+ {
+ "aliases": [
+ "watt minute",
+ "watt minutes"
+ ],
+ "symbol": "W m",
+ "identifier": "wattMinutes"
+ },
+ {
+ "aliases": [
+ "watt second",
+ "watt seconds"
+ ],
+ "symbol": "W s",
+ "identifier": "wattSeconds"
+ },
+ {
+ "aliases": [
+ "kilowatt hour",
+ "kilowatt hours"
+ ],
+ "symbol": "kWh",
+ "identifier": "kilowattHours"
+ },
+ {
+ "aliases": [
+ "megawatt hour",
+ "megawatt hours"
+ ],
+ "symbol": "MWh",
+ "identifier": "megawattHours"
+ },
+ {
+ "aliases": [
+ "gigawatt hour",
+ "gigawatt hours"
+ ],
+ "symbol": "GWh",
+ "identifier": "gigawattHours"
+ },
+ {
+ "aliases": [
+ "terawatt hour",
+ "terawatt hours"
+ ],
+ "symbol": "TWh",
+ "identifier": "terawattHours"
+ }
+ ],
+ "temperature": [
+ {
+ "aliases": [
+ "Kelvin"
+ ],
+ "symbol": "K",
+ "identifier": "kelvin"
+ },
+ {
+ "aliases": [
+ "degree celsius",
+ "degrees celsius",
+ "ºC",
+ "C",
+ "degC",
+ "celcius"
+ ],
+ "symbol": "°C",
+ "identifier": "celsius"
+ },
+ {
+ "aliases": [
+ "degree fahrenheit",
+ "degrees fahrenheit",
+ "ºF",
+ "F",
+ "degF",
+ "fahrenheit"
+ ],
+ "symbol": "°F",
+ "identifier": "fahrenheit"
+ }
+ ],
+ "dataTransfer": [
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Bps",
+ "identifier": "bytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "bps",
+ "identifier": "bitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "YBps",
+ "identifier": "yottabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "ZBps",
+ "identifier": "zettabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "EBps",
+ "identifier": "exabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "PBps",
+ "identifier": "petabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "TBps",
+ "identifier": "terabytesPerSecond"
+ },
+ {
+ "aliases": [
+ "gBps"
+ ],
+ "symbol": "GBps",
+ "identifier": "gigabytesPerSecond"
+ },
+ {
+ "aliases": [
+ "mBps"
+ ],
+ "symbol": "MBps",
+ "identifier": "megabytesPerSecond"
+ },
+ {
+ "aliases": [
+ "kBps"
+ ],
+ "symbol": "KBps",
+ "identifier": "kilobytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Ybps",
+ "identifier": "yottabitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Zbps",
+ "identifier": "zettabitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Ebps",
+ "identifier": "exabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "Pbps"
+ ],
+ "symbol": "Pbps",
+ "identifier": "petabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "tbps"
+ ],
+ "symbol": "Tbps",
+ "identifier": "terabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "gbps"
+ ],
+ "symbol": "Gbps",
+ "identifier": "gigabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "mbps"
+ ],
+ "symbol": "Mbps",
+ "identifier": "megabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "kbps"
+ ],
+ "symbol": "Kbps",
+ "identifier": "kilobitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "YiBps",
+ "identifier": "yobibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "ZiBps",
+ "identifier": "zebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "EiBps",
+ "identifier": "exbibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "PiBps",
+ "identifier": "pebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "TiBps",
+ "identifier": "tebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "GiBps",
+ "identifier": "gibibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "MiBps",
+ "identifier": "mebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "KiBps",
+ "identifier": "kibibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Yibps",
+ "identifier": "yobibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Zibps",
+ "identifier": "zebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Eibps",
+ "identifier": "exbibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Pibps",
+ "identifier": "pebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Tibps",
+ "identifier": "tebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Gibps",
+ "identifier": "gibibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Mibps",
+ "identifier": "mebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Kibps",
+ "identifier": "kibibitsPerSecond"
+ }
+ ],
+ "angle": [
+ {
+ "aliases": [
+ "Grad"
+ ],
+ "symbol": "°",
+ "identifier": "degrees"
+ },
+ {
+ "aliases": [
+ "Radian"
+ ],
+ "symbol": "rad",
+ "identifier": "radians"
+ }
+ ],
+ "length": [
+ {
+ "aliases": [
+ "Meter",
+ "Metern"
+ ],
+ "symbol": "m",
+ "identifier": "meters"
+ },
+ {
+ "aliases": [
+ "Kilometer",
+ "Kilometern"
+ ],
+ "symbol": "km",
+ "identifier": "kilometers"
+ },
+ {
+ "aliases": [
+ "Zentimeter",
+ "Zentimetern"
+ ],
+ "symbol": "cm",
+ "identifier": "centimeters"
+ },
+ {
+ "aliases": [
+ "Millimeter",
+ "Millimetern"
+ ],
+ "symbol": "mm",
+ "identifier": "millimeters"
+ },
+ {
+ "aliases": [
+ "Mikrometer",
+ "Mikrometern"
+ ],
+ "symbol": "µm",
+ "identifier": "micrometers"
+ },
+ {
+ "aliases": [
+ "Nanometer",
+ "Nanometern"
+ ],
+ "symbol": "nm",
+ "identifier": "nanometers"
+ },
+ {
+ "aliases": [
+ "Zoll",
+ "inch",
+ "inches"
+ ],
+ "symbol": "in",
+ "identifier": "inches"
+ },
+ {
+ "aliases": [
+ "foot",
+ "Fuß",
+ "feet"
+ ],
+ "symbol": "ft",
+ "identifier": "feet"
+ },
+ {
+ "aliases": [
+ "yard",
+ "yards"
+ ],
+ "symbol": "yd",
+ "identifier": "yards"
+ },
+ {
+ "aliases": [
+ "Meile",
+ "Meilen"
+ ],
+ "symbol": "mi",
+ "identifier": "miles"
+ },
+ {
+ "aliases": [
+ "Lichtjahr",
+ "Lichtjahre"
+ ],
+ "symbol": "ly",
+ "identifier": "lightyears"
+ },
+ {
+ "aliases": [
+ "parsec",
+ "parsecs"
+ ],
+ "symbol": "pc",
+ "identifier": "parsecs"
+ },
+ {
+ "aliases": [
+ "Nautische Meile",
+ "Nautische Meilen"
+ ],
+ "symbol": "NM",
+ "identifier": "nauticalMiles"
+ },
+ {
+ "aliases": [
+ "Faden"
+ ],
+ "symbol": "ftm",
+ "identifier": "fathoms"
+ },
+ {
+ "aliases": [
+ "furlong",
+ "furlongs"
+ ],
+ "symbol": "fur",
+ "identifier": "furlongs"
+ },
+ {
+ "aliases": [
+ "Pixel"
+ ],
+ "symbol": "px",
+ "identifier": "pixel"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "em",
+ "identifier": "em"
+ },
+ {
+ "aliases": [
+ "pts"
+ ],
+ "symbol": "pt",
+ "identifier": "point"
+ }
+ ],
+ "area": [
+ {
+ "aliases": [
+ "Quadratkilometer",
+ "kilometer²",
+ "km^2",
+ "km2"
+ ],
+ "symbol": "km²",
+ "identifier": "squareKilometers"
+ },
+ {
+ "aliases": [
+ "Quadratmeter",
+ "m^2",
+ "meter²",
+ "m2"
+ ],
+ "symbol": "m²",
+ "identifier": "squareMeters"
+ },
+ {
+ "aliases": [
+ "Quadratzentimeter",
+ "Zentimeter^2",
+ "Zentimeter²",
+ "cm^2",
+ "cm2"
+ ],
+ "symbol": "cm²",
+ "identifier": "squareCentimeters"
+ },
+ {
+ "aliases": [
+ "Quadratmillimeter",
+ "Millimeter^2",
+ "Millimeter²",
+ "mm^2",
+ "mm2"
+ ],
+ "symbol": "mm²",
+ "identifier": "squareMillimeters"
+ },
+ {
+ "aliases": [
+ "Quadratmicrometer",
+ "Mikrometer^2",
+ "Mikrometer²",
+ "µm^2",
+ "µm2"
+ ],
+ "symbol": "µm²",
+ "identifier": "squareMicrometers"
+ },
+ {
+ "aliases": [
+ "Quadratzoll",
+ "in^2",
+ "in2",
+ "Zoll²"
+ ],
+ "symbol": "in²",
+ "identifier": "squareInches"
+ },
+ {
+ "aliases": [
+ "Quadratfuß",
+ "Quadratfuss",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "feet^2",
+ "feet²"
+ ],
+ "symbol": "ft²",
+ "identifier": "squareFeet"
+ },
+ {
+ "aliases": [
+ "square yard",
+ "square yards",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "yard^2",
+ "yards²",
+ "sqyd"
+ ],
+ "symbol": "yd²",
+ "identifier": "squareYards"
+ },
+ {
+ "aliases": [
+ "Quadratmeile",
+ "Quadratmeilen",
+ "mi^2",
+ "mi2",
+ "mile^2",
+ "miles^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "miles²"
+ ],
+ "symbol": "mi²",
+ "identifier": "squareMiles"
+ },
+ {
+ "aliases": [
+ "acre",
+ "acres",
+ "ac"
+ ],
+ "symbol": "ac",
+ "identifier": "acres"
+ },
+ {
+ "aliases": [
+ "Hektar",
+ "ha"
+ ],
+ "symbol": "ha",
+ "identifier": "hectares"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "ares",
+ "identifier": "ares"
+ }
+ ],
+ "fuelEfficiency": [
+ {
+ "aliases": [
+ "l/100 km",
+ "l/100km",
+ "l / 100km",
+ "Liter / 100km",
+ "Liter / 100km",
+ "l / 100 km",
+ "Liter / 100 km",
+ "Liter / 100 km"
+ ],
+ "symbol": "l/100km",
+ "identifier": "litersPer100Kilometers"
+ },
+ {
+ "aliases": [
+ "Meilen per Gallone"
+ ],
+ "symbol": "mpg",
+ "identifier": "milesPerGallon"
+ }
+ ],
+ "power": [
+ {
+ "aliases": [
+ "Watt"
+ ],
+ "symbol": "W",
+ "identifier": "watts"
+ },
+ {
+ "aliases": [
+ "Milliwatt"
+ ],
+ "symbol": "mW",
+ "identifier": "milliwatts"
+ },
+ {
+ "aliases": [
+ "Kilowatt"
+ ],
+ "symbol": "kW",
+ "identifier": "kilowatts"
+ },
+ {
+ "aliases": [
+ "Megawatt"
+ ],
+ "symbol": "MW",
+ "identifier": "megawatts"
+ },
+ {
+ "aliases": [
+ "Gigawatt"
+ ],
+ "symbol": "GW",
+ "identifier": "gigawatts"
+ },
+ {
+ "aliases": [
+ "Terawatt"
+ ],
+ "symbol": "TW",
+ "identifier": "terawatts"
+ },
+ {
+ "aliases": [
+ "Pferdestärke",
+ "Pferdestärken"
+ ],
+ "symbol": "PS",
+ "identifier": "horsepower"
+ }
+ ],
+ "mass": [
+ {
+ "aliases": [
+ "Kilogram"
+ ],
+ "symbol": "kg",
+ "identifier": "kilograms"
+ },
+ {
+ "aliases": [
+ "Gramm"
+ ],
+ "symbol": "g",
+ "identifier": "grams"
+ },
+ {
+ "aliases": [
+ "Milligramm"
+ ],
+ "symbol": "mg",
+ "identifier": "milligrams"
+ },
+ {
+ "aliases": [
+ "Nanogramm"
+ ],
+ "symbol": "ng",
+ "identifier": "nanograms"
+ },
+ {
+ "aliases": [
+ "Unze",
+ "Unzen"
+ ],
+ "symbol": "oz",
+ "identifier": "ounces"
+ },
+ {
+ "aliases": [
+ "lbs",
+ "Pfund",
+ "Pfd"
+ ],
+ "symbol": "lb",
+ "identifier": "pounds"
+ },
+ {
+ "aliases": [
+ "stone",
+ "stones"
+ ],
+ "symbol": "st",
+ "identifier": "stones"
+ },
+ {
+ "aliases": [
+ "Tonne",
+ "Tonnen"
+ ],
+ "symbol": "t",
+ "identifier": "metricTons"
+ },
+ {
+ "aliases": [
+ "short ton",
+ "short tons",
+ "tons",
+ "tonne",
+ "tonnes"
+ ],
+ "symbol": "ton",
+ "identifier": "shortTons"
+ },
+ {
+ "aliases": [
+ "Karat"
+ ],
+ "symbol": "ct",
+ "identifier": "carats"
+ },
+ {
+ "aliases": [
+ "ounce troy",
+ "ounces troy"
+ ],
+ "symbol": "oz t",
+ "identifier": "ouncesTroy"
+ }
+ ],
+ "duration": [
+ {
+ "aliases": [
+ "Stunde",
+ "Stunden",
+ "Std"
+ ],
+ "symbol": "h",
+ "identifier": "hours"
+ },
+ {
+ "aliases": [
+ "Sekunde",
+ "Sekunden",
+ "sek"
+ ],
+ "symbol": "s",
+ "identifier": "seconds"
+ },
+ {
+ "aliases": [
+ "Minute",
+ "Minuten"
+ ],
+ "symbol": "min",
+ "identifier": "minutes"
+ },
+ {
+ "aliases": [
+ "Tag",
+ "Tage",
+ "Tagen"
+ ],
+ "symbol": "d",
+ "identifier": "days"
+ },
+ {
+ "aliases": [
+ "Wochentag",
+ "Wochentage",
+ "Wochentagen",
+ "Arbeitstage",
+ "Arbeitstag",
+ "Arbeitstagen"
+ ],
+ "symbol": "WT",
+ "identifier": "weekdays"
+ },
+ {
+ "aliases": [
+ "Woche",
+ "Wochen"
+ ],
+ "symbol": "Woche",
+ "identifier": "weeks"
+ },
+ {
+ "aliases": [
+ "Monat",
+ "Monate",
+ "Monaten"
+ ],
+ "symbol": "Mon",
+ "identifier": "months"
+ },
+ {
+ "aliases": [
+ "Jahr",
+ "Jahre",
+ "Jahren"
+ ],
+ "symbol": "Jahr",
+ "identifier": "years"
+ },
+ {
+ "aliases": [
+ "Millisekunde",
+ "Millisekunden"
+ ],
+ "symbol": "ms",
+ "identifier": "milliseconds"
+ },
+ {
+ "aliases": [
+ "Mikrosekunde",
+ "Mikrosekunden"
+ ],
+ "symbol": "µs",
+ "identifier": "microseconds"
+ },
+ {
+ "aliases": [
+ "Nanosekunde",
+ "Nanosekunden"
+ ],
+ "symbol": "ns",
+ "identifier": "nanoseconds"
+ }
+ ],
+ "currency": [
+ {
+ "aliases": [
+ "usd"
+ ],
+ "symbol": "USD",
+ "identifier": "usd"
+ }
+ ],
+ "frequency": [
+ {
+ "aliases": [
+ "Hertz",
+ "hz"
+ ],
+ "symbol": "Hz",
+ "identifier": "hertz"
+ },
+ {
+ "aliases": [
+ "Kilohertz"
+ ],
+ "symbol": "kHz",
+ "identifier": "kilohertz"
+ },
+ {
+ "aliases": [
+ "Megahertz"
+ ],
+ "symbol": "MHz",
+ "identifier": "megahertz"
+ },
+ {
+ "aliases": [
+ "Gigahertz"
+ ],
+ "symbol": "GHz",
+ "identifier": "gigahertz"
+ },
+ {
+ "aliases": [
+ "Terahertz"
+ ],
+ "symbol": "THz",
+ "identifier": "terahertz"
+ },
+ {
+ "aliases": [
+ "Millihertz"
+ ],
+ "symbol": "mHz",
+ "identifier": "millihertz"
+ },
+ {
+ "aliases": [
+ "Mikrohertz"
+ ],
+ "symbol": "µHz",
+ "identifier": "microhertz"
+ },
+ {
+ "aliases": [
+ "Nanohertz"
+ ],
+ "symbol": "nHz",
+ "identifier": "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/en.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/en.lproj/Localizable.strings
new file mode 100644
index 000000000..42f0222f1
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/en.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/en.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/en.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..3132bcc8d
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/en.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/Cities.json
new file mode 100644
index 000000000..a0aaab1fd
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/Cities.json
@@ -0,0 +1,5245 @@
+[
+ {
+ "population" : "22,315,474",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Шанхай",
+ "aliases" : [
+ "Шанхаем",
+ "Шанхае"
+ ],
+ "identifier" : "shanghai"
+ },
+ {
+ "population" : "14,804,116",
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "Стамбул",
+ "aliases" : [
+ "Стамбулом",
+ "Стамбуле"
+ ],
+ "identifier" : "istanbul"
+ },
+ {
+ "population" : "13,076,300",
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "Буэнос-Айрес",
+ "aliases" : [
+ "Буэнос-Айресе",
+ "Буэнос-Айресом"
+ ],
+ "identifier" : "buenos aires"
+ },
+ {
+ "population" : "12,691,836",
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Мумбаи",
+ "identifier" : "mumbai"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "Мехико",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "population" : "11,716,620",
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Пекин",
+ "aliases" : [
+ "Пекине",
+ "Пекином"
+ ],
+ "identifier" : "beijing"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "Карачи",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "population" : "11,090,314",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Тяньцзинь",
+ "aliases" : [
+ "Тяньцзине",
+ "Тяньцзинем"
+ ],
+ "identifier" : "tianjin"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Гуанчжоу",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Дели",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "population" : "10,381,222",
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Москва",
+ "aliases" : [
+ "Москву",
+ "Москвой",
+ "Москве"
+ ],
+ "identifier" : "moscow"
+ },
+ {
+ "population" : "10,358,381",
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Шэньчжэнь",
+ "aliases" : [
+ "Шэньчжэне",
+ "Шэньчжэнем"
+ ],
+ "identifier" : "shenzhen"
+ },
+ {
+ "population" : "10,356,500",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "Дакка",
+ "aliases" : [
+ "Дакку",
+ "Даккой",
+ "Дакке"
+ ],
+ "identifier" : "dhaka"
+ },
+ {
+ "population" : "10,349,312",
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "Сеул",
+ "aliases" : [
+ "Сеулом",
+ "Сеуле"
+ ],
+ "identifier" : "seoul"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Сан-Паулу",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "population" : "9,785,388",
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Ухань",
+ "aliases" : [
+ "Уханем",
+ "Ухане"
+ ],
+ "identifier" : "wuhan"
+ },
+ {
+ "population" : "9,000,000",
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Лагос",
+ "aliases" : [
+ "Лагосом",
+ "Лагосе"
+ ],
+ "identifier" : "lagos"
+ },
+ {
+ "population" : "8,540,121",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "Джакарта",
+ "aliases" : [
+ "Джакартой",
+ "Джакарту",
+ "Джакарте"
+ ],
+ "identifier" : "jakarta"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Токио",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "population" : "8,175,133",
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "Нью-Йорк",
+ "aliases" : [
+ "Нью-Йорком",
+ "Нью Йорк",
+ "Нью-Йорке"
+ ],
+ "identifier" : "new york"
+ },
+ {
+ "population" : "8,000,000",
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Дунгуань",
+ "aliases" : [
+ "Дунгуане",
+ "Дунгуанем"
+ ],
+ "identifier" : "dongguan"
+ },
+ {
+ "population" : "7,871,900",
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "Тайбэй",
+ "aliases" : [
+ "Тайбэем",
+ "Тайбэе"
+ ],
+ "identifier" : "taipei"
+ },
+ {
+ "population" : "7,785,965",
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "Киншаса",
+ "aliases" : [
+ "Киншасе",
+ "Киншасу",
+ "Киншасой"
+ ],
+ "identifier" : "kinshasa"
+ },
+ {
+ "population" : "7,734,614",
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "Каир",
+ "aliases" : [
+ "Каиром",
+ "Каире"
+ ],
+ "identifier" : "cairo"
+ },
+ {
+ "population" : "7,674,366",
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "Богота",
+ "aliases" : [
+ "Боготе",
+ "Боготой",
+ "Боготу"
+ ],
+ "identifier" : "bogota"
+ },
+ {
+ "population" : "7,556,900",
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "Лондон",
+ "aliases" : [
+ "Лондоне",
+ "Лондоном"
+ ],
+ "identifier" : "london"
+ },
+ {
+ "population" : "7,457,600",
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Чунцин",
+ "aliases" : [
+ "Чунцине",
+ "Чунцином"
+ ],
+ "identifier" : "chongqing"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Чэнду",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "population" : "7,216,000",
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "Багдад",
+ "aliases" : [
+ "Багдадом",
+ "багдаде"
+ ],
+ "identifier" : "baghdad"
+ },
+ {
+ "population" : "7,165,292",
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Нанкин",
+ "aliases" : [
+ "Нанкином",
+ "Нанкине"
+ ],
+ "identifier" : "nanjing"
+ },
+ {
+ "population" : "7,153,309",
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Тегеран",
+ "aliases" : [
+ "Тегераном",
+ "Тегеране"
+ ],
+ "identifier" : "tehran"
+ },
+ {
+ "population" : "7,150,000",
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Наньчун",
+ "aliases" : [
+ "Наньчуном",
+ "Наньчуне"
+ ],
+ "identifier" : "nanchong"
+ },
+ {
+ "population" : "7,012,738",
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "Гонконг",
+ "aliases" : [
+ "Гонконге",
+ "Гонконгом"
+ ],
+ "identifier" : "hong kong"
+ },
+ {
+ "population" : "6,501,190",
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Сиань",
+ "aliases" : [
+ "Сиане"
+ ],
+ "identifier" : "xi'an"
+ },
+ {
+ "population" : "6,023,699",
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Рио де Жанейро",
+ "aliases" : [
+ "Рио-де-Жанейро"
+ ],
+ "identifier" : "rio de janeiro"
+ },
+ {
+ "population" : "5,104,476",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "Бангкок",
+ "aliases" : [
+ "Бангкоке",
+ "Бангкоком"
+ ],
+ "identifier" : "bangkok"
+ },
+ {
+ "population" : "5,104,047",
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Бенгалор",
+ "aliases" : [
+ "Бангалор",
+ "Бангалоре",
+ "Бенгалором"
+ ],
+ "identifier" : "bengaluru"
+ },
+ {
+ "population" : "5,028,000",
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Санкт-Петербург",
+ "aliases" : [
+ "Санкт-Петербургом",
+ "Санкт-Петербурге"
+ ],
+ "identifier" : "saint petersburg"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "Сантьяго",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "population" : "4,631,392",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Колькутта",
+ "aliases" : [
+ "Калькутту",
+ "Калькуттой",
+ "Калькутте"
+ ],
+ "identifier" : "kolkata"
+ },
+ {
+ "population" : "4,627,345",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Сидней",
+ "aliases" : [
+ "Сиднеем",
+ "Сиднее"
+ ],
+ "identifier" : "sydney"
+ },
+ {
+ "population" : "4,477,638",
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "Янгон",
+ "aliases" : [
+ "Янгоне",
+ "Янгоном"
+ ],
+ "identifier" : "yangon"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Ченнаи",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "population" : "4,246,375",
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "Мельбурн",
+ "aliases" : [
+ "Мельбурном",
+ "Мельбурне"
+ ],
+ "identifier" : "melbourne"
+ },
+ {
+ "population" : "4,205,961",
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Эр - Рияд",
+ "aliases" : [
+ "Эр-Рияде",
+ "Эр-Рияд",
+ "Эр-Риядом"
+ ],
+ "identifier" : "riyadh"
+ },
+ {
+ "population" : "3,971,883",
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Лос-Анджелес",
+ "aliases" : [
+ "Лос-Анджелесом",
+ "Лос-Анжелесе"
+ ],
+ "identifier" : "los angeles"
+ },
+ {
+ "population" : "3,920,222",
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "Читтагонг",
+ "aliases" : [
+ "Читтагонге",
+ "Читтагонгом"
+ ],
+ "identifier" : "chittagong"
+ },
+ {
+ "population" : "3,811,516",
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "Александрия",
+ "aliases" : [
+ "Александрией",
+ "Александрии",
+ "Александрию"
+ ],
+ "identifier" : "alexandria"
+ },
+ {
+ "population" : "3,719,710",
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Ахмедабад",
+ "aliases" : [
+ "Ахмедабаде",
+ "Ахмедабадом"
+ ],
+ "identifier" : "ahmedabad"
+ },
+ {
+ "population" : "3,678,555",
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "Пусан",
+ "aliases" : [
+ "Пусаном",
+ "Пусане"
+ ],
+ "identifier" : "busan"
+ },
+ {
+ "population" : "3,677,115",
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "Абиджан",
+ "aliases" : [
+ "Абиджаном",
+ "Абиджане"
+ ],
+ "identifier" : "abidjan"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Кано",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "population" : "3,597,816",
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Хайдарабад",
+ "aliases" : [
+ "Хайдарабаде",
+ "Хайдарабадом"
+ ],
+ "identifier" : "hyderabad"
+ },
+ {
+ "population" : "3,574,443",
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Йокогама",
+ "aliases" : [
+ "Йокогаму",
+ "Йокогамой",
+ "Йокогаме"
+ ],
+ "identifier" : "yokohama"
+ },
+ {
+ "population" : "3,565,108",
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Ибадан",
+ "aliases" : [
+ "Ибадане",
+ "Ибаданом"
+ ],
+ "identifier" : "ibadan"
+ },
+ {
+ "population" : "3,547,809",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "Сингапур",
+ "aliases" : [
+ "Сингапуре",
+ "Сингапуром"
+ ],
+ "identifier" : "singapore"
+ },
+ {
+ "population" : "3,517,182",
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "Анкара",
+ "aliases" : [
+ "Анкарой",
+ "Анкаре",
+ "Анкару"
+ ],
+ "identifier" : "ankara"
+ },
+ {
+ "population" : "3,467,331",
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "Хошимин",
+ "aliases" : [
+ " Хошимине",
+ "Хошимином"
+ ],
+ "identifier" : "ho chi minh city"
+ },
+ {
+ "population" : "3,433,441",
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Кейптаун",
+ "aliases" : [
+ "Кейптауне",
+ "Кейптауном"
+ ],
+ "identifier" : "cape town"
+ },
+ {
+ "population" : "3,426,354",
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Берлин",
+ "aliases" : [
+ "Берлином",
+ "Берлине"
+ ],
+ "identifier" : "berlin"
+ },
+ {
+ "population" : "3,255,944",
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "Мадрид",
+ "aliases" : [
+ "Мадриде",
+ "Мадридом"
+ ],
+ "identifier" : "madrid"
+ },
+ {
+ "population" : "3,222,000",
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "Пхеньян",
+ "aliases" : [
+ "Пхеньяне",
+ "Пхеньяном"
+ ],
+ "identifier" : "pyongyang"
+ },
+ {
+ "population" : "3,144,909",
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Касабланка",
+ "aliases" : [
+ "Касабланкой",
+ "Касабланке",
+ "Касабланку"
+ ],
+ "identifier" : "casablanca"
+ },
+ {
+ "population" : "3,121,275",
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "Чжуншань",
+ "aliases" : [
+ "Чжуншане",
+ "Чжуншанем"
+ ],
+ "identifier" : "zhongshan"
+ },
+ {
+ "population" : "3,120,282",
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Дурбан",
+ "aliases" : [
+ "Дурбаном",
+ "Дурбане"
+ ],
+ "identifier" : "durban"
+ },
+ {
+ "population" : "3,043,532",
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "Кабул",
+ "aliases" : [
+ "Кабулом",
+ "Кабуле"
+ ],
+ "identifier" : "kabul"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "Урумчи",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "population" : "3,000,000",
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "Каракас",
+ "aliases" : [
+ "Каракасом",
+ "Каракасе"
+ ],
+ "identifier" : "caracas"
+ },
+ {
+ "population" : "2,956,587",
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "Дубай",
+ "aliases" : [
+ "Дубае",
+ "Дубаем"
+ ],
+ "identifier" : "dubai"
+ },
+ {
+ "population" : "2,867,446",
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Джидда",
+ "aliases" : [
+ "Джиддой",
+ "Джидде",
+ "Джидду"
+ ],
+ "identifier" : "jeddah"
+ },
+ {
+ "population" : "2,797,553",
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Киев",
+ "aliases" : [
+ "Киевом",
+ "Киеве"
+ ],
+ "identifier" : "kyiv"
+ },
+ {
+ "population" : "2,776,168",
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "Луанда",
+ "aliases" : [
+ "Луанде",
+ "Луандой",
+ "Луанду"
+ ],
+ "identifier" : "luanda"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "Кесон-Сити",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "population" : "2,757,729",
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "Аддис-Абеба",
+ "aliases" : [
+ "Аддис-Абебой",
+ "Аддис-Абебе",
+ "Аддис-Абебу"
+ ],
+ "identifier" : "addis ababa"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "Найроби",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "Чикаго",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "population" : "2,711,840",
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "Сальвадор",
+ "aliases" : [
+ "Сальвадором",
+ "Сальвадоре"
+ ],
+ "identifier" : "salvador"
+ },
+ {
+ "population" : "2,698,652",
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "Дар-эс-Салам",
+ "aliases" : [
+ "Дар-эс-Саламе",
+ "Дар-эс-Саламом"
+ ],
+ "identifier" : "dar es salaam"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "Торонто",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "population" : "2,592,413",
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Осака",
+ "aliases" : [
+ "Осаку",
+ "Осакой",
+ "Осаке"
+ ],
+ "identifier" : "osaka"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "Могадишо",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "population" : "2,500,603",
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "Измир",
+ "aliases" : [
+ "Измиром",
+ "Измире"
+ ],
+ "identifier" : "izmir"
+ },
+ {
+ "population" : "2,476,400",
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "Дакар",
+ "aliases" : [
+ "Дакаре",
+ "Дакаром"
+ ],
+ "identifier" : "dakar"
+ },
+ {
+ "population" : "2,443,203",
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "Гиза",
+ "aliases" : [
+ "Гизе",
+ "Гизу",
+ "Гизой"
+ ],
+ "identifier" : "giza"
+ },
+ {
+ "population" : "2,400,000",
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "Форталеза",
+ "aliases" : [
+ "Форталезе",
+ "Форталезу",
+ "Форталезой"
+ ],
+ "identifier" : "fortaleza"
+ },
+ {
+ "population" : "2,374,658",
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "Сурабая",
+ "aliases" : [
+ "Сурабаей",
+ "Сурабае",
+ "Сурабаю"
+ ],
+ "identifier" : "surabaya"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Белу-Оризонти",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "population" : "2,318,895",
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Рим",
+ "aliases" : [
+ "Риме",
+ "Римом"
+ ],
+ "identifier" : "rome"
+ },
+ {
+ "population" : "2,307,177",
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Мешхед",
+ "aliases" : [
+ "Мешхеде",
+ "Мешхедом"
+ ],
+ "identifier" : "mashhad"
+ },
+ {
+ "population" : "2,300,664",
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "Бруклин",
+ "aliases" : [
+ "Бруклином",
+ "Бруклине"
+ ],
+ "identifier" : "brooklyn"
+ },
+ {
+ "population" : "2,296,224",
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "Хьюстон",
+ "aliases" : [
+ "Хьюстоном",
+ "Хьюстоне"
+ ],
+ "identifier" : "houston"
+ },
+ {
+ "population" : "2,272,771",
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "Квинс",
+ "aliases" : [
+ "Квинс»",
+ "Квинсе",
+ "Квинсом"
+ ],
+ "identifier" : "queens"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Бразилиа",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "population" : "2,201,941",
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "Санто-Доминго",
+ "aliases" : [
+ "Санто-Доминго "
+ ],
+ "identifier" : "santo domingo"
+ },
+ {
+ "population" : "2,191,279",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Нагоя",
+ "aliases" : [
+ "Нагоей",
+ "Нагое"
+ ],
+ "identifier" : "nagoya"
+ },
+ {
+ "population" : "2,189,878",
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Брисбен",
+ "aliases" : [
+ "Брисбне",
+ "Брисбном"
+ ],
+ "identifier" : "brisbane"
+ },
+ {
+ "population" : "2,163,824",
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "Гавана",
+ "aliases" : [
+ "Гаваной",
+ "Гавану",
+ "Гаване"
+ ],
+ "identifier" : "havana"
+ },
+ {
+ "population" : "2,138,551",
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Париж",
+ "aliases" : [
+ "Париже",
+ "Парижем"
+ ],
+ "identifier" : "paris"
+ },
+ {
+ "population" : "2,026,469",
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Йоханнесбург",
+ "aliases" : [
+ "Йоханнесбурге",
+ "Йоханнесбургом"
+ ],
+ "identifier" : "johannesburg"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "Алматы",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "population" : "1,978,028",
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "Ташкент",
+ "aliases" : [
+ "Ташкенте",
+ "Ташкентом"
+ ],
+ "identifier" : "tashkent"
+ },
+ {
+ "population" : "1,977,663",
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Алжир",
+ "aliases" : [
+ "Алжире",
+ "Алжиром"
+ ],
+ "identifier" : "algiers"
+ },
+ {
+ "population" : "1,974,647",
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "Хартум",
+ "aliases" : [
+ "Хартуме",
+ "Хартумом"
+ ],
+ "identifier" : "khartoum"
+ },
+ {
+ "population" : "1,963,264",
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "Аккра",
+ "aliases" : [
+ "Аккре",
+ "Аккру",
+ "Аккрой"
+ ],
+ "identifier" : "accra"
+ },
+ {
+ "population" : "1,952,029",
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "Гуякиль",
+ "aliases" : [
+ "Гуякилем",
+ "Гуякиле"
+ ],
+ "identifier" : "guayaquil"
+ },
+ {
+ "population" : "1,937,451",
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "Сана",
+ "aliases" : [
+ "Сане",
+ "Саной"
+ ],
+ "identifier" : "sanaa"
+ },
+ {
+ "population" : "1,916,100",
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "Бейрут",
+ "aliases" : [
+ "Бейрутом",
+ "Бейруте"
+ ],
+ "identifier" : "beirut"
+ },
+ {
+ "population" : "1,896,548",
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "Перт",
+ "aliases" : [
+ "Пертом",
+ "Перте"
+ ],
+ "identifier" : "perth"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Саппоро",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "population" : "1,877,155",
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "Бухарест",
+ "aliases" : [
+ "Бухарестом",
+ "Бухаресте"
+ ],
+ "identifier" : "bucharest"
+ },
+ {
+ "population" : "1,871,242",
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "Камайен",
+ "aliases" : [
+ "Камайеном",
+ "Камайен",
+ "Камайенне"
+ ],
+ "identifier" : "camayenne"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "Конакри",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "population" : "1,742,124",
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "Минск",
+ "aliases" : [
+ "Минске",
+ "Минском"
+ ],
+ "identifier" : "minsk"
+ },
+ {
+ "population" : "1,741,041",
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "Будапешт",
+ "aliases" : [
+ "Будапештом",
+ "Будапеште"
+ ],
+ "identifier" : "budapest"
+ },
+ {
+ "population" : "1,739,117",
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Гамбург",
+ "aliases" : [
+ "Гамбургом",
+ "Гамбурге"
+ ],
+ "identifier" : "hamburg"
+ },
+ {
+ "population" : "1,702,139",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "Варшава",
+ "aliases" : [
+ "Варшавой",
+ "Варшаву",
+ "Варшаве"
+ ],
+ "identifier" : "warsaw"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Соуэто",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "population" : "1,691,468",
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Вена",
+ "aliases" : [
+ "Вену",
+ "Веной",
+ "Вене"
+ ],
+ "identifier" : "vienna"
+ },
+ {
+ "population" : "1,655,753",
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Рабат",
+ "aliases" : [
+ "Рабатом",
+ "Рабате"
+ ],
+ "identifier" : "rabat"
+ },
+ {
+ "population" : "1,621,537",
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "Барселона",
+ "aliases" : [
+ "Барселоне",
+ "Барселоной",
+ "Барселону"
+ ],
+ "identifier" : "barcelona"
+ },
+ {
+ "population" : "1,619,438",
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Претория",
+ "aliases" : [
+ "Преторией",
+ "Преторию",
+ "Претории"
+ ],
+ "identifier" : "pretoria"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "Алеппо",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "population" : "1,600,000",
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "Манила",
+ "aliases" : [
+ "Маниле",
+ "Манилой",
+ "Манилу"
+ ],
+ "identifier" : "manila"
+ },
+ {
+ "population" : "1,600,000",
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "Монреаль",
+ "aliases" : [
+ "Монреалем",
+ "Монреале"
+ ],
+ "identifier" : "montreal"
+ },
+ {
+ "population" : "1,582,102",
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Кадуна",
+ "aliases" : [
+ "Кадуне",
+ "Кадуной",
+ "Кадуну"
+ ],
+ "identifier" : "kaduna"
+ },
+ {
+ "population" : "1,573,544",
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "Пномпень",
+ "aliases" : [
+ "Пномпенем",
+ "Пномпене"
+ ],
+ "identifier" : "phnom penh"
+ },
+ {
+ "population" : "1,569,394",
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "Дамаск",
+ "aliases" : [
+ "Дамаске",
+ "Дамаском"
+ ],
+ "identifier" : "damascus"
+ },
+ {
+ "population" : "1,567,442",
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "Филадельфия",
+ "aliases" : [
+ "Филадельфию",
+ "Филадельфией",
+ "Филадельфии"
+ ],
+ "identifier" : "philadelphia"
+ },
+ {
+ "population" : "1,563,025",
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "Феникс",
+ "aliases" : [
+ "Фениксом",
+ "Фениксе"
+ ],
+ "identifier" : "phoenix"
+ },
+ {
+ "population" : "1,547,164",
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Исфахан",
+ "aliases" : [
+ "Исфаханом",
+ "Исфахане"
+ ],
+ "identifier" : "isfahan"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "Хараре",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Кобе",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "population" : "1,515,017",
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "Стокгольм",
+ "aliases" : [
+ "Стокгольмом",
+ "Стокгольме"
+ ],
+ "identifier" : "stockholm"
+ },
+ {
+ "population" : "1,487,536",
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "Манхэттен",
+ "aliases" : [
+ "Манхэттеном",
+ "Манхэттене"
+ ],
+ "identifier" : "manhattan"
+ },
+ {
+ "population" : "1,482,200",
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "Асунсьон",
+ "aliases" : [
+ "Асунсьоном",
+ "Асунсьоне"
+ ],
+ "identifier" : "asuncion"
+ },
+ {
+ "population" : "1,478,098",
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "Ресифе",
+ "aliases" : [
+ "Ресифи"
+ ],
+ "identifier" : "recife"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "Сан-Антонио",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "Кумаси",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "Кота-Бару",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Киото",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "population" : "1,453,975",
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "Куала-Лумпур",
+ "aliases" : [
+ "Куала-Лумпуром",
+ "Куала-Лумпуре"
+ ],
+ "identifier" : "kuala lumpur"
+ },
+ {
+ "population" : "1,448,075",
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Карадж",
+ "aliases" : [
+ "Кередж",
+ "Кереджем",
+ "Кередже"
+ ],
+ "identifier" : "karaj"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "Катманду",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "population" : "1,431,270",
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "Ханой",
+ "aliases" : [
+ "Ханое",
+ "Ханоем"
+ ],
+ "identifier" : "hanoi"
+ },
+ {
+ "population" : "1,430,885",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Харьков",
+ "aliases" : [
+ "Харьковом",
+ "Харькове"
+ ],
+ "identifier" : "kharkiv"
+ },
+ {
+ "population" : "1,428,214",
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "Кордова",
+ "aliases" : [
+ "Кордове",
+ "Кордовой",
+ "Кордову"
+ ],
+ "identifier" : "cordoba"
+ },
+ {
+ "population" : "1,424,641",
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Тебриз",
+ "aliases" : [
+ "Тебризом",
+ "Тебризе"
+ ],
+ "identifier" : "tabriz"
+ },
+ {
+ "population" : "1,419,007",
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "Новосибирск",
+ "aliases" : [
+ "новосибирске",
+ "Новосибирском"
+ ],
+ "identifier" : "novosibirsk"
+ },
+ {
+ "population" : "1,407,737",
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "Белен",
+ "aliases" : [
+ "Беленом",
+ "Белене"
+ ],
+ "identifier" : "belem"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "Кито",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Сан-Диего",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "population" : "1,392,289",
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Фукуока",
+ "aliases" : [
+ "Фукуокой",
+ "Фукуоке",
+ "Фукуоку"
+ ],
+ "identifier" : "fukuoka"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "Антананариву",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "population" : "1,385,108",
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "Бронкс",
+ "aliases" : [
+ "Бронксе",
+ "Бронксом"
+ ],
+ "identifier" : "the bronx"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "Лубумбаши",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "Санта-Крус-де-ла-Сьерра",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "population" : "1,353,189",
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "Кампала",
+ "aliases" : [
+ "Кампале",
+ "Кампалой",
+ "Кампалу"
+ ],
+ "identifier" : "kampala"
+ },
+ {
+ "population" : "1,349,772",
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Екатеринбург",
+ "aliases" : [
+ "Екатеринбургом",
+ "Екатеринбурге"
+ ],
+ "identifier" : "yekaterinburg"
+ },
+ {
+ "population" : "1,338,082",
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "Дуала",
+ "aliases" : [
+ "Дуалой",
+ "Дуале",
+ "Дуалу"
+ ],
+ "identifier" : "douala"
+ },
+ {
+ "population" : "1,324,473",
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "Sharjah",
+ "aliases" : [
+ "Шарджу",
+ "Шардже",
+ "Шарджей"
+ ],
+ "identifier" : "sharjah"
+ },
+ {
+ "population" : "1,323,624",
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Мекка",
+ "aliases" : [
+ "Мекку",
+ "Меккой",
+ "Мекке"
+ ],
+ "identifier" : "mecca"
+ },
+ {
+ "population" : "1,321,717",
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "Макассар",
+ "aliases" : [
+ "Макассаром",
+ "Макассаре"
+ ],
+ "identifier" : "makassar"
+ },
+ {
+ "population" : "1,321,004",
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "Хуарес",
+ "aliases" : [
+ "Хуаресом",
+ "Хуаресе"
+ ],
+ "identifier" : "juarez"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Кавасаки",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "population" : "1,300,983",
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "Тихуана",
+ "aliases" : [
+ "Тихуаной",
+ "Тихуане",
+ "Тихуану"
+ ],
+ "identifier" : "tijuana"
+ },
+ {
+ "population" : "1,300,092",
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "Даллас",
+ "aliases" : [
+ "Далласе",
+ "Далласом"
+ ],
+ "identifier" : "dallas"
+ },
+ {
+ "population" : "1,300,000",
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Медина",
+ "aliases" : [
+ "Медину",
+ "Мединой",
+ "Медине"
+ ],
+ "identifier" : "medina"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "Яунде",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "Бамако",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "population" : "1,284,609",
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "Браззавиль",
+ "aliases" : [
+ "Браззавилем",
+ "Браззавиле"
+ ],
+ "identifier" : "brazzaville"
+ },
+ {
+ "population" : "1,284,164",
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Нижний Новгород",
+ "aliases" : [
+ "Нижним Новгородом",
+ "Нижнем Новгороде"
+ ],
+ "identifier" : "nizhniy novgorod"
+ },
+ {
+ "population" : "1,275,857",
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "Амман",
+ "aliases" : [
+ "Аммане",
+ "Амманом"
+ ],
+ "identifier" : "amman"
+ },
+ {
+ "population" : "1,273,651",
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "Белград",
+ "aliases" : [
+ "Белграде",
+ "Белградом"
+ ],
+ "identifier" : "belgrade"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "Монтевидео",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "population" : "1,267,440",
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "Лусака",
+ "aliases" : [
+ "Лусакой",
+ "Лусаке",
+ "Лусаку"
+ ],
+ "identifier" : "lusaka"
+ },
+ {
+ "population" : "1,260,391",
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Мюнхен",
+ "aliases" : [
+ "Мюнхене",
+ "Мюнхеном"
+ ],
+ "identifier" : "munich"
+ },
+ {
+ "population" : "1,249,942",
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Шираз",
+ "aliases" : [
+ "Ширазе",
+ "Ширазом"
+ ],
+ "identifier" : "shiraz"
+ },
+ {
+ "population" : "1,236,837",
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Милан",
+ "aliases" : [
+ "Миланом",
+ "Милане"
+ ],
+ "identifier" : "milan"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "Порт-о-Пренс",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "population" : "1,225,235",
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "Аделаида",
+ "aliases" : [
+ "Аделаидой",
+ "Аделаиду",
+ "Аделаиде"
+ ],
+ "identifier" : "adelaide"
+ },
+ {
+ "population" : "1,200,000",
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "Омдурман",
+ "aliases" : [
+ "Омдурмане",
+ "Омдурманом"
+ ],
+ "identifier" : "omdurman"
+ },
+ {
+ "population" : "1,193,350",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Сайтама",
+ "aliases" : [
+ "Сайтаму",
+ "Сайтамой",
+ "Сайтаме"
+ ],
+ "identifier" : "saitama"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "Мапуту",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "population" : "1,165,581",
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "Прага",
+ "aliases" : [
+ "Праге",
+ "Прагой",
+ "Прагу"
+ ],
+ "identifier" : "prague"
+ },
+ {
+ "population" : "1,153,615",
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "Копенгаген",
+ "aliases" : [
+ "копенгагене",
+ "Копенгагеном"
+ ],
+ "identifier" : "copenhagen"
+ },
+ {
+ "population" : "1,152,556",
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "София",
+ "aliases" : [
+ "Софией",
+ "Софию",
+ "Софии"
+ ],
+ "identifier" : "sofia"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "Триполи",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Порт-Харкорт",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "population" : "1,143,841",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Хиросима",
+ "aliases" : [
+ "Хиросиму",
+ "Хиросимой",
+ "Хиросиме"
+ ],
+ "identifier" : "hiroshima"
+ },
+ {
+ "population" : "1,135,512",
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "Монтеррей",
+ "aliases" : [
+ "Монтеррее",
+ "Монтерреем"
+ ],
+ "identifier" : "monterrey"
+ },
+ {
+ "population" : "1,134,730",
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "Самара",
+ "aliases" : [
+ "Самару",
+ "Самарой",
+ "Самаре"
+ ],
+ "identifier" : "samara"
+ },
+ {
+ "population" : "1,129,281",
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "Омск",
+ "aliases" : [
+ "Омском",
+ "Омске"
+ ],
+ "identifier" : "omsk"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Бенин-Сити",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "Баку",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Майдугури",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "population" : "1,104,738",
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Казань",
+ "aliases" : [
+ "Казани",
+ "Казанью"
+ ],
+ "identifier" : "kazan"
+ },
+ {
+ "population" : "1,093,485",
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "Ереван",
+ "aliases" : [
+ "Ереване",
+ "Ереваном"
+ ],
+ "identifier" : "yerevan"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "Уагадугу",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "population" : "1,074,482",
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Ростов-на-Дону",
+ "aliases" : [
+ "Ростовом-на-Дону",
+ "Ростове-на-Дону"
+ ],
+ "identifier" : "rostov-na-donu"
+ },
+ {
+ "population" : "1,062,919",
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Челябинск",
+ "aliases" : [
+ "челябинском",
+ "челябинске"
+ ],
+ "identifier" : "chelyabinsk"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "Тбилиси",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "population" : "1,033,338",
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Уфа",
+ "aliases" : [
+ "Уфой",
+ "Уфу",
+ "Уфе"
+ ],
+ "identifier" : "ufa"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "Сан-Хосе",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "population" : "1,024,027",
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "Дублин",
+ "aliases" : [
+ "Дублином",
+ "Дублине"
+ ],
+ "identifier" : "dublin"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "Калгари",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "population" : "1,019,022",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "Брюссель",
+ "aliases" : [
+ "Брюсселем",
+ "Брюсселе"
+ ],
+ "identifier" : "brussels"
+ },
+ {
+ "population" : "1,011,417",
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "Волгоград",
+ "aliases" : [
+ "Волгоградом",
+ "Волгограде"
+ ],
+ "identifier" : "volgograd"
+ },
+ {
+ "population" : "1,001,558",
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Одесса",
+ "aliases" : [
+ "Одессой",
+ "Одессу",
+ "Одессе"
+ ],
+ "identifier" : "odessa"
+ },
+ {
+ "population" : "994,938",
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "Гватемала",
+ "aliases" : [
+ "Гватемалой",
+ "Гватемале",
+ "Гватемалу"
+ ],
+ "identifier" : "guatemala city"
+ },
+ {
+ "population" : "984,333",
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "Бирмингем",
+ "aliases" : [
+ "бирмингеме",
+ "Бирмингемом"
+ ],
+ "identifier" : "birmingham"
+ },
+ {
+ "population" : "982,419",
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Пермь",
+ "aliases" : [
+ "Перми",
+ "Пермью"
+ ],
+ "identifier" : "perm"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Зариа",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Порт-Элизабет",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "population" : "964,891",
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Фес",
+ "aliases" : [
+ "Фесе",
+ "Фесу",
+ "Фесом"
+ ],
+ "identifier" : "fes"
+ },
+ {
+ "population" : "963,395",
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Кёльн",
+ "aliases" : [
+ "Кёльне",
+ "Кёльном"
+ ],
+ "identifier" : "cologne"
+ },
+ {
+ "population" : "959,470",
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Неаполь",
+ "aliases" : [
+ "Неаполем",
+ "Неаполе"
+ ],
+ "identifier" : "naples"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "Масейо",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "population" : "939,524",
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "Монровия",
+ "aliases" : [
+ "Монровии",
+ "Монровию",
+ "Монровией"
+ ],
+ "identifier" : "monrovia"
+ },
+ {
+ "population" : "937,700",
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "Кингстон",
+ "aliases" : [
+ "Кингстоне",
+ "Кингстоном"
+ ],
+ "identifier" : "kingston"
+ },
+ {
+ "population" : "931,830",
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "Остин",
+ "aliases" : [
+ "Остине",
+ "Остином"
+ ],
+ "identifier" : "austin"
+ },
+ {
+ "population" : "927,200",
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "Красноярск",
+ "aliases" : [
+ "красноярском",
+ "красноярске"
+ ],
+ "identifier" : "krasnoyarsk"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Сале",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "population" : "900,000",
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Кум",
+ "aliases" : [
+ "Кумом",
+ "Куме"
+ ],
+ "identifier" : "qom"
+ },
+ {
+ "population" : "900,000",
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "Бишкек",
+ "aliases" : [
+ "Бишкеке",
+ "Бишкеком"
+ ],
+ "identifier" : "bishkek"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "Абобо",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "population" : "897,560",
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Аба",
+ "aliases" : [
+ "Абе",
+ "Абу",
+ "Абой"
+ ],
+ "identifier" : "aba"
+ },
+ {
+ "population" : "876,884",
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "Мендоса",
+ "aliases" : [
+ "Мендосой",
+ "Мендосу",
+ "Мендосе"
+ ],
+ "identifier" : "mendoza"
+ },
+ {
+ "population" : "874,761",
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "Мбужи-Майи",
+ "aliases" : [
+ "Мбуджи-Майи"
+ ],
+ "identifier" : "mbuji-mayi"
+ },
+ {
+ "population" : "874,062",
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "Пикин",
+ "aliases" : [
+ "Пикине",
+ "Пикином"
+ ],
+ "identifier" : "pikine"
+ },
+ {
+ "population" : "870,456",
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Турин",
+ "aliases" : [
+ "Турином",
+ "Турине"
+ ],
+ "identifier" : "turin"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Сан-Франциско",
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "population" : "864,122",
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "Ливерпуль",
+ "aliases" : [
+ "Ливерпуле",
+ "Ливерпулем"
+ ],
+ "identifier" : "liverpool"
+ },
+ {
+ "population" : "863,725",
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "Саратов",
+ "aliases" : [
+ "Саратове",
+ "Саратовом"
+ ],
+ "identifier" : "saratov"
+ },
+ {
+ "population" : "850,848",
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "Тегусигальпа",
+ "aliases" : [
+ "Тегусигальпе",
+ "Тегусигальпой",
+ "Тегусигальпу"
+ ],
+ "identifier" : "tegucigalpa"
+ },
+ {
+ "population" : "848,752",
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Воронеж",
+ "aliases" : [
+ "Воронеже",
+ "Воронежем"
+ ],
+ "identifier" : "voronezh"
+ },
+ {
+ "population" : "844,818",
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "Улан-Батор",
+ "aliases" : [
+ "Улан-Баторе",
+ "Улан-Батором"
+ ],
+ "identifier" : "ulan bator"
+ },
+ {
+ "population" : "841,145",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Ахваз",
+ "aliases" : [
+ "Ахвазом",
+ "Ахвазе"
+ ],
+ "identifier" : "ahvaz"
+ },
+ {
+ "population" : "839,296",
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Марракеш",
+ "aliases" : [
+ "Марракеше",
+ "Марракешем"
+ ],
+ "identifier" : "marrakesh"
+ },
+ {
+ "population" : "834,881",
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "Денпасар",
+ "aliases" : [
+ "Денпасаре",
+ "Денпасаром"
+ ],
+ "identifier" : "denpasar"
+ },
+ {
+ "population" : "833,319",
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "Форт-Уэрт",
+ "aliases" : [
+ "Форт-Уэртом",
+ "Форт-Уэрте"
+ ],
+ "identifier" : "fort worth"
+ },
+ {
+ "population" : "829,718",
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "Индианаполис",
+ "aliases" : [
+ "Индианаполисе",
+ "Индианаполисом"
+ ],
+ "identifier" : "indianapolis"
+ },
+ {
+ "population" : "816,824",
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Джос",
+ "aliases" : [
+ "Джосом",
+ "Джосе"
+ ],
+ "identifier" : "jos"
+ },
+ {
+ "population" : "814,208",
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "Валенсия",
+ "aliases" : [
+ "Валенсию",
+ "Валенсией",
+ "Валенсии"
+ ],
+ "identifier" : "valencia"
+ },
+ {
+ "population" : "814,192",
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Илорин",
+ "aliases" : [
+ "Илорином",
+ "Илорине"
+ ],
+ "identifier" : "ilorin"
+ },
+ {
+ "population" : "215,178",
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Ла-Пас",
+ "aliases" : [
+ "Ла-Пасе",
+ "Ла-Пасом"
+ ],
+ "identifier" : "la paz"
+ },
+ {
+ "population" : "812,129",
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "Оттава",
+ "aliases" : [
+ "Оттаву",
+ "Оттаве",
+ "Оттавой"
+ ],
+ "identifier" : "ottawa"
+ },
+ {
+ "population" : "802,639",
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "Фритаун",
+ "aliases" : [
+ "Фритауном",
+ " Фритауне"
+ ],
+ "identifier" : "freetown"
+ },
+ {
+ "population" : "801,000",
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "Иерусалим",
+ "aliases" : [
+ "Иерусалиме",
+ "Иерусалимом"
+ ],
+ "identifier" : "jerusalem"
+ },
+ {
+ "population" : "797,000",
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "Маскат",
+ "aliases" : [
+ "Маскате",
+ "Маскатом"
+ ],
+ "identifier" : "muscat"
+ },
+ {
+ "population" : "794,811",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Марсель",
+ "aliases" : [
+ "Марселем",
+ "Марселе"
+ ],
+ "identifier" : "marseille"
+ },
+ {
+ "population" : "787,878",
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Пасрагад",
+ "aliases" : [
+ "Пасрагадом",
+ "Пасрагаде"
+ ],
+ "identifier" : "pasragad branch"
+ },
+ {
+ "population" : "786,499",
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Бумердес",
+ "aliases" : [
+ "Бумердесом",
+ "Бумердасе"
+ ],
+ "identifier" : "boumerdas"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "Сан-Мигель-де-Тукуман",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "population" : "777,615",
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "Мерида",
+ "aliases" : [
+ "Мериду",
+ "Меридой",
+ "Мериде"
+ ],
+ "identifier" : "merida"
+ },
+ {
+ "population" : "774,235",
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "Ниамей",
+ "aliases" : [
+ "Ниамее",
+ "Ниамеем"
+ ],
+ "identifier" : "niamey"
+ },
+ {
+ "population" : "766,706",
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Кахриз",
+ "aliases" : [
+ "Каризе",
+ "Каризом"
+ ],
+ "identifier" : "kahriz"
+ },
+ {
+ "population" : "755,050",
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "Краков",
+ "aliases" : [
+ "Кракове",
+ "Краковом"
+ ],
+ "identifier" : "krakow"
+ },
+ {
+ "population" : "752,493",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "Дананг",
+ "aliases" : [
+ "Дананге",
+ "Данангом"
+ ],
+ "identifier" : "da nang"
+ },
+ {
+ "population" : "750,845",
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Питермарицбург",
+ "aliases" : [
+ "Питермарицбургом",
+ "Питермарицбурге"
+ ],
+ "identifier" : "pietermaritzburg"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "Ломе",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "Кигали",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "population" : "742,572",
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "Рига",
+ "aliases" : [
+ "Риге",
+ "Ригу",
+ "Ригой"
+ ],
+ "identifier" : "riga"
+ },
+ {
+ "population" : "741,636",
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Амстердам",
+ "aliases" : [
+ "Амстердамом",
+ "Амстердаме"
+ ],
+ "identifier" : "amsterdam"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Ойо",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "population" : "729,977",
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "Ноттингем",
+ "aliases" : [
+ "Ноттингемом",
+ "Ноттингеме"
+ ],
+ "identifier" : "nottingham"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "Кампу-Гранди",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "population" : "727,700",
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "Ашхабад",
+ "aliases" : [
+ "Ашхабаде",
+ "Ашхабадом"
+ ],
+ "identifier" : "ashgabat"
+ },
+ {
+ "population" : "721,081",
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "Нджамена",
+ "aliases" : [
+ "Нджамену",
+ "Нджаменой",
+ "Нджамене"
+ ],
+ "identifier" : "n'djamena"
+ },
+ {
+ "population" : "717,803",
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Львов",
+ "aliases" : [
+ " Львовом",
+ " Львове"
+ ],
+ "identifier" : "lviv"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "Эрмосильо",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "population" : "712,391",
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "Эдмонтон",
+ "aliases" : [
+ "Эдмонтоном",
+ "Эдмонтоне"
+ ],
+ "identifier" : "edmonton"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "Булавайо",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "population" : "698,966",
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "Загреб",
+ "aliases" : [
+ "Загребе",
+ "Загребом"
+ ],
+ "identifier" : "zagreb"
+ },
+ {
+ "population" : "698,310",
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Агадир",
+ "aliases" : [
+ "Агадире",
+ "Агадиром"
+ ],
+ "identifier" : "agadir"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "Сараево",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Энугу",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "population" : "688,356",
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Танжер",
+ "aliases" : [
+ "Танжере",
+ "Танжером"
+ ],
+ "identifier" : "tangier"
+ },
+ {
+ "population" : "685,368",
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "Шеффилж",
+ "aliases" : [
+ "Шеффилде",
+ "Шеффилд",
+ "Шеффилдом"
+ ],
+ "identifier" : "sheffield"
+ },
+ {
+ "population" : "684,451",
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Сиэтл",
+ "aliases" : [
+ "Cиэтле",
+ "Сиэтлом"
+ ],
+ "identifier" : "seattle"
+ },
+ {
+ "population" : "682,545",
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "Денвер",
+ "aliases" : [
+ "Денвере",
+ "Денвером"
+ ],
+ "identifier" : "denver"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "Эль-Пасо",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "Душанбе",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "population" : "677,116",
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "Детройт",
+ "aliases" : [
+ "Детройтом",
+ "Детройте"
+ ],
+ "identifier" : "detroit"
+ },
+ {
+ "population" : "675,773",
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Кульякан",
+ "aliases" : [
+ "Кульакане",
+ "Кулиакан",
+ "Кульяканом"
+ ],
+ "identifier" : "culiacan"
+ },
+ {
+ "population" : "675,422",
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "Матола",
+ "aliases" : [
+ "Матолу",
+ "Матоле",
+ "Матолой"
+ ],
+ "identifier" : "matola"
+ },
+ {
+ "population" : "667,137",
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "Бостон",
+ "aliases" : [
+ "Бостоне",
+ "Бостоном"
+ ],
+ "identifier" : "boston"
+ },
+ {
+ "population" : "664,046",
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "Афины",
+ "aliases" : [
+ "Афинах",
+ "Афинами"
+ ],
+ "identifier" : "athens"
+ },
+ {
+ "population" : "661,400",
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "Нуакшот",
+ "aliases" : [
+ "Нуакшоте",
+ "Нуакшотом"
+ ],
+ "identifier" : "nouakchott"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "Пуэнт-Нуар",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "population" : "655,770",
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "Мемфис",
+ "aliases" : [
+ "Мемфисом",
+ "Мемфисе"
+ ],
+ "identifier" : "memphis"
+ },
+ {
+ "population" : "650,000",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Франкфурт-на-Майне",
+ "aliases" : [
+ "Франкфуртом-на-Майне",
+ " Франкфурте-на-Майне"
+ ],
+ "identifier" : "frankfurt am main"
+ },
+ {
+ "population" : "649,851",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Краснодар",
+ "aliases" : [
+ "Краснодаре",
+ "Краснодаром"
+ ],
+ "identifier" : "krasnodar"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Палермо",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "Коломбо",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "Лилонгве",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "population" : "645,984",
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Оран",
+ "aliases" : [
+ "Ораном",
+ "Оране"
+ ],
+ "identifier" : "oran"
+ },
+ {
+ "population" : "635,994",
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "Кишинев",
+ "aliases" : [
+ "Кишиневе",
+ "Кишиневом"
+ ],
+ "identifier" : "chisinau"
+ },
+ {
+ "population" : "634,332",
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Тебесса",
+ "aliases" : [
+ "Тебессой",
+ "Тебессу",
+ "Тебессе"
+ ],
+ "identifier" : "tebessa"
+ },
+ {
+ "population" : "632,309",
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Портленд",
+ "aliases" : [
+ "Портлендом",
+ "Портленде"
+ ],
+ "identifier" : "portland"
+ },
+ {
+ "population" : "632,063",
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "Виннипег",
+ "aliases" : [
+ "Виннипегом",
+ "Виннипеге"
+ ],
+ "identifier" : "winnipeg"
+ },
+ {
+ "population" : "631,346",
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "Оклахома",
+ "aliases" : [
+ "Оклахому",
+ "Оклахоме",
+ "Оклахомой"
+ ],
+ "identifier" : "oklahoma city"
+ },
+ {
+ "population" : "628,306",
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "Канкун",
+ "aliases" : [
+ "Канкуном",
+ "Канкуне"
+ ],
+ "identifier" : "cancun"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "Джибути",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "population" : "621,849",
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "Балтимор",
+ "aliases" : [
+ "Балтимором",
+ "Балтиморе"
+ ],
+ "identifier" : "baltimore"
+ },
+ {
+ "population" : "621,100",
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Керманшах",
+ "aliases" : [
+ "Керманшахом",
+ "Керманшахе"
+ ],
+ "identifier" : "kermanshah"
+ },
+ {
+ "population" : "617,280",
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "Бристоль",
+ "aliases" : [
+ "Бристоле",
+ "Бристолем"
+ ],
+ "identifier" : "bristol"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Бенони",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "Абу-Даби",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "population" : "601,723",
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "Вашингтон",
+ "aliases" : [
+ "Вашингтоном",
+ "Вашингтоне"
+ ],
+ "identifier" : "washington"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "Милуоки",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "population" : "600,000",
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "Ванкувер",
+ "aliases" : [
+ "Ванкувером",
+ "Ванкувере"
+ ],
+ "identifier" : "vancouver"
+ },
+ {
+ "population" : "599,579",
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "Барнаул",
+ "aliases" : [
+ "Барнаулом",
+ "Барнауле"
+ ],
+ "identifier" : "barnaul"
+ },
+ {
+ "population" : "598,199",
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Роттердам",
+ "aliases" : [
+ "Роттердамом",
+ "Роттердаме"
+ ],
+ "identifier" : "rotterdam"
+ },
+ {
+ "population" : "594,590",
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Решт",
+ "aliases" : [
+ "Реште"
+ ],
+ "identifier" : "rasht"
+ },
+ {
+ "population" : "593,100",
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Абеокута",
+ "aliases" : [
+ "Абеокуту",
+ "Абеокуте",
+ "Абеокутой"
+ ],
+ "identifier" : "abeokuta"
+ },
+ {
+ "population" : "593,085",
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Эссен",
+ "aliases" : [
+ "Эссене",
+ "Эссеном"
+ ],
+ "identifier" : "essen"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "Глазго",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Голд-Кост",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "population" : "590,400",
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Абуджа",
+ "aliases" : [
+ "Абуджей",
+ "Абудже",
+ "Абуджу"
+ ],
+ "identifier" : "abuja"
+ },
+ {
+ "population" : "589,793",
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Штутгарт",
+ "aliases" : [
+ "Штутгартом",
+ "Штутгарте"
+ ],
+ "identifier" : "stuttgart"
+ },
+ {
+ "population" : "588,462",
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дортмунд",
+ "aliases" : [
+ "Дортмунде",
+ "Дортмундом"
+ ],
+ "identifier" : "dortmund"
+ },
+ {
+ "population" : "587,022",
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "Владивосток",
+ "aliases" : [
+ " Владивостоке",
+ "Владивостоком"
+ ],
+ "identifier" : "vladivostok"
+ },
+ {
+ "population" : "586,695",
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "Иркутск",
+ "aliases" : [
+ "Иркутске",
+ "Иркутском"
+ ],
+ "identifier" : "irkutsk"
+ },
+ {
+ "population" : "584,877",
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "Блантайр",
+ "aliases" : [
+ "Блантайре",
+ "Блантайром"
+ ],
+ "identifier" : "blantyre"
+ },
+ {
+ "population" : "580,223",
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Генуя",
+ "aliases" : [
+ "Генуей",
+ "Генуе",
+ "Геную"
+ ],
+ "identifier" : "genoa"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "Осло",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "population" : "578,156",
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "Либревиль",
+ "aliases" : [
+ "Либревилем",
+ "Либревиле"
+ ],
+ "identifier" : "libreville"
+ },
+ {
+ "population" : "577,514",
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Керман",
+ "aliases" : [
+ "Керманом",
+ "Кермане"
+ ],
+ "identifier" : "kerman"
+ },
+ {
+ "population" : "573,057",
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дюссельдорф",
+ "aliases" : [
+ "Дюссельдорфом",
+ "Дюссельдорфе"
+ ],
+ "identifier" : "duesseldorf"
+ },
+ {
+ "population" : "570,407",
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "Кучинг",
+ "aliases" : [
+ "Кучинге",
+ "Кучингом"
+ ],
+ "identifier" : "kuching"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "Альбукерке",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "Хельсинки",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "population" : "550,602",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "Аден",
+ "aliases" : [
+ "Адене",
+ "Аденом"
+ ],
+ "identifier" : "aden"
+ },
+ {
+ "population" : "550,204",
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Оренбург",
+ "aliases" : [
+ "Оренбургом",
+ "Оренбурге"
+ ],
+ "identifier" : "orenburg"
+ },
+ {
+ "population" : "550,000",
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "Приштина",
+ "aliases" : [
+ "Приштину",
+ "Приштиной",
+ "Приштине"
+ ],
+ "identifier" : "pristina"
+ },
+ {
+ "population" : "546,501",
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Бремен",
+ "aliases" : [
+ "Бременом",
+ "Бремене"
+ ],
+ "identifier" : "bremen"
+ },
+ {
+ "population" : "542,366",
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "Вильнюс",
+ "aliases" : [
+ "Вильнюсе",
+ "Вильнюсом"
+ ],
+ "identifier" : "vilnius"
+ },
+ {
+ "population" : "530,852",
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "Нэшвилл",
+ "aliases" : [
+ "Нэшвиллом",
+ "Нэшвилле"
+ ],
+ "identifier" : "nashville"
+ },
+ {
+ "population" : "528,595",
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "Квебек",
+ "aliases" : [
+ "Квебеком",
+ "Квебеке"
+ ],
+ "identifier" : "quebec"
+ },
+ {
+ "population" : "525,990",
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "Сан-Сальвадор",
+ "aliases" : [
+ "Сан-Сальвадоре",
+ "Сан-Сальвадором"
+ ],
+ "identifier" : "san salvador"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "Макао",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "population" : "519,119",
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Тюмень",
+ "aliases" : [
+ "Тюменью",
+ "Тюмени"
+ ],
+ "identifier" : "tyumen"
+ },
+ {
+ "population" : "517,802",
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "Лиссабон",
+ "aliases" : [
+ "Лиссабоне",
+ "Лиссабоном"
+ ],
+ "identifier" : "lisbon"
+ },
+ {
+ "population" : "515,140",
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Ганновер",
+ "aliases" : [
+ "Ганновере",
+ "Ганновером"
+ ],
+ "identifier" : "hannover"
+ },
+ {
+ "population" : "512,686",
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "Сальта",
+ "aliases" : [
+ "Сальту",
+ "Сальтой",
+ "Сальте"
+ ],
+ "identifier" : "salta"
+ },
+ {
+ "population" : "508,916",
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "Лестер",
+ "aliases" : [
+ "Лестере",
+ "Лестером"
+ ],
+ "identifier" : "leicester"
+ },
+ {
+ "population" : "504,971",
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Лейпциг",
+ "aliases" : [
+ "Лейпцигом",
+ "Лейпциге"
+ ],
+ "identifier" : "leipzig"
+ },
+ {
+ "population" : "504,358",
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дуйсбург",
+ "aliases" : [
+ "Дуйсбургом",
+ "Дуйсбурге"
+ ],
+ "identifier" : "duisburg"
+ },
+ {
+ "population" : "502,533",
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "Астрахань",
+ "aliases" : [
+ "Астраханью",
+ "Астрахани"
+ ],
+ "identifier" : "astrakhan"
+ },
+ {
+ "population" : "499,237",
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Нюрнберг",
+ "aliases" : [
+ "Нюрнберге",
+ "Нюрнбергом"
+ ],
+ "identifier" : "nuernberg"
+ },
+ {
+ "population" : "486,854",
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дрезден",
+ "aliases" : [
+ "Дрездене",
+ "Дрезденом"
+ ],
+ "identifier" : "dresden"
+ },
+ {
+ "population" : "485,519",
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "Томск",
+ "aliases" : [
+ "Томске",
+ "Томском"
+ ],
+ "identifier" : "tomsk"
+ },
+ {
+ "population" : "477,905",
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Йезд",
+ "aliases" : [
+ "Йезде",
+ "Йездом"
+ ],
+ "identifier" : "yazd"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "Канзас-Сити",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "population" : "474,889",
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "Скопье",
+ "aliases" : [
+ " Скопье"
+ ],
+ "identifier" : "skopje"
+ },
+ {
+ "population" : "474,292",
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Гаага",
+ "aliases" : [
+ "Гаагой",
+ "Гааге",
+ "Гаагу"
+ ],
+ "identifier" : "the hague"
+ },
+ {
+ "population" : "472,317",
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Лион",
+ "aliases" : [
+ "Лионом",
+ "Лионе"
+ ],
+ "identifier" : "lyon"
+ },
+ {
+ "population" : "464,990",
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "Эдинбург",
+ "aliases" : [
+ "Эдинбургом",
+ "Эдинбурге"
+ ],
+ "identifier" : "edinburgh"
+ },
+ {
+ "population" : "459,805",
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "Антверпен",
+ "aliases" : [
+ "Антверпене",
+ "Антверпеном"
+ ],
+ "identifier" : "antwerpen"
+ },
+ {
+ "population" : "455,173",
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "Понтианак",
+ "aliases" : [
+ "Понтианаком",
+ "Понтианаке"
+ ],
+ "identifier" : "pontianak"
+ },
+ {
+ "population" : "455,123",
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "Лидс",
+ "aliases" : [
+ "Лидсом",
+ "Лидсе"
+ ],
+ "identifier" : "leeds"
+ },
+ {
+ "population" : "447,287",
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "Кардифф",
+ "aliases" : [
+ "Кардиффе",
+ "Кардиффом"
+ ],
+ "identifier" : "cardiff"
+ },
+ {
+ "population" : "418,140",
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "Сан-Хуан",
+ "aliases" : [
+ "Сан-Хуане",
+ "Сан-Хуаном"
+ ],
+ "identifier" : "san juan"
+ },
+ {
+ "population" : "443,885",
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "Омаха",
+ "aliases" : [
+ "Омаху",
+ "Омахе",
+ "Омахой"
+ ],
+ "identifier" : "omaha"
+ },
+ {
+ "population" : "442,156",
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "Карфур",
+ "aliases" : [
+ "Карфуром",
+ "Карфуре"
+ ],
+ "identifier" : "carrefour"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "Майами",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "population" : "434,954",
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "Калининград",
+ "aliases" : [
+ "Калининградом",
+ "Калининграде"
+ ],
+ "identifier" : "kaliningrad"
+ },
+ {
+ "population" : "433,055",
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Тулуза",
+ "aliases" : [
+ "Тулузой",
+ "Тулузу",
+ "Тулузе"
+ ],
+ "identifier" : "toulouse"
+ },
+ {
+ "population" : "432,892",
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "Тель-Авив",
+ "aliases" : [
+ "Тель-Авивом",
+ "Тель-Авиве"
+ ],
+ "identifier" : "tel aviv"
+ },
+ {
+ "population" : "428,304",
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "Восточный Иерусалим",
+ "aliases" : [
+ "Восточном Иерусалиме",
+ "Восточным Иерусалимом"
+ ],
+ "identifier" : "east jerusalem"
+ },
+ {
+ "population" : "423,737",
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "Братислава",
+ "aliases" : [
+ "Братиславе",
+ "Братиславу",
+ "Братиславой"
+ ],
+ "identifier" : "bratislava"
+ },
+ {
+ "population" : "417,910",
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Окленд",
+ "aliases" : [
+ "Окленде",
+ "Оклендом"
+ ],
+ "identifier" : "auckland"
+ },
+ {
+ "population" : "416,263",
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "Севастополь",
+ "aliases" : [
+ "Севастополе",
+ "Севастополем"
+ ],
+ "identifier" : "sevastopol"
+ },
+ {
+ "population" : "410,939",
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "Миннеаполис",
+ "aliases" : [
+ "Миннеаполисе",
+ "Миннеаполисом"
+ ],
+ "identifier" : "minneapolis"
+ },
+ {
+ "population" : "410,000",
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "Газа",
+ "aliases" : [
+ "Газе",
+ "Газой",
+ "Газу"
+ ],
+ "identifier" : "gaza"
+ },
+ {
+ "population" : "409,431",
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Курск",
+ "aliases" : [
+ "Курске",
+ "Курском"
+ ],
+ "identifier" : "kursk"
+ },
+ {
+ "population" : "408,168",
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "Панама",
+ "aliases" : [
+ "Панаму",
+ "Панамой",
+ "Панаме"
+ ],
+ "identifier" : "panama"
+ },
+ {
+ "population" : "403,505",
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "Талса",
+ "aliases" : [
+ "Талсой",
+ "Талсу",
+ "Талсе"
+ ],
+ "identifier" : "tulsa"
+ },
+ {
+ "population" : "400,212",
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Тверь",
+ "aliases" : [
+ "Твери",
+ "Тверью"
+ ],
+ "identifier" : "tver"
+ },
+ {
+ "population" : "395,515",
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "Манчестер",
+ "aliases" : [
+ "Манчестере",
+ "Манчестером"
+ ],
+ "identifier" : "manchester"
+ },
+ {
+ "population" : "394,024",
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "Таллин",
+ "aliases" : [
+ "Таллинном",
+ "Таллине"
+ ],
+ "identifier" : "tallinn"
+ },
+ {
+ "population" : "391,190",
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "Кандагар",
+ "aliases" : [
+ "Кандагаром",
+ "Кандагаре"
+ ],
+ "identifier" : "kandahar"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "Уичито",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "population" : "389,617",
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "Новый Орлеан",
+ "aliases" : [
+ "Новым Орлеаном",
+ "Новом Орлеане"
+ ],
+ "identifier" : "new orleans"
+ },
+ {
+ "population" : "381,900",
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Веллингтон",
+ "aliases" : [
+ "Веллингтоне",
+ "Веллингтоном"
+ ],
+ "identifier" : "wellington"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "Лас-Пальмас-де-Гран-Канария",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "population" : "381,583",
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Масатлан",
+ "aliases" : [
+ "Масатлане",
+ "Мазатлан",
+ "Масатланом"
+ ],
+ "identifier" : "mazatlan"
+ },
+ {
+ "population" : "374,801",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "Тирана",
+ "aliases" : [
+ "Тирану",
+ "Тиране",
+ "Тираной"
+ ],
+ "identifier" : "tirana"
+ },
+ {
+ "population" : "374,643",
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "Каунас",
+ "aliases" : [
+ "Каунасе",
+ "Каунасом"
+ ],
+ "identifier" : "kaunas"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "Гонолулу",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "population" : "367,752",
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Канберра",
+ "aliases" : [
+ "Канберру",
+ "Канберре",
+ "Канберрой"
+ ],
+ "identifier" : "canberra"
+ },
+ {
+ "population" : "366,133",
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Болонья",
+ "aliases" : [
+ "Болонью",
+ "Болоньей",
+ "Болонье"
+ ],
+ "identifier" : "bologna"
+ },
+ {
+ "population" : "363,926",
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Крайстчерч",
+ "aliases" : [
+ "Крайстчерче",
+ "Крайстчерчем"
+ ],
+ "identifier" : "christchurch"
+ },
+ {
+ "population" : "359,111",
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "Галифакс",
+ "aliases" : [
+ "Галифаксом",
+ "Галифаксе"
+ ],
+ "identifier" : "halifax"
+ },
+ {
+ "population" : "355,596",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "Амбон",
+ "aliases" : [
+ "Амбоном",
+ "Амбоне"
+ ],
+ "identifier" : "ambon"
+ },
+ {
+ "population" : "349,296",
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Флоренция",
+ "aliases" : [
+ " Флоренции",
+ "Флоренцию",
+ "Флоренцией"
+ ],
+ "identifier" : "florence"
+ },
+ {
+ "population" : "344,939",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "Доха",
+ "aliases" : [
+ "Дохой",
+ "Дохе",
+ "Доху"
+ ],
+ "identifier" : "doha"
+ },
+ {
+ "population" : "341,730",
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Цюрих",
+ "aliases" : [
+ "Цюрихом",
+ "Цюрихе"
+ ],
+ "identifier" : "zurich"
+ },
+ {
+ "population" : "338,620",
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Ницца",
+ "aliases" : [
+ "Ниццу",
+ "Ницце",
+ "Ниццей"
+ ],
+ "identifier" : "nice"
+ },
+ {
+ "population" : "336,460",
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "Симферополь",
+ "aliases" : [
+ "Симферополе",
+ "Симферополем"
+ ],
+ "identifier" : "simferopol"
+ },
+ {
+ "population" : "332,863",
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Тепик",
+ "aliases" : [
+ "Тепиком",
+ "Тепике"
+ ],
+ "identifier" : "tepic"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Сочи",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "population" : "320,991",
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Смоленск",
+ "aliases" : [
+ "Смоленске",
+ " Смоленском"
+ ],
+ "identifier" : "smolensk"
+ },
+ {
+ "population" : "319,366",
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "Самарканд",
+ "aliases" : [
+ "Самарканде",
+ "Самаркандом"
+ ],
+ "identifier" : "samarkand"
+ },
+ {
+ "population" : "319,263",
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Мурманск",
+ "aliases" : [
+ "Мурманском",
+ "Мурманске"
+ ],
+ "identifier" : "murmansk"
+ },
+ {
+ "population" : "317,370",
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Владикавказ",
+ "aliases" : [
+ "Владикавказом",
+ " Владикавказе"
+ ],
+ "identifier" : "vladikavkaz"
+ },
+ {
+ "population" : "308,500",
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "Чита",
+ "aliases" : [
+ "Читой",
+ "Читу",
+ "Чите"
+ ],
+ "identifier" : "chita"
+ },
+ {
+ "population" : "308,308",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Ньюкасл",
+ "aliases" : [
+ "Ньюкаслом",
+ "Ньюкасле"
+ ],
+ "identifier" : "newcastle"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "Порто-Велью",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "Сан-Сальвадор-де-Жужуй",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "population" : "304,391",
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "Pittsburgh",
+ "aliases" : [
+ "Питтсбург",
+ "Питтсбурге",
+ "Питтсбургом"
+ ],
+ "identifier" : "pittsburgh"
+ },
+ {
+ "population" : "144,899",
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Брест",
+ "aliases" : [
+ "Брестом",
+ "Бресте"
+ ],
+ "identifier" : "brest"
+ },
+ {
+ "population" : "298,695",
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "Анкоридж",
+ "aliases" : [
+ "Анкориджем",
+ "Анкоридже"
+ ],
+ "identifier" : "anchorage"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "Цинциннати",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "population" : "292,190",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Вуллонгонг",
+ "aliases" : [
+ "Вуллонгонгом",
+ "Вуллонгонге"
+ ],
+ "identifier" : "wollongong"
+ },
+ {
+ "population" : "290,927",
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Катания",
+ "aliases" : [
+ "Катании",
+ "Катанию",
+ "Катанией"
+ ],
+ "identifier" : "catania"
+ },
+ {
+ "population" : "290,529",
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Утрехт",
+ "aliases" : [
+ "Утрехте",
+ "Утрехтом"
+ ],
+ "identifier" : "utrecht"
+ },
+ {
+ "population" : "289,625",
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "Виктория",
+ "aliases" : [
+ "Виктории",
+ "Викторию",
+ "Викторией"
+ ],
+ "identifier" : "victoria"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "Порт-Морсби",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Логан-Сити",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Бари",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Нант",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "population" : "274,845",
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Страсбург",
+ "aliases" : [
+ "Страсбурге",
+ " Страсбургом"
+ ],
+ "identifier" : "strasbourg"
+ },
+ {
+ "population" : "274,770",
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "Белфаст",
+ "aliases" : [
+ "Белфасте",
+ "Белфастом"
+ ],
+ "identifier" : "belfast"
+ },
+ {
+ "population" : "272,220",
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "Любляна",
+ "aliases" : [
+ "Любляне",
+ "Любляну",
+ "Любляной"
+ ],
+ "identifier" : "ljubljana"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "Орландо",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "population" : "265,025",
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Петрозаводск",
+ "aliases" : [
+ "Петрозаводске",
+ "Петрозаводском"
+ ],
+ "identifier" : "petrozavodsk"
+ },
+ {
+ "population" : "260,203",
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "Плимут",
+ "aliases" : [
+ "Плимуте",
+ "Плимутом"
+ ],
+ "identifier" : "plymouth"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "Риу-Бранку",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Лос-Мочис",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "Порту",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "population" : "248,951",
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "Мэдисон",
+ "aliases" : [
+ "Мэдисоне",
+ "Мэдисоном"
+ ],
+ "identifier" : "madison"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Монпелье",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "population" : "237,551",
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "Орхус",
+ "aliases" : [
+ "Орхусом",
+ "Орхусе"
+ ],
+ "identifier" : "arhus"
+ },
+ {
+ "population" : "235,600",
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "Якутск",
+ "aliases" : [
+ "Якутске",
+ "Якутском"
+ ],
+ "identifier" : "yakutsk"
+ },
+ {
+ "population" : "235,017",
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "Джорджтаун",
+ "aliases" : [
+ "Джорджтауном",
+ "Джорджтауне"
+ ],
+ "identifier" : "georgetown"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Бордо",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "population" : "231,493",
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "Гент",
+ "aliases" : [
+ "Генте",
+ "Гентом"
+ ],
+ "identifier" : "gent"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "Батон-Руж",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "population" : "228,328",
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Лилль",
+ "aliases" : [
+ "Лиллем",
+ "Лилле"
+ ],
+ "identifier" : "lille"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "Нассау",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "population" : "226,034",
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "Джилонг",
+ "aliases" : [
+ "Джилонгом",
+ "Джилонге"
+ ],
+ "identifier" : "geelong"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "Парамарибо",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "Санта-Крус-де-Тенерифе",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "population" : "222,326",
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Грац",
+ "aliases" : [
+ "Граце",
+ "Грацем"
+ ],
+ "identifier" : "graz"
+ },
+ {
+ "population" : "219,948",
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Мессина",
+ "aliases" : [
+ "Мессиной",
+ "Мессину",
+ "Мессине"
+ ],
+ "identifier" : "messina"
+ },
+ {
+ "population" : "219,103",
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Верона",
+ "aliases" : [
+ "Верону",
+ "Вероне",
+ "Вероной"
+ ],
+ "identifier" : "verona"
+ },
+ {
+ "population" : "216,656",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "Хобарт",
+ "aliases" : [
+ "Хобартом",
+ "Хобарте"
+ ],
+ "identifier" : "hobart"
+ },
+ {
+ "population" : "215,400",
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "Нови-Сад",
+ "aliases" : [
+ "Нови-Садом",
+ "Нови-Саде"
+ ],
+ "identifier" : "novi sad"
+ },
+ {
+ "population" : "213,585",
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "Берген",
+ "aliases" : [
+ "Бергене",
+ "Бергеном"
+ ],
+ "identifier" : "bergen"
+ },
+ {
+ "population" : "210,330",
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "Де-Мойн",
+ "aliases" : [
+ "Де-Мойне",
+ "Де-Мойном"
+ ],
+ "identifier" : "des moines"
+ },
+ {
+ "population" : "210,000",
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "Костанай",
+ "aliases" : [
+ "Костанае",
+ "Костанаем"
+ ],
+ "identifier" : "kostanay"
+ },
+ {
+ "population" : "204,846",
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Линц",
+ "aliases" : [
+ "Линцем",
+ "Линце"
+ ],
+ "identifier" : "linz"
+ },
+ {
+ "population" : "203,725",
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Падуя",
+ "aliases" : [
+ "Падуе",
+ "Падую"
+ ],
+ "identifier" : "padova"
+ },
+ {
+ "population" : "201,990",
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Псков",
+ "aliases" : [
+ "Псковом",
+ "Пскове"
+ ],
+ "identifier" : "pskov"
+ },
+ {
+ "population" : "200,952",
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "Чианмай",
+ "aliases" : [
+ "Чиангмаем",
+ "Чиангмае",
+ "Чиангмай"
+ ],
+ "identifier" : "chiang mai"
+ },
+ {
+ "population" : "200,452",
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "Никосия",
+ "aliases" : [
+ "Никосии",
+ "Никосией",
+ "Никосию"
+ ],
+ "identifier" : "nicosia"
+ },
+ {
+ "population" : "200,000",
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "Улальск",
+ "aliases" : [
+ "Уральск",
+ "Уральском",
+ "Уральске"
+ ],
+ "identifier" : "oral"
+ },
+ {
+ "population" : "200,000",
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "Ош",
+ "aliases" : [
+ "Ошем",
+ "Оше"
+ ],
+ "identifier" : "osh"
+ },
+ {
+ "population" : "198,958",
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "Саскатун",
+ "aliases" : [
+ "Саскатуном",
+ "Саскатуне"
+ ],
+ "identifier" : "saskatoon"
+ },
+ {
+ "population" : "197,992",
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "Литл-Рок",
+ "aliases" : [
+ "Литл-Роком",
+ "Литл-Роке"
+ ],
+ "identifier" : "little rock"
+ },
+ {
+ "population" : "196,731",
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "Вьентьян",
+ "aliases" : [
+ "Вьентьяном",
+ " Вьентьяне"
+ ],
+ "identifier" : "vientiane"
+ },
+ {
+ "population" : "196,670",
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "Абердин",
+ "aliases" : [
+ "Абердине",
+ "Абердином"
+ ],
+ "identifier" : "aberdeen"
+ },
+ {
+ "population" : "196,272",
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "Пальмас",
+ "aliases" : [
+ "Пальмасом",
+ "Пальмасе"
+ ],
+ "identifier" : "palmas"
+ },
+ {
+ "population" : "196,219",
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Таунсвилл",
+ "aliases" : [
+ "Таунсвиллом",
+ "Таунсвилле"
+ ],
+ "identifier" : "townsville"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "Солт-Лейк-Сити",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "population" : "190,384",
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "Корк",
+ "aliases" : [
+ "Корке",
+ "Корком"
+ ],
+ "identifier" : "cork"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "Таллахасси",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "population" : "189,047",
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "Сантарен",
+ "aliases" : [
+ "Сантареном",
+ "Сантарене"
+ ],
+ "identifier" : "santarem"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "Сан-Фернандо-дель-Валье-де-Катамарка",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "population" : "187,056",
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Триест",
+ "aliases" : [
+ "Триестом",
+ "Триесте"
+ ],
+ "identifier" : "trieste"
+ },
+ {
+ "population" : "183,982",
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "Сан-Луис",
+ "aliases" : [
+ "Сан-Луисом",
+ "Сан-Луисе"
+ ],
+ "identifier" : "san luis"
+ },
+ {
+ "population" : "183,981",
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Женева",
+ "aliases" : [
+ "Женевой",
+ "Женеве",
+ "Женеву"
+ ],
+ "identifier" : "geneva"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "Атырау",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "Кутаиси",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "population" : "176,484",
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "Южно-Сахалинск",
+ "aliases" : [
+ "Южно-Сахалинске",
+ "Южно-Сахалинском"
+ ],
+ "identifier" : "yuzhno-sakhalinsk"
+ },
+ {
+ "population" : "176,314",
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "Сплит",
+ "aliases" : [
+ "Сплитом",
+ "Сплите"
+ ],
+ "identifier" : "split"
+ },
+ {
+ "population" : "176,183",
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "Реджайна",
+ "aliases" : [
+ "Реджайне",
+ "Реджайной",
+ "Реджайну"
+ ],
+ "identifier" : "regina"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "Турку",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "population" : "171,380",
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "Оксфорд",
+ "aliases" : [
+ "Оксфорде",
+ "Оксфордом"
+ ],
+ "identifier" : "oxford"
+ },
+ {
+ "population" : "170,674",
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "Джексон",
+ "aliases" : [
+ "Джексоне",
+ "Джексоном"
+ ],
+ "identifier" : "jackson"
+ },
+ {
+ "population" : "166,810",
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "Спрингфилд",
+ "aliases" : [
+ "Спрингфилде",
+ " Спрингфилдом"
+ ],
+ "identifier" : "springfield"
+ },
+ {
+ "population" : "164,488",
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Базель",
+ "aliases" : [
+ "Базеле",
+ "Базелем"
+ ],
+ "identifier" : "basel"
+ },
+ {
+ "population" : "162,620",
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "Риоха",
+ "aliases" : [
+ "Риохе",
+ "Риоху",
+ "Риохой"
+ ],
+ "identifier" : "la rioja"
+ },
+ {
+ "population" : "160,470",
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "Хеврон",
+ "aliases" : [
+ "Хевроном",
+ "Хевроне"
+ ],
+ "identifier" : "hebron"
+ },
+ {
+ "population" : "158,886",
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Модена",
+ "aliases" : [
+ "Модене",
+ "Модену",
+ "Моденой"
+ ],
+ "identifier" : "modena"
+ },
+ {
+ "population" : "158,434",
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "Кембридж",
+ "aliases" : [
+ "Кембриджем",
+ "Кембридже"
+ ],
+ "identifier" : "cambridge"
+ },
+ {
+ "population" : "154,407",
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "Сан-Франциско",
+ "aliases" : [
+ "Фриско",
+ " Фриско"
+ ],
+ "identifier" : "frisco"
+ },
+ {
+ "population" : "153,784",
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "Пасадена",
+ "aliases" : [
+ "Пасадене",
+ "Пасаденой",
+ "Пасадену"
+ ],
+ "identifier" : "pasadena"
+ },
+ {
+ "population" : "153,717",
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "Йорк",
+ "aliases" : [
+ "Йорком",
+ "Йорке"
+ ],
+ "identifier" : "york"
+ },
+ {
+ "population" : "153,377",
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Зальцбург",
+ "aliases" : [
+ "Зальцбурге",
+ "Зальцбургом"
+ ],
+ "identifier" : "salzburg"
+ },
+ {
+ "population" : "153,075",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Кернс",
+ "aliases" : [
+ "Кернсом",
+ "Кэрнс",
+ "Кернсе"
+ ],
+ "identifier" : "cairns"
+ },
+ {
+ "population" : "152,641",
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Гамильтон",
+ "aliases" : [
+ "Гамильтоном",
+ "Гамильтоне"
+ ],
+ "identifier" : "hamilton"
+ },
+ {
+ "population" : "150,661",
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "Ла-Лагуна",
+ "aliases" : [
+ "Ла-Лагуной",
+ "Ла-Лагуне",
+ "Ла-Лагуну"
+ ],
+ "identifier" : "la laguna"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "Дили",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "population" : "149,782",
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Дижон",
+ "aliases" : [
+ "Дижоне",
+ "Дижоном"
+ ],
+ "identifier" : "dijon"
+ },
+ {
+ "population" : "149,245",
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "Упсала",
+ "aliases" : [
+ "Упсале",
+ "Упсалу",
+ "Упсалой"
+ ],
+ "identifier" : "uppsala"
+ },
+ {
+ "population" : "147,139",
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "Трондхейм",
+ "aliases" : [
+ "Тронхейм",
+ "Тронхеймом",
+ "Тронхейме"
+ ],
+ "identifier" : "trondheim"
+ },
+ {
+ "population" : "147,074",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "Манама",
+ "aliases" : [
+ "Манаме",
+ "Манаму",
+ "Манамой"
+ ],
+ "identifier" : "manama"
+ },
+ {
+ "population" : "146,299",
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Парма",
+ "aliases" : [
+ "Пармой",
+ "Парме",
+ "Парму"
+ ],
+ "identifier" : "parma"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "Бойсе",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "Оденсе",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "population" : "143,086",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Амьен",
+ "aliases" : [
+ "Амьеном",
+ "Амьене"
+ ],
+ "identifier" : "amiens"
+ },
+ {
+ "population" : "141,621",
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Тур",
+ "aliases" : [
+ "Туром",
+ "Туре"
+ ],
+ "identifier" : "tours"
+ },
+ {
+ "population" : "136,473",
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "Подгорица",
+ "aliases" : [
+ "Подгорице",
+ "Подгорицу",
+ "Подгорицей"
+ ],
+ "identifier" : "podgorica"
+ },
+ {
+ "population" : "132,493",
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Инсбрук",
+ "aliases" : [
+ "Инсбруке",
+ "Инсбруком"
+ ],
+ "identifier" : "innsbruck"
+ },
+ {
+ "population" : "131,258",
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Тувумба",
+ "aliases" : [
+ "Тувумбе",
+ "Тувумбу",
+ "Тувумбой"
+ ],
+ "identifier" : "toowoomba"
+ },
+ {
+ "population" : "129,062",
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "Дарвин",
+ "aliases" : [
+ "Дарвине",
+ "Дарвином"
+ ],
+ "identifier" : "darwin"
+ },
+ {
+ "population" : "121631",
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Берн",
+ "aliases" : [
+ "Берне",
+ "Берном"
+ ],
+ "identifier" : "bern"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..257145396
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
@@ -0,0 +1,220 @@
+{
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "10% от 100",
+ "10% из 100"
+ ],
+ "identifier": "percentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10% к 100"
+ ],
+ "identifier": "percentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30 это 20% от чего",
+ "30 это 20% от"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% от чего равно 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 это 20% отняли от"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% из чего равно 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 это 20% к чему",
+ "30 это 20% к"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% к чему равно 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10 как % от 20",
+ "10 сколько % от 20",
+ "10 сколько процентов от 20"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10 сколько % отняли от 20",
+ "10 сколько процентов отняли от 20"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20 сколько % сверх 10",
+ "20 сколько процентов сверх 10"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "остаток от 20 разделенного на 3"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "половина 20"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "меньшее из 2 и 30"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "большее из 2 и 30"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "среднее между 2 и 32"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "6 к 600 как что к 8",
+ "6 к 600 это как что к 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "6 к 600 как 8 к чему",
+ "6 к 600 это как 8 к чему"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "случайное число между 1 и 5",
+ "рандомное число между 1 и 5",
+ "число между 1 и 5"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit в __unit_expression"
+ ],
+ "identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit в __timespan"
+ ],
+ "identifier": "unitInTimespan"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__unit от __datestamp до __datestamp",
+ "__unit между __datestamp и __datestamp",
+ "__unit с __datestamp по __datestamp"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit до __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp до __datestamp",
+ "__datestamp по __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__timestamp до __timestamp",
+ "__timestamp по __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan назад",
+ "__timespan тому назад",
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit с __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "prototypeExpressions": [
+ "новая метка времени"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan после __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan до __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone время",
+ "время в __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "разница во времени между __timezone и __timezone",
+ "разница __timezone и __timezone"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/Localizable.strings
new file mode 100644
index 000000000..fd4fe226d
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..b2bb6478b
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..9a0e5c766
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
@@ -0,0 +1,152 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "цифра",
+ "цифры",
+ "цифр"
+ ],
+ "multiplierTypes": [
+ "кратность"
+ ],
+ "divisionOperators": [
+ "÷",
+ "за"
+ ],
+ "roundingConverters": [
+ "округленное"
+ ],
+ "tomorrowDateAliases": [
+ "завтра"
+ ],
+ "multiplicationOperators": [
+ "×"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "время круга"
+ ],
+ "numberTypes": [
+ "число"
+ ],
+ "roundingDownConverters": [
+ "округленное вниз"
+ ],
+ "yesterdayDateAliases": [
+ "вчера"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "todayDateAliases": [
+ "сегодня"
+ ],
+ "timestampTypes": [
+ "метка времени"
+ ],
+ "roundingUpConverters": [
+ "округленное вверх"
+ ],
+ "dateTypes": [
+ "дата"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "monthOfYearDateAliases": [
+ "янв",
+ "фев",
+ "мар",
+ "апр",
+ "май",
+ "июн",
+ "июл",
+ "авг",
+ "сен",
+ "окт",
+ "ноя",
+ "дек",
+ "январь",
+ "февраль",
+ "март",
+ "апрель",
+ "май",
+ "июнь",
+ "июль",
+ "август",
+ "сентябрь",
+ "октябрь",
+ "ноябрь",
+ "декабрь",
+ "января",
+ "февраля",
+ "марта",
+ "апреля",
+ "мая",
+ "июня",
+ "июля",
+ "августа",
+ "сентября",
+ "октября",
+ "ноября",
+ "декабря"
+ ],
+ "piAliases": [
+ "π",
+ "пи"
+ ],
+ "additionOperators": [
+ "плюс"
+ ],
+ "timespanTypes": [
+ "временной промежуток"
+ ],
+ "nowDateAliases": [
+ "сейчас"
+ ],
+ "converterSymbols": [
+ "в",
+ "как"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "fractionTypes": [
+ "дробь"
+ ],
+ "dayOfWeekDateAliases": [
+ "Воскресенье",
+ "Вс",
+ "Вск",
+ "Вт",
+ "Вторник",
+ "Втр",
+ "Пн",
+ "Пнд",
+ "Понедельник",
+ "Пт",
+ "Птн",
+ "Пятница",
+ "Сб",
+ "Сбт",
+ "Ср",
+ "Срд",
+ "Среда",
+ "Суббота",
+ "Четверг",
+ "Чт",
+ "Чтв"
+ ],
+ "percentTypes": [
+ "процент"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..549c5ac0f
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/UnitDescriptions.json
@@ -0,0 +1,1633 @@
+{
+ "energy": [
+ {
+ "aliases": [
+ "джоуль",
+ "джоулей",
+ "джоули",
+ "джоулях"
+ ],
+ "identifier": "joules",
+ "symbol": "Дж"
+ },
+ {
+ "aliases": [
+ "килоджоуль",
+ "килоджоулей",
+ "килоджоули",
+ "килоджоулях"
+ ],
+ "identifier": "kilojoules",
+ "symbol": "кДж"
+ },
+ {
+ "aliases": [
+ "мегаджоуль",
+ "мегаджоулей",
+ "мегаджоули",
+ "мегаджоулях"
+ ],
+ "identifier": "megajoules",
+ "symbol": "МДж"
+ },
+ {
+ "aliases": [
+ "гигаджоуль",
+ "гигаджоулей",
+ "гигаджоули",
+ "гигаджоулях"
+ ],
+ "identifier": "gigajoules",
+ "symbol": "ГДж"
+ },
+ {
+ "aliases": [
+ "калорий",
+ "калории",
+ "калориях",
+ "калория"
+ ],
+ "identifier": "calories",
+ "symbol": "кал"
+ },
+ {
+ "aliases": [
+ "калорий",
+ "калории",
+ "калориях",
+ "калория"
+ ],
+ "identifier": "kilocalories",
+ "symbol": "ккал"
+ },
+ {
+ "aliases": [
+ "ваттов в час",
+ "ватты в часы",
+ "ватта в час",
+ "ваттах в час",
+ "ватт в час",
+ "Вт·ч"
+ ],
+ "identifier": "wattHours",
+ "symbol": "Вт·ч"
+ },
+ {
+ "aliases": [
+ "ваттов в минуту",
+ "ватты в минуту",
+ "ватта в минуту",
+ "ваттах в минуту",
+ "ватт в минуту",
+ "Вт·мин"
+ ],
+ "identifier": "wattMinutes",
+ "symbol": "Вт·мин"
+ },
+ {
+ "aliases": [
+ "ваттов в секунду",
+ "ватты в секунду",
+ "ватта в секунду",
+ "ваттах в секунду",
+ "ватт в секунду",
+ "Вт·сек"
+ ],
+ "identifier": "wattSeconds",
+ "symbol": "Вт·сек"
+ },
+ {
+ "aliases": [
+ "киловатт-час",
+ "киловатт-часов",
+ "киловатт-часы",
+ "киловатт-часова"
+ ],
+ "identifier": "kilowattHours",
+ "symbol": "кВт⋅ч"
+ },
+ {
+ "aliases": [
+ "мегаватт-час",
+ "мегаватт-часов",
+ "мегаватт-часы",
+ "мегаватт-часова"
+ ],
+ "identifier": "megawattHours",
+ "symbol": "МВт·ч"
+ },
+ {
+ "aliases": [
+ "гигаватт-час",
+ "гигаватт-часов",
+ "гигаватт-часы",
+ "гигаватт-часова"
+ ],
+ "identifier": "gigawattHours",
+ "symbol": "ГВт·ч"
+ },
+ {
+ "aliases": [
+ "тераватт-час",
+ "тераватт-часов",
+ "тераватт-часы",
+ "тераватт-часова"
+ ],
+ "identifier": "terawattHours",
+ "symbol": "ТВт·ч"
+ }
+ ],
+ "speed": [
+ {
+ "aliases": [
+ "метр в секунду",
+ "метры в секунду",
+ "метра в секунду",
+ "метров в секунду",
+ "метрах в секунду"
+ ],
+ "identifier": "metersPerSecond",
+ "symbol": "м/с"
+ },
+ {
+ "aliases": [
+ "клиометр в час",
+ "километры в час",
+ "километра в час",
+ "километров в час",
+ "километрах в час"
+ ],
+ "identifier": "kilometersPerHour",
+ "symbol": "km/h"
+ },
+ {
+ "aliases": [
+ "милй в час",
+ "мили в час",
+ "милях в час",
+ "миля в час",
+ "миль в час"
+ ],
+ "identifier": "milesPerHour",
+ "symbol": "миля/ч"
+ },
+ {
+ "aliases": [
+ "узел",
+ "узлов",
+ "узлы",
+ "узла",
+ "узлах"
+ ],
+ "identifier": "knots",
+ "symbol": "уз"
+ }
+ ],
+ "volume": [
+ {
+ "aliases": [
+ "мегалитр",
+ "мегалитров",
+ "мегалитры",
+ "мегалитра",
+ "мегалитрах"
+ ],
+ "identifier": "megaliters",
+ "symbol": "Мл"
+ },
+ {
+ "aliases": [
+ "килолитр",
+ "килолитров",
+ "килолитры",
+ "килолитра",
+ "килолитрах"
+ ],
+ "identifier": "kiloliters",
+ "symbol": "кл"
+ },
+ {
+ "aliases": [
+ "литр",
+ "литров",
+ "литры",
+ "литра",
+ "литрах"
+ ],
+ "identifier": "liters",
+ "symbol": "л"
+ },
+ {
+ "aliases": [
+ "милилитр",
+ "милилитров",
+ "милилитры",
+ "милилитра",
+ "милилитрах"
+ ],
+ "identifier": "milliliters",
+ "symbol": "мл"
+ },
+ {
+ "aliases": [
+ "кубических километров",
+ "кубокилометры",
+ "кубокилометра",
+ "кубокилометрах",
+ "кубокилометров",
+ "кубические километры",
+ "кубических километра",
+ "кубических километрах"
+ ],
+ "identifier": "cubicKilometers",
+ "symbol": "км³"
+ },
+ {
+ "aliases": [
+ "кубических метров",
+ "кубометры",
+ "кубометра",
+ "кубометрах",
+ "кубометров",
+ "кубические метры",
+ "кубических метра",
+ "кубических метрах"
+ ],
+ "identifier": "cubicMeters",
+ "symbol": "м³"
+ },
+ {
+ "aliases": [
+ "кубических сантиметров",
+ "кубосантиметры",
+ "кубосантиметра",
+ "кубосантиметрах",
+ "кубосантиметров",
+ "кубические сантиметры",
+ "кубических сантиметра",
+ "кубических сантиметрах"
+ ],
+ "identifier": "cubicCentimeters",
+ "symbol": "см³"
+ },
+ {
+ "aliases": [
+ "кубических милиметров",
+ "кубомилиметры",
+ "кубомилиметра",
+ "кубомилиметрах",
+ "кубомилиметров",
+ "кубические милиметры",
+ "кубических милиметра",
+ "кубических милиметрах"
+ ],
+ "identifier": "cubicMillimeters",
+ "symbol": "мм³"
+ },
+ {
+ "aliases": [
+ "кубический дюйм",
+ "куб дюйм",
+ "кубических дюймов",
+ "кубические дюймы",
+ "куб дюймы",
+ "кубических дюйма",
+ "кубических дюймах"
+ ],
+ "identifier": "cubicInches",
+ "symbol": "in³"
+ },
+ {
+ "aliases": [
+ "кубический фут",
+ "кубических футов",
+ "кубические футы",
+ "кубических фута",
+ "кубических футах"
+ ],
+ "identifier": "cubicFeet",
+ "symbol": "ft³"
+ },
+ {
+ "aliases": [
+ "кубический ярд",
+ "кубических ярдов",
+ "кубические ярды",
+ "кубических ярда",
+ "кубических ярдах"
+ ],
+ "identifier": "cubicYards",
+ "symbol": "yd³"
+ },
+ {
+ "aliases": [
+ "кубических милй",
+ "кубические мили",
+ "кубических мили",
+ "кубических милях",
+ "кубическая миля",
+ "кубическая миль"
+ ],
+ "identifier": "cubicMiles",
+ "symbol": "mi³"
+ },
+ {
+ "aliases": [
+ "бушель",
+ "бушеля",
+ "бушелей",
+ "бушелях"
+ ],
+ "identifier": "bushels",
+ "symbol": "bsh"
+ },
+ {
+ "aliases": [
+ "метрический стакан",
+ "метрических стаканов",
+ "метрическых стаканах",
+ "метрическых стакана",
+ "метрическые стаканы"
+ ],
+ "identifier": "metricCups",
+ "symbol": "метрический стакан"
+ },
+ {
+ "aliases": [
+ "стакан",
+ "стаканы",
+ "стакана",
+ "стаканах",
+ "стаканов"
+ ],
+ "identifier": "cups",
+ "symbol": "cup"
+ },
+ {
+ "aliases": [
+ "акров-фут",
+ "акры-фут",
+ "акра-фут",
+ "акрах-фут"
+ ],
+ "identifier": "acreFeet",
+ "symbol": "af"
+ },
+ {
+ "aliases": [
+ "пинт",
+ "пинты",
+ "пинтах",
+ "пинта"
+ ],
+ "identifier": "pints",
+ "symbol": "pt"
+ },
+ {
+ "aliases": [
+ "кварта",
+ "кварты",
+ "кварт",
+ "квартах"
+ ],
+ "identifier": "quarts",
+ "symbol": "qt"
+ },
+ {
+ "aliases": [
+ "галлон",
+ "галлонов",
+ "галлонах",
+ "галлоны"
+ ],
+ "identifier": "gallons",
+ "symbol": "gal"
+ },
+ {
+ "aliases": [
+ "столовая ложка",
+ "столовых ложек",
+ "столовые ложки",
+ "столовых ложки",
+ "столовых ложках",
+ "ст. ложка"
+ ],
+ "identifier": "tablespoons",
+ "symbol": "ст. л."
+ },
+ {
+ "aliases": [
+ "чайная ложка",
+ "чайных ложек",
+ "чайные ложки",
+ "чайных ложки",
+ "чайных ложках",
+ "ч. ложка"
+ ],
+ "identifier": "teaspoons",
+ "symbol": "ч. л."
+ },
+ {
+ "aliases": [
+ "жидкая унция",
+ "жидких унций",
+ "жидкие унции",
+ "жидких унции",
+ "жидких унциях"
+ ],
+ "identifier": "fluidOunces",
+ "symbol": "fl oz"
+ }
+ ],
+ "dataStorage": [
+ {
+ "aliases": [
+ "байт",
+ "байты",
+ "байтах",
+ "байта"
+ ],
+ "identifier": "bytes",
+ "symbol": "Б"
+ },
+ {
+ "aliases": [
+ "бит",
+ "биты",
+ "битах",
+ "бита"
+ ],
+ "identifier": "bits",
+ "symbol": "бит"
+ },
+ {
+ "aliases": [
+ "йоттабайт",
+ "йоттабайты",
+ "йоттабайтах",
+ "йоттабайта"
+ ],
+ "identifier": "yottabytes",
+ "symbol": "ибайт"
+ },
+ {
+ "aliases": [
+ "зеттабайт",
+ "зеттабайтах",
+ "зеттабайты",
+ "зеттабайта"
+ ],
+ "identifier": "zettabytes",
+ "symbol": "збайт"
+ },
+ {
+ "aliases": [
+ "эксабайт",
+ "эксабайтах",
+ "эксабайты",
+ "эксабайта"
+ ],
+ "identifier": "exabytes",
+ "symbol": "эбайт"
+ },
+ {
+ "aliases": [
+ "петабайт",
+ "петабайты",
+ "петабайтах",
+ "петабайта"
+ ],
+ "identifier": "petabytes",
+ "symbol": "пбайт"
+ },
+ {
+ "aliases": [
+ "терабайт",
+ "терабайтах",
+ "терабайты",
+ "терабайта",
+ "Тб"
+ ],
+ "identifier": "terabytes",
+ "symbol": "тбайт"
+ },
+ {
+ "aliases": [
+ "гигабайт",
+ "гигабайты",
+ "гигабайтах",
+ "гигабайта",
+ "Гб"
+ ],
+ "identifier": "gigabytes",
+ "symbol": "гбайт"
+ },
+ {
+ "aliases": [
+ "мегабайт",
+ "мегабайты",
+ "мегабайтах",
+ "мегабайта",
+ "Мб"
+ ],
+ "identifier": "megabytes",
+ "symbol": "мбайт"
+ },
+ {
+ "aliases": [
+ "килобайт",
+ "килобайты",
+ "килобайтах",
+ "килобайта",
+ "Кб"
+ ],
+ "identifier": "kilobytes",
+ "symbol": "КБ"
+ },
+ {
+ "aliases": [
+ "йоттабит",
+ "йоттабиты",
+ "йоттабитах",
+ "йоттабита",
+ "Yбит"
+ ],
+ "identifier": "yottabits",
+ "symbol": "Йбит"
+ },
+ {
+ "aliases": [
+ "зеттабит",
+ "зеттабитах",
+ "зеттабиты",
+ "зеттабита",
+ "Zбит"
+ ],
+ "identifier": "zettabits",
+ "symbol": "Збит"
+ },
+ {
+ "aliases": [
+ "эксабит",
+ "эксабиты",
+ "эксабитах",
+ "эксабита",
+ "Eбит"
+ ],
+ "identifier": "exabits",
+ "symbol": "Эбит"
+ },
+ {
+ "aliases": [
+ "петабит",
+ "петабиты",
+ "петабитах",
+ "петабита",
+ "Pбит"
+ ],
+ "identifier": "petabits",
+ "symbol": "Пбит"
+ },
+ {
+ "aliases": [
+ "терабит",
+ "терабиты",
+ "терабитах",
+ "терабита",
+ "Tбит"
+ ],
+ "identifier": "terabits",
+ "symbol": "Тбит"
+ },
+ {
+ "aliases": [
+ "гигабит",
+ "гигабиты",
+ "гигабитах",
+ "гигабита",
+ "Gбит"
+ ],
+ "identifier": "gigabits",
+ "symbol": "Гбит"
+ },
+ {
+ "aliases": [
+ "мегабит",
+ "мегабиты",
+ "мегабитах",
+ "мегабита"
+ ],
+ "identifier": "megabits",
+ "symbol": "Мбит"
+ },
+ {
+ "aliases": [
+ "килобиты",
+ "килобитах",
+ "килобита"
+ ],
+ "identifier": "kilobits",
+ "symbol": "Kбит"
+ },
+ {
+ "aliases": [
+ "йобибайт",
+ "йобибайты",
+ "йобибайтах",
+ "йобибайта"
+ ],
+ "identifier": "yobibytes",
+ "symbol": "ЙиБ"
+ },
+ {
+ "aliases": [
+ "зебибайт",
+ "зебибайты",
+ "зебибайтах",
+ "зебибайта"
+ ],
+ "identifier": "zebibytes",
+ "symbol": "ЗиБ"
+ },
+ {
+ "aliases": [
+ "эксибайт",
+ "эксибайты",
+ "эксибайтах",
+ "эксибайта"
+ ],
+ "identifier": "exbibytes",
+ "symbol": "ЭиБ"
+ },
+ {
+ "aliases": [
+ "пебибайт",
+ "пебибайты",
+ "пебибайтах",
+ "пебибайта"
+ ],
+ "identifier": "pebibytes",
+ "symbol": "ПиБ"
+ },
+ {
+ "aliases": [
+ "тебибайт",
+ "тебибайты",
+ "тебибайтах",
+ "тебибайта"
+ ],
+ "identifier": "tebibytes",
+ "symbol": "ТиБ"
+ },
+ {
+ "aliases": [
+ "гибибайт",
+ "гибибайты",
+ "гибибайтах",
+ "гибибайта"
+ ],
+ "identifier": "gibibytes",
+ "symbol": "ГиБ"
+ },
+ {
+ "aliases": [
+ "мебибайт",
+ "мебибайты",
+ "мебибайтах",
+ "мебибайта"
+ ],
+ "identifier": "mebibytes",
+ "symbol": "МиБ"
+ },
+ {
+ "aliases": [
+ "кибибайт",
+ "кибибайты",
+ "кибибайтах",
+ "кибибайта"
+ ],
+ "identifier": "kibibytes",
+ "symbol": "КиБ"
+ },
+ {
+ "aliases": [
+ "йобибит",
+ "йобибиты",
+ "йобибитах",
+ "йобибита",
+ "Yiбит"
+ ],
+ "identifier": "yobibits",
+ "symbol": "Йиб"
+ },
+ {
+ "aliases": [
+ "зебибит",
+ "зебибиты",
+ "зебибитах",
+ "зебибита",
+ "Ziбит"
+ ],
+ "identifier": "zebibits",
+ "symbol": "Зиб"
+ },
+ {
+ "aliases": [
+ "эксибит",
+ "эксибиты",
+ "эксибитах",
+ "эксибита",
+ "Эибит"
+ ],
+ "identifier": "exbibits",
+ "symbol": "Эи"
+ },
+ {
+ "aliases": [
+ "пебибит",
+ "пебибиты",
+ "пебибитах",
+ "пебибита",
+ "Пибит"
+ ],
+ "identifier": "pebibits",
+ "symbol": "Пиб"
+ },
+ {
+ "aliases": [
+ "тебибит",
+ "тебибиты",
+ "тебибитах",
+ "тебибита",
+ "Тибит"
+ ],
+ "identifier": "tebibits",
+ "symbol": "Тиб"
+ },
+ {
+ "aliases": [
+ "гибибит",
+ "гибибиты",
+ "гибибитах",
+ "гибибита"
+ ],
+ "identifier": "gibibits",
+ "symbol": "Гиб"
+ },
+ {
+ "aliases": [
+ "мебибит",
+ "мебибиты",
+ "мебибитах",
+ "мебибита",
+ "Miбит"
+ ],
+ "identifier": "mebibits",
+ "symbol": "Миб"
+ },
+ {
+ "aliases": [
+ "кибибит",
+ "кибибиты",
+ "кибибитах",
+ "кибибита"
+ ],
+ "identifier": "kibibits",
+ "symbol": "Киб"
+ }
+ ],
+ "temperature": [
+ {
+ "aliases": [
+ "келвин"
+ ],
+ "identifier": "kelvin",
+ "symbol": "K"
+ },
+ {
+ "aliases": [
+ "градус цельсия",
+ "градусы цельсия",
+ "градусов цельсия",
+ "градусах цельсия",
+ "градуса цельсия",
+ "С"
+ ],
+ "identifier": "celsius",
+ "symbol": "°С"
+ },
+ {
+ "aliases": [
+ "градус фаренгейта",
+ "градусы фаренгейта",
+ "градусов фаренгейта",
+ "градусах фаренгейта",
+ "градуса фаренгейта",
+ "Ф"
+ ],
+ "identifier": "fahrenheit",
+ "symbol": "°Ф"
+ }
+ ],
+ "angle": [
+ {
+ "aliases": [
+ "градус",
+ "градусах",
+ "градуса",
+ "градусы",
+ "градусов"
+ ],
+ "identifier": "degrees",
+ "symbol": "°"
+ },
+ {
+ "aliases": [
+ "радиан",
+ "радианах",
+ "радианы",
+ "радиана",
+ "радианов"
+ ],
+ "identifier": "radians",
+ "symbol": "рад"
+ }
+ ],
+ "length": [
+ {
+ "aliases": [
+ "метров",
+ "метры",
+ "метра",
+ "метрах"
+ ],
+ "identifier": "meters",
+ "symbol": "м"
+ },
+ {
+ "aliases": [
+ "километров",
+ "километры",
+ "километра",
+ "километрах"
+ ],
+ "identifier": "kilometers",
+ "symbol": "км"
+ },
+ {
+ "aliases": [
+ "метров",
+ "метры",
+ "метра",
+ "метрах"
+ ],
+ "identifier": "centimeters",
+ "symbol": "см"
+ },
+ {
+ "aliases": [
+ "миллметров",
+ "миллметры",
+ "миллметра",
+ "миллметрах"
+ ],
+ "identifier": "millimeters",
+ "symbol": "мм"
+ },
+ {
+ "aliases": [
+ "микрометров",
+ "микрометры",
+ "микрометра",
+ "микрометрах"
+ ],
+ "identifier": "micrometers",
+ "symbol": "мкм"
+ },
+ {
+ "aliases": [
+ "нанометров",
+ "нанометры",
+ "нанометра",
+ "нанометрах"
+ ],
+ "identifier": "nanometers",
+ "symbol": "нм"
+ },
+ {
+ "aliases": [
+ "дюймов",
+ "дюймы",
+ "дюйма",
+ "дюймах"
+ ],
+ "identifier": "inches",
+ "symbol": "дюйм"
+ },
+ {
+ "aliases": [
+ "фут",
+ "футов",
+ "футы",
+ "фута",
+ "футах"
+ ],
+ "identifier": "feet",
+ "symbol": "ft"
+ },
+ {
+ "aliases": [
+ "ярд",
+ "ярдов",
+ "ярды",
+ "ярда",
+ "ярдах"
+ ],
+ "identifier": "yards",
+ "symbol": "yd"
+ },
+ {
+ "aliases": [
+ "миля",
+ "миль",
+ "мили",
+ "милях"
+ ],
+ "identifier": "miles",
+ "symbol": "mi"
+ },
+ {
+ "aliases": [
+ "световой год",
+ "световые года",
+ "световых лет"
+ ],
+ "identifier": "lightyears",
+ "symbol": "св. год"
+ },
+ {
+ "aliases": [
+ "парсек",
+ "парсеков",
+ "парсеки",
+ "парсека",
+ "парсеках"
+ ],
+ "identifier": "parsecs",
+ "symbol": "пк"
+ },
+ {
+ "aliases": [
+ "морская миля",
+ "морских милй",
+ "морских миль",
+ "морские мили",
+ "морских мили",
+ "морских милях"
+ ],
+ "identifier": "nauticalMiles",
+ "symbol": "NM"
+ },
+ {
+ "aliases": [
+ "морских саженей",
+ "морские сажени",
+ "морских саженях",
+ "морская сажень"
+ ],
+ "identifier": "fathoms",
+ "symbol": "ftm"
+ },
+ {
+ "aliases": [
+ "фурлонг",
+ "фурлонгы",
+ "фурлонгах",
+ "фурлонга",
+ "фурлонгов"
+ ],
+ "identifier": "furlongs",
+ "symbol": "fur"
+ },
+ {
+ "aliases": [
+ "пиксель",
+ "пиксел",
+ "пикселов",
+ "пикселы",
+ "пиксела",
+ "пикселей",
+ "пикселя",
+ "пикс"
+ ],
+ "symbol": "px",
+ "identifier": "pixel"
+ },
+ {
+ "aliases": [
+
+ ],
+ "identifier": "em",
+ "symbol": "em"
+ },
+ {
+ "aliases": [
+
+ ],
+ "identifier": "point",
+ "symbol": "pt"
+ }
+ ],
+ "area": [
+ {
+ "aliases": [
+ "квадратных километров",
+ "квадратные километры",
+ "квадратных километра",
+ "квадратных километрах",
+ "километры в квадрате",
+ "километра в квадрате",
+ "километрах в квадрате",
+ "километрах в квадрате",
+ "квадратный километр",
+ "километр в квадрате",
+ "км в квадрате"
+ ],
+ "identifier": "squareKilometers",
+ "symbol": "км²"
+ },
+ {
+ "aliases": [
+ "квадратных метров",
+ "квадратные метры",
+ "квадратных метра",
+ "квадратных метрах",
+ "метры в квадрате",
+ "метрах в квадрате",
+ "метра в квадрате",
+ "метров в квадрате",
+ "квадратный метр",
+ "метр в квадрате"
+ ],
+ "identifier": "squareMeters",
+ "symbol": "м²"
+ },
+ {
+ "aliases": [
+ "квадратных сантиметров",
+ "квадратные сантиметры",
+ "квадратных сантиметра",
+ "квадратных сантиметрах",
+ "квадратный сантиметр",
+ "см в квадрате"
+ ],
+ "identifier": "squareCentimeters",
+ "symbol": "см²"
+ },
+ {
+ "aliases": [
+ "квадратных миллиметров",
+ "квадратные миллиметры",
+ "квадратных миллиметры",
+ "квадратных миллиметрах",
+ "квадратный миллиметр",
+ "мм в квадрате"
+ ],
+ "symbol": "мм²",
+ "identifier": "squareMillimeters"
+ },
+ {
+ "aliases": [
+ "квадратных микрометров",
+ "квадратные микрометры",
+ "квадратных микрометры",
+ "квадратных микрометрах",
+ "квадратный микрометр",
+ "мм в квадрате"
+ ],
+ "identifier": "squareMicrometers",
+ "symbol": "мкм²"
+ },
+ {
+ "aliases": [
+ "квадратных дюймов",
+ "квадратные дюймы",
+ "квадратных дюйма",
+ "квадратных дюймах",
+ "кв дюйм",
+ "кв дюймы",
+ "кв дюйма",
+ "кв дюймов",
+ "кв дюймах",
+ "квадратный дюйм"
+ ],
+ "identifier": "squareInches",
+ "symbol": "in²"
+ },
+ {
+ "aliases": [
+ "квадратных футов",
+ "квадратные футе",
+ "квадратные футы",
+ "квадратных фута",
+ "квадратных футах",
+ "футы в квадрате",
+ "фута в квадрате",
+ "футов в квадрате",
+ "футах в квадрате",
+ "квадратный фут",
+ "фут в квадрате"
+ ],
+ "identifier": "squareFeet",
+ "symbol": "ft²"
+ },
+ {
+ "aliases": [
+ "квадратных ярдов",
+ "квадратные ярды",
+ "квадратных ярда",
+ "квадратных ярдах",
+ "ярды в квадрате",
+ "ярда в квадрате",
+ "ярдов в квадрате",
+ "ярдах в квадрате",
+ "квадратный ярд",
+ "ярд в квадрате"
+ ],
+ "identifier": "squareYards",
+ "symbol": "yd²"
+ },
+ {
+ "aliases": [
+ "квадратная миля",
+ "квадратных милй",
+ "квадратные мили",
+ "квадратных миль",
+ "квадратных милях"
+ ],
+ "identifier": "squareMiles",
+ "symbol": "mi²"
+ },
+ {
+ "aliases": [
+ "акров",
+ "акры",
+ "акра",
+ "акрах",
+ "акр"
+ ],
+ "identifier": "acres",
+ "symbol": "ac"
+ },
+ {
+ "aliases": [
+ "гектаров",
+ "гектары",
+ "гектара",
+ "гектарах",
+ "гектар"
+ ],
+ "identifier": "hectares",
+ "symbol": "га"
+ },
+ {
+ "aliases": [
+ "сотка",
+ "сотки",
+ "ара",
+ "аров",
+ "ары"
+ ],
+ "identifier": "ares",
+ "symbol": "ар"
+ }
+ ],
+ "fuelEfficiency": [
+ {
+ "aliases": [
+ "l/100 km",
+ "l/100km",
+ "l / 100km",
+ "liters / 100km",
+ "litres / 100km",
+ "l / 100 km",
+ "liters / 100 km",
+ "litres / 100 km"
+ ],
+ "identifier": "litersPer100Kilometers",
+ "symbol": "L/100km"
+ },
+ {
+ "aliases": [
+ "miles per gallon"
+ ],
+ "identifier": "milesPerGallon",
+ "symbol": "mpg"
+ }
+ ],
+ "power": [
+ {
+ "aliases": [
+ "ватт",
+ "ваттов",
+ "ватты",
+ "ватта",
+ "ваттах"
+ ],
+ "identifier": "watts",
+ "symbol": "Вт"
+ },
+ {
+ "aliases": [
+ "миливатт",
+ "миливаттов",
+ "миливатты",
+ "миливатта",
+ "миливаттах"
+ ],
+ "identifier": "milliwatts",
+ "symbol": "мВт"
+ },
+ {
+ "aliases": [
+ "киловатт",
+ "киловаттов",
+ "киловатты",
+ "киловатта",
+ "киловаттах"
+ ],
+ "symbol": "кВт",
+ "identifier": "kilowatts"
+ },
+ {
+ "aliases": [
+ "мегаватт",
+ "мегаваттов",
+ "мегаватты",
+ "мегаватта",
+ "мегаваттах"
+ ],
+ "identifier": "megawatts",
+ "symbol": "МВт"
+ },
+ {
+ "aliases": [
+ "гигаватт",
+ "гигаваттов",
+ "гигаватты",
+ "гигаватта",
+ "гигаваттах"
+ ],
+ "identifier": "gigawatts",
+ "symbol": "ГВт"
+ },
+ {
+ "aliases": [
+ "тераватт",
+ "гигаваттов",
+ "гигаватты",
+ "гигаватта",
+ "гигаваттах"
+ ],
+ "identifier": "terawatts",
+ "symbol": "ТВт"
+ },
+ {
+ "aliases": [
+ "лошадиная сила",
+ "лошадиных сил",
+ "лошадиные силы",
+ "лошадиных силы",
+ "лошадиных силах"
+ ],
+ "identifier": "horsepower",
+ "symbol": "л. с."
+ }
+ ],
+ "mass": [
+ {
+ "aliases": [
+ "килограмм",
+ "килограммов",
+ "килограммы",
+ "килограмма",
+ "килограммах"
+ ],
+ "identifier": "kilograms",
+ "symbol": "кг"
+ },
+ {
+ "aliases": [
+ "грамм",
+ "граммов",
+ "граммы",
+ "грамма",
+ "граммах"
+ ],
+ "identifier": "grams",
+ "symbol": "г"
+ },
+ {
+ "aliases": [
+ "миллиграмм",
+ "миллиграммов",
+ "миллиграммы",
+ "миллиграмма",
+ "миллиграммах"
+ ],
+ "symbol": "мг",
+ "identifier": "milligrams"
+ },
+ {
+ "aliases": [
+ "нанограмм",
+ "нанограммов",
+ "нанограммы",
+ "нанограмма",
+ "нанограммах"
+ ],
+ "identifier": "nanograms",
+ "symbol": "нг"
+ },
+ {
+ "aliases": [
+ "унция",
+ "унций",
+ "унции",
+ "унциях"
+ ],
+ "identifier": "ounces",
+ "symbol": "oz"
+ },
+ {
+ "aliases": [
+ "фунт",
+ "фунтов",
+ "фунты",
+ "фунта",
+ "фунтах"
+ ],
+ "identifier": "pounds",
+ "symbol": "lb"
+ },
+ {
+ "aliases": [
+ "стоун",
+ "стоунов",
+ "стоуны",
+ "стона",
+ "стоунах"
+ ],
+ "identifier": "stones",
+ "symbol": "st"
+ },
+ {
+ "aliases": [
+ "тонна",
+ "метрическая тонна",
+ "тонн",
+ "тонны",
+ "метрические тонны",
+ "тоннах",
+ "метрических тонны",
+ "метрических тонн",
+ "метрических тоннах"
+ ],
+ "identifier": "metricTons",
+ "symbol": "т"
+ },
+ {
+ "aliases": [
+ "карат",
+ "каратов",
+ "караты",
+ "каратах",
+ "карата"
+ ],
+ "identifier": "carats",
+ "symbol": "кар"
+ },
+ {
+ "aliases": [
+ "тройская унция",
+ "тройскые унции",
+ "тройскых унцией"
+ ],
+ "identifier": "ouncesTroy",
+ "symbol": "oz t"
+ }
+ ],
+ "duration": [
+ {
+ "aliases": [
+ "час",
+ "часов",
+ "часах",
+ "часа"
+ ],
+ "identifier": "hours",
+ "symbol": "часы"
+ },
+ {
+ "aliases": [
+ "секунд",
+ "секунды",
+ "секундах",
+ "секунда"
+ ],
+ "identifier": "seconds",
+ "symbol": "сек"
+ },
+ {
+ "aliases": [
+ "минута",
+ "минуты",
+ "минутах",
+ "минут"
+ ],
+ "identifier": "minutes",
+ "symbol": "мин"
+ },
+ {
+ "aliases": [
+ "дни",
+ "день",
+ "дней",
+ "дня",
+ "днях"
+ ],
+ "identifier": "days",
+ "symbol": "дни"
+ },
+ {
+ "aliases": [
+ "рабочий день",
+ "рабочих дней",
+ "рабочих днях",
+ "рабочие дни",
+ "рабочих дня"
+ ],
+ "identifier": "weekdays",
+ "symbol": "workday"
+ },
+ {
+ "aliases": [
+ "неделя",
+ "недель",
+ "неделей",
+ "неделях",
+ "неделю"
+ ],
+ "identifier": "weeks",
+ "symbol": "недели"
+ },
+ {
+ "aliases": [
+ "месяц",
+ "месяца",
+ "месяцах",
+ "месяцев"
+ ],
+ "identifier": "months",
+ "symbol": "месяцы"
+ },
+ {
+ "aliases": [
+ "года",
+ "лет",
+ "год"
+ ],
+ "identifier": "years",
+ "symbol": "годы"
+ },
+ {
+ "aliases": [
+ "миллисекунда",
+ "миллисекунд",
+ "миллисекундах",
+ "миллисекунды"
+ ],
+ "identifier": "milliseconds",
+ "symbol": "мс"
+ },
+ {
+ "aliases": [
+ "микросекунда",
+ "микросекундах",
+ "микросекунды",
+ "микросекунд"
+ ],
+ "identifier": "microseconds",
+ "symbol": "мкс"
+ },
+ {
+ "aliases": [
+ "наносекунда",
+ "наносекундах",
+ "наносекунды"
+ ],
+ "identifier": "nanoseconds",
+ "symbol": "нс"
+ }
+ ],
+ "currency": [
+ {
+ "aliases": [
+ "usd"
+ ],
+ "identifier": "usd",
+ "symbol": "USD"
+ }
+ ],
+ "frequency": [
+ {
+ "aliases": [
+ "герцов",
+ "герц",
+ "герцы",
+ "герца",
+ "герцах"
+ ],
+ "identifier": "hertz",
+ "symbol": "Гц"
+ },
+ {
+ "aliases": [
+ "килогерцов",
+ "килогерц",
+ "килогерцы",
+ "килогерцах",
+ "килогерца",
+ "килогерцах"
+ ],
+ "identifier": "kilohertz",
+ "symbol": "кГц"
+ },
+ {
+ "aliases": [
+ "мегагерцов",
+ "мегагерц",
+ "мегагерцы",
+ "мегагерца",
+ "мегагерцах"
+ ],
+ "identifier": "megahertz",
+ "symbol": "МГц"
+ },
+ {
+ "aliases": [
+ "гигагерцов",
+ "гигагерц",
+ "гигагерцы",
+ "гигагерца",
+ "гигагерцах"
+ ],
+ "identifier": "gigahertz",
+ "symbol": "ГГц"
+ },
+ {
+ "aliases": [
+ "терагерцов",
+ "терагерц",
+ "терагерцы",
+ "терагерца",
+ "тергерцах"
+ ],
+ "identifier": "terahertz",
+ "symbol": "ТГц"
+ },
+ {
+ "aliases": [
+ "миллигерцов",
+ "миллигерц",
+ "миллигерцы",
+ "миллигерца",
+ "миллигерцах"
+ ],
+ "identifier": "millihertz",
+ "symbol": "мГц"
+ },
+ {
+ "aliases": [
+ "микогерцов",
+ "микогерц",
+ "микогерцы",
+ "микогерца",
+ "микогерцах"
+ ],
+ "identifier": "microhertz",
+ "symbol": "мкГц"
+ },
+ {
+ "aliases": [
+ "наногерцов",
+ "наногерц",
+ "наногерцы",
+ "наногерца",
+ "наногерцах"
+ ],
+ "identifier": "nanohertz",
+ "symbol": "нГц"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Cities.json
new file mode 100644
index 000000000..6d77c16f1
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Cities.json
@@ -0,0 +1,3566 @@
+[
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "上海",
+ "identifier" : "shanghai",
+ "population" : "22,315,474"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊斯坦堡",
+ "identifier" : "istanbul",
+ "population" : "14,804,116"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "布宜诺斯艾利斯",
+ "identifier" : "buenos aires",
+ "population" : "13,076,300"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "孟买",
+ "identifier" : "mumbai",
+ "population" : "12,691,836"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "墨西哥城",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "北京",
+ "identifier" : "beijing",
+ "population" : "11,716,620"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "卡拉奇",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "天津",
+ "identifier" : "tianjin",
+ "population" : "11,090,314"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "广州",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "新德里",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "莫斯科",
+ "identifier" : "moscow",
+ "population" : "10,381,222"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "深圳",
+ "identifier" : "shenzhen",
+ "population" : "10,358,381"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "达卡",
+ "identifier" : "dhaka",
+ "population" : "10,356,500"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "汉城",
+ "identifier" : "seoul",
+ "population" : "10,349,312"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "圣保罗",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "武汉市",
+ "identifier" : "wuhan",
+ "population" : "9,785,388"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "拉各斯",
+ "identifier" : "lagos",
+ "population" : "9,000,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "雅加达",
+ "identifier" : "jakarta",
+ "population" : "8,540,121"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "东京",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "纽约",
+ "identifier" : "new york",
+ "population" : "8,175,133"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "东莞市",
+ "identifier" : "dongguan",
+ "population" : "8,000,000"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "台北",
+ "identifier" : "taipei",
+ "population" : "7,871,900"
+ },
+ {
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "金夏沙",
+ "identifier" : "kinshasa",
+ "population" : "7,785,965"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "开罗",
+ "identifier" : "cairo",
+ "population" : "7,734,614"
+ },
+ {
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "波哥大",
+ "identifier" : "bogota",
+ "population" : "7,674,366"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "伦敦",
+ "identifier" : "london",
+ "population" : "7,556,900"
+ },
+ {
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "重庆市",
+ "identifier" : "chongqing",
+ "population" : "7,457,600"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "成都市",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "巴格达",
+ "identifier" : "baghdad",
+ "population" : "7,216,000"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南京",
+ "identifier" : "nanjing",
+ "population" : "7,165,292"
+ },
+ {
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "德黑兰",
+ "identifier" : "tehran",
+ "population" : "7,153,309"
+ },
+ {
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南充",
+ "identifier" : "nanchong",
+ "population" : "7,150,000"
+ },
+ {
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "香港",
+ "identifier" : "hong kong",
+ "population" : "7,012,738"
+ },
+ {
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "西安",
+ "identifier" : "xi'an",
+ "population" : "6,501,190"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "里约热内卢",
+ "identifier" : "rio de janeiro",
+ "population" : "6,023,699"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "曼谷",
+ "identifier" : "bangkok",
+ "population" : "5,104,476"
+ },
+ {
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "班加罗尔",
+ "identifier" : "bengaluru",
+ "population" : "5,104,047"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "圣彼得堡",
+ "identifier" : "saint petersburg",
+ "population" : "5,028,000"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "圣地亚哥",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "加尔各答",
+ "identifier" : "kolkata",
+ "population" : "4,631,392"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "悉尼",
+ "identifier" : "sydney",
+ "population" : "4,627,345"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "仰光",
+ "identifier" : "yangon",
+ "population" : "4,477,638"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "钦奈",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "墨尔本",
+ "identifier" : "melbourne",
+ "population" : "4,246,375"
+ },
+ {
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "利雅得",
+ "identifier" : "riyadh",
+ "population" : "4,205,961"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "洛杉矶",
+ "identifier" : "los angeles",
+ "population" : "3,971,883"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "吉大港市",
+ "identifier" : "chittagong",
+ "population" : "3,920,222"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "亚历山德里亚",
+ "identifier" : "alexandria",
+ "population" : "3,811,516"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "艾哈迈达巴德",
+ "identifier" : "ahmedabad",
+ "population" : "3,719,710"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "釜山",
+ "identifier" : "busan",
+ "population" : "3,678,555"
+ },
+ {
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿比让",
+ "identifier" : "abidjan",
+ "population" : "3,677,115"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "鹿野",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "海得拉巴",
+ "identifier" : "hyderabad",
+ "population" : "3,597,816"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "横滨",
+ "identifier" : "yokohama",
+ "population" : "3,574,443"
+ },
+ {
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊巴丹岛",
+ "identifier" : "ibadan",
+ "population" : "3,565,108"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "新加坡",
+ "identifier" : "singapore",
+ "population" : "3,547,809"
+ },
+ {
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "安卡拉",
+ "identifier" : "ankara",
+ "population" : "3,517,182"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "胡志明市",
+ "identifier" : "ho chi minh city",
+ "population" : "3,467,331"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "开普敦",
+ "identifier" : "cape town",
+ "population" : "3,433,441"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "柏林",
+ "identifier" : "berlin",
+ "population" : "3,426,354"
+ },
+ {
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "马德里",
+ "identifier" : "madrid",
+ "population" : "3,255,944"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "平壤",
+ "identifier" : "pyongyang",
+ "population" : "3,222,000"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "卡萨布兰卡",
+ "identifier" : "casablanca",
+ "population" : "3,144,909"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "中山",
+ "identifier" : "zhongshan",
+ "population" : "3,121,275"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "德班",
+ "identifier" : "durban",
+ "population" : "3,120,282"
+ },
+ {
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "喀布尔",
+ "identifier" : "kabul",
+ "population" : "3,043,532"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "乌鲁木齐",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "加拉加斯",
+ "identifier" : "caracas",
+ "population" : "3,000,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "迪拜",
+ "identifier" : "dubai",
+ "population" : "2,956,587"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "吉达",
+ "identifier" : "jeddah",
+ "population" : "2,867,446"
+ },
+ {
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "基辅",
+ "identifier" : "kyiv",
+ "population" : "2,797,553"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "罗安达",
+ "identifier" : "luanda",
+ "population" : "2,776,168"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "奎松市",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "亚的斯亚贝巴(埃塞俄比亚首都",
+ "identifier" : "addis ababa",
+ "population" : "2,757,729"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "内罗毕",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "芝加哥",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "萨尔瓦多",
+ "identifier" : "salvador",
+ "population" : "2,711,840"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "达累斯萨拉姆",
+ "identifier" : "dar es salaam",
+ "population" : "2,698,652"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "多伦多",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "大阪",
+ "identifier" : "osaka",
+ "population" : "2,592,413"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "摩加迪沙",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊兹密尔",
+ "identifier" : "izmir",
+ "population" : "2,500,603"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "达喀尔",
+ "identifier" : "dakar",
+ "population" : "2,476,400"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "吉萨",
+ "identifier" : "giza",
+ "population" : "2,443,203"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "福塔雷萨",
+ "identifier" : "fortaleza",
+ "population" : "2,400,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "泗水",
+ "identifier" : "surabaya",
+ "population" : "2,374,658"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "贝洛奥里藏特",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "罗马",
+ "identifier" : "rome",
+ "population" : "2,318,895"
+ },
+ {
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "马什哈德",
+ "identifier" : "mashhad",
+ "population" : "2,307,177"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "布鲁克林区",
+ "identifier" : "brooklyn",
+ "population" : "2,300,664"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "休斯顿",
+ "identifier" : "houston",
+ "population" : "2,296,224"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "皇后区",
+ "identifier" : "queens",
+ "population" : "2,272,771"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "巴西利亚",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "圣多明哥",
+ "identifier" : "santo domingo",
+ "population" : "2,201,941"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "名古屋",
+ "identifier" : "nagoya",
+ "population" : "2,191,279"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "布里斯班",
+ "identifier" : "brisbane",
+ "population" : "2,189,878"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "哈瓦那",
+ "identifier" : "havana",
+ "population" : "2,163,824"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "巴黎",
+ "identifier" : "paris",
+ "population" : "2,138,551"
+ },
+ {
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "约翰内斯堡",
+ "identifier" : "johannesburg",
+ "population" : "2,026,469"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "阿拉木图",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "塔什干",
+ "identifier" : "tashkent",
+ "population" : "1,978,028"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "阿尔及尔",
+ "identifier" : "algiers",
+ "population" : "1,977,663"
+ },
+ {
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "喀土穆",
+ "identifier" : "khartoum",
+ "population" : "1,974,647"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "阿克拉",
+ "identifier" : "accra",
+ "population" : "1,963,264"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "瓜亚基尔",
+ "identifier" : "guayaquil",
+ "population" : "1,952,029"
+ },
+ {
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "萨那",
+ "identifier" : "sanaa",
+ "population" : "1,937,451"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "贝鲁特",
+ "identifier" : "beirut",
+ "population" : "1,916,100"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "珀斯",
+ "identifier" : "perth",
+ "population" : "1,896,548"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "札幌",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "布加勒斯特",
+ "identifier" : "bucharest",
+ "population" : "1,877,155"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "卡马耶纳",
+ "identifier" : "camayenne",
+ "population" : "1,871,242"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "科纳克里",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "明斯克",
+ "identifier" : "minsk",
+ "population" : "1,742,124"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "布达佩斯",
+ "identifier" : "budapest",
+ "population" : "1,741,041"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "汉堡",
+ "identifier" : "hamburg",
+ "population" : "1,739,117"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "华沙",
+ "identifier" : "warsaw",
+ "population" : "1,702,139"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "索韦托",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "维也纳",
+ "identifier" : "vienna",
+ "population" : "1,691,468"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "拉巴特",
+ "identifier" : "rabat",
+ "population" : "1,655,753"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴塞罗纳",
+ "identifier" : "barcelona",
+ "population" : "1,621,537"
+ },
+ {
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "比勒陀利亚",
+ "identifier" : "pretoria",
+ "population" : "1,619,438"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "阿勒颇",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "马尼拉",
+ "identifier" : "manila",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "蒙特利尔",
+ "identifier" : "montreal",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "卡杜纳",
+ "identifier" : "kaduna",
+ "population" : "1,582,102"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "金边",
+ "identifier" : "phnom penh",
+ "population" : "1,573,544"
+ },
+ {
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "大马士革",
+ "identifier" : "damascus",
+ "population" : "1,569,394"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "费城",
+ "identifier" : "philadelphia",
+ "population" : "1,567,442"
+ },
+ {
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "凤凰",
+ "identifier" : "phoenix",
+ "population" : "1,563,025"
+ },
+ {
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "伊斯法罕",
+ "identifier" : "isfahan",
+ "population" : "1,547,164"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "哈拉雷",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "科比",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "斯德哥尔摩",
+ "identifier" : "stockholm",
+ "population" : "1,515,017"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "曼哈顿",
+ "identifier" : "manhattan",
+ "population" : "1,487,536"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "亚松森",
+ "identifier" : "asuncion",
+ "population" : "1,482,200"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "累西腓",
+ "identifier" : "recife",
+ "population" : "1,478,098"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "圣安东尼奥",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "库马西",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "哥打巴鲁",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "京都",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "吉隆坡",
+ "identifier" : "kuala lumpur",
+ "population" : "1,453,975"
+ },
+ {
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡拉伊",
+ "identifier" : "karaj",
+ "population" : "1,448,075"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "加德满都",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "河内",
+ "identifier" : "hanoi",
+ "population" : "1,431,270"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "哈尔科夫",
+ "identifier" : "kharkiv",
+ "population" : "1,430,885"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "科尔多瓦",
+ "identifier" : "cordoba",
+ "population" : "1,428,214"
+ },
+ {
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "大不里士",
+ "identifier" : "tabriz",
+ "population" : "1,424,641"
+ },
+ {
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "新西伯利亚",
+ "identifier" : "novosibirsk",
+ "population" : "1,419,007"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "贝伦",
+ "identifier" : "belem",
+ "population" : "1,407,737"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "基多",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "圣地亚哥",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "福冈",
+ "identifier" : "fukuoka",
+ "population" : "1,392,289"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "塔那那利佛",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "布朗克斯",
+ "identifier" : "the bronx",
+ "population" : "1,385,108"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "卢本巴希",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "圣克鲁斯-德拉塞拉",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "坎帕拉",
+ "identifier" : "kampala",
+ "population" : "1,353,189"
+ },
+ {
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "叶卡捷琳堡",
+ "identifier" : "yekaterinburg",
+ "population" : "1,349,772"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "杜阿拉",
+ "identifier" : "douala",
+ "population" : "1,338,082"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "沙迦",
+ "identifier" : "sharjah",
+ "population" : "1,324,473"
+ },
+ {
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麦加",
+ "identifier" : "mecca",
+ "population" : "1,323,624"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "望加锡",
+ "identifier" : "makassar",
+ "population" : "1,321,717"
+ },
+ {
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "华雷斯",
+ "identifier" : "juarez",
+ "population" : "1,321,004"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "川崎",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "蒂华纳",
+ "identifier" : "tijuana",
+ "population" : "1,300,983"
+ },
+ {
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "达拉斯",
+ "identifier" : "dallas",
+ "population" : "1,300,092"
+ },
+ {
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麦地那",
+ "identifier" : "medina",
+ "population" : "1,300,000"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "雅温得",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "巴马科",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "布拉柴维尔",
+ "identifier" : "brazzaville",
+ "population" : "1,284,609"
+ },
+ {
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "下诺夫哥罗德",
+ "identifier" : "nizhniy novgorod",
+ "population" : "1,284,164"
+ },
+ {
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "安曼",
+ "identifier" : "amman",
+ "population" : "1,275,857"
+ },
+ {
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "贝尔格莱德",
+ "identifier" : "belgrade",
+ "population" : "1,273,651"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "蒙得维的亚",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "卢萨卡",
+ "identifier" : "lusaka",
+ "population" : "1,267,440"
+ },
+ {
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "慕尼黑",
+ "identifier" : "munich",
+ "population" : "1,260,391"
+ },
+ {
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "设拉子",
+ "identifier" : "shiraz",
+ "population" : "1,249,942"
+ },
+ {
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "米兰",
+ "identifier" : "milan",
+ "population" : "1,236,837"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "太子港",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "阿德莱德",
+ "identifier" : "adelaide",
+ "population" : "1,225,235"
+ },
+ {
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "恩杜曼",
+ "identifier" : "omdurman",
+ "population" : "1,200,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "ita玉",
+ "identifier" : "saitama",
+ "population" : "1,193,350"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "马普托",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "布拉格",
+ "identifier" : "prague",
+ "population" : "1,165,581"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "哥本哈根",
+ "identifier" : "copenhagen",
+ "population" : "1,153,615"
+ },
+ {
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "苏菲亚",
+ "identifier" : "sofia",
+ "population" : "1,152,556"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "的黎波里",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "哈科特港",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "广岛",
+ "identifier" : "hiroshima",
+ "population" : "1,143,841"
+ },
+ {
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "蒙特雷",
+ "identifier" : "monterrey",
+ "population" : "1,135,512"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "萨马拉",
+ "identifier" : "samara",
+ "population" : "1,134,730"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "鄂木斯克",
+ "identifier" : "omsk",
+ "population" : "1,129,281"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "贝宁市",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "巴库",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "迈杜古里",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "喀山",
+ "identifier" : "kazan",
+ "population" : "1,104,738"
+ },
+ {
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "叶里温",
+ "identifier" : "yerevan",
+ "population" : "1,093,485"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "瓦加杜古",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "罗斯托夫纳多努",
+ "identifier" : "rostov-na-donu",
+ "population" : "1,074,482"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "车里雅宾斯克",
+ "identifier" : "chelyabinsk",
+ "population" : "1,062,919"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "第比利斯",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "乌法",
+ "identifier" : "ufa",
+ "population" : "1,033,338"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "圣荷西",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "都柏林",
+ "identifier" : "dublin",
+ "population" : "1,024,027"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "卡尔加里",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "布鲁塞尔",
+ "identifier" : "brussels",
+ "population" : "1,019,022"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "伏尔加格勒",
+ "identifier" : "volgograd",
+ "population" : "1,011,417"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "敖德萨",
+ "identifier" : "odessa",
+ "population" : "1,001,558"
+ },
+ {
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "危地马拉城",
+ "identifier" : "guatemala city",
+ "population" : "994,938"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "伯明翰",
+ "identifier" : "birmingham",
+ "population" : "984,333"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "烫发",
+ "identifier" : "perm",
+ "population" : "982,419"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "扎里亚",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "伊丽莎白港",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "非斯",
+ "identifier" : "fes",
+ "population" : "964,891"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "科隆",
+ "identifier" : "cologne",
+ "population" : "963,395"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "那不勒斯",
+ "identifier" : "naples",
+ "population" : "959,470"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "马塞约",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "蒙罗维亚",
+ "identifier" : "monrovia",
+ "population" : "939,524"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "金斯顿",
+ "identifier" : "kingston",
+ "population" : "937,700"
+ },
+ {
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "奥斯丁",
+ "identifier" : "austin",
+ "population" : "931,830"
+ },
+ {
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "克拉斯诺亚尔斯克",
+ "identifier" : "krasnoyarsk",
+ "population" : "927,200"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "特卖",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "库姆",
+ "identifier" : "qom",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "比什凯克",
+ "identifier" : "bishkek",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿波波",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿坝",
+ "identifier" : "aba",
+ "population" : "897,560"
+ },
+ {
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "门多萨",
+ "identifier" : "mendoza",
+ "population" : "876,884"
+ },
+ {
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "姆布吉马耶",
+ "identifier" : "mbuji-mayi",
+ "population" : "874,761"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "皮金",
+ "identifier" : "pikine",
+ "population" : "874,062"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "都灵",
+ "identifier" : "turin",
+ "population" : "870,456"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "旧金山",
+ "aliases": ["三番"],
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "利物浦",
+ "identifier" : "liverpool",
+ "population" : "864,122"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "萨拉托夫",
+ "identifier" : "saratov",
+ "population" : "863,725"
+ },
+ {
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "德古西加巴",
+ "identifier" : "tegucigalpa",
+ "population" : "850,848"
+ },
+ {
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "沃罗涅日",
+ "identifier" : "voronezh",
+ "population" : "848,752"
+ },
+ {
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "乌兰巴托",
+ "identifier" : "ulan bator",
+ "population" : "844,818"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "阿瓦士",
+ "identifier" : "ahvaz",
+ "population" : "841,145"
+ },
+ {
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "马拉喀什",
+ "identifier" : "marrakesh",
+ "population" : "839,296"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "登巴萨",
+ "identifier" : "denpasar",
+ "population" : "834,881"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "沃思堡",
+ "identifier" : "fort worth",
+ "population" : "833,319"
+ },
+ {
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "印第安纳波利斯",
+ "identifier" : "indianapolis",
+ "population" : "829,718"
+ },
+ {
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "乔斯",
+ "identifier" : "jos",
+ "population" : "816,824"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴伦西亚",
+ "identifier" : "valencia",
+ "population" : "814,208"
+ },
+ {
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊洛林",
+ "identifier" : "ilorin",
+ "population" : "814,192"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "拉巴斯",
+ "identifier" : "la paz",
+ "population" : "215,178"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "渥太华",
+ "identifier" : "ottawa",
+ "population" : "812,129"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "弗里敦",
+ "identifier" : "freetown",
+ "population" : "802,639"
+ },
+ {
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "耶路撒冷",
+ "identifier" : "jerusalem",
+ "population" : "801,000"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "马斯喀特",
+ "identifier" : "muscat",
+ "population" : "797,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "马赛",
+ "identifier" : "marseille",
+ "population" : "794,811"
+ },
+ {
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "帕斯拉格德分行",
+ "identifier" : "pasragad branch",
+ "population" : "787,878"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "布默达斯",
+ "identifier" : "boumerdas",
+ "population" : "786,499"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "San Miguel de Tucuman",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "梅里达",
+ "identifier" : "merida",
+ "population" : "777,615"
+ },
+ {
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "尼亚美",
+ "identifier" : "niamey",
+ "population" : "774,235"
+ },
+ {
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡里兹",
+ "identifier" : "kahriz",
+ "population" : "766,706"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "克拉科夫",
+ "identifier" : "krakow",
+ "population" : "755,050"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "岘港市",
+ "identifier" : "da nang",
+ "population" : "752,493"
+ },
+ {
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "彼得马里茨堡",
+ "identifier" : "pietermaritzburg",
+ "population" : "750,845"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "洛美",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "基加利",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "里加",
+ "identifier" : "riga",
+ "population" : "742,572"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "阿姆斯特丹",
+ "identifier" : "amsterdam",
+ "population" : "741,636"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "大洋",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "诺丁汉",
+ "identifier" : "nottingham",
+ "population" : "729,977"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "大坎普市",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "阿什哈巴德",
+ "identifier" : "ashgabat",
+ "population" : "727,700"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "恩贾梅纳",
+ "identifier" : "n'djamena",
+ "population" : "721,081"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "利沃夫",
+ "identifier" : "lviv",
+ "population" : "717,803"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "埃莫西约",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "埃德蒙顿",
+ "identifier" : "edmonton",
+ "population" : "712,391"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "布拉瓦约",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "萨格勒布",
+ "identifier" : "zagreb",
+ "population" : "698,966"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "阿加迪尔",
+ "identifier" : "agadir",
+ "population" : "698,310"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "萨拉热窝",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "埃努古",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "丹吉尔",
+ "identifier" : "tangier",
+ "population" : "688,356"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "谢菲尔德",
+ "identifier" : "sheffield",
+ "population" : "685,368"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "西雅图",
+ "identifier" : "seattle",
+ "population" : "684,451"
+ },
+ {
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "丹佛",
+ "identifier" : "denver",
+ "population" : "682,545"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "埃尔帕索",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "杜尚别",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "底特律",
+ "identifier" : "detroit",
+ "population" : "677,116"
+ },
+ {
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "库里亚坎人",
+ "identifier" : "culiacan",
+ "population" : "675,773"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "马托拉",
+ "identifier" : "matola",
+ "population" : "675,422"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "波斯顿",
+ "identifier" : "boston",
+ "population" : "667,137"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "雅典",
+ "identifier" : "athens",
+ "population" : "664,046"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "努瓦克肖特",
+ "identifier" : "nouakchott",
+ "population" : "661,400"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "黑角",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "孟菲斯",
+ "identifier" : "memphis",
+ "population" : "655,770"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "法兰克福",
+ "identifier" : "frankfurt am main",
+ "population" : "650,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "克拉斯诺达尔",
+ "identifier" : "krasnodar",
+ "population" : "649,851"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴勒莫",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "科伦坡",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "利隆圭",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "奥兰",
+ "identifier" : "oran",
+ "population" : "645,984"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "基希讷乌",
+ "identifier" : "chisinau",
+ "population" : "635,994"
+ },
+ {
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "特比萨",
+ "identifier" : "tebessa",
+ "population" : "634,332"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "波特兰",
+ "identifier" : "portland",
+ "population" : "632,309"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "温尼伯",
+ "identifier" : "winnipeg",
+ "population" : "632,063"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "俄克拉荷马城",
+ "identifier" : "oklahoma city",
+ "population" : "631,346"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "坎昆",
+ "identifier" : "cancun",
+ "population" : "628,306"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "吉布地",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "巴尔的摩",
+ "identifier" : "baltimore",
+ "population" : "621,849"
+ },
+ {
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克尔曼沙",
+ "identifier" : "kermanshah",
+ "population" : "621,100"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "布里斯托尔",
+ "identifier" : "bristol",
+ "population" : "617,280"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "贝诺尼",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "阿布扎比",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "华盛顿州",
+ "identifier" : "washington",
+ "population" : "601,723"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "密尔沃基",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "温哥华",
+ "identifier" : "vancouver",
+ "population" : "600,000"
+ },
+ {
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "巴瑙尔",
+ "identifier" : "barnaul",
+ "population" : "599,579"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "鹿特丹",
+ "identifier" : "rotterdam",
+ "population" : "598,199"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "拉什特",
+ "identifier" : "rasht",
+ "population" : "594,590"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿倍库塔",
+ "identifier" : "abeokuta",
+ "population" : "593,100"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "埃森",
+ "identifier" : "essen",
+ "population" : "593,085"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "格拉斯哥",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "黄金海岸",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿布贾",
+ "identifier" : "abuja",
+ "population" : "590,400"
+ },
+ {
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "斯图加特",
+ "identifier" : "stuttgart",
+ "population" : "589,793"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "多特蒙德",
+ "identifier" : "dortmund",
+ "population" : "588,462"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "海参div",
+ "identifier" : "vladivostok",
+ "population" : "587,022"
+ },
+ {
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "伊尔库茨克",
+ "identifier" : "irkutsk",
+ "population" : "586,695"
+ },
+ {
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "布兰太尔",
+ "identifier" : "blantyre",
+ "population" : "584,877"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "热那亚",
+ "identifier" : "genoa",
+ "population" : "580,223"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "奥斯陆",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "利伯维尔",
+ "identifier" : "libreville",
+ "population" : "578,156"
+ },
+ {
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克尔曼",
+ "identifier" : "kerman",
+ "population" : "577,514"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜塞尔多夫",
+ "identifier" : "duesseldorf",
+ "population" : "573,057"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "古晋",
+ "identifier" : "kuching",
+ "population" : "570,407"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "阿尔伯克基",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "赫尔辛基",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "亚丁",
+ "identifier" : "aden",
+ "population" : "550,602"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "奥伦堡",
+ "identifier" : "orenburg",
+ "population" : "550,204"
+ },
+ {
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "普里什蒂纳",
+ "identifier" : "pristina",
+ "population" : "550,000"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "不来梅",
+ "identifier" : "bremen",
+ "population" : "546,501"
+ },
+ {
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "维尔纽斯",
+ "identifier" : "vilnius",
+ "population" : "542,366"
+ },
+ {
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "纳什维尔",
+ "identifier" : "nashville",
+ "population" : "530,852"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "魁北克",
+ "identifier" : "quebec",
+ "population" : "528,595"
+ },
+ {
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "圣萨尔瓦多",
+ "identifier" : "san salvador",
+ "population" : "525,990"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "澳门",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "秋明州",
+ "identifier" : "tyumen",
+ "population" : "519,119"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "里斯本",
+ "identifier" : "lisbon",
+ "population" : "517,802"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "汉诺威",
+ "identifier" : "hannover",
+ "population" : "515,140"
+ },
+ {
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "萨尔塔",
+ "identifier" : "salta",
+ "population" : "512,686"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "莱斯特",
+ "identifier" : "leicester",
+ "population" : "508,916"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "莱比锡",
+ "identifier" : "leipzig",
+ "population" : "504,971"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜伊斯堡",
+ "identifier" : "duisburg",
+ "population" : "504,358"
+ },
+ {
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "阿斯特拉罕",
+ "identifier" : "astrakhan",
+ "population" : "502,533"
+ },
+ {
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "纽伦堡",
+ "identifier" : "nuernberg",
+ "population" : "499,237"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "德累斯顿",
+ "identifier" : "dresden",
+ "population" : "486,854"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "托木斯克",
+ "identifier" : "tomsk",
+ "population" : "485,519"
+ },
+ {
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "亚兹德",
+ "identifier" : "yazd",
+ "population" : "477,905"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "堪萨斯城",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "斯科普里",
+ "identifier" : "skopje",
+ "population" : "474,889"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "海牙",
+ "identifier" : "the hague",
+ "population" : "474,292"
+ },
+ {
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里昂",
+ "identifier" : "lyon",
+ "population" : "472,317"
+ },
+ {
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "爱丁堡",
+ "identifier" : "edinburgh",
+ "population" : "464,990"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "安特卫普",
+ "identifier" : "antwerpen",
+ "population" : "459,805"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "坤甸",
+ "identifier" : "pontianak",
+ "population" : "455,173"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "利兹",
+ "identifier" : "leeds",
+ "population" : "455,123"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "加的夫",
+ "identifier" : "cardiff",
+ "population" : "447,287"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "圣胡安",
+ "identifier" : "san juan",
+ "population" : "418,140"
+ },
+ {
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "奥马哈",
+ "identifier" : "omaha",
+ "population" : "443,885"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "家乐福",
+ "identifier" : "carrefour",
+ "population" : "442,156"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "迈阿密",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "加里宁格勒",
+ "identifier" : "kaliningrad",
+ "population" : "434,954"
+ },
+ {
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "图卢兹",
+ "identifier" : "toulouse",
+ "population" : "433,055"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "特拉维夫",
+ "identifier" : "tel aviv",
+ "population" : "432,892"
+ },
+ {
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "东耶路撒冷",
+ "identifier" : "east jerusalem",
+ "population" : "428,304"
+ },
+ {
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "布拉迪斯拉发",
+ "identifier" : "bratislava",
+ "population" : "423,737"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "奥克兰市",
+ "identifier" : "auckland",
+ "population" : "417,910"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "塞瓦斯托波尔",
+ "identifier" : "sevastopol",
+ "population" : "416,263"
+ },
+ {
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "明尼阿波利斯",
+ "identifier" : "minneapolis",
+ "population" : "410,939"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "加沙",
+ "identifier" : "gaza",
+ "population" : "410,000"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "库尔斯克",
+ "identifier" : "kursk",
+ "population" : "409,431"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "巴拿马",
+ "identifier" : "panama",
+ "population" : "408,168"
+ },
+ {
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "塔尔萨",
+ "identifier" : "tulsa",
+ "population" : "403,505"
+ },
+ {
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "特维尔",
+ "identifier" : "tver",
+ "population" : "400,212"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "曼彻斯特",
+ "identifier" : "manchester",
+ "population" : "395,515"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "塔林",
+ "identifier" : "tallinn",
+ "population" : "394,024"
+ },
+ {
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "坎大哈",
+ "identifier" : "kandahar",
+ "population" : "391,190"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "威奇托",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "新奥尔良",
+ "identifier" : "new orleans",
+ "population" : "389,617"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "惠灵顿",
+ "identifier" : "wellington",
+ "population" : "381,900"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "大加那利岛拉斯帕尔马斯",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "马萨特兰",
+ "identifier" : "mazatlan",
+ "population" : "381,583"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "地拉那",
+ "identifier" : "tirana",
+ "population" : "374,801"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "考纳斯",
+ "identifier" : "kaunas",
+ "population" : "374,643"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "火奴鲁鲁",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "堪培拉",
+ "identifier" : "canberra",
+ "population" : "367,752"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "博洛尼亚",
+ "identifier" : "bologna",
+ "population" : "366,133"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "基督城",
+ "identifier" : "christchurch",
+ "population" : "363,926"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "哈利法克斯",
+ "identifier" : "halifax",
+ "population" : "359,111"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "安汶",
+ "identifier" : "ambon",
+ "population" : "355,596"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "佛罗伦斯",
+ "identifier" : "florence",
+ "population" : "349,296"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "多哈",
+ "identifier" : "doha",
+ "population" : "344,939"
+ },
+ {
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "苏黎世",
+ "identifier" : "zurich",
+ "population" : "341,730"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "好啊",
+ "identifier" : "nice",
+ "population" : "338,620"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "辛菲罗波尔",
+ "identifier" : "simferopol",
+ "population" : "336,460"
+ },
+ {
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "特皮克",
+ "identifier" : "tepic",
+ "population" : "332,863"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "索契",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "斯摩棱斯克",
+ "identifier" : "smolensk",
+ "population" : "320,991"
+ },
+ {
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "撒马尔罕",
+ "identifier" : "samarkand",
+ "population" : "319,366"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "摩尔曼斯克",
+ "identifier" : "murmansk",
+ "population" : "319,263"
+ },
+ {
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "弗拉季卡夫卡兹",
+ "identifier" : "vladikavkaz",
+ "population" : "317,370"
+ },
+ {
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "赤太",
+ "identifier" : "chita",
+ "population" : "308,500"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "新城堡",
+ "identifier" : "newcastle",
+ "population" : "308,308"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "韦略港",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "圣萨尔瓦多·德胡胡伊",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "匹兹堡",
+ "identifier" : "pittsburgh",
+ "population" : "304,391"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "布雷斯特",
+ "identifier" : "brest",
+ "population" : "144,899"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "锚地",
+ "identifier" : "anchorage",
+ "population" : "298,695"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "辛辛那提",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "卧龙岗市",
+ "identifier" : "wollongong",
+ "population" : "292,190"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "卡塔尼亚",
+ "identifier" : "catania",
+ "population" : "290,927"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "乌特勒支",
+ "identifier" : "utrecht",
+ "population" : "290,529"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "维多利亚州",
+ "identifier" : "victoria",
+ "population" : "289,625"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "莫尔兹比港",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "洛根市",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴里",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "南特",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "史特拉斯堡",
+ "identifier" : "strasbourg",
+ "population" : "274,845"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "贝尔法斯特",
+ "identifier" : "belfast",
+ "population" : "274,770"
+ },
+ {
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "卢布尔雅那",
+ "identifier" : "ljubljana",
+ "population" : "272,220"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "奥兰多",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "彼得罗扎沃茨克",
+ "identifier" : "petrozavodsk",
+ "population" : "265,025"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "普利茅斯",
+ "identifier" : "plymouth",
+ "population" : "260,203"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "里约布兰科",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "洛斯·莫奇斯",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "波尔图",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "麦迪逊",
+ "identifier" : "madison",
+ "population" : "248,951"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "蒙彼利埃",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "奥胡斯",
+ "identifier" : "arhus",
+ "population" : "237,551"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "雅库茨克",
+ "identifier" : "yakutsk",
+ "population" : "235,600"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "乔治敦",
+ "identifier" : "georgetown",
+ "population" : "235,017"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "波尔多",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "根特",
+ "identifier" : "gent",
+ "population" : "231,493"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "巴吞鲁日",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里尔",
+ "identifier" : "lille",
+ "population" : "228,328"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "拿骚",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "吉朗",
+ "identifier" : "geelong",
+ "population" : "226,034"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "帕拉马里博",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "圣克鲁斯-德特内里费",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "格拉茨",
+ "identifier" : "graz",
+ "population" : "222,326"
+ },
+ {
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "墨西拿",
+ "identifier" : "messina",
+ "population" : "219,948"
+ },
+ {
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "维罗纳",
+ "identifier" : "verona",
+ "population" : "219,103"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "霍巴特",
+ "identifier" : "hobart",
+ "population" : "216,656"
+ },
+ {
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "诺维萨德",
+ "identifier" : "novi sad",
+ "population" : "215,400"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "卑尔根",
+ "identifier" : "bergen",
+ "population" : "213,585"
+ },
+ {
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "得梅因",
+ "identifier" : "des moines",
+ "population" : "210,330"
+ },
+ {
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "科斯塔奈",
+ "identifier" : "kostanay",
+ "population" : "210,000"
+ },
+ {
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "林兹",
+ "identifier" : "linz",
+ "population" : "204,846"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕多瓦",
+ "identifier" : "padova",
+ "population" : "203,725"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "普斯科夫",
+ "identifier" : "pskov",
+ "population" : "201,990"
+ },
+ {
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "清迈",
+ "identifier" : "chiang mai",
+ "population" : "200,952"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "尼科西亚",
+ "identifier" : "nicosia",
+ "population" : "200,452"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "口服",
+ "identifier" : "oral",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "奥什",
+ "identifier" : "osh",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "萨斯卡通",
+ "identifier" : "saskatoon",
+ "population" : "198,958"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "小石头",
+ "identifier" : "little rock",
+ "population" : "197,992"
+ },
+ {
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "万象",
+ "identifier" : "vientiane",
+ "population" : "196,731"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "香港仔",
+ "identifier" : "aberdeen",
+ "population" : "196,670"
+ },
+ {
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "帕尔马斯",
+ "identifier" : "palmas",
+ "population" : "196,272"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "汤斯维尔",
+ "identifier" : "townsville",
+ "population" : "196,219"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "盐湖城",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "软木",
+ "identifier" : "cork",
+ "population" : "190,384"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "塔拉哈西",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "圣塔伦",
+ "identifier" : "santarem",
+ "population" : "189,047"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "卡塔马卡圣费尔南多·德尔瓦莱",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "的里雅斯特",
+ "identifier" : "trieste",
+ "population" : "187,056"
+ },
+ {
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "圣路易斯",
+ "identifier" : "san luis",
+ "population" : "183,982"
+ },
+ {
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "日内瓦",
+ "identifier" : "geneva",
+ "population" : "183,981"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "阿特劳",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "库塔伊西",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "南萨哈林斯克",
+ "identifier" : "yuzhno-sakhalinsk",
+ "population" : "176,484"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "分裂",
+ "identifier" : "split",
+ "population" : "176,314"
+ },
+ {
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "里贾纳",
+ "identifier" : "regina",
+ "population" : "176,183"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "图尔库",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "牛津",
+ "identifier" : "oxford",
+ "population" : "171,380"
+ },
+ {
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "杰克逊",
+ "identifier" : "jackson",
+ "population" : "170,674"
+ },
+ {
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "斯普林菲尔德",
+ "identifier" : "springfield",
+ "population" : "166,810"
+ },
+ {
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "巴塞尔",
+ "identifier" : "basel",
+ "population" : "164,488"
+ },
+ {
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "拉里奥哈",
+ "identifier" : "la rioja",
+ "population" : "162,620"
+ },
+ {
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "希伯伦",
+ "identifier" : "hebron",
+ "population" : "160,470"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "摩德纳",
+ "identifier" : "modena",
+ "population" : "158,886"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "剑桥",
+ "identifier" : "cambridge",
+ "population" : "158,434"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "弗里斯科",
+ "identifier" : "frisco",
+ "population" : "154,407"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "帕萨迪纳",
+ "identifier" : "pasadena",
+ "population" : "153,784"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "约克",
+ "identifier" : "york",
+ "population" : "153,717"
+ },
+ {
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "萨尔茨堡",
+ "identifier" : "salzburg",
+ "population" : "153,377"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "凯恩斯",
+ "identifier" : "cairns",
+ "population" : "153,075"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "汉密尔顿",
+ "identifier" : "hamilton",
+ "population" : "152,641"
+ },
+ {
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "拉古纳",
+ "identifier" : "la laguna",
+ "population" : "150,661"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "帝力",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "第戎",
+ "identifier" : "dijon",
+ "population" : "149,782"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "乌普萨拉",
+ "identifier" : "uppsala",
+ "population" : "149,245"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "特隆赫姆",
+ "identifier" : "trondheim",
+ "population" : "147,139"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "麦纳麦",
+ "identifier" : "manama",
+ "population" : "147,074"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕尔马",
+ "identifier" : "parma",
+ "population" : "146,299"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "博伊西",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "欧登塞",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "亚眠",
+ "identifier" : "amiens",
+ "population" : "143,086"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "旅游团",
+ "identifier" : "tours",
+ "population" : "141,621"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "波德戈里察",
+ "identifier" : "podgorica",
+ "population" : "136,473"
+ },
+ {
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "因斯布鲁克",
+ "identifier" : "innsbruck",
+ "population" : "132,493"
+ },
+ {
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "图文巴",
+ "identifier" : "toowoomba",
+ "population" : "131,258"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "达尔文",
+ "identifier" : "darwin",
+ "population" : "129,062"
+ },
+ {
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "伯尔尼",
+ "identifier" : "bern",
+ "population" : "121631"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..edf339b38
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
@@ -0,0 +1,282 @@
+{
+ "percentage": [
+ {
+ "identifier": "reversedPercentOf",
+ "prototypeExpressions": [
+ "100的10%",
+ "100之10%",
+ "100 的 10%",
+ "100 之 10%"
+ ]
+ },
+ {
+ "identifier": "reversedPercentOff",
+ "prototypeExpressions": [
+ "100减10%",
+ "100去10%",
+ "100 减 10%",
+ "100 去 10%"
+ ]
+ },
+ {
+ "identifier": "reversedPercentOn",
+ "prototypeExpressions": [
+ "100加10%",
+ "100加上10%",
+ "100 加 10%",
+ "100 加上 10%"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhat",
+ "prototypeExpressions": [
+ "30 是多少的 20%",
+ "30 是什么的 20%",
+ "30是多少的20%",
+ "30是什么的20%"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhatClassic",
+ "prototypeExpressions": [
+ "多少的 20% 是 30",
+ "多少的 20% 为 30",
+ "多少的20%是30",
+ "多少的20%为30",
+ "什么的 20% 为 30",
+ "什么的 20% 是 30",
+ "什么的20%为30",
+ "什么的20%是30"
+ ]
+ },
+ {
+ "identifier": "isPercentOffWhatClassic",
+ "prototypeExpressions": [
+ "多少减去 20% 是 30",
+ "多少减 20% 是 30",
+ "多少减去20%是30",
+ "多少减20%是30",
+ "什么减去 20% 是 30",
+ "什么减 20% 是 30",
+ "什么减去20%是30",
+ "什么减20%是30"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhat",
+ "prototypeExpressions": [
+ "30 是多少加 20%",
+ "30 是多少加上 20%",
+ "30 是多少加20%",
+ "30 是多少加上20%",
+ "30 是什么加 20%",
+ "30 是什么加上 20%",
+ "30 是什么加20%",
+ "30 是什么加上20%"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhatClassic",
+ "prototypeExpressions": [
+ "多少加 20% 是 30",
+ "多少加 20% 为 30",
+ "多少加上 20% 是 30",
+ "多少加上 20% 为 30",
+ "多少加20%是30",
+ "多少加20%为30",
+ "多少加上20%是30",
+ "多少加上20%为30",
+ "什么加 20% 是 30",
+ "什么加 20% 为 30",
+ "什么加上 20% 是 30",
+ "什么加上 20% 为 30",
+ "什么加20%是30",
+ "什么加20%为30",
+ "什么加上20%是30",
+ "什么加上20%为30"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOf",
+ "prototypeExpressions": [
+ "10 是 20 里的占比为",
+ "10 是 20 里的百分比为",
+ "10是20里的占比为",
+ "10是20里的百分比为",
+ "10 在 20 里的占比为",
+ "10 在 20 里的百分比为",
+ "10在20里的占比为",
+ "10在20里的百分比为"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOff",
+ "prototypeExpressions": [
+ "10 是 20 去掉百分之多少",
+ "10是20去掉百分之多少",
+ "10 是 20 减去百分之多少",
+ "10是20减去百分之多少",
+ "10 是 20 减百分之多少",
+ "10是20减百分之多少",
+ "10 是 20 去掉百分之几",
+ "10是20去掉百分之几",
+ "10 是 20 减去百分之几",
+ "10是20减去百分之几",
+ "10 是 20 减百分之几",
+ "10是20减百分之几"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOn",
+ "prototypeExpressions": [
+ "20 是 10 加百分之多少",
+ "20 是 10 加上百分之几",
+ "20是10加百分之多少",
+ "20是10加上百分之几"
+ ]
+ }
+ ],
+ "general": [
+ {
+ "identifier": "remainder",
+ "prototypeExpressions": [
+ "20 除以 3 的余数",
+ "20除以3的余数",
+ "20 除 3 之余",
+ "20除3之余"
+ ]
+ },
+ {
+ "identifier": "halfOf",
+ "prototypeExpressions": [
+ "20 的一半为",
+ "20 的一半是",
+ "20 的一般",
+ "20的一半为",
+ "20的一半是"
+ ]
+ },
+ {
+ "identifier": "lesserOf",
+ "prototypeExpressions": [
+ "2和30之间小的一个数",
+ "2和30之间较小的一个数",
+ "2和30之间最小的一个数",
+ "2 和 30 之间小的一个数",
+ "2 和 30 之间较小的一个数",
+ "2 和 30 之间最小的一个数"
+ ]
+ },
+ {
+ "identifier": "greaterOf",
+ "prototypeExpressions": [
+ "2和30之间大的一个数",
+ "2和30之间较大的一个数",
+ "2和30之间最大的一个数",
+ "2 和 30 之间大的一个数",
+ "2 和 30 之间较大的一个数",
+ "2 和 30 之间最大的一个数"
+ ]
+ },
+ {
+ "identifier": "midpoint",
+ "prototypeExpressions": [
+ "2 与 32 的中间点",
+ "2 与 32 的中间数",
+ "2 与 32 的中间值",
+ "2 和 32 的中间点",
+ "2 和 32 的中间数",
+ "2 和 32 的中间值",
+ "2 与 32 的中间点",
+ "2 与 32 的中间数",
+ "2 与 32 的中间值"
+ ]
+ },
+ {
+ "identifier": "proportionsFindNumerator",
+ "prototypeExpressions": [
+ "多少除以8相当于6除以600",
+ "多少除以8等于6除以600",
+ "什么除以8相当于6除以600",
+ "什么除以8等于6除以600"
+ ]
+ },
+ {
+ "identifier": "proportionsFindDenominator",
+ "prototypeExpressions": [
+ "8除以多少相当于6除以600",
+ "8除以多少等于6除以600",
+ "8除以什么相当于6除以600",
+ "8除以什么等于6除以600"
+ ]
+ },
+ {
+ "identifier": "makeRandomNumber",
+ "prototypeExpressions": [
+ "1 到 5 之间的任意数",
+ "1 与 5 之间的任意数",
+ "1 和 5 之间的任意数",
+ "1到5之间的任意数",
+ "1与5之间的任意数",
+ "1和5之间的任意数"
+ ]
+ }
+ ],
+ "unitRelated": [
+ ],
+ "datetime": [
+ {
+ "identifier": "calendarUnitBetweenDates",
+ "prototypeExpressions": [
+ "在 __datestamp 和 __datestamp 之间的 __unit 数",
+ "__datestamp 和 __datestamp 之间的 __unit",
+ "从 __datestamp 到 __datestamp 之间的 __unit 数",
+ "从 __datestamp 到 __datestamp 之间的 __unit"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit 才到 __datestamp",
+ "多少 __unit 直到 __datestamp"
+ ]
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "从 __datestamp 到 __datestamp",
+ "从 __datestamp 至 __datestamp",
+ "__datestamp 到 __datestamp",
+ "__datestamp 至 __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "从 __timestamp 到 __timestamp",
+ "从 __timestamp 至 __timestamp",
+ "__timestamp 到 __timestamp",
+ "__timestamp 至 __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "新的时间戳"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone 时间",
+ "__timezone 的时间"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "identifier": "differenceBetweenTimezones",
+ "prototypeExpressions": [
+ "__timezone 以及 __timezone 之间的时间差"
+ ]
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings
new file mode 100644
index 000000000..59ce6e370
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..e15d8a2ee
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..a1c37837a
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
@@ -0,0 +1,143 @@
+{
+ "fixtures": {
+ "decimalPlacesTypes": [
+ "小数"
+ ],
+ "multiplierTypes": [
+ "乘数"
+ ],
+ "divisionOperators": [
+ "除以",
+ "每"
+ ],
+ "reverseDivisionOperators": [
+ "除"
+ ],
+ "roundingConverters": [
+ "四舍五入",
+ "舍入"
+ ],
+ "multiplicationOperators": [
+ "乘",
+ "乘以"
+ ],
+ "tomorrowDateAliases": [
+ "明天",
+ "明日"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "圈速",
+ "每圈耗时"
+ ],
+ "numberTypes": [
+ "数字"
+ ],
+ "roundingDownConverters": [
+ ],
+ "yesterdayDateAliases": [
+ "昨天",
+ "昨日"
+ ],
+ "subtractionOperators": [
+ "减",
+ "减去"
+ ],
+ "todayDateAliases": [
+ "今天",
+ "今日"
+ ],
+ "timestampTypes": [
+ "时间戳"
+ ],
+ "roundingUpConverters": [
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "dateTypes": [
+ "日期"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "monthOfYearDateAliases": [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月",
+ "1月",
+ "2月",
+ "3月",
+ "4月",
+ "5月",
+ "6月",
+ "7月",
+ "8月",
+ "9月",
+ "10月",
+ "11月",
+ "12月"
+ ],
+ "additionOperators": [
+ "加",
+ "加上"
+ ],
+ "timespanTypes": [
+ "周期"
+ ],
+ "nowDateAliases": [
+ "现在"
+ ],
+ "converterSymbols": [
+ "到",
+ "为",
+ "作为"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "星期天",
+ "周一",
+ "周二",
+ "周三",
+ "周四",
+ "周五",
+ "周六",
+ "周日",
+ "周天"
+ ],
+ "fractionTypes": [
+ "分之",
+ "分数"
+ ],
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "percentTypes": [
+ "百分之",
+ "百分比"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..8fcda5e55
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
@@ -0,0 +1,1360 @@
+{
+ "energy" : [
+ {
+ "symbol" : "焦耳",
+ "aliases" : [
+ "焦"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "千焦耳",
+ "aliases" : [
+ "千焦"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "兆焦耳",
+ "aliases" : [
+ "兆焦"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "吉焦耳",
+ "aliases" : [
+ "吉焦"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "卡路里",
+ "aliases" : [
+ "卡"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "千卡路里",
+ "aliases" : [
+ "千卡"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "瓦特小时",
+ "aliases" : [
+ "瓦小时"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "瓦特分",
+ "aliases" : [
+ "瓦特分钟"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "瓦特秒",
+ "aliases" : [],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "千瓦小时",
+ "aliases" : [
+ "千瓦时"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "兆瓦时",
+ "aliases" : [
+ "千度"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "亿瓦时",
+ "aliases" : [
+ "吉瓦时",
+ "千兆瓦时",
+ "兆瓦时",
+ "百万千瓦小时",
+ "百万度"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "万亿瓦[特]时",
+ "aliases" : [
+ "太瓦时"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "兆升",
+ "aliases" : [],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "千升",
+ "aliases" : [],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "升",
+ "aliases" : [],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "毫升",
+ "aliases" : [],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "立方千米",
+ "aliases" : [],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "立方米",
+ "aliases" : [],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "立方厘米",
+ "aliases" : [],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "立方毫米",
+ "aliases" : [],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "立方英寸",
+ "aliases" : [],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "立方英尺",
+ "aliases" : [],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "立方码",
+ "aliases" : [],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "立方英里",
+ "aliases" : [],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "蒲式耳",
+ "aliases" : [],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "英亩尺",
+ "aliases" : [
+ "英亩英尺"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "品脱",
+ "aliases" : [],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "夸脱",
+ "aliases" : [],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "加仑",
+ "aliases" : [],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "汤匙",
+ "aliases" : [],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "茶匙",
+ "aliases" : [],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "液盎司",
+ "aliases" : [
+ "液盎司"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "字节",
+ "aliases" : [],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "比特",
+ "aliases" : [],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "尧",
+ "aliases" : [
+ "尧它",
+ "尧字节"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "泽",
+ "aliases" : [
+ "泽字节",
+ "泽它字节"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "艾",
+ "aliases" : [
+ "EB",
+ "艾字节",
+ "艾可萨字节"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "P",
+ "拍",
+ "拍字节",
+ "拍它字节",
+ "千兆兆",
+ "千兆兆字节",
+ "千万亿字节"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "T",
+ "太",
+ "太字节",
+ "万亿字节"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "G",
+ "吉",
+ "吉字节",
+ "十亿字节",
+ "千兆字节"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "M",
+ "兆",
+ "兆字节",
+ "百万字节"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "千字节"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "尧比特"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "泽比特"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "艾比特"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "拍比特"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "太比特"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "吉比特",
+ "千兆比特"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "兆比特"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "千比特"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "艾比特"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "开",
+ "开尔文"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "摄氏度"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "华氏度"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [
+ "字节每秒",
+ "字节/秒"
+ ],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [
+ "比特率",
+ "比特每秒",
+ "比特/秒"
+ ],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [
+ "YB每秒",
+ "YB/秒",
+ "尧每秒",
+ "尧/秒",
+ "尧它每秒",
+ "尧它/秒",
+ "尧字节每秒",
+ "尧字节/秒"
+ ],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [
+ "ZB/秒",
+ "ZB每秒",
+ "泽/秒",
+ "泽每秒",
+ "泽字节/秒",
+ "泽字节每秒",
+ "泽它字节/秒",
+ "泽它字节每秒"
+ ],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [
+ "EB/秒",
+ "EB每秒",
+ "艾/秒",
+ "艾每秒",
+ "艾字节/秒",
+ "艾字节每秒",
+ "艾可萨/秒",
+ "艾可萨每秒"
+ ],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [
+ "PB/秒",
+ "PB每秒",
+ "拍/秒",
+ "拍每秒",
+ "拍字节/秒",
+ "拍字节每秒",
+ "拍它字节/秒",
+ "拍它字节每秒",
+ "千兆兆/秒",
+ "千兆兆每秒",
+ "千兆兆字节/秒",
+ "千兆兆字节每秒",
+ "千万亿字节/秒",
+ "千万亿字节每秒"
+ ],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [
+ "TB/秒",
+ "TB每秒",
+ "太/秒",
+ "太每秒",
+ "太字节/秒",
+ "太字节每秒",
+ "万亿字节/秒",
+ "万亿字节每秒"
+ ],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "GB/秒",
+ "GB每秒",
+ "吉/秒",
+ "吉每秒",
+ "吉字节/秒",
+ "吉字节每秒",
+ "十亿字节/秒",
+ "十亿字节每秒",
+ "千兆字节/秒",
+ "千兆字节每秒"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "M/秒",
+ "M每秒",
+ "MB/秒",
+ "MB每秒",
+ "兆/秒",
+ "兆每秒",
+ "兆字节/秒",
+ "兆字节每秒",
+ "百万字节/秒",
+ "百万字节每秒"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "KB/秒",
+ "KB每秒",
+ "千字节/秒",
+ "千字节每秒"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [
+ "YB/秒",
+ "YB每秒"
+ ],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [
+ "ZB/秒",
+ "ZB每秒"
+ ],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [
+ "EB/秒",
+ "EB每秒",
+ "艾比特/秒",
+ "艾比特每秒"
+ ],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "拍比特/秒",
+ "拍比特每秒"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "太比特/秒",
+ "太比特每秒"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "吉比特/秒",
+ "吉比特每秒",
+ "千兆比特/秒",
+ "千兆比特每秒",
+ "千兆位/秒",
+ "千兆位每秒"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "兆比特/秒",
+ "兆比特每秒"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "千比特/秒",
+ "千比特每秒"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [
+ "YiB/秒",
+ "YiB每秒"
+ ],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [
+ "ZiB/秒",
+ "ZiB每秒"
+ ],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [
+ "EiB/秒",
+ "EiB每秒"
+ ],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [
+ "PiB/秒",
+ "PiB每秒"
+ ],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [
+ "TiB/秒",
+ "TiB每秒"
+ ],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [
+ "GiB/秒",
+ "GiB每秒"
+ ],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [
+ "MiB/秒",
+ "MiB每秒"
+ ],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [
+ "KiB/秒",
+ "KiB每秒"
+ ],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [
+ "Yib/秒",
+ "Yib每秒"
+ ],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [
+ "Zib/秒",
+ "Zib每秒"
+ ],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [
+ "Eib/秒",
+ "Eib每秒"
+ ],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [
+ "Pib/秒",
+ "Pib每秒"
+ ],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [
+ "Tib/秒",
+ "Tib每秒"
+ ],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [
+ "Gib/秒",
+ "Gib每秒"
+ ],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [
+ "Mib/秒",
+ "Mib每秒"
+ ],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [
+ "Kib/秒",
+ "Kib每秒"
+ ],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "米/秒",
+ "aliases" : [
+ "米每秒"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "千米/时",
+ "aliases" : [
+ "千米每小时",
+ "千米/小时"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "英里/时",
+ "aliases" : [
+ "英里每小时",
+ "英里/小时"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "节",
+ "aliases" : [],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "度"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "度"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "米"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "千米",
+ "公里"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "厘米"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "毫米"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "微米"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "纳米"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "英寸"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "英尺"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "码"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "英里"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "光年"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "秒差距"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "海里"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "英寻"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "浪"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "像素"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "点"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "平方公里",
+ "平方千米"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "平方米"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "平方厘米"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "平方毫米"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "平方微米"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "平方英寸"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "平方码"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "平方码"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "平方英里"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "英亩"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "公顷"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "ares",
+ "aliases" : [
+ "公亩"
+ ],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L\/100km",
+ "aliases" : [
+ "升/千米",
+ "千米每升"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "英里/加仑",
+ "英里每加仑"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "瓦特",
+ "瓦"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "毫瓦特",
+ "毫瓦"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "千瓦特",
+ "千瓦"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "兆瓦",
+ "兆瓦特"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "千兆瓦特",
+ "千兆瓦"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "太瓦特",
+ "太瓦"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "马力",
+ "匹"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "千克"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "克"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "毫克"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "毫微克"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "盎司"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "磅"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "英石"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "公吨"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "吨"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "克拉",
+ "开"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "金衡盎司"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "小时"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "秒"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "分",
+ "分钟"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "天"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "工作日"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "周",
+ "星期"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "月",
+ "个月"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "年"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "毫秒"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "微秒"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "毫微秒"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "美元"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "赫兹"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "千赫兹",
+ "千赫"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "兆赫兹",
+ "百万赫兹"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "十亿赫",
+ "吉赫",
+ "千兆赫"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "兆赫",
+ "兆赫兹"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "毫赫兹",
+ "毫赫"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "微赫兹"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "纳米赫兹"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Cities.json
new file mode 100644
index 000000000..c714ed87c
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Cities.json
@@ -0,0 +1,3565 @@
+[
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "上海",
+ "identifier" : "shanghai",
+ "population" : "22,315,474"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊斯坦堡",
+ "identifier" : "istanbul",
+ "population" : "14,804,116"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "布宜諾斯艾利斯",
+ "identifier" : "buenos aires",
+ "population" : "13,076,300"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "孟買",
+ "identifier" : "mumbai",
+ "population" : "12,691,836"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "墨西哥城",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "北京",
+ "identifier" : "beijing",
+ "population" : "11,716,620"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "卡拉奇",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "天津",
+ "identifier" : "tianjin",
+ "population" : "11,090,314"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "廣州",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "新德里",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "莫斯科",
+ "identifier" : "moscow",
+ "population" : "10,381,222"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "深圳",
+ "identifier" : "shenzhen",
+ "population" : "10,358,381"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "達卡",
+ "identifier" : "dhaka",
+ "population" : "10,356,500"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "漢城",
+ "identifier" : "seoul",
+ "population" : "10,349,312"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "聖保羅",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "武漢市",
+ "identifier" : "wuhan",
+ "population" : "9,785,388"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "拉各斯",
+ "identifier" : "lagos",
+ "population" : "9,000,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "雅加達",
+ "identifier" : "jakarta",
+ "population" : "8,540,121"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "東京",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "紐約",
+ "identifier" : "new york",
+ "population" : "8,175,133"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "東莞市",
+ "identifier" : "dongguan",
+ "population" : "8,000,000"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "台北",
+ "identifier" : "taipei",
+ "population" : "7,871,900"
+ },
+ {
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "金夏沙",
+ "identifier" : "kinshasa",
+ "population" : "7,785,965"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "開羅",
+ "identifier" : "cairo",
+ "population" : "7,734,614"
+ },
+ {
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "波哥大",
+ "identifier" : "bogota",
+ "population" : "7,674,366"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "倫敦",
+ "identifier" : "london",
+ "population" : "7,556,900"
+ },
+ {
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "重慶市",
+ "identifier" : "chongqing",
+ "population" : "7,457,600"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "成都市",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "巴格達",
+ "identifier" : "baghdad",
+ "population" : "7,216,000"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南京",
+ "identifier" : "nanjing",
+ "population" : "7,165,292"
+ },
+ {
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "德黑蘭",
+ "identifier" : "tehran",
+ "population" : "7,153,309"
+ },
+ {
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南充",
+ "identifier" : "nanchong",
+ "population" : "7,150,000"
+ },
+ {
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "香港",
+ "identifier" : "hong kong",
+ "population" : "7,012,738"
+ },
+ {
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "西安",
+ "identifier" : "xi'an",
+ "population" : "6,501,190"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "里約熱內盧",
+ "identifier" : "rio de janeiro",
+ "population" : "6,023,699"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "曼谷",
+ "identifier" : "bangkok",
+ "population" : "5,104,476"
+ },
+ {
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "班加羅爾",
+ "identifier" : "bengaluru",
+ "population" : "5,104,047"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "聖彼得堡",
+ "identifier" : "saint petersburg",
+ "population" : "5,028,000"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "聖地亞哥",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "加爾各答",
+ "identifier" : "kolkata",
+ "population" : "4,631,392"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "悉尼",
+ "identifier" : "sydney",
+ "population" : "4,627,345"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "仰光",
+ "identifier" : "yangon",
+ "population" : "4,477,638"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "欽奈",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "墨爾本",
+ "identifier" : "melbourne",
+ "population" : "4,246,375"
+ },
+ {
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "利雅得",
+ "identifier" : "riyadh",
+ "population" : "4,205,961"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "洛杉磯",
+ "identifier" : "los angeles",
+ "population" : "3,971,883"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "吉大港市",
+ "identifier" : "chittagong",
+ "population" : "3,920,222"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "亞歷山德里亞",
+ "identifier" : "alexandria",
+ "population" : "3,811,516"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "艾哈邁達巴德",
+ "identifier" : "ahmedabad",
+ "population" : "3,719,710"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "釜山",
+ "identifier" : "busan",
+ "population" : "3,678,555"
+ },
+ {
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿比讓",
+ "identifier" : "abidjan",
+ "population" : "3,677,115"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "鹿野",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "海得拉巴",
+ "identifier" : "hyderabad",
+ "population" : "3,597,816"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "橫濱",
+ "identifier" : "yokohama",
+ "population" : "3,574,443"
+ },
+ {
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊巴丹島",
+ "identifier" : "ibadan",
+ "population" : "3,565,108"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "新加坡",
+ "identifier" : "singapore",
+ "population" : "3,547,809"
+ },
+ {
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "安卡拉",
+ "identifier" : "ankara",
+ "population" : "3,517,182"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "胡志明市",
+ "identifier" : "ho chi minh city",
+ "population" : "3,467,331"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "開普敦",
+ "identifier" : "cape town",
+ "population" : "3,433,441"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "柏林",
+ "identifier" : "berlin",
+ "population" : "3,426,354"
+ },
+ {
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "馬德里",
+ "identifier" : "madrid",
+ "population" : "3,255,944"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "平壤",
+ "identifier" : "pyongyang",
+ "population" : "3,222,000"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "卡薩布蘭卡",
+ "identifier" : "casablanca",
+ "population" : "3,144,909"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "中山",
+ "identifier" : "zhongshan",
+ "population" : "3,121,275"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "德班",
+ "identifier" : "durban",
+ "population" : "3,120,282"
+ },
+ {
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "喀布爾",
+ "identifier" : "kabul",
+ "population" : "3,043,532"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "烏魯木齊",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "加拉加斯",
+ "identifier" : "caracas",
+ "population" : "3,000,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "迪拜",
+ "identifier" : "dubai",
+ "population" : "2,956,587"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "吉達",
+ "identifier" : "jeddah",
+ "population" : "2,867,446"
+ },
+ {
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "基輔",
+ "identifier" : "kyiv",
+ "population" : "2,797,553"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "羅安達",
+ "identifier" : "luanda",
+ "population" : "2,776,168"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "奎松市",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "亞的斯亞貝巴(埃塞俄比亞首都",
+ "identifier" : "addis ababa",
+ "population" : "2,757,729"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "內羅畢",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "芝加哥",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "薩爾瓦多",
+ "identifier" : "salvador",
+ "population" : "2,711,840"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "達累斯薩拉姆",
+ "identifier" : "dar es salaam",
+ "population" : "2,698,652"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "多倫多",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "大阪",
+ "identifier" : "osaka",
+ "population" : "2,592,413"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "摩加迪沙",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊茲密爾",
+ "identifier" : "izmir",
+ "population" : "2,500,603"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "達喀爾",
+ "identifier" : "dakar",
+ "population" : "2,476,400"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "吉薩",
+ "identifier" : "giza",
+ "population" : "2,443,203"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "福塔雷薩",
+ "identifier" : "fortaleza",
+ "population" : "2,400,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "泗水",
+ "identifier" : "surabaya",
+ "population" : "2,374,658"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "貝洛奧里藏特",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "羅馬",
+ "identifier" : "rome",
+ "population" : "2,318,895"
+ },
+ {
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "馬什哈德",
+ "identifier" : "mashhad",
+ "population" : "2,307,177"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "布魯克林區",
+ "identifier" : "brooklyn",
+ "population" : "2,300,664"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "休斯頓",
+ "identifier" : "houston",
+ "population" : "2,296,224"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "皇后區",
+ "identifier" : "queens",
+ "population" : "2,272,771"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "巴西利亞",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "聖多明哥",
+ "identifier" : "santo domingo",
+ "population" : "2,201,941"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "名古屋",
+ "identifier" : "nagoya",
+ "population" : "2,191,279"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "布里斯班",
+ "identifier" : "brisbane",
+ "population" : "2,189,878"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "哈瓦那",
+ "identifier" : "havana",
+ "population" : "2,163,824"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "巴黎",
+ "identifier" : "paris",
+ "population" : "2,138,551"
+ },
+ {
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "約翰內斯堡",
+ "identifier" : "johannesburg",
+ "population" : "2,026,469"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "阿拉木圖",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "塔什幹",
+ "identifier" : "tashkent",
+ "population" : "1,978,028"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "阿爾及爾",
+ "identifier" : "algiers",
+ "population" : "1,977,663"
+ },
+ {
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "喀土穆",
+ "identifier" : "khartoum",
+ "population" : "1,974,647"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "阿克拉",
+ "identifier" : "accra",
+ "population" : "1,963,264"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "瓜亞基爾",
+ "identifier" : "guayaquil",
+ "population" : "1,952,029"
+ },
+ {
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "薩那",
+ "identifier" : "sanaa",
+ "population" : "1,937,451"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "貝魯特",
+ "identifier" : "beirut",
+ "population" : "1,916,100"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "珀斯",
+ "identifier" : "perth",
+ "population" : "1,896,548"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "札幌",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "布加勒斯特",
+ "identifier" : "bucharest",
+ "population" : "1,877,155"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "卡馬耶納",
+ "identifier" : "camayenne",
+ "population" : "1,871,242"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "科納克里",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "明斯克",
+ "identifier" : "minsk",
+ "population" : "1,742,124"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "布達佩斯",
+ "identifier" : "budapest",
+ "population" : "1,741,041"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢堡",
+ "identifier" : "hamburg",
+ "population" : "1,739,117"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "華沙",
+ "identifier" : "warsaw",
+ "population" : "1,702,139"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "索韋托",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "維也納",
+ "identifier" : "vienna",
+ "population" : "1,691,468"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "拉巴特",
+ "identifier" : "rabat",
+ "population" : "1,655,753"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴塞羅納",
+ "identifier" : "barcelona",
+ "population" : "1,621,537"
+ },
+ {
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "比勒陀利亞",
+ "identifier" : "pretoria",
+ "population" : "1,619,438"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "阿勒頗",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "馬尼拉",
+ "identifier" : "manila",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "蒙特利爾",
+ "identifier" : "montreal",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "卡杜納",
+ "identifier" : "kaduna",
+ "population" : "1,582,102"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "金邊",
+ "identifier" : "phnom penh",
+ "population" : "1,573,544"
+ },
+ {
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "大馬士革",
+ "identifier" : "damascus",
+ "population" : "1,569,394"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "費城",
+ "identifier" : "philadelphia",
+ "population" : "1,567,442"
+ },
+ {
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "鳳凰",
+ "identifier" : "phoenix",
+ "population" : "1,563,025"
+ },
+ {
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "伊斯法罕",
+ "identifier" : "isfahan",
+ "population" : "1,547,164"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "哈拉雷",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "科比",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "斯德哥爾摩",
+ "identifier" : "stockholm",
+ "population" : "1,515,017"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "曼哈頓",
+ "identifier" : "manhattan",
+ "population" : "1,487,536"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "亞松森",
+ "identifier" : "asuncion",
+ "population" : "1,482,200"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "累西腓",
+ "identifier" : "recife",
+ "population" : "1,478,098"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "聖安東尼奧",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "庫馬西",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "哥打巴魯",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "京都",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "吉隆坡",
+ "identifier" : "kuala lumpur",
+ "population" : "1,453,975"
+ },
+ {
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡拉伊",
+ "identifier" : "karaj",
+ "population" : "1,448,075"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "加德滿都",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "河內",
+ "identifier" : "hanoi",
+ "population" : "1,431,270"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "哈爾科夫",
+ "identifier" : "kharkiv",
+ "population" : "1,430,885"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "科爾多瓦",
+ "identifier" : "cordoba",
+ "population" : "1,428,214"
+ },
+ {
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "大不里士",
+ "identifier" : "tabriz",
+ "population" : "1,424,641"
+ },
+ {
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "新西伯利亞",
+ "identifier" : "novosibirsk",
+ "population" : "1,419,007"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "貝倫",
+ "identifier" : "belem",
+ "population" : "1,407,737"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "基多",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "聖地亞哥",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "福岡",
+ "identifier" : "fukuoka",
+ "population" : "1,392,289"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "塔那那利佛",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "布朗克斯",
+ "identifier" : "the bronx",
+ "population" : "1,385,108"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "盧本巴希",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "聖克魯斯-德拉塞拉",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "坎帕拉",
+ "identifier" : "kampala",
+ "population" : "1,353,189"
+ },
+ {
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "葉卡捷琳堡",
+ "identifier" : "yekaterinburg",
+ "population" : "1,349,772"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "杜阿拉",
+ "identifier" : "douala",
+ "population" : "1,338,082"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "沙迦",
+ "identifier" : "sharjah",
+ "population" : "1,324,473"
+ },
+ {
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥加",
+ "identifier" : "mecca",
+ "population" : "1,323,624"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "望加錫",
+ "identifier" : "makassar",
+ "population" : "1,321,717"
+ },
+ {
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "華雷斯",
+ "identifier" : "juarez",
+ "population" : "1,321,004"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "川崎",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "蒂華納",
+ "identifier" : "tijuana",
+ "population" : "1,300,983"
+ },
+ {
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "達拉斯",
+ "identifier" : "dallas",
+ "population" : "1,300,092"
+ },
+ {
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥地那",
+ "identifier" : "medina",
+ "population" : "1,300,000"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "雅溫得",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "巴馬科",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "布拉柴維爾",
+ "identifier" : "brazzaville",
+ "population" : "1,284,609"
+ },
+ {
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "下諾夫哥羅德",
+ "identifier" : "nizhniy novgorod",
+ "population" : "1,284,164"
+ },
+ {
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "安曼",
+ "identifier" : "amman",
+ "population" : "1,275,857"
+ },
+ {
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "貝爾格萊德",
+ "identifier" : "belgrade",
+ "population" : "1,273,651"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "蒙得維的亞",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "盧薩卡",
+ "identifier" : "lusaka",
+ "population" : "1,267,440"
+ },
+ {
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "慕尼黑",
+ "identifier" : "munich",
+ "population" : "1,260,391"
+ },
+ {
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "設拉子",
+ "identifier" : "shiraz",
+ "population" : "1,249,942"
+ },
+ {
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "米蘭",
+ "identifier" : "milan",
+ "population" : "1,236,837"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "太子港",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "阿德萊德",
+ "identifier" : "adelaide",
+ "population" : "1,225,235"
+ },
+ {
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "恩杜曼",
+ "identifier" : "omdurman",
+ "population" : "1,200,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "ita玉",
+ "identifier" : "saitama",
+ "population" : "1,193,350"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬普托",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "布拉格",
+ "identifier" : "prague",
+ "population" : "1,165,581"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "哥本哈根",
+ "identifier" : "copenhagen",
+ "population" : "1,153,615"
+ },
+ {
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "蘇菲亞",
+ "identifier" : "sofia",
+ "population" : "1,152,556"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "的黎波里",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "哈科特港",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "廣島",
+ "identifier" : "hiroshima",
+ "population" : "1,143,841"
+ },
+ {
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "蒙特雷",
+ "identifier" : "monterrey",
+ "population" : "1,135,512"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "薩馬拉",
+ "identifier" : "samara",
+ "population" : "1,134,730"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "鄂木斯克",
+ "identifier" : "omsk",
+ "population" : "1,129,281"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "貝寧市",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "巴庫",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "邁杜古里",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "喀山",
+ "identifier" : "kazan",
+ "population" : "1,104,738"
+ },
+ {
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "葉里溫",
+ "identifier" : "yerevan",
+ "population" : "1,093,485"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "瓦加杜古",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "羅斯托夫納多努",
+ "identifier" : "rostov-na-donu",
+ "population" : "1,074,482"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "車里雅賓斯克",
+ "identifier" : "chelyabinsk",
+ "population" : "1,062,919"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "第比利斯",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "烏法",
+ "identifier" : "ufa",
+ "population" : "1,033,338"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "聖荷西",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "都柏林",
+ "identifier" : "dublin",
+ "population" : "1,024,027"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "卡爾加里",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "布魯塞爾",
+ "identifier" : "brussels",
+ "population" : "1,019,022"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "伏爾加格勒",
+ "identifier" : "volgograd",
+ "population" : "1,011,417"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "敖德薩",
+ "identifier" : "odessa",
+ "population" : "1,001,558"
+ },
+ {
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "危地馬拉城",
+ "identifier" : "guatemala city",
+ "population" : "994,938"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "伯明翰",
+ "identifier" : "birmingham",
+ "population" : "984,333"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "燙髮",
+ "identifier" : "perm",
+ "population" : "982,419"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "扎里亞",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "伊麗莎白港",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "非斯",
+ "identifier" : "fes",
+ "population" : "964,891"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "科隆",
+ "identifier" : "cologne",
+ "population" : "963,395"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "那不勒斯",
+ "identifier" : "naples",
+ "population" : "959,470"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "馬塞約",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "蒙羅維亞",
+ "identifier" : "monrovia",
+ "population" : "939,524"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "金斯頓",
+ "identifier" : "kingston",
+ "population" : "937,700"
+ },
+ {
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧斯丁",
+ "identifier" : "austin",
+ "population" : "931,830"
+ },
+ {
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "克拉斯諾亞爾斯克",
+ "identifier" : "krasnoyarsk",
+ "population" : "927,200"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "特賣",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "庫姆",
+ "identifier" : "qom",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "比什凱克",
+ "identifier" : "bishkek",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿波波",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿壩",
+ "identifier" : "aba",
+ "population" : "897,560"
+ },
+ {
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "門多薩",
+ "identifier" : "mendoza",
+ "population" : "876,884"
+ },
+ {
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "姆布吉馬耶",
+ "identifier" : "mbuji-mayi",
+ "population" : "874,761"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "皮金",
+ "identifier" : "pikine",
+ "population" : "874,062"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "都靈",
+ "identifier" : "turin",
+ "population" : "870,456"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "舊金山",
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "利物浦",
+ "identifier" : "liverpool",
+ "population" : "864,122"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "薩拉托夫",
+ "identifier" : "saratov",
+ "population" : "863,725"
+ },
+ {
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "德古西加巴",
+ "identifier" : "tegucigalpa",
+ "population" : "850,848"
+ },
+ {
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "沃羅涅日",
+ "identifier" : "voronezh",
+ "population" : "848,752"
+ },
+ {
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "烏蘭巴托",
+ "identifier" : "ulan bator",
+ "population" : "844,818"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "阿瓦士",
+ "identifier" : "ahvaz",
+ "population" : "841,145"
+ },
+ {
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "馬拉喀什",
+ "identifier" : "marrakesh",
+ "population" : "839,296"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "登巴薩",
+ "identifier" : "denpasar",
+ "population" : "834,881"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "沃思堡",
+ "identifier" : "fort worth",
+ "population" : "833,319"
+ },
+ {
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "印第安納波利斯",
+ "identifier" : "indianapolis",
+ "population" : "829,718"
+ },
+ {
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "喬斯",
+ "identifier" : "jos",
+ "population" : "816,824"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴倫西亞",
+ "identifier" : "valencia",
+ "population" : "814,208"
+ },
+ {
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊洛林",
+ "identifier" : "ilorin",
+ "population" : "814,192"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "拉巴斯",
+ "identifier" : "la paz",
+ "population" : "215,178"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "渥太華",
+ "identifier" : "ottawa",
+ "population" : "812,129"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "弗里敦",
+ "identifier" : "freetown",
+ "population" : "802,639"
+ },
+ {
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "耶路撒冷",
+ "identifier" : "jerusalem",
+ "population" : "801,000"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "馬斯喀特",
+ "identifier" : "muscat",
+ "population" : "797,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "馬賽",
+ "identifier" : "marseille",
+ "population" : "794,811"
+ },
+ {
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "帕斯拉格德分行",
+ "identifier" : "pasragad branch",
+ "population" : "787,878"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "布默達斯",
+ "identifier" : "boumerdas",
+ "population" : "786,499"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "San Miguel de Tucuman",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "梅里達",
+ "identifier" : "merida",
+ "population" : "777,615"
+ },
+ {
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "尼亞美",
+ "identifier" : "niamey",
+ "population" : "774,235"
+ },
+ {
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡里茲",
+ "identifier" : "kahriz",
+ "population" : "766,706"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "克拉科夫",
+ "identifier" : "krakow",
+ "population" : "755,050"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "峴港市",
+ "identifier" : "da nang",
+ "population" : "752,493"
+ },
+ {
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "彼得馬里茨堡",
+ "identifier" : "pietermaritzburg",
+ "population" : "750,845"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "洛美",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "基加利",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "裡加",
+ "identifier" : "riga",
+ "population" : "742,572"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "阿姆斯特丹",
+ "identifier" : "amsterdam",
+ "population" : "741,636"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "大洋",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "諾丁漢",
+ "identifier" : "nottingham",
+ "population" : "729,977"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "大坎普市",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "阿什哈巴德",
+ "identifier" : "ashgabat",
+ "population" : "727,700"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "恩賈梅納",
+ "identifier" : "n'djamena",
+ "population" : "721,081"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "利沃夫",
+ "identifier" : "lviv",
+ "population" : "717,803"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "埃莫西約",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "埃德蒙頓",
+ "identifier" : "edmonton",
+ "population" : "712,391"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "布拉瓦約",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "薩格勒布",
+ "identifier" : "zagreb",
+ "population" : "698,966"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "阿加迪爾",
+ "identifier" : "agadir",
+ "population" : "698,310"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "薩拉熱窩",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "埃努古",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "丹吉爾",
+ "identifier" : "tangier",
+ "population" : "688,356"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "謝菲爾德",
+ "identifier" : "sheffield",
+ "population" : "685,368"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "西雅圖",
+ "identifier" : "seattle",
+ "population" : "684,451"
+ },
+ {
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "丹佛",
+ "identifier" : "denver",
+ "population" : "682,545"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "埃爾帕索",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "杜尚別",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "底特律",
+ "identifier" : "detroit",
+ "population" : "677,116"
+ },
+ {
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "庫里亞坎人",
+ "identifier" : "culiacan",
+ "population" : "675,773"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬托拉",
+ "identifier" : "matola",
+ "population" : "675,422"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "波斯頓",
+ "identifier" : "boston",
+ "population" : "667,137"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "雅典",
+ "identifier" : "athens",
+ "population" : "664,046"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "努瓦克肖特",
+ "identifier" : "nouakchott",
+ "population" : "661,400"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "黑角",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "孟菲斯",
+ "identifier" : "memphis",
+ "population" : "655,770"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "法蘭克福",
+ "identifier" : "frankfurt am main",
+ "population" : "650,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "克拉斯諾達爾",
+ "identifier" : "krasnodar",
+ "population" : "649,851"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴勒莫",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "科倫坡",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "利隆圭",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "奧蘭",
+ "identifier" : "oran",
+ "population" : "645,984"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "基希訥烏",
+ "identifier" : "chisinau",
+ "population" : "635,994"
+ },
+ {
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "特比薩",
+ "identifier" : "tebessa",
+ "population" : "634,332"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "波特蘭",
+ "identifier" : "portland",
+ "population" : "632,309"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "溫尼伯",
+ "identifier" : "winnipeg",
+ "population" : "632,063"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "俄克拉荷馬城",
+ "identifier" : "oklahoma city",
+ "population" : "631,346"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "坎昆",
+ "identifier" : "cancun",
+ "population" : "628,306"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "吉布地",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "巴爾的摩",
+ "identifier" : "baltimore",
+ "population" : "621,849"
+ },
+ {
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼沙",
+ "identifier" : "kermanshah",
+ "population" : "621,100"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "布里斯托爾",
+ "identifier" : "bristol",
+ "population" : "617,280"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "貝諾尼",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "阿布扎比",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "華盛頓州",
+ "identifier" : "washington",
+ "population" : "601,723"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "密爾沃基",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "溫哥華",
+ "identifier" : "vancouver",
+ "population" : "600,000"
+ },
+ {
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "巴瑙爾",
+ "identifier" : "barnaul",
+ "population" : "599,579"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "鹿特丹",
+ "identifier" : "rotterdam",
+ "population" : "598,199"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "拉什特",
+ "identifier" : "rasht",
+ "population" : "594,590"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿倍庫塔",
+ "identifier" : "abeokuta",
+ "population" : "593,100"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "埃森",
+ "identifier" : "essen",
+ "population" : "593,085"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "格拉斯哥",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "黃金海岸",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿布賈",
+ "identifier" : "abuja",
+ "population" : "590,400"
+ },
+ {
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "斯圖加特",
+ "identifier" : "stuttgart",
+ "population" : "589,793"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "多特蒙德",
+ "identifier" : "dortmund",
+ "population" : "588,462"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "海參div",
+ "identifier" : "vladivostok",
+ "population" : "587,022"
+ },
+ {
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "伊爾庫茨克",
+ "identifier" : "irkutsk",
+ "population" : "586,695"
+ },
+ {
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "布蘭太爾",
+ "identifier" : "blantyre",
+ "population" : "584,877"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "熱那亞",
+ "identifier" : "genoa",
+ "population" : "580,223"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "奧斯陸",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "利伯維爾",
+ "identifier" : "libreville",
+ "population" : "578,156"
+ },
+ {
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼",
+ "identifier" : "kerman",
+ "population" : "577,514"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜塞爾多夫",
+ "identifier" : "duesseldorf",
+ "population" : "573,057"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "古晉",
+ "identifier" : "kuching",
+ "population" : "570,407"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "阿爾伯克基",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "赫爾辛基",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "亞丁",
+ "identifier" : "aden",
+ "population" : "550,602"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "奧倫堡",
+ "identifier" : "orenburg",
+ "population" : "550,204"
+ },
+ {
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "普里什蒂納",
+ "identifier" : "pristina",
+ "population" : "550,000"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "不來梅",
+ "identifier" : "bremen",
+ "population" : "546,501"
+ },
+ {
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "維爾紐斯",
+ "identifier" : "vilnius",
+ "population" : "542,366"
+ },
+ {
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "納什維爾",
+ "identifier" : "nashville",
+ "population" : "530,852"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "魁北克",
+ "identifier" : "quebec",
+ "population" : "528,595"
+ },
+ {
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "聖薩爾瓦多",
+ "identifier" : "san salvador",
+ "population" : "525,990"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "澳門",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "秋明州",
+ "identifier" : "tyumen",
+ "population" : "519,119"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "里斯本",
+ "identifier" : "lisbon",
+ "population" : "517,802"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢諾威",
+ "identifier" : "hannover",
+ "population" : "515,140"
+ },
+ {
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "薩爾塔",
+ "identifier" : "salta",
+ "population" : "512,686"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "萊斯特",
+ "identifier" : "leicester",
+ "population" : "508,916"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "萊比錫",
+ "identifier" : "leipzig",
+ "population" : "504,971"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜伊斯堡",
+ "identifier" : "duisburg",
+ "population" : "504,358"
+ },
+ {
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "阿斯特拉罕",
+ "identifier" : "astrakhan",
+ "population" : "502,533"
+ },
+ {
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "紐倫堡",
+ "identifier" : "nuernberg",
+ "population" : "499,237"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "德累斯頓",
+ "identifier" : "dresden",
+ "population" : "486,854"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "托木斯克",
+ "identifier" : "tomsk",
+ "population" : "485,519"
+ },
+ {
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "亞茲德",
+ "identifier" : "yazd",
+ "population" : "477,905"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "堪薩斯城",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "斯科普里",
+ "identifier" : "skopje",
+ "population" : "474,889"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "海牙",
+ "identifier" : "the hague",
+ "population" : "474,292"
+ },
+ {
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里昂",
+ "identifier" : "lyon",
+ "population" : "472,317"
+ },
+ {
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "愛丁堡",
+ "identifier" : "edinburgh",
+ "population" : "464,990"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "安特衛普",
+ "identifier" : "antwerpen",
+ "population" : "459,805"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "坤甸",
+ "identifier" : "pontianak",
+ "population" : "455,173"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "利茲",
+ "identifier" : "leeds",
+ "population" : "455,123"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "加的夫",
+ "identifier" : "cardiff",
+ "population" : "447,287"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "聖胡安",
+ "identifier" : "san juan",
+ "population" : "418,140"
+ },
+ {
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧馬哈",
+ "identifier" : "omaha",
+ "population" : "443,885"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "家樂福",
+ "identifier" : "carrefour",
+ "population" : "442,156"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "邁阿密",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "加里寧格勒",
+ "identifier" : "kaliningrad",
+ "population" : "434,954"
+ },
+ {
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "圖盧茲",
+ "identifier" : "toulouse",
+ "population" : "433,055"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "特拉維夫",
+ "identifier" : "tel aviv",
+ "population" : "432,892"
+ },
+ {
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "東耶路撒冷",
+ "identifier" : "east jerusalem",
+ "population" : "428,304"
+ },
+ {
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "布拉迪斯拉發",
+ "identifier" : "bratislava",
+ "population" : "423,737"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "奧克蘭市",
+ "identifier" : "auckland",
+ "population" : "417,910"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "塞瓦斯托波爾",
+ "identifier" : "sevastopol",
+ "population" : "416,263"
+ },
+ {
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "明尼阿波利斯",
+ "identifier" : "minneapolis",
+ "population" : "410,939"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "加沙",
+ "identifier" : "gaza",
+ "population" : "410,000"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "庫爾斯克",
+ "identifier" : "kursk",
+ "population" : "409,431"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "巴拿馬",
+ "identifier" : "panama",
+ "population" : "408,168"
+ },
+ {
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "塔爾薩",
+ "identifier" : "tulsa",
+ "population" : "403,505"
+ },
+ {
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "特維爾",
+ "identifier" : "tver",
+ "population" : "400,212"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "曼徹斯特",
+ "identifier" : "manchester",
+ "population" : "395,515"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "塔林",
+ "identifier" : "tallinn",
+ "population" : "394,024"
+ },
+ {
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "坎大哈",
+ "identifier" : "kandahar",
+ "population" : "391,190"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "威奇托",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "新奧爾良",
+ "identifier" : "new orleans",
+ "population" : "389,617"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "惠靈頓",
+ "identifier" : "wellington",
+ "population" : "381,900"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "大加那利島拉斯帕爾馬斯",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "馬薩特蘭",
+ "identifier" : "mazatlan",
+ "population" : "381,583"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "地拉那",
+ "identifier" : "tirana",
+ "population" : "374,801"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "考納斯",
+ "identifier" : "kaunas",
+ "population" : "374,643"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "火奴魯魯",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "堪培拉",
+ "identifier" : "canberra",
+ "population" : "367,752"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "博洛尼亞",
+ "identifier" : "bologna",
+ "population" : "366,133"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "基督城",
+ "identifier" : "christchurch",
+ "population" : "363,926"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "哈利法克斯",
+ "identifier" : "halifax",
+ "population" : "359,111"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "安汶",
+ "identifier" : "ambon",
+ "population" : "355,596"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "佛羅倫斯",
+ "identifier" : "florence",
+ "population" : "349,296"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "多哈",
+ "identifier" : "doha",
+ "population" : "344,939"
+ },
+ {
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "蘇黎世",
+ "identifier" : "zurich",
+ "population" : "341,730"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "好啊",
+ "identifier" : "nice",
+ "population" : "338,620"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "辛菲羅波爾",
+ "identifier" : "simferopol",
+ "population" : "336,460"
+ },
+ {
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "特皮克",
+ "identifier" : "tepic",
+ "population" : "332,863"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "索契",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "斯摩棱斯克",
+ "identifier" : "smolensk",
+ "population" : "320,991"
+ },
+ {
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "撒馬爾罕",
+ "identifier" : "samarkand",
+ "population" : "319,366"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "摩爾曼斯克",
+ "identifier" : "murmansk",
+ "population" : "319,263"
+ },
+ {
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "弗拉季卡夫卡茲",
+ "identifier" : "vladikavkaz",
+ "population" : "317,370"
+ },
+ {
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "赤太",
+ "identifier" : "chita",
+ "population" : "308,500"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "新城堡",
+ "identifier" : "newcastle",
+ "population" : "308,308"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "韋略港",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "聖薩爾瓦多·德胡胡伊",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "匹茲堡",
+ "identifier" : "pittsburgh",
+ "population" : "304,391"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "布雷斯特",
+ "identifier" : "brest",
+ "population" : "144,899"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "錨地",
+ "identifier" : "anchorage",
+ "population" : "298,695"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "辛辛那提",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "臥龍崗市",
+ "identifier" : "wollongong",
+ "population" : "292,190"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "卡塔尼亞",
+ "identifier" : "catania",
+ "population" : "290,927"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "烏特勒支",
+ "identifier" : "utrecht",
+ "population" : "290,529"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "維多利亞州",
+ "identifier" : "victoria",
+ "population" : "289,625"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "莫爾茲比港",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "洛根市",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴里",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "南特",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "史特拉斯堡",
+ "identifier" : "strasbourg",
+ "population" : "274,845"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "貝爾法斯特",
+ "identifier" : "belfast",
+ "population" : "274,770"
+ },
+ {
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "盧布爾雅那",
+ "identifier" : "ljubljana",
+ "population" : "272,220"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "奧蘭多",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "彼得羅扎沃茨克",
+ "identifier" : "petrozavodsk",
+ "population" : "265,025"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "普利茅斯",
+ "identifier" : "plymouth",
+ "population" : "260,203"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "里約布蘭科",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "洛斯·莫奇斯",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "波爾圖",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "麥迪遜",
+ "identifier" : "madison",
+ "population" : "248,951"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "蒙彼利埃",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "奧胡斯",
+ "identifier" : "arhus",
+ "population" : "237,551"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "雅庫茨克",
+ "identifier" : "yakutsk",
+ "population" : "235,600"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "喬治敦",
+ "identifier" : "georgetown",
+ "population" : "235,017"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "波爾多",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "根特",
+ "identifier" : "gent",
+ "population" : "231,493"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "巴吞魯日",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里爾",
+ "identifier" : "lille",
+ "population" : "228,328"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "拿騷",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "吉朗",
+ "identifier" : "geelong",
+ "population" : "226,034"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "帕拉馬里博",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "聖克魯斯-德特內里費",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "格拉茨",
+ "identifier" : "graz",
+ "population" : "222,326"
+ },
+ {
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "墨西拿",
+ "identifier" : "messina",
+ "population" : "219,948"
+ },
+ {
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "維羅納",
+ "identifier" : "verona",
+ "population" : "219,103"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "霍巴特",
+ "identifier" : "hobart",
+ "population" : "216,656"
+ },
+ {
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "諾維薩德",
+ "identifier" : "novi sad",
+ "population" : "215,400"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "卑爾根",
+ "identifier" : "bergen",
+ "population" : "213,585"
+ },
+ {
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "得梅因",
+ "identifier" : "des moines",
+ "population" : "210,330"
+ },
+ {
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "科斯塔奈",
+ "identifier" : "kostanay",
+ "population" : "210,000"
+ },
+ {
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "林茲",
+ "identifier" : "linz",
+ "population" : "204,846"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕多瓦",
+ "identifier" : "padova",
+ "population" : "203,725"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "普斯科夫",
+ "identifier" : "pskov",
+ "population" : "201,990"
+ },
+ {
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "清邁",
+ "identifier" : "chiang mai",
+ "population" : "200,952"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "尼科西亞",
+ "identifier" : "nicosia",
+ "population" : "200,452"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "口服",
+ "identifier" : "oral",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "奧什",
+ "identifier" : "osh",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "薩斯卡通",
+ "identifier" : "saskatoon",
+ "population" : "198,958"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "小石頭",
+ "identifier" : "little rock",
+ "population" : "197,992"
+ },
+ {
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "萬象",
+ "identifier" : "vientiane",
+ "population" : "196,731"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "香港仔",
+ "identifier" : "aberdeen",
+ "population" : "196,670"
+ },
+ {
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "帕爾馬斯",
+ "identifier" : "palmas",
+ "population" : "196,272"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "湯斯維爾",
+ "identifier" : "townsville",
+ "population" : "196,219"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "鹽湖城",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "軟木",
+ "identifier" : "cork",
+ "population" : "190,384"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "塔拉哈西",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "聖塔倫",
+ "identifier" : "santarem",
+ "population" : "189,047"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "卡塔馬卡聖費爾南多·德爾瓦萊",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "的里雅斯特",
+ "identifier" : "trieste",
+ "population" : "187,056"
+ },
+ {
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "聖路易斯",
+ "identifier" : "san luis",
+ "population" : "183,982"
+ },
+ {
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "日內瓦",
+ "identifier" : "geneva",
+ "population" : "183,981"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "阿特勞",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "庫塔伊西",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "南薩哈林斯克",
+ "identifier" : "yuzhno-sakhalinsk",
+ "population" : "176,484"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "分裂",
+ "identifier" : "split",
+ "population" : "176,314"
+ },
+ {
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "里賈納",
+ "identifier" : "regina",
+ "population" : "176,183"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "圖爾庫",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "牛津",
+ "identifier" : "oxford",
+ "population" : "171,380"
+ },
+ {
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "傑克遜",
+ "identifier" : "jackson",
+ "population" : "170,674"
+ },
+ {
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "斯普林菲爾德",
+ "identifier" : "springfield",
+ "population" : "166,810"
+ },
+ {
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "巴塞爾",
+ "identifier" : "basel",
+ "population" : "164,488"
+ },
+ {
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "拉里奧哈",
+ "identifier" : "la rioja",
+ "population" : "162,620"
+ },
+ {
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "希伯倫",
+ "identifier" : "hebron",
+ "population" : "160,470"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "摩德納",
+ "identifier" : "modena",
+ "population" : "158,886"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "劍橋",
+ "identifier" : "cambridge",
+ "population" : "158,434"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "弗里斯科",
+ "identifier" : "frisco",
+ "population" : "154,407"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "帕薩迪納",
+ "identifier" : "pasadena",
+ "population" : "153,784"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "約克",
+ "identifier" : "york",
+ "population" : "153,717"
+ },
+ {
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "薩爾茨堡",
+ "identifier" : "salzburg",
+ "population" : "153,377"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "凱恩斯",
+ "identifier" : "cairns",
+ "population" : "153,075"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "漢密爾頓",
+ "identifier" : "hamilton",
+ "population" : "152,641"
+ },
+ {
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "拉古納",
+ "identifier" : "la laguna",
+ "population" : "150,661"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "帝力",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "第戎",
+ "identifier" : "dijon",
+ "population" : "149,782"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "烏普薩拉",
+ "identifier" : "uppsala",
+ "population" : "149,245"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "特隆赫姆",
+ "identifier" : "trondheim",
+ "population" : "147,139"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "麥納麥",
+ "identifier" : "manama",
+ "population" : "147,074"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕爾馬",
+ "identifier" : "parma",
+ "population" : "146,299"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "博伊西",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "歐登塞",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "亞眠",
+ "identifier" : "amiens",
+ "population" : "143,086"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "旅遊團",
+ "identifier" : "tours",
+ "population" : "141,621"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "波德戈里察",
+ "identifier" : "podgorica",
+ "population" : "136,473"
+ },
+ {
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "因斯布魯克",
+ "identifier" : "innsbruck",
+ "population" : "132,493"
+ },
+ {
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "圖文巴",
+ "identifier" : "toowoomba",
+ "population" : "131,258"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "達爾文",
+ "identifier" : "darwin",
+ "population" : "129,062"
+ },
+ {
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "伯爾尼",
+ "identifier" : "bern",
+ "population" : "121631"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..a4cdeb723
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json
@@ -0,0 +1,229 @@
+{
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "100的10%",
+ "100 的 10%"
+ ],
+ "identifier": "reversedPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "100減少10%",
+ "100 減少 10%"
+ ],
+ "identifier": "reversedPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "100加上10%",
+ "100 加上 10%"
+ ],
+ "identifier": "reversedPercentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼的20%",
+ "30 是甚麼的 20%"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "甚麼的20%等於30",
+ "甚麼的 20% 等於 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼減少20%"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "減少20%之後是30",
+ "減少 20% 之後是 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼加上20%",
+ "30 是甚麼加上 20%"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20%加上甚麼是30",
+ "20% 加上甚麼是 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20的多少%",
+ "10 是 20 的多少%",
+ "10佔20的幾%",
+ "10 佔 20 的幾%"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20裡減少多少%",
+ "10 是 20 裡減少多少%"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20是10加上多少的%",
+ "20 是 10 加上多少的%",
+ "20為10增加%",
+ "20 為 10 增加%"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "20除以3的餘數",
+ "20 除以 3 的餘數"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "20的一半",
+ "20 的一半"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最小",
+ "2 和 30 哪個最小",
+ "2和30比較小的",
+ "2 和 30 比較小的"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最大",
+ "2和30比較大的",
+ "2 和 30 哪個最大",
+ "2 和 30 比較大的"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2 和 32 的中間數",
+ "2和32的中間數"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是幾分之8",
+ "相比 6 比 600 是幾分之 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是8分之幾",
+ "相比 6 比 600 是 8 分之幾"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "1到5之間的隨機數",
+ "1 到 5 之間的隨機數",
+ "1 到 5 中的隨機數",
+ "1到5中的隨機數"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit_expression 中的 __unit"
+ ],
+ "identifier": "unitInUnitExpression"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__datestamp 和 __datestamp 之間的 __unit",
+ "由 __datestamp 至 __datestamp 的 __unit",
+ "__datestamp 至 __datestamp 中的 __unit"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit 至 __datestamp",
+ "__unit 之前 __datestamp",
+ "__unit 直到 __datestamp",
+ "__unit 直到 __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp 至 __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp 至 __timestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitSinceDate",
+ "prototypeExpressions": [
+ "__unit 自從 __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan 由 __datestamp",
+ "__timespan 之後 __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "新時間標記"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone 的時間",
+ "時間於 __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "在 __timezone 與 __timezone 中的時差",
+ "__timezone 和 __timezone 之間的時差",
+ "在 __timezone 和 __timezone 中的時差",
+ "__timezone 和 __timezone 的時差"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.strings
new file mode 100644
index 000000000..57a077d31
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..0abc9d8a4
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..4d6ae1492
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json
@@ -0,0 +1,132 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "位數"
+ ],
+ "multiplierTypes": [
+ "倍數"
+ ],
+ "divisionOperators": [
+ "÷",
+ "每"
+ ],
+ "roundingConverters": [
+ "數值簡化"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "tomorrowDateAliases": [
+ "明天"
+ ],
+ "laptimeTypes": [
+ "圈速"
+ ],
+ "roundingDownConverters": [
+ "下舍入"
+ ],
+ "numberTypes": [
+ "數目"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "dateTypes": [
+ "日期"
+ ],
+ "roundingUpConverters": [
+ "上舍入"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "todayDateAliases": [
+ "今天"
+ ],
+ "timestampTypes": [
+ "時間標記"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "additionOperators": [
+ "加"
+ ],
+ "timespanTypes": [
+ "時距"
+ ],
+ "yesterdayDateAliases": [
+ "昨天"
+ ],
+ "converterSymbols": [
+ "到",
+ "當成"
+ ],
+ "nowDateAliases": [
+ "現在"
+ ],
+ "monthOfYearDateAliases": [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月",
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+ ],
+ "fractionTypes": [
+ "分數"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "週一",
+ "週二",
+ "週二",
+ "週三",
+ "週四",
+ "週五",
+ "週六",
+ "週日"
+ ],
+ "percentTypes": [
+ "百分率"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..026b38932
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json
@@ -0,0 +1,1588 @@
+{
+ "energy" : [
+ {
+ "symbol" : "J",
+ "aliases" : [
+ "焦耳",
+ "焦耳"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "kJ",
+ "aliases" : [
+ "千焦耳",
+ "千焦耳"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "mJ",
+ "aliases" : [
+ "百萬焦耳",
+ "百萬焦耳"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "gJ",
+ "aliases" : [
+ "吉焦耳",
+ "吉焦耳"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "cal",
+ "aliases" : [
+ "卡路里",
+ "卡路里"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "kCal",
+ "aliases" : [
+ "千卡路里",
+ "千卡路里"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "Wh",
+ "aliases" : [
+ "瓦時",
+ "watt hours"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "W m",
+ "aliases" : [
+ "瓦分",
+ "瓦分"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "W s",
+ "aliases" : [
+ "瓦秒",
+ "瓦秒"
+ ],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "kWh",
+ "aliases" : [
+ "千瓦時",
+ "千瓦時"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "MWh",
+ "aliases" : [
+ "百萬瓦時",
+ "百萬瓦時"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "GWh",
+ "aliases" : [
+ "吉瓦時",
+ "吉瓦時"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "TWh",
+ "aliases" : [
+ "兆瓦時",
+ "兆瓦時"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "ML",
+ "aliases" : [
+ "百萬升",
+ "百萬升",
+ "公升",
+ "公升",
+ "ML"
+ ],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "kL",
+ "aliases" : [
+ "千升",
+ "千升",
+ "千升",
+ "千升",
+ "kL"
+ ],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "L",
+ "aliases" : [
+ "升",
+ "升",
+ "升",
+ "升",
+ "L"
+ ],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "mL",
+ "aliases" : [
+ "毫升",
+ "毫升",
+ "毫升",
+ "毫升",
+ "mL"
+ ],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "km³",
+ "aliases" : [
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "公里^3",
+ "公里^3",
+ "公里³",
+ "公里³",
+ "公里³",
+ "公里³",
+ "km3",
+ "km^3"
+ ],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "m³",
+ "aliases" : [
+ "立方公尺",
+ "立方公尺",
+ "立方米",
+ "立方米",
+ "m3",
+ "m^3",
+ "米³",
+ "米³",
+ "米³",
+ "米³"
+ ],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "cm³",
+ "aliases" : [
+ "立方公分",
+ "立方公分",
+ "立方厘米",
+ "立方厘米",
+ "cm3",
+ "cm^3",
+ "厘米³"
+ ],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "mm³",
+ "aliases" : [
+ "立方公釐",
+ "立方公釐",
+ "立方毫米",
+ "立方毫米",
+ "mm3",
+ "mm^3"
+ ],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "in³",
+ "aliases" : [
+ "立方吋",
+ "立方吋",
+ "吋³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "ft³",
+ "aliases" : [
+ "立方尺",
+ "立方尺",
+ "cuft",
+ "尺³",
+ "ft3",
+ "ft^3"
+ ],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "yd³",
+ "aliases" : [
+ "立方碼",
+ "立方碼",
+ "yd³",
+ "碼³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "mi³",
+ "aliases" : [
+ "立方英里",
+ "立方英里",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "英里³",
+ "英里^3",
+ "英里^3"
+ ],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "bsh",
+ "aliases" : [
+ "蒲式耳",
+ "蒲式耳"
+ ],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "metric cup",
+ "aliases" : [
+ "公制杯",
+ "公制杯"
+ ],
+ "identifier" : "metricCups"
+ },
+ {
+ "symbol" : "cup",
+ "aliases" : [
+ "美制杯",
+ "美制杯"
+ ],
+ "identifier" : "cups"
+ },
+ {
+ "symbol" : "af",
+ "aliases" : [
+ "英畝英尺",
+ "英畝英尺"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "品脫",
+ "品脫"
+ ],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "qt",
+ "aliases" : [
+ "夸脫",
+ "夸脫"
+ ],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "gal",
+ "aliases" : [
+ "加侖",
+ "加侖",
+ "gal"
+ ],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "tbsp",
+ "aliases" : [
+ "湯匙",
+ "湯匙",
+ "tbsp"
+ ],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "tsp",
+ "aliases" : [
+ "茶匙",
+ "茶匙",
+ "tsp"
+ ],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "fl oz",
+ "aliases" : [
+ "液盎司",
+ "液盎司",
+ "floz"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "B",
+ "aliases" : [
+ "位元組",
+ "位元組"
+ ],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "bit",
+ "aliases" : [
+ "位元",
+ "位元"
+ ],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "YB",
+ "aliases" : [
+ "佑位元組",
+ "佑位元組"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "ZB",
+ "aliases" : [
+ "皆位元組",
+ "皆位元組"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "EB",
+ "aliases" : [
+ "艾位元組",
+ "艾位元組"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "拍位元組",
+ "拍位元組"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "兆位元組",
+ "兆位元組",
+ "TB",
+ "tb"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "吉位元組",
+ "吉位元組",
+ "GB",
+ "gb"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "百萬位元組",
+ "百萬位元組",
+ "MB",
+ "mb"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "千位元組",
+ "千位元組",
+ "KB",
+ "kb"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "佑位元",
+ "佑位元",
+ "Ybit"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "皆位元",
+ "皆位元",
+ "Zbit"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "艾位元",
+ "艾位元",
+ "Ebit"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "拍位元",
+ "拍位元",
+ "Pbit"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "兆位元",
+ "兆位元",
+ "Tbit"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "吉位元",
+ "吉位元",
+ "Gbit"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "百萬位元",
+ "百萬位元",
+ "Mbit"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "千位元",
+ "千位元",
+ "Kbit",
+ "Kb"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [
+ "二進位佑位元組",
+ "二進位佑位元組",
+ "YiB"
+ ],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [
+ "二進位皆位元組",
+ "二進位皆位元組",
+ "ZiB"
+ ],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [
+ "二進位艾位元組",
+ "二進位艾位元組",
+ "EiB"
+ ],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [
+ "二進位拍位元組",
+ "二進位拍位元組",
+ "PiB"
+ ],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [
+ "二進位兆位元組",
+ "二進位兆位元組",
+ "TiB"
+ ],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [
+ "二進位吉位元組",
+ "二進位吉位元組",
+ "GiB"
+ ],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [
+ "二進位百萬位元組",
+ "二進位百萬位元組",
+ "MiB"
+ ],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [
+ "二進位千位元組",
+ "二進位千位元組",
+ "KiB"
+ ],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [
+ "二進位佑位元",
+ "二進位佑位元",
+ "Yibit"
+ ],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [
+ "二進位皆位元",
+ "二進位皆位元",
+ "Zibit"
+ ],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "二進位艾位元",
+ "二進位艾位元",
+ "Eibit"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [
+ "二進位拍位元",
+ "二進位拍位元",
+ "Pibit"
+ ],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [
+ "二進位兆位元",
+ "二進位兆位元",
+ "Tibit"
+ ],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [
+ "二進位吉位元",
+ "二進位吉位元",
+ "Gibit"
+ ],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [
+ "二進位百萬位元",
+ "二進位百萬位元",
+ "Mibit"
+ ],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [
+ "二進位千位元",
+ "二進位千位元",
+ "Kibit"
+ ],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "克耳文"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "攝氏溫度",
+ "攝氏溫度",
+ "ºC",
+ "C",
+ "degC",
+ "攝氏"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "華氏溫標",
+ "華氏溫標",
+ "ºF",
+ "F",
+ "degF",
+ "華氏"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "gBps"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "mBps"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "kBps"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "Pbps"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "tbps"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "gbps"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "mbps"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "kbps"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "m/s",
+ "aliases" : [
+ "公尺每秒",
+ "公尺每秒",
+ "米每秒",
+ "米每秒"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "km/h",
+ "aliases" : [
+ "公里每小時",
+ "公里每小時",
+ "公里每小時",
+ "公里每小時"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "mph",
+ "aliases" : [
+ "英里每小時",
+ "英里每小時"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "kn",
+ "aliases" : [
+ "節",
+ "節"
+ ],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "度",
+ "度"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "弧度",
+ "弧度"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "公尺",
+ "公尺",
+ "米",
+ "米"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "公里",
+ "公里",
+ "公里",
+ "公里"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "公分",
+ "公分",
+ "厘米",
+ "厘米"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "公釐",
+ "公釐",
+ "毫米",
+ "毫米"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "微米",
+ "微米",
+ "微米",
+ "微米"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "奈米",
+ "奈米",
+ "奈米",
+ "奈米"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "吋",
+ "吋"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "尺",
+ "尺"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "碼",
+ "碼"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "哩",
+ "哩"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "光年",
+ "光年"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "秒差距",
+ "秒差距"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "海里",
+ "海里"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "噚",
+ "噚"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "化朗",
+ "化朗"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "像素",
+ "像素"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pts"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "公里²",
+ "公里²",
+ "公里²",
+ "公里²",
+ "km^2",
+ "km2"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "平方公尺",
+ "平方公尺",
+ "平方米",
+ "平方米",
+ "m^2",
+ "米^2",
+ "米^2",
+ "公尺^2",
+ "公尺^2",
+ "公尺²",
+ "公尺²",
+ "米²",
+ "米²",
+ "m2"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "平方公分",
+ "平方公分",
+ "平方厘米",
+ "平方厘米",
+ "厘米^2",
+ "厘米²",
+ "公分^2",
+ "公分²",
+ "cm^2",
+ "cm2"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "平方公釐",
+ "平方公釐",
+ "平方毫米",
+ "平方毫米",
+ "公釐^2",
+ "公釐²",
+ "毫米^2",
+ "毫米²",
+ "mm^2",
+ "mm2"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "微米^2",
+ "微米²",
+ "微米^2",
+ "微米²",
+ "µm^2",
+ "µm2"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "平方吋",
+ "平方吋",
+ "sqin",
+ "吋^2",
+ "in2",
+ "吋²"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "平方尺",
+ "平方尺",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "尺^2",
+ "尺²"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "平方碼",
+ "平方碼",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "碼^2",
+ "碼²",
+ "sqyd"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "平方哩",
+ "平方哩",
+ "mi^2",
+ "mi2",
+ "哩^2",
+ "哩^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "哩²"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "英畝",
+ "英畝",
+ "ac"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "公頃",
+ "公頃",
+ "ha"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "公畝",
+ "aliases" : [],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L/100km",
+ "aliases" : [
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "每加侖英里"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "瓦特",
+ "瓦特"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "毫瓦",
+ "毫瓦"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "千瓦",
+ "千瓦"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "百萬瓦",
+ "百萬瓦"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "吉瓦",
+ "吉瓦"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "兆瓦",
+ "兆瓦"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "馬力"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "公斤",
+ "公斤"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "克",
+ "克"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "微克",
+ "微克"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "奈克",
+ "奈克"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "盎司",
+ "盎司"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "lbs",
+ "磅",
+ "磅"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "石",
+ "石"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "公頓",
+ "公頓"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "短噸",
+ "短噸",
+ "噸",
+ "美噸",
+ "美噸"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "克拉",
+ "克拉"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "金衡盎司",
+ "金衡盎司"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "小時",
+ "小時",
+ "hrs",
+ "h"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "秒",
+ "秒",
+ "sec",
+ "secs"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "分",
+ "分",
+ "mins"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "日"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "平日",
+ "平日",
+ "工作日",
+ "平日",
+ "平日",
+ "工作日"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "週"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "月"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "年"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "毫秒",
+ "毫秒"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "微秒",
+ "微秒"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "奈秒",
+ "奈秒"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "美元"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "赫茲",
+ "hz"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "千赫茲"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "百萬赫茲"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "吉赫茲"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "兆赫茲"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "毫赫茲"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "微赫茲"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "奈赫茲"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Headers b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Headers
new file mode 120000
index 000000000..a177d2a6b
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Modules b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Modules
new file mode 120000
index 000000000..5736f3186
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Modules
@@ -0,0 +1 @@
+Versions/Current/Modules
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Resources b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Resources
new file mode 120000
index 000000000..953ee36f3
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/SoulverCore b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/SoulverCore
new file mode 120000
index 000000000..cd111c741
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/SoulverCore
@@ -0,0 +1 @@
+Versions/Current/SoulverCore
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h
new file mode 100644
index 000000000..c8858af55
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore-Swift.h
@@ -0,0 +1,292 @@
+// Generated by Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wgcc-compat"
+
+#if !defined(__has_include)
+# define __has_include(x) 0
+#endif
+#if !defined(__has_attribute)
+# define __has_attribute(x) 0
+#endif
+#if !defined(__has_feature)
+# define __has_feature(x) 0
+#endif
+#if !defined(__has_warning)
+# define __has_warning(x) 0
+#endif
+
+#if __has_include()
+# include
+#endif
+
+#pragma clang diagnostic ignored "-Wauto-import"
+#include
+#include
+#include
+#include
+
+#if !defined(SWIFT_TYPEDEFS)
+# define SWIFT_TYPEDEFS 1
+# if __has_include()
+# include
+# elif !defined(__cplusplus)
+typedef uint_least16_t char16_t;
+typedef uint_least32_t char32_t;
+# endif
+typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
+typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
+typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
+typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
+typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
+typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
+typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
+typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
+typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
+typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
+typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
+typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
+#endif
+
+#if !defined(SWIFT_PASTE)
+# define SWIFT_PASTE_HELPER(x, y) x##y
+# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
+#endif
+#if !defined(SWIFT_METATYPE)
+# define SWIFT_METATYPE(X) Class
+#endif
+#if !defined(SWIFT_CLASS_PROPERTY)
+# if __has_feature(objc_class_property)
+# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
+# else
+# define SWIFT_CLASS_PROPERTY(...)
+# endif
+#endif
+
+#if __has_attribute(objc_runtime_name)
+# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
+#else
+# define SWIFT_RUNTIME_NAME(X)
+#endif
+#if __has_attribute(swift_name)
+# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
+#else
+# define SWIFT_COMPILE_NAME(X)
+#endif
+#if __has_attribute(objc_method_family)
+# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
+#else
+# define SWIFT_METHOD_FAMILY(X)
+#endif
+#if __has_attribute(noescape)
+# define SWIFT_NOESCAPE __attribute__((noescape))
+#else
+# define SWIFT_NOESCAPE
+#endif
+#if __has_attribute(ns_consumed)
+# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
+#else
+# define SWIFT_RELEASES_ARGUMENT
+#endif
+#if __has_attribute(warn_unused_result)
+# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+# define SWIFT_WARN_UNUSED_RESULT
+#endif
+#if __has_attribute(noreturn)
+# define SWIFT_NORETURN __attribute__((noreturn))
+#else
+# define SWIFT_NORETURN
+#endif
+#if !defined(SWIFT_CLASS_EXTRA)
+# define SWIFT_CLASS_EXTRA
+#endif
+#if !defined(SWIFT_PROTOCOL_EXTRA)
+# define SWIFT_PROTOCOL_EXTRA
+#endif
+#if !defined(SWIFT_ENUM_EXTRA)
+# define SWIFT_ENUM_EXTRA
+#endif
+#if !defined(SWIFT_CLASS)
+# if __has_attribute(objc_subclassing_restricted)
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# else
+# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
+# endif
+#endif
+#if !defined(SWIFT_RESILIENT_CLASS)
+# if __has_attribute(objc_class_stub)
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# else
+# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
+# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
+# endif
+#endif
+
+#if !defined(SWIFT_PROTOCOL)
+# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
+#endif
+
+#if !defined(SWIFT_EXTENSION)
+# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
+#endif
+
+#if !defined(OBJC_DESIGNATED_INITIALIZER)
+# if __has_attribute(objc_designated_initializer)
+# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+# else
+# define OBJC_DESIGNATED_INITIALIZER
+# endif
+#endif
+#if !defined(SWIFT_ENUM_ATTR)
+# if defined(__has_attribute) && __has_attribute(enum_extensibility)
+# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
+# else
+# define SWIFT_ENUM_ATTR(_extensibility)
+# endif
+#endif
+#if !defined(SWIFT_ENUM)
+# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# if __has_feature(generalized_swift_name)
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
+# else
+# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
+# endif
+#endif
+#if !defined(SWIFT_UNAVAILABLE)
+# define SWIFT_UNAVAILABLE __attribute__((unavailable))
+#endif
+#if !defined(SWIFT_UNAVAILABLE_MSG)
+# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
+#endif
+#if !defined(SWIFT_AVAILABILITY)
+# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
+#endif
+#if !defined(SWIFT_WEAK_IMPORT)
+# define SWIFT_WEAK_IMPORT __attribute__((weak_import))
+#endif
+#if !defined(SWIFT_DEPRECATED)
+# define SWIFT_DEPRECATED __attribute__((deprecated))
+#endif
+#if !defined(SWIFT_DEPRECATED_MSG)
+# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
+#endif
+#if __has_feature(attribute_diagnose_if_objc)
+# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
+#else
+# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
+#endif
+#if !defined(IBSegueAction)
+# define IBSegueAction
+#endif
+#if __has_feature(modules)
+#if __has_warning("-Watimport-in-framework-header")
+#pragma clang diagnostic ignored "-Watimport-in-framework-header"
+#endif
+@import Foundation;
+#endif
+
+#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
+#pragma clang diagnostic ignored "-Wduplicate-method-arg"
+#if __has_warning("-Wpragma-clang-attribute")
+# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
+#endif
+#pragma clang diagnostic ignored "-Wunknown-pragmas"
+#pragma clang diagnostic ignored "-Wnullability"
+
+#if __has_attribute(external_source_symbol)
+# pragma push_macro("any")
+# undef any
+# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SoulverCore",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
+# pragma pop_macro("any")
+#endif
+
+
+/// Subclass of Operation
that add support of asynchronous operations.
+/// How to use:
+///
+/// -
+/// Call
super.main()
when override main
method, call super.start()
when override start
method.
+///
+/// -
+/// When operation is finished or cancelled set
self.state = .finished
+///
+///
+SWIFT_CLASS("_TtC11SoulverCore21AsynchronousOperation")
+@interface AsynchronousOperation : NSOperation
+@property (nonatomic, readonly, getter=isAsynchronous) BOOL asynchronous;
+@property (nonatomic, readonly, getter=isExecuting) BOOL executing;
+@property (nonatomic, readonly, getter=isFinished) BOOL finished;
+- (void)start;
+- (void)main;
+- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@class NSUnitConverter;
+@class NSCoder;
+
+SWIFT_CLASS("_TtC11SoulverCore8NullUnit")
+@interface NullUnit : NSDimension
++ (nonnull instancetype)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+
+
+
+
+SWIFT_CLASS("_TtC11SoulverCore19UnitComputerStorage")
+@interface UnitComputerStorage : NSDimension
++ (UnitComputerStorage * _Nonnull)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+SWIFT_CLASS("_TtC11SoulverCore12UnitCurrency")
+@interface UnitCurrency : NSDimension
++ (UnitCurrency * _Nonnull)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+SWIFT_CLASS("_TtC11SoulverCore16UnitDataTransfer")
+@interface UnitDataTransfer : NSDimension
++ (UnitDataTransfer * _Nonnull)baseUnit SWIFT_WARN_UNUSED_RESULT;
+- (BOOL)isEqual:(id _Nullable)object SWIFT_WARN_UNUSED_RESULT;
+- (nonnull instancetype)initWithSymbol:(NSString * _Nonnull)symbol converter:(NSUnitConverter * _Nonnull)converter OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
+@end
+
+
+
+
+
+
+
+#if __has_attribute(external_source_symbol)
+# pragma clang attribute pop
+#endif
+#pragma clang diagnostic pop
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore.h b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore.h
new file mode 100644
index 000000000..114ccaec8
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Headers/SoulverCore.h
@@ -0,0 +1,17 @@
+//
+// SoulverCore.h
+// SoulverCore
+//
+// Created by Zac Cohan on 3/10/18.
+// Copyright © 2020 Zac Cohan. All rights reserved.
+//
+
+#import
+// In this header, you should import all the public headers of your framework using statements like #import
+
+//! Project version number for SoulverCore.
+FOUNDATION_EXPORT double SoulverCoreVersionNumber;
+
+//! Project version string for SoulverCore.
+FOUNDATION_EXPORT const unsigned char SoulverCoreVersionString[];
+
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc
new file mode 100644
index 000000000..e9b254774
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface
new file mode 100644
index 000000000..8d24f0a5e
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface
@@ -0,0 +1,1600 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
+// swift-module-flags: -target x86_64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
+import Foundation
+@_exported import SoulverCore
+import Swift
+import os
+import os.signpost
+public enum TokenType : Swift.CaseIterable {
+ case number
+ case `operator`
+ case percentageSymbol
+ case converterSymbol
+ case unit
+ case bracket
+ case whitespace
+ case variable
+ case variableDeclarationSymbol
+ case pi
+ case typeName
+ case conditionalKeyword
+ case colon
+ case function
+ case timezone
+ case object
+ case propertySelector
+ case label
+ case fraction
+ case converter
+ case timestamp
+ case datestamp
+ case iso8601
+ case timespan
+ case laptime
+ case dateWord
+ case unitExpression
+ case compoundUnitExpression
+ case conditionalExpression
+ case percentage
+ case multiplier
+ case boolean
+ case rate
+ case functionExpression
+ case wordFunction
+ case declaredVariable
+ case variableDeclaration
+ case subexpression
+ case comment
+ case wordComment
+ case bracketComment
+ case slashComment
+ case legacyQuotationComment
+ case labelExpression
+ case externalExpression
+ case evaluatedExternalExpression
+ case unidentified
+ case custom
+ case error
+ public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public typealias AllCases = [SoulverCore.TokenType]
+ public static var allCases: [SoulverCore.TokenType] {
+ get
+ }
+}
+public enum TokenSubType {
+ case additionOperator
+ case subtractionOperator
+ case multiplicationOperator
+ case divisionOperator
+ case reverseDivisionOperator
+ case powerOperator
+ case modOperator
+ case lesserOf
+ case greaterOf
+ case greaterThan
+ case greaterThanOrEqualTo
+ case lessThan
+ case lessThanOrEqualTo
+ case equalTo
+ case notEqualTo
+ case `false`
+ case `true`
+ case openBracket
+ case closeBracket
+ case numberConverter
+ case fractionConverter
+ case multiplierConveter
+ case percentageConverter
+ case unitConverter
+ case rateConverter
+ case dateConverter
+ case iso8601Converter
+ case timestampConverter
+ case timespanConverter
+ case laptimeConverter
+ case timezoneConverter
+ case roundingToDpConverter
+ case roundingUpConverter
+ case roundingConverter
+ case roundingDownConverter
+ case dateWordToday
+ case dateWordNow
+ case dateWordTomorrow
+ case dateWordYesterday
+ case dateWordDayOfWeek
+ case dateWordMonthOfYear
+ case numberTypeName
+ case fractionTypeName
+ case multiplierTypeName
+ case percentageTypeName
+ case rateTypeName
+ case timestampTypeName
+ case timespanTypeName
+ case laptimeTypeName
+ case dateTypeName
+ case iso8601TypeName
+ case decimalPlacesTypeName
+ case binaryTypeName
+ case hexTypeName
+ case conditionalKeywordIf
+ case conditionalKeywordThen
+ case conditionalKeywordElse
+ case conditionalKeywordUnless
+ case conditionalKeywordAnd
+ case conditionalKeywordOr
+ case unitMismatchError
+ case infinityError
+ case divideByZeroError
+ case imaginaryNumberError
+ case unsupportedUnitMultiplication
+ case unsupportedRate
+ case badDivision
+ case unknownError
+ case notSpecified
+ public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct Laptime {
+}
+public class LineCollection {
+ public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public var lineSheet: SoulverCore.LineSheet {
+ get
+ set
+ }
+ public var customization: SoulverCore.EngineCustomization
+ public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? {
+ get
+ set
+ }
+ public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? {
+ get
+ set
+ }
+ public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard)
+ public var currentPage: SoulverCore.PageIndex {
+ get
+ set
+ }
+ public func addPage(addStartingLine: Swift.Bool = true)
+ public func removeCurrentPage()
+ public func beginChanges()
+ public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line
+ public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression])
+ public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String)
+ public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String)
+ public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex)
+ public func removeLineAt(lineIndex: SoulverCore.LineIndex)
+ public subscript(index: Swift.Int) -> SoulverCore.Line {
+ get
+ set(newValue)
+ }
+ public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex)
+ public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex)
+ public func evaluateAll()
+ public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil)
+ public func evaluateExternallyLineAt(index: SoulverCore.LineIndex, evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference
+ @discardableResult
+ public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken
+ public func remove(observer: SoulverCore.LineCollectionObserverToken)
+ public var quickSum: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickAverage: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
+ public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
+ public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
+ public func clearStates()
+ public var lineCount: Swift.Int {
+ get
+ }
+ public var completeLineCount: Swift.Int {
+ get
+ }
+ public var hasMultiplePages: Swift.Bool {
+ get
+ }
+ public var pageCount: Swift.Int {
+ get
+ }
+ public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public var allIndexes: Foundation.IndexSet {
+ get
+ }
+ public var lastIndex: Swift.Int {
+ get
+ }
+ public var firstIndex: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public func linesInPage(pageIndex: SoulverCore.PageIndex) -> [SoulverCore.Line]
+ public var lines: [SoulverCore.Line] {
+ get
+ }
+ public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line]
+ public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList
+ public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token?
+ public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line?
+ public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line?
+ public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String?
+ @objc deinit
+}
+public typealias LineCollectionStateTicket = Swift.String
+extension LineCollection : Swift.CustomDebugStringConvertible {
+ public typealias MultiLineText = Swift.String
+ public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
+ convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ @objc deinit
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public enum EvaluationError : Swift.Error {
+ case UnitMismatch
+ case UnsupportedUnitMultiplication
+ case UnsupportedRate
+ case Infinity
+ case ImaginaryNumber
+ case DivideByZero
+ case BadDivision
+ case Other
+ public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+infix operator ~ : AdditionPrecedence
+public typealias CocoaUnit = Foundation.Dimension
+extension String {
+ public func foundationLocalized() -> Swift.String
+ public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
+}
+@_hasMissingDesignatedInitializers public class LineCollectionEnumerator {
+ public typealias EnumerationExpression = Swift.String
+ public typealias EnumerationResult = Swift.String
+ public enum ReferenceSubstituionPolicy {
+ case dontSubstitue
+ case formattedResult
+ case plainTextReference
+ case markdownLinkStyle
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public enum ResultFormatting {
+ case formatted
+ case raw
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public struct LineCollectionEnumerationOptions {
+ public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy
+ public var resultFormatting: SoulverCore.LineCollectionEnumerator.ResultFormatting
+ public init()
+ }
+ public typealias LineCollectionEnumerationHandler = ((SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: (SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: ((SoulverCore.LineIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult) -> T?)) -> T?
+ @objc deinit
+}
+public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
+ public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func < (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public let type: SoulverCore.TokenType
+ public let subType: SoulverCore.TokenSubType
+ public var stringValue: Swift.String
+ public var range: Foundation.NSRange
+ public var subtokens: SoulverCore.TokenList?
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Token : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class TokenList {
+ public var count: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public var tokens: [SoulverCore.Token] {
+ get
+ }
+ public var flattenedTokens: [SoulverCore.Token] {
+ get
+ }
+ public subscript(index: Swift.Int) -> SoulverCore.Token {
+ get
+ set(newValue)
+ }
+ public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token]
+ public func allTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func onlyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func anyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ @objc deinit
+}
+extension TokenList : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList {
+ public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
+ public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
+ public func tokenFor(characterIndex: Swift.Int) -> SoulverCore.Token?
+ public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token?
+}
+public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void
+public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
+public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
+public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
+extension TokenList {
+ public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
+ public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+}
+extension TokenList {
+ public func containsToken(token: SoulverCore.Token) -> Swift.Bool
+ public func scanForTokenWithType(_ tokenTypes: Swift.Set, ignoreParentsWithTypes parentTypes: Swift.Set? = nil) -> Swift.Bool
+}
+extension TokenList {
+ public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
+ public func typesPrecheck(_ types: Swift.Set) -> Swift.Bool
+}
+extension TokenList {
+ public static var EmptyList: SoulverCore.TokenList
+}
+public struct Timestamp {
+ public let decimalValue: Foundation.Decimal
+}
+public class VariableList : Swift.CustomDebugStringConvertible {
+ public init()
+ convenience public init(variables: [SoulverCore.Variable])
+ public func provideVariableDefinitionsVia(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult)
+ public func allVariables() -> [SoulverCore.Variable]
+ public func lineReferences() -> [SoulverCore.Variable]
+ public func isLineReference(variable: SoulverCore.Variable) -> Swift.Bool
+ public func variablesExludingLineReferences() -> [SoulverCore.Variable]
+ public func singleWordVariables() -> [SoulverCore.Variable]
+ public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable]
+ public func setVariable(_ variable: SoulverCore.Variable, isLineReference: Swift.Bool = false)
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct CalculationResult {
+ public let evaluationResult: SoulverCore.EvaluationResult
+ public let stringValue: Swift.String
+}
+extension CalculationResult {
+ public var isEmptyResult: Swift.Bool {
+ get
+ }
+}
+public let EmptyResult: SoulverCore.CalculationResult
+public struct ExportOptions {
+ public var plainTextSeparator: Swift.String
+ public var useUnformattedResults: Swift.Bool
+ public var substituteLineReferences: Swift.Bool
+ public var includeAnswers: Swift.Bool
+ public init()
+}
+@_hasMissingDesignatedInitializers public class LineCollectionExporter {
+ public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers public class ResultContextualMetadata {
+ public class func humanReadableMetadataFor(formattedResult: SoulverCore.CalculationResult, customization: SoulverCore.EngineCustomization) -> Swift.String?
+ @objc deinit
+}
+public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
+ public let locale: Foundation.Locale
+ public var unitSystem: SoulverCore.UnitMeasurementSystem
+ public var customVariables: [SoulverCore.Variable]
+ public var customUnits: [SoulverCore.CustomUnit] {
+ get
+ set
+ }
+ public var currencyUnits: [SoulverCore.UnitDescription] {
+ get
+ set
+ }
+ public var customSymbols: [SoulverCore.UnitSymbolReplacement] {
+ get
+ set
+ }
+ public var featureFlags: SoulverCore.EngineFeatureFlags
+ public init(locale: Foundation.Locale)
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var standard: SoulverCore.EngineCustomization {
+ get
+ }
+ public func convertTo(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+ public static func == (a: SoulverCore.EngineCustomization, b: SoulverCore.EngineCustomization) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension EngineCustomization {
+ public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+}
+extension EngineCustomization {
+ public func isOperator(text: Swift.String) -> Swift.Bool
+}
+public typealias Scalar = Swift.String
+@_hasMissingDesignatedInitializers public class LineCollectionArchiver {
+ public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?) throws -> SoulverCore.LineCollection
+ @objc deinit
+}
+public let UntokenizedLineReference: Swift.String
+public protocol RoutineOwner : AnyObject {
+ func routineCompleted(routine: SoulverCore.Routine)
+}
+public protocol Routine : AnyObject {
+ var routineOwner: SoulverCore.RoutineOwner? { get set }
+ func go()
+ func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+extension Routine {
+ public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+public typealias RawExpression = Swift.String
+infix operator *+* : AdditionPrecedence
+@_hasMissingDesignatedInitializers public class LineOperationsController {
+ public var baseVariables: SoulverCore.VariableList
+ public var externalEvaluators: [SoulverCore.ExternalEvaluator] {
+ get
+ set
+ }
+ public var beautifcationOptions: SoulverCore.ExpressionBeautificationOptions?
+ @objc deinit
+}
+extension NSNotification.Name {
+ public static let currenciesUpdateSucceeded: Foundation.Notification.Name
+ public static let currenciesUpdateFailed: Foundation.Notification.Name
+ public static let currenciesUpdateStarted: Foundation.Notification.Name
+}
+public enum CurrencySet : Swift.String {
+ case popular
+ case realWorld
+ case realWorldPlusCrypto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public struct CurrencySourceCredentials {
+ public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?)
+}
+@_hasMissingDesignatedInitializers public class CurrencyList {
+ public static let shared: SoulverCore.CurrencyList
+ public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials
+ public var defaultCurrencySet: SoulverCore.CurrencySet {
+ get
+ set
+ }
+ public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil)
+ public func saveCurrenciesTo(url: Foundation.URL)
+ public func loadCurrenciesFrom(url: Foundation.URL) throws
+ @objc deinit
+}
+public typealias PrivateUnicodeSymbol = Swift.String
+@_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator {
+ public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
+ @objc deinit
+}
+public typealias VariableName = Swift.String
+public typealias VariableValue = Swift.String
+public struct Variable : Swift.Codable {
+ public let name: SoulverCore.VariableName
+ public let value: SoulverCore.VariableValue?
+ public init(name: SoulverCore.VariableName, value: SoulverCore.VariableValue?)
+ public var declaringLineIndex: SoulverCore.LineIndex?
+ public var definition: SoulverCore.EvaluationResult?
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Variable : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public struct Datestamp {
+ public let date: Foundation.Date
+ public let hasTimeComponent: Swift.Bool
+ public var timezone: Foundation.TimeZone?
+}
+extension String {
+ public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
+ public func wrappedIn(_ character: Swift.String) -> Swift.String
+ public func bracketed() -> Swift.String
+ public func invertedCommad() -> Swift.String
+ public func spaced() -> Swift.String
+ public static var standardEasternEuropeanThousandsSeparator: Swift.String
+ public static var standardWhitespace: Swift.String
+ public static let standardDecimalPoint: Swift.String
+ public static let newlineSymbol: Swift.String
+ public var isNewline: Swift.Bool {
+ get
+ }
+ public var isSingleWhitespace: Swift.Bool {
+ get
+ }
+ public var isLowerecased: Swift.Bool {
+ get
+ }
+ public var isUppercased: Swift.Bool {
+ get
+ }
+ public var isMixedCase: Swift.Bool {
+ get
+ }
+ public func replaceCharactersFromSet(characterSet: Foundation.CharacterSet, replacementString: Swift.String = "") -> Swift.String
+ public var whitespaceStandardized: Swift.String {
+ get
+ }
+ public var whitespaceRemoved: Swift.String {
+ get
+ }
+ public var whitespaceTrimmed: Swift.String {
+ get
+ }
+}
+extension String {
+ public var completeStringRange: Foundation.NSRange {
+ get
+ }
+ public var completeRange: Swift.Range {
+ get
+ }
+ public var dirtyWordCount: Swift.Int {
+ get
+ }
+ public var dirtyLineCount: Swift.Int {
+ get
+ }
+ public var newLineCount: Swift.Int {
+ get
+ }
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func removingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func removingSuffix(_ suffix: Swift.String) -> Swift.String
+ public func addingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func addingSuffix(_ suffix: Swift.String) -> Swift.String
+}
+extension String {
+ public func enumerateLinguisticTags(invoking body: @escaping (Swift.String, Foundation.NSRange) -> Swift.Void)
+ public var words: [Swift.String] {
+ get
+ }
+ public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
+ public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public var lemma: Swift.String? {
+ get
+ }
+ public var lemmas: [Swift.String] {
+ get
+ }
+}
+extension String {
+ public func containsPattern(_ regex: Swift.String) -> Swift.Bool
+ public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
+ public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
+ public func erasingPattern(_ pattern: Swift.String) -> Swift.String
+ public var trailingDigit: Swift.Int? {
+ get
+ }
+}
+extension String {
+ public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
+ public func rangesOf(string: Swift.String) -> [Swift.Range]
+ public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
+}
+public enum LineStyle : Swift.Int {
+ case normal
+ case heading
+ case label
+ case comment
+ public typealias RawValue = Swift.Int
+ public init?(rawValue: Swift.Int)
+ public var rawValue: Swift.Int {
+ get
+ }
+}
+public class LineStyler {
+ public static let MARKDOWN_HEADING_CHARACTER: Swift.String
+ public static let HEADING_INDICATOR: Swift.String
+ public static let COMMENT_INDICATOR: Swift.String
+ public static let LABEL_INDICATOR: Swift.String
+ public init()
+ public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle
+ public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String
+ public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public var defaultLabel: Swift.String {
+ get
+ }
+ @objc deinit
+}
+extension Decimal {
+ public var doubleValue: Swift.Double {
+ get
+ }
+}
+extension Token {
+ public var number: Foundation.Decimal? {
+ get
+ }
+ public var scalar: SoulverCore.Scalar? {
+ get
+ }
+ public var variable: SoulverCore.Variable? {
+ get
+ }
+ public var isLineReference: Swift.Bool {
+ get
+ }
+}
+extension NumberFormatter {
+ open func string(from number: Foundation.Decimal) -> Swift.String?
+}
+public class Calculator {
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var customization: SoulverCore.EngineCustomization {
+ get
+ }
+ public init(customization: SoulverCore.EngineCustomization)
+ public func calculate(_ expression: SoulverCore.RawExpression, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult
+ @objc deinit
+}
+indirect public enum EvaluationResult {
+ case rawString(Swift.String)
+ case decimal(Foundation.Decimal)
+ case percentage(SoulverCore.Percentage)
+ case fraction(SoulverCore.Fraction)
+ case multiplier(SoulverCore.Multiplier)
+ case boolean(Swift.Bool)
+ case unitExpression(SoulverCore.UnitExpression)
+ case rate(SoulverCore.UnitRate)
+ case date(SoulverCore.Datestamp)
+ case iso8601(SoulverCore.iso8601)
+ case timestamp(SoulverCore.Timestamp)
+ case timespan(SoulverCore.Timespan)
+ case laptime(SoulverCore.Laptime)
+ case error(SoulverCore.EvaluationError)
+ case variable(SoulverCore.Variable)
+ case none
+ public var equivalentTokenType: SoulverCore.TokenType {
+ get
+ }
+}
+public protocol TokenMetadata {
+ func safeCopy() -> SoulverCore.TokenMetadata
+}
+public struct Fraction {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
+public struct Multiplier {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class LineCollectionCompletions {
+ public class func completionsFor(textFragment: Swift.String, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String]
+ @objc deinit
+}
+public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case before
+ case beforeWithSpace
+ case after
+ case afterWithSpace
+ public var description: Swift.String {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition]
+ public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] {
+ get
+ }
+}
+public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public let originalSymbol: Swift.String
+ public let replacementSymbol: Swift.String
+ public let position: SoulverCore.UnitSymbolReplacementPosition
+ public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before)
+ public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement]
+ public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
+ public let name: Swift.String
+ public let definition: Swift.Double
+ public let equivalentUnit: SoulverCore.UnitIdentifier
+ public let legacyDefinition: Swift.String?
+ public init(name: Swift.String, definition: Swift.Double, equivalentUnit: SoulverCore.UnitIdentifier)
+ public init(from decoder: Swift.Decoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct Percentage {
+ public let decimalValue: Foundation.Decimal
+}
+public typealias ExternalEvaluatorSymbol = Swift.String
+public protocol ExternalEvaluator {
+ var symbol: SoulverCore.ExternalEvaluatorSymbol { get }
+ func evaluate(_ expression: SoulverCore.RawExpression) -> SoulverCore.CalculationResult
+}
+@_hasMissingDesignatedInitializers public class LineSection : Swift.Codable {
+ public var lines: [SoulverCore.Line]
+ @objc deinit
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public typealias UID = Swift.String
+public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Swift.CustomStringConvertible {
+ public let UID: SoulverCore.UID
+ public init(UID: SoulverCore.UID)
+ public var description: Swift.String {
+ get
+ }
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct iso8601 {
+ public let datestamp: SoulverCore.Datestamp
+}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
+public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift.Equatable {
+ case customaryUS
+ case imperial
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LocaleProvider {
+ public class func localeWith(identifier: Swift.String) -> Foundation.Locale
+ @objc deinit
+}
+public enum SIThreshold : Swift.String {
+ case septillion
+ case sextillion
+ case quintillion
+ case quadrillion
+ case trillion
+ case billion
+ case million
+ case hundredThousand
+ case thousand
+ case hecto
+ case deca
+ case centi
+ case milli
+ case micro
+ case nano
+ case pico
+ case femto
+ case atto
+ case zetto
+ case yocto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public enum ApparentLineType {
+ case regular
+ case comment
+ case variableDeclaration
+ public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public enum LineCalculationBehaviour : Swift.String, Swift.Codable {
+ case evaluatesExpression
+ case sumsLinesAbove
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public class Line : Swift.Codable {
+ public var expression: SoulverCore.RawExpression {
+ get
+ set
+ }
+ public var behaviour: SoulverCore.LineCalculationBehaviour
+ public var skipStatistics: Swift.Bool
+ public var lineReference: SoulverCore.LineReference?
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var result: SoulverCore.CalculationResult?
+ public var parsedExpression: SoulverCore.TokenList?
+ public var apparentLineType: SoulverCore.ApparentLineType?
+ public var lineIndex: SoulverCore.LineIndex?
+ public var explicitDependencies: Foundation.IndexSet?
+ public var variableEnvironment: SoulverCore.VariableList?
+ public var rawResult: Swift.String {
+ get
+ }
+ public var formattedResult: Swift.String {
+ get
+ }
+ convenience public init(_ expression: SoulverCore.RawExpression)
+ public init()
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ @objc deinit
+}
+extension Line {
+ public var isSubtotal: Swift.Bool {
+ get
+ }
+ public var isHeading: Swift.Bool {
+ get
+ }
+}
+extension Line {
+ public var declaredVariable: SoulverCore.Variable? {
+ get
+ }
+}
+extension Line : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var EmptyLine: SoulverCore.Line {
+ get
+ }
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Line : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension Line {
+ public var includesLineReferences: Swift.Bool {
+ get
+ }
+}
+extension UnitLength {
+ public static let pixel: Foundation.UnitLength
+ public static let em: Foundation.UnitLength
+ public static let point: Foundation.UnitLength
+}
+@objc @_inheritsConvenienceInitializers final public class UnitCurrency : Foundation.Dimension {
+ convenience public init(symbol: Swift.String, coefficient: Swift.Double)
+ public static let usd: SoulverCore.UnitCurrency
+ public static let aud: SoulverCore.UnitCurrency
+ public static let eur: SoulverCore.UnitCurrency
+ @objc override final public class func baseUnit() -> SoulverCore.UnitCurrency
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitComputerStorage : Foundation.Dimension {
+ public static let bytes: SoulverCore.UnitComputerStorage
+ public static let bits: SoulverCore.UnitComputerStorage
+ public static let nibbles: SoulverCore.UnitComputerStorage
+ public static let yottabytes: SoulverCore.UnitComputerStorage
+ public static let zettabytes: SoulverCore.UnitComputerStorage
+ public static let exabytes: SoulverCore.UnitComputerStorage
+ public static let petabytes: SoulverCore.UnitComputerStorage
+ public static let terabytes: SoulverCore.UnitComputerStorage
+ public static let gigabytes: SoulverCore.UnitComputerStorage
+ public static let megabytes: SoulverCore.UnitComputerStorage
+ public static let kilobytes: SoulverCore.UnitComputerStorage
+ public static let yottabits: SoulverCore.UnitComputerStorage
+ public static let zettabits: SoulverCore.UnitComputerStorage
+ public static let exabits: SoulverCore.UnitComputerStorage
+ public static let petabits: SoulverCore.UnitComputerStorage
+ public static let terabits: SoulverCore.UnitComputerStorage
+ public static let gigabits: SoulverCore.UnitComputerStorage
+ public static let megabits: SoulverCore.UnitComputerStorage
+ public static let kilobits: SoulverCore.UnitComputerStorage
+ public static let yobibytes: SoulverCore.UnitComputerStorage
+ public static let zebibytes: SoulverCore.UnitComputerStorage
+ public static let exbibytes: SoulverCore.UnitComputerStorage
+ public static let pebibytes: SoulverCore.UnitComputerStorage
+ public static let tebibytes: SoulverCore.UnitComputerStorage
+ public static let gibibytes: SoulverCore.UnitComputerStorage
+ public static let mebibytes: SoulverCore.UnitComputerStorage
+ public static let kibibytes: SoulverCore.UnitComputerStorage
+ public static let yobibits: SoulverCore.UnitComputerStorage
+ public static let zebibits: SoulverCore.UnitComputerStorage
+ public static let exbibits: SoulverCore.UnitComputerStorage
+ public static let pebibits: SoulverCore.UnitComputerStorage
+ public static let tebibits: SoulverCore.UnitComputerStorage
+ public static let gibibits: SoulverCore.UnitComputerStorage
+ public static let mebibits: SoulverCore.UnitComputerStorage
+ public static let kibibits: SoulverCore.UnitComputerStorage
+ @objc override final public class func baseUnit() -> SoulverCore.UnitComputerStorage
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitDataTransfer : Foundation.Dimension {
+ public static let bytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let bitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibitsPerSecond: SoulverCore.UnitDataTransfer
+ @objc override final public class func baseUnit() -> SoulverCore.UnitDataTransfer
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class NullUnit : Foundation.Dimension {
+ @objc override final public class func baseUnit() -> Self
+ @objc deinit
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+}
+public typealias LineIndex = Swift.Int
+public typealias PageIndex = Swift.Int
+@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable {
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct Timespan {
+ public let dateComponents: Foundation.DateComponents
+}
+public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public var calendarCalculations: Swift.Bool
+ public var units: Swift.Bool
+ public var wordFunctions: Swift.Bool
+ public var variableDeclarations: Swift.Bool
+ public var bracketComments: Swift.Bool
+ public var inAmbiguityPreferSomethingToNothing: Swift.Bool
+ public var leftToRightOperatorEvaluation: Swift.Bool
+ public init()
+ public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Int {
+ public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
+}
+public struct UnitRate {
+ public let value: Foundation.Decimal
+ public let ofUnit: SoulverCore.CocoaUnit?
+ public let perUnit: SoulverCore.CocoaUnit
+}
+extension UnitRate : Swift.Comparable {
+ public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
+ public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
+}
+extension UnitRate : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension UnitExpression : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case metersPerSecondSquared
+ case gravity
+ case degrees
+ case arcMinutes
+ case arcSeconds
+ case radians
+ case gradians
+ case revolutions
+ case squareMegameters
+ case squareKilometers
+ case squareMeters
+ case squareCentimeters
+ case squareMillimeters
+ case squareMicrometers
+ case squareNanometers
+ case squareInches
+ case squareFeet
+ case squareYards
+ case squareMiles
+ case acres
+ case ares
+ case hectares
+ case gramsPerLiter
+ case milligramsPerDeciliter
+ case partsPerMillion
+ case picoseconds
+ case nanoseconds
+ case microseconds
+ case milliseconds
+ case seconds
+ case minutes
+ case hours
+ case days
+ case weekdays
+ case weeks
+ case months
+ case years
+ case coulombs
+ case megaampereHours
+ case kiloampereHours
+ case ampereHours
+ case milliampereHours
+ case microampereHours
+ case megaamperes
+ case kiloamperes
+ case amperes
+ case milliamperes
+ case microamperes
+ case megavolts
+ case kilovolts
+ case volts
+ case millivolts
+ case microvolts
+ case megaohms
+ case kiloohms
+ case ohms
+ case milliohms
+ case microohms
+ case joules
+ case kilojoules
+ case megajoules
+ case gigajoules
+ case kilocalories
+ case calories
+ case wattSeconds
+ case wattMinutes
+ case wattHours
+ case kilowattHours
+ case megawattHours
+ case gigawattHours
+ case terawattHours
+ case terahertz
+ case gigahertz
+ case megahertz
+ case kilohertz
+ case hertz
+ case millihertz
+ case microhertz
+ case nanohertz
+ case litersPer100Kilometers
+ case milesPerImperialGallon
+ case milesPerGallon
+ case megameters
+ case kilometers
+ case hectometers
+ case decameters
+ case meters
+ case decimeters
+ case centimeters
+ case millimeters
+ case micrometers
+ case nanometers
+ case picometers
+ case inches
+ case feet
+ case yards
+ case miles
+ case scandinavianMiles
+ case lightyears
+ case nauticalMiles
+ case fathoms
+ case furlongs
+ case parsecs
+ case lux
+ case kilograms
+ case grams
+ case decigrams
+ case centigrams
+ case milligrams
+ case micrograms
+ case nanograms
+ case picograms
+ case ounces
+ case pounds
+ case stones
+ case metricTons
+ case shortTons
+ case carats
+ case ouncesTroy
+ case slugs
+ case terawatts
+ case gigawatts
+ case megawatts
+ case kilowatts
+ case watts
+ case milliwatts
+ case microwatts
+ case nanowatts
+ case picowatts
+ case femtowatts
+ case horsepower
+ case newtonsPerMetersSquared
+ case gigapascals
+ case megapascals
+ case kilopascals
+ case hectopascals
+ case inchesOfMercury
+ case bars
+ case millibars
+ case millimetersOfMercury
+ case poundsForcePerSquareInch
+ case metersPerSecond
+ case kilometersPerHour
+ case milesPerHour
+ case knots
+ case kelvin
+ case celsius
+ case fahrenheit
+ case megaliters
+ case kiloliters
+ case liters
+ case milliliters
+ case cubicKilometers
+ case cubicMeters
+ case cubicCentimeters
+ case cubicMillimeters
+ case cubicInches
+ case cubicFeet
+ case cubicYards
+ case cubicMiles
+ case acreFeet
+ case bushels
+ case teaspoons
+ case tablespoons
+ case fluidOunces
+ case cups
+ case pints
+ case quarts
+ case gallons
+ case imperialTeaspoons
+ case imperialTablespoons
+ case imperialFluidOunces
+ case imperialPints
+ case imperialQuarts
+ case imperialGallons
+ case metricCups
+ case bytes
+ case bits
+ case yottabytes
+ case zettabytes
+ case exabytes
+ case petabytes
+ case terabytes
+ case gigabytes
+ case megabytes
+ case kilobytes
+ case yottabits
+ case zettabits
+ case exabits
+ case petabits
+ case terabits
+ case gigabits
+ case megabits
+ case kilobits
+ case yobibytes
+ case zebibytes
+ case exbibytes
+ case pebibytes
+ case tebibytes
+ case gibibytes
+ case mebibytes
+ case kibibytes
+ case yobibits
+ case zebibits
+ case exbibits
+ case pebibits
+ case tebibits
+ case gibibits
+ case mebibits
+ case kibibits
+ case pixel
+ case em
+ case point
+ case bytesPerSecond
+ case bitsPerSecond
+ case yottabytesPerSecond
+ case zettabytesPerSecond
+ case exabytesPerSecond
+ case petabytesPerSecond
+ case terabytesPerSecond
+ case gigabytesPerSecond
+ case megabytesPerSecond
+ case kilobytesPerSecond
+ case yottabitsPerSecond
+ case zettabitsPerSecond
+ case exabitsPerSecond
+ case petabitsPerSecond
+ case terabitsPerSecond
+ case gigabitsPerSecond
+ case megabitsPerSecond
+ case kilobitsPerSecond
+ case yobibytesPerSecond
+ case zebibytesPerSecond
+ case exbibytesPerSecond
+ case pebibytesPerSecond
+ case tebibytesPerSecond
+ case gibibytesPerSecond
+ case mebibytesPerSecond
+ case kibibytesPerSecond
+ case yobibitsPerSecond
+ case zebibitsPerSecond
+ case exbibitsPerSecond
+ case pebibitsPerSecond
+ case tebibitsPerSecond
+ case gibibitsPerSecond
+ case mebibitsPerSecond
+ case kibibitsPerSecond
+ case usd
+ case aud
+ case eur
+ case undefined
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitIdentifier]
+ public static var allCases: [SoulverCore.UnitIdentifier] {
+ get
+ }
+}
+extension UnitIdentifier {
+ public var unitType: SoulverCore.UnitType {
+ get
+ }
+}
+public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable {
+ case length
+ case mass
+ case duration
+ case currency
+ case volume
+ case speed
+ case acceleration
+ case temperature
+ case concentrationMass
+ case dispersion
+ case dataStorage
+ case dataTransfer
+ case area
+ case frequency
+ case angle
+ case illuminance
+ case energy
+ case power
+ case pressure
+ case fuelEfficiency
+ case electricCurrent
+ case electricCharge
+ case electricPotential
+ case electricResistance
+ case other
+ public var label: Swift.String {
+ get
+ }
+ public var baseUnitIdentifier: SoulverCore.UnitIdentifier {
+ get
+ }
+ public var associatedOtherUnits: [SoulverCore.UnitIdentifier] {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public var rawValue: Swift.String {
+ get
+ }
+ public init?(rawValue: Swift.String)
+ public typealias AllCases = [SoulverCore.UnitType]
+ public static var allCases: [SoulverCore.UnitType] {
+ get
+ }
+}
+public func cocoaUnitFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.CocoaUnit
+public func unitIdentifierFor(cocoaUnit: SoulverCore.CocoaUnit) -> SoulverCore.UnitIdentifier?
+public func motherUnitIdentifierFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.UnitIdentifier
+@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
+ @objc override dynamic public var isAsynchronous: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isExecuting: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isFinished: Swift.Bool {
+ @objc get
+ }
+ public var state: SoulverCore.AsynchronousOperation.State {
+ get
+ set
+ }
+ public enum State : Swift.String {
+ case ready
+ case executing
+ case finished
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ }
+ @objc override dynamic open func start()
+ @objc override dynamic open func main()
+ @objc override dynamic public init()
+ @objc deinit
+}
+public struct UnitExpression {
+ public let value: Foundation.Decimal
+ public let unit: SoulverCore.CocoaUnit
+}
+extension UnitExpression : Swift.Comparable {
+ public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+ public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+}
+public typealias TokenIndex = Swift.Int
+public struct TokenIndexPath : Swift.Equatable {
+ public let tokenIndex: SoulverCore.TokenIndex
+ public let lineIndex: SoulverCore.LineIndex
+ public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
+ public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
+}
+public struct NotationPreferences : Swift.Equatable {
+ public enum NotationStyle {
+ case auto
+ case on
+ case off
+ public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public var notationStyle: SoulverCore.NotationPreferences.NotationStyle
+ public var upperNotationThreshold: SoulverCore.SIThreshold
+ public var lowerNotationThreshold: SoulverCore.SIThreshold
+ public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
+}
+public struct FormattingPreferences : Swift.Codable, Swift.Equatable {
+ public static var maximumDp: Swift.Int
+ public var dp: Swift.Int
+ public var thousandsSeparatorDisabled: Swift.Bool
+ public var currencyFormattingDisabled: Swift.Bool
+ public var implicitUnitsDisabled: Swift.Bool
+ public var notationPreferences: SoulverCore.NotationPreferences
+ public var referencesTakeFormattedValue: Swift.Bool
+ public var fractionizeWherePossible: Swift.Bool
+ public init()
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool
+}
+public struct ExpressionBeautificationOptions {
+ public var quickOperators: Swift.Bool
+ public var autoThousandsSeparators: Swift.Bool
+ public var padStandardOperators: Swift.Bool
+ public var fancyTimes: Swift.Bool
+ public var fancyMinus: Swift.Bool
+ public var collapseSpaces: Swift.Bool
+ public var formatsSlashCommentsWithSpaces: Swift.Bool
+ public static var defaults: SoulverCore.ExpressionBeautificationOptions {
+ get
+ }
+ public init()
+}
+extension Array where Element : Swift.Equatable {
+ public func doesNotContain(_ element: Element) -> Swift.Bool
+}
+extension Array {
+ public subscript(safe index: Swift.Array.Index) -> Element? {
+ get
+ }
+ public var lastIndex: Swift.Int? {
+ get
+ }
+ public func isValid(index: Swift.Int) -> Swift.Bool
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public mutating func trim(where predicate: (Element) throws -> Swift.Bool)
+ public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index)
+}
+extension IndexSet {
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func isJust(_ integer: Swift.Int) -> Swift.Bool
+ public var onlyFirst: Foundation.IndexSet {
+ get
+ }
+ public var removingFirstIndex: Foundation.IndexSet {
+ get
+ }
+ public var smartDescription: Swift.String {
+ get
+ }
+ public var secondLastIndex: Swift.Int? {
+ get
+ }
+}
+public struct UnitDescription : Swift.Hashable, Swift.Codable {
+ public init(unit: SoulverCore.CocoaUnit, symbol: Swift.String, aliases: [Swift.String])
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool
+}
+extension Dimension {
+ public var svUnitType: SoulverCore.UnitType {
+ get
+ }
+}
+extension SoulverCore.TokenType : Swift.Equatable {}
+extension SoulverCore.TokenType : Swift.Hashable {}
+extension SoulverCore.TokenSubType : Swift.Equatable {}
+extension SoulverCore.TokenSubType : Swift.Hashable {}
+extension SoulverCore.EvaluationError : Swift.Equatable {}
+extension SoulverCore.EvaluationError : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.Equatable {}
+extension SoulverCore.CurrencySet : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.RawRepresentable {}
+extension SoulverCore.LineStyle : Swift.Equatable {}
+extension SoulverCore.LineStyle : Swift.Hashable {}
+extension SoulverCore.LineStyle : Swift.RawRepresentable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Equatable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Hashable {}
+extension SoulverCore.UnitMeasurementSystem : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.Equatable {}
+extension SoulverCore.SIThreshold : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.RawRepresentable {}
+extension SoulverCore.ApparentLineType : Swift.Equatable {}
+extension SoulverCore.ApparentLineType : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Equatable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.RawRepresentable {}
+extension SoulverCore.UnitIdentifier : Swift.Equatable {}
+extension SoulverCore.UnitIdentifier : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.Equatable {}
+extension SoulverCore.UnitType : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.RawRepresentable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Equatable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Hashable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.RawRepresentable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Equatable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Hashable {}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
new file mode 100644
index 000000000..e9b254774
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
new file mode 100644
index 000000000..8d24f0a5e
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
@@ -0,0 +1,1600 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
+// swift-module-flags: -target x86_64-apple-macos10.14.4 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Osize -module-name SoulverCore
+import Foundation
+@_exported import SoulverCore
+import Swift
+import os
+import os.signpost
+public enum TokenType : Swift.CaseIterable {
+ case number
+ case `operator`
+ case percentageSymbol
+ case converterSymbol
+ case unit
+ case bracket
+ case whitespace
+ case variable
+ case variableDeclarationSymbol
+ case pi
+ case typeName
+ case conditionalKeyword
+ case colon
+ case function
+ case timezone
+ case object
+ case propertySelector
+ case label
+ case fraction
+ case converter
+ case timestamp
+ case datestamp
+ case iso8601
+ case timespan
+ case laptime
+ case dateWord
+ case unitExpression
+ case compoundUnitExpression
+ case conditionalExpression
+ case percentage
+ case multiplier
+ case boolean
+ case rate
+ case functionExpression
+ case wordFunction
+ case declaredVariable
+ case variableDeclaration
+ case subexpression
+ case comment
+ case wordComment
+ case bracketComment
+ case slashComment
+ case legacyQuotationComment
+ case labelExpression
+ case externalExpression
+ case evaluatedExternalExpression
+ case unidentified
+ case custom
+ case error
+ public static func == (a: SoulverCore.TokenType, b: SoulverCore.TokenType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public typealias AllCases = [SoulverCore.TokenType]
+ public static var allCases: [SoulverCore.TokenType] {
+ get
+ }
+}
+public enum TokenSubType {
+ case additionOperator
+ case subtractionOperator
+ case multiplicationOperator
+ case divisionOperator
+ case reverseDivisionOperator
+ case powerOperator
+ case modOperator
+ case lesserOf
+ case greaterOf
+ case greaterThan
+ case greaterThanOrEqualTo
+ case lessThan
+ case lessThanOrEqualTo
+ case equalTo
+ case notEqualTo
+ case `false`
+ case `true`
+ case openBracket
+ case closeBracket
+ case numberConverter
+ case fractionConverter
+ case multiplierConveter
+ case percentageConverter
+ case unitConverter
+ case rateConverter
+ case dateConverter
+ case iso8601Converter
+ case timestampConverter
+ case timespanConverter
+ case laptimeConverter
+ case timezoneConverter
+ case roundingToDpConverter
+ case roundingUpConverter
+ case roundingConverter
+ case roundingDownConverter
+ case dateWordToday
+ case dateWordNow
+ case dateWordTomorrow
+ case dateWordYesterday
+ case dateWordDayOfWeek
+ case dateWordMonthOfYear
+ case numberTypeName
+ case fractionTypeName
+ case multiplierTypeName
+ case percentageTypeName
+ case rateTypeName
+ case timestampTypeName
+ case timespanTypeName
+ case laptimeTypeName
+ case dateTypeName
+ case iso8601TypeName
+ case decimalPlacesTypeName
+ case binaryTypeName
+ case hexTypeName
+ case conditionalKeywordIf
+ case conditionalKeywordThen
+ case conditionalKeywordElse
+ case conditionalKeywordUnless
+ case conditionalKeywordAnd
+ case conditionalKeywordOr
+ case unitMismatchError
+ case infinityError
+ case divideByZeroError
+ case imaginaryNumberError
+ case unsupportedUnitMultiplication
+ case unsupportedRate
+ case badDivision
+ case unknownError
+ case notSpecified
+ public static func == (a: SoulverCore.TokenSubType, b: SoulverCore.TokenSubType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct Laptime {
+}
+public class LineCollection {
+ public typealias EvaluatedLinesHandler = (Foundation.IndexSet) -> Swift.Void
+ public var lineSheet: SoulverCore.LineSheet {
+ get
+ set
+ }
+ public var customization: SoulverCore.EngineCustomization
+ public var defaultLineFormattingPreferences: SoulverCore.FormattingPreferences? {
+ get
+ set
+ }
+ public var expressionBeautificationOptions: SoulverCore.ExpressionBeautificationOptions? {
+ get
+ set
+ }
+ public init(customization: SoulverCore.EngineCustomization = EngineCustomization.standard)
+ public var currentPage: SoulverCore.PageIndex {
+ get
+ set
+ }
+ public func addPage(addStartingLine: Swift.Bool = true)
+ public func removeCurrentPage()
+ public func beginChanges()
+ public func endChangesWith(evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func addLine(_ expression: Swift.String = "") -> SoulverCore.Line
+ public func setLinesWithExpressions(_ expressions: [SoulverCore.RawExpression])
+ public func insertLineBelow(lineIndex: SoulverCore.LineIndex, with expression: Swift.String)
+ public func insertLineAt(lineIndex: SoulverCore.LineIndex, withExpression expression: Swift.String)
+ public func moveLineAt(lineIndex: SoulverCore.LineIndex, toLineIndex: SoulverCore.LineIndex)
+ public func removeLineAt(lineIndex: SoulverCore.LineIndex)
+ public subscript(index: Swift.Int) -> SoulverCore.Line {
+ get
+ set(newValue)
+ }
+ public func setExpression(expression: Swift.String, forLineAt index: SoulverCore.LineIndex)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences)
+ public func setFormatting(formattingPreferences: SoulverCore.FormattingPreferences?, forLineAt index: SoulverCore.LineIndex)
+ public func setBehaviour(behaviour: SoulverCore.LineCalculationBehaviour, forLineAt index: SoulverCore.LineIndex)
+ public func evaluateAll()
+ public func evaluateLinesAt(indexes: Foundation.IndexSet, dependenciesUpdatedHandler: SoulverCore.LineCollection.EvaluatedLinesHandler? = nil)
+ public func evaluateExternallyLineAt(index: SoulverCore.LineIndex, evaluationHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?, dependenciesHandler: SoulverCore.LineCollection.EvaluatedLinesHandler?)
+ @discardableResult
+ public func makeReferenceForLineAt(lineIndex: SoulverCore.LineIndex) -> SoulverCore.LineReference
+ @discardableResult
+ public func observeEvaluationWith(handler: @escaping SoulverCore.LineCollection.EvaluatedLinesHandler) -> SoulverCore.LineCollectionObserverToken
+ public func remove(observer: SoulverCore.LineCollectionObserverToken)
+ public var quickSum: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickAverage: SoulverCore.CalculationResult? {
+ get
+ }
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
+ public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
+ public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
+ public func clearStates()
+ public var lineCount: Swift.Int {
+ get
+ }
+ public var completeLineCount: Swift.Int {
+ get
+ }
+ public var hasMultiplePages: Swift.Bool {
+ get
+ }
+ public var pageCount: Swift.Int {
+ get
+ }
+ public func isValidIndex(_ lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public var allIndexes: Foundation.IndexSet {
+ get
+ }
+ public var lastIndex: Swift.Int {
+ get
+ }
+ public var firstIndex: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public func linesInPage(pageIndex: SoulverCore.PageIndex) -> [SoulverCore.Line]
+ public var lines: [SoulverCore.Line] {
+ get
+ }
+ public func linesAtIndexes(indexes: Foundation.IndexSet) -> [SoulverCore.Line]
+ public func variableListForLineAtIndex(_ lineIndex: SoulverCore.LineIndex) -> SoulverCore.VariableList
+ public func tokenFor(tokenIndexPath: SoulverCore.TokenIndexPath) -> SoulverCore.Token?
+ public func isValidLineReference(UID: SoulverCore.UID, onLineAt lineIndex: SoulverCore.LineIndex) -> Swift.Bool
+ public func lineForLineReference(lineReference: SoulverCore.LineReference) -> SoulverCore.Line?
+ public func lineFor(_ lineReferenceVariable: SoulverCore.Variable) -> SoulverCore.Line?
+ public func formattedDefinitionOf(inlineVariable: SoulverCore.Variable) -> Swift.String?
+ @objc deinit
+}
+public typealias LineCollectionStateTicket = Swift.String
+extension LineCollection : Swift.CustomDebugStringConvertible {
+ public typealias MultiLineText = Swift.String
+ public class func textViewReadyLineCollectionWith(customization: SoulverCore.EngineCustomization) -> SoulverCore.LineCollection
+ convenience public init(multiLineText: SoulverCore.LineCollection.MultiLineText, customization: SoulverCore.EngineCustomization? = nil)
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LineCollectionObserverToken : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.LineCollectionObserverToken, rhs: SoulverCore.LineCollectionObserverToken) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ @objc deinit
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public enum EvaluationError : Swift.Error {
+ case UnitMismatch
+ case UnsupportedUnitMultiplication
+ case UnsupportedRate
+ case Infinity
+ case ImaginaryNumber
+ case DivideByZero
+ case BadDivision
+ case Other
+ public static func == (a: SoulverCore.EvaluationError, b: SoulverCore.EvaluationError) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+infix operator ~ : AdditionPrecedence
+public typealias CocoaUnit = Foundation.Dimension
+extension String {
+ public func foundationLocalized() -> Swift.String
+ public func localized(bundle: Foundation.Bundle = .main) -> Swift.String
+}
+@_hasMissingDesignatedInitializers public class LineCollectionEnumerator {
+ public typealias EnumerationExpression = Swift.String
+ public typealias EnumerationResult = Swift.String
+ public enum ReferenceSubstituionPolicy {
+ case dontSubstitue
+ case formattedResult
+ case plainTextReference
+ case markdownLinkStyle
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy, b: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public enum ResultFormatting {
+ case formatted
+ case raw
+ public static func == (a: SoulverCore.LineCollectionEnumerator.ResultFormatting, b: SoulverCore.LineCollectionEnumerator.ResultFormatting) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public struct LineCollectionEnumerationOptions {
+ public var referenceSubstitutionPolicy: SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy
+ public var resultFormatting: SoulverCore.LineCollectionEnumerator.ResultFormatting
+ public init()
+ }
+ public typealias LineCollectionEnumerationHandler = ((SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: (SoulverCore.LineIndex, SoulverCore.PageIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult, inout Swift.Bool) -> Swift.Void)
+ public class func enumerateLinesIn(lineCollection: SoulverCore.LineCollection, with options: SoulverCore.LineCollectionEnumerator.LineCollectionEnumerationOptions = LineCollectionEnumerationOptions(), in handler: ((SoulverCore.LineIndex, SoulverCore.LineCollectionEnumerator.EnumerationExpression, SoulverCore.LineCollectionEnumerator.EnumerationResult) -> T?)) -> T?
+ @objc deinit
+}
+public struct Token : Swift.Equatable, Swift.Hashable, Swift.Comparable {
+ public static func == (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func < (lhs: SoulverCore.Token, rhs: SoulverCore.Token) -> Swift.Bool
+ public let type: SoulverCore.TokenType
+ public let subType: SoulverCore.TokenSubType
+ public var stringValue: Swift.String
+ public var range: Foundation.NSRange
+ public var subtokens: SoulverCore.TokenList?
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Token : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.TokenList, rhs: SoulverCore.TokenList) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class TokenList {
+ public var count: Swift.Int {
+ get
+ }
+ public var isEmpty: Swift.Bool {
+ get
+ }
+ public var tokens: [SoulverCore.Token] {
+ get
+ }
+ public var flattenedTokens: [SoulverCore.Token] {
+ get
+ }
+ public subscript(index: Swift.Int) -> SoulverCore.Token {
+ get
+ set(newValue)
+ }
+ public func tokensOfType(_ tokenType: SoulverCore.TokenType) -> [SoulverCore.Token]
+ public func allTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func onlyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ public func anyTypesHaveBeenPresentIn(_ types: Swift.Set) -> Swift.Bool
+ @objc deinit
+}
+extension TokenList : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension TokenList {
+ public func tokenFor(tokenIndex: SoulverCore.TokenIndex) -> SoulverCore.Token?
+ public func tokenIndexFor(token: SoulverCore.Token) -> SoulverCore.TokenIndex?
+ public func tokenFor(characterIndex: Swift.Int) -> SoulverCore.Token?
+ public func findParentOf(childToken: SoulverCore.Token, in tokenList: SoulverCore.TokenList, inRange limitToRange: Swift.ClosedRange? = nil) -> SoulverCore.Token?
+}
+public typealias TokenListEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void
+public typealias TokenListStoppableEnumerationBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?, inout Swift.Bool) -> Swift.Void
+public typealias TokenListLeftAndRightEnumerationBlock = (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void
+public typealias TokenListTestBlock = (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Bool
+extension TokenList {
+ public func enumerateSublists(reversed: Swift.Bool, includeSelf: Swift.Bool, enumerationBlock: (SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool = true, enumerationBlock: (SoulverCore.Token, SoulverCore.TokenList, SoulverCore.Token?) -> Swift.Void)
+ public func enumerateAllTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, ignoreWhitespace: Swift.Bool, ensureBothSides: Swift.Bool, enumerationBlock: (SoulverCore.Token, SoulverCore.Token?, SoulverCore.Token?, SoulverCore.TokenList) -> Swift.Void)
+ public func enumerateTokensOfType(_ type: SoulverCore.TokenType, reversed: Swift.Bool, enumerationBlock: (SoulverCore.Token, inout Swift.Bool) -> Swift.Void)
+}
+extension TokenList {
+ public func containsToken(token: SoulverCore.Token) -> Swift.Bool
+ public func scanForTokenWithType(_ tokenTypes: Swift.Set, ignoreParentsWithTypes parentTypes: Swift.Set? = nil) -> Swift.Bool
+}
+extension TokenList {
+ public func typePrecheck(_ type: SoulverCore.TokenType) -> Swift.Bool
+ public func typesPrecheck(_ types: Swift.Set) -> Swift.Bool
+}
+extension TokenList {
+ public static var EmptyList: SoulverCore.TokenList
+}
+public struct Timestamp {
+ public let decimalValue: Foundation.Decimal
+}
+public class VariableList : Swift.CustomDebugStringConvertible {
+ public init()
+ convenience public init(variables: [SoulverCore.Variable])
+ public func provideVariableDefinitionsVia(definitionBlock: (SoulverCore.RawExpression) -> SoulverCore.CalculationResult)
+ public func allVariables() -> [SoulverCore.Variable]
+ public func lineReferences() -> [SoulverCore.Variable]
+ public func isLineReference(variable: SoulverCore.Variable) -> Swift.Bool
+ public func variablesExludingLineReferences() -> [SoulverCore.Variable]
+ public func singleWordVariables() -> [SoulverCore.Variable]
+ public func multiWordVariables(reverseSortByLength: Swift.Bool) -> [SoulverCore.Variable]
+ public func setVariable(_ variable: SoulverCore.Variable, isLineReference: Swift.Bool = false)
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct CalculationResult {
+ public let evaluationResult: SoulverCore.EvaluationResult
+ public let stringValue: Swift.String
+}
+extension CalculationResult {
+ public var isEmptyResult: Swift.Bool {
+ get
+ }
+}
+public let EmptyResult: SoulverCore.CalculationResult
+public struct ExportOptions {
+ public var plainTextSeparator: Swift.String
+ public var useUnformattedResults: Swift.Bool
+ public var substituteLineReferences: Swift.Bool
+ public var includeAnswers: Swift.Bool
+ public init()
+}
+@_hasMissingDesignatedInitializers public class LineCollectionExporter {
+ public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
+ @objc deinit
+}
+@_hasMissingDesignatedInitializers public class ResultContextualMetadata {
+ public class func humanReadableMetadataFor(formattedResult: SoulverCore.CalculationResult, customization: SoulverCore.EngineCustomization) -> Swift.String?
+ @objc deinit
+}
+public struct EngineCustomization : Swift.Equatable, Swift.Hashable {
+ public let locale: Foundation.Locale
+ public var unitSystem: SoulverCore.UnitMeasurementSystem
+ public var customVariables: [SoulverCore.Variable]
+ public var customUnits: [SoulverCore.CustomUnit] {
+ get
+ set
+ }
+ public var currencyUnits: [SoulverCore.UnitDescription] {
+ get
+ set
+ }
+ public var customSymbols: [SoulverCore.UnitSymbolReplacement] {
+ get
+ set
+ }
+ public var featureFlags: SoulverCore.EngineFeatureFlags
+ public init(locale: Foundation.Locale)
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var standard: SoulverCore.EngineCustomization {
+ get
+ }
+ public func convertTo(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+ public static func == (a: SoulverCore.EngineCustomization, b: SoulverCore.EngineCustomization) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension EngineCustomization {
+ public static func engineWithLocale(locale: Foundation.Locale) -> SoulverCore.EngineCustomization
+}
+extension EngineCustomization {
+ public func isOperator(text: Swift.String) -> Swift.Bool
+}
+public typealias Scalar = Swift.String
+@_hasMissingDesignatedInitializers public class LineCollectionArchiver {
+ public class func encode(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
+ public class func decode(encodedLineSheet: Foundation.Data, withCustomization customization: SoulverCore.EngineCustomization, preferredLocale locale: Foundation.Locale, defaultLineFormatting: SoulverCore.FormattingPreferences?) throws -> SoulverCore.LineCollection
+ @objc deinit
+}
+public let UntokenizedLineReference: Swift.String
+public protocol RoutineOwner : AnyObject {
+ func routineCompleted(routine: SoulverCore.Routine)
+}
+public protocol Routine : AnyObject {
+ var routineOwner: SoulverCore.RoutineOwner? { get set }
+ func go()
+ func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+extension Routine {
+ public func goWithCompletionBlock(completion: @escaping (() -> Swift.Void))
+}
+public typealias RawExpression = Swift.String
+infix operator *+* : AdditionPrecedence
+@_hasMissingDesignatedInitializers public class LineOperationsController {
+ public var baseVariables: SoulverCore.VariableList
+ public var externalEvaluators: [SoulverCore.ExternalEvaluator] {
+ get
+ set
+ }
+ public var beautifcationOptions: SoulverCore.ExpressionBeautificationOptions?
+ @objc deinit
+}
+extension NSNotification.Name {
+ public static let currenciesUpdateSucceeded: Foundation.Notification.Name
+ public static let currenciesUpdateFailed: Foundation.Notification.Name
+ public static let currenciesUpdateStarted: Foundation.Notification.Name
+}
+public enum CurrencySet : Swift.String {
+ case popular
+ case realWorld
+ case realWorldPlusCrypto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public struct CurrencySourceCredentials {
+ public init(currencyLayerKey: Swift.String?, nomicsKey: Swift.String?)
+}
+@_hasMissingDesignatedInitializers public class CurrencyList {
+ public static let shared: SoulverCore.CurrencyList
+ public var rateRefreshingCredentials: SoulverCore.CurrencySourceCredentials
+ public var defaultCurrencySet: SoulverCore.CurrencySet {
+ get
+ set
+ }
+ public func refreshRates(completionHandler: ((Swift.Bool) -> Swift.Void)? = nil)
+ public func saveCurrenciesTo(url: Foundation.URL)
+ public func loadCurrenciesFrom(url: Foundation.URL) throws
+ @objc deinit
+}
+public typealias PrivateUnicodeSymbol = Swift.String
+@_hasMissingDesignatedInitializers public class SingleCharacterUIDGenerator {
+ public class func isUID(symbol: SoulverCore.PrivateUnicodeSymbol) -> Swift.Bool
+ @objc deinit
+}
+public typealias VariableName = Swift.String
+public typealias VariableValue = Swift.String
+public struct Variable : Swift.Codable {
+ public let name: SoulverCore.VariableName
+ public let value: SoulverCore.VariableValue?
+ public init(name: SoulverCore.VariableName, value: SoulverCore.VariableValue?)
+ public var declaringLineIndex: SoulverCore.LineIndex?
+ public var definition: SoulverCore.EvaluationResult?
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Variable : Swift.Hashable, Swift.Equatable {
+ public static func == (lhs: SoulverCore.Variable, rhs: SoulverCore.Variable) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+public struct Datestamp {
+ public let date: Foundation.Date
+ public let hasTimeComponent: Swift.Bool
+ public var timezone: Foundation.TimeZone?
+}
+extension String {
+ public func removingThousandsSeparators(locale: Foundation.Locale) -> Swift.String
+ public func wrappedIn(_ character: Swift.String) -> Swift.String
+ public func bracketed() -> Swift.String
+ public func invertedCommad() -> Swift.String
+ public func spaced() -> Swift.String
+ public static var standardEasternEuropeanThousandsSeparator: Swift.String
+ public static var standardWhitespace: Swift.String
+ public static let standardDecimalPoint: Swift.String
+ public static let newlineSymbol: Swift.String
+ public var isNewline: Swift.Bool {
+ get
+ }
+ public var isSingleWhitespace: Swift.Bool {
+ get
+ }
+ public var isLowerecased: Swift.Bool {
+ get
+ }
+ public var isUppercased: Swift.Bool {
+ get
+ }
+ public var isMixedCase: Swift.Bool {
+ get
+ }
+ public func replaceCharactersFromSet(characterSet: Foundation.CharacterSet, replacementString: Swift.String = "") -> Swift.String
+ public var whitespaceStandardized: Swift.String {
+ get
+ }
+ public var whitespaceRemoved: Swift.String {
+ get
+ }
+ public var whitespaceTrimmed: Swift.String {
+ get
+ }
+}
+extension String {
+ public var completeStringRange: Foundation.NSRange {
+ get
+ }
+ public var completeRange: Swift.Range {
+ get
+ }
+ public var dirtyWordCount: Swift.Int {
+ get
+ }
+ public var dirtyLineCount: Swift.Int {
+ get
+ }
+ public var newLineCount: Swift.Int {
+ get
+ }
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func removingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func removingSuffix(_ suffix: Swift.String) -> Swift.String
+ public func addingPrefix(_ prefix: Swift.String) -> Swift.String
+ public func addingSuffix(_ suffix: Swift.String) -> Swift.String
+}
+extension String {
+ public func enumerateLinguisticTags(invoking body: @escaping (Swift.String, Foundation.NSRange) -> Swift.Void)
+ public var words: [Swift.String] {
+ get
+ }
+ public func enumerateCharacters(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public func enumerateRangesOf(pattern: Swift.String, reverse: Swift.Bool, invoking body: @escaping (Foundation.NSRange) -> Swift.Void)
+ public func enumerateParagraphs(invoking body: @escaping (Swift.String, inout Swift.Bool) -> Swift.Void)
+ public var lemma: Swift.String? {
+ get
+ }
+ public var lemmas: [Swift.String] {
+ get
+ }
+}
+extension String {
+ public func containsPattern(_ regex: Swift.String) -> Swift.Bool
+ public func capturedGroups(with pattern: Foundation.NSRegularExpression) -> [Foundation.NSRange]
+ public func capturedGroups(withRegex pattern: Swift.String) -> [Foundation.NSRange]
+ public func erasingPattern(_ pattern: Swift.String) -> Swift.String
+ public var trailingDigit: Swift.Int? {
+ get
+ }
+}
+extension String {
+ public func containsCharacter(_ element: Swift.Character) -> Swift.Bool
+ public func rangesOf(string: Swift.String) -> [Swift.Range]
+ public func rangesOf(strings: [Swift.String]) -> [Swift.Range]
+}
+public enum LineStyle : Swift.Int {
+ case normal
+ case heading
+ case label
+ case comment
+ public typealias RawValue = Swift.Int
+ public init?(rawValue: Swift.Int)
+ public var rawValue: Swift.Int {
+ get
+ }
+}
+public class LineStyler {
+ public static let MARKDOWN_HEADING_CHARACTER: Swift.String
+ public static let HEADING_INDICATOR: Swift.String
+ public static let COMMENT_INDICATOR: Swift.String
+ public static let LABEL_INDICATOR: Swift.String
+ public init()
+ public func lineStyleFor(expression: Swift.String) -> SoulverCore.LineStyle
+ public func style(expression: Swift.String, with style: SoulverCore.LineStyle) -> Swift.String
+ public func entireLabelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func labelRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public func headingIndicatorRangeIn(_ expression: Swift.String) -> Foundation.NSRange?
+ public var defaultLabel: Swift.String {
+ get
+ }
+ @objc deinit
+}
+extension Decimal {
+ public var doubleValue: Swift.Double {
+ get
+ }
+}
+extension Token {
+ public var number: Foundation.Decimal? {
+ get
+ }
+ public var scalar: SoulverCore.Scalar? {
+ get
+ }
+ public var variable: SoulverCore.Variable? {
+ get
+ }
+ public var isLineReference: Swift.Bool {
+ get
+ }
+}
+extension NumberFormatter {
+ open func string(from number: Foundation.Decimal) -> Swift.String?
+}
+public class Calculator {
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var customization: SoulverCore.EngineCustomization {
+ get
+ }
+ public init(customization: SoulverCore.EngineCustomization)
+ public func calculate(_ expression: SoulverCore.RawExpression, with variableList: SoulverCore.VariableList? = nil) -> SoulverCore.CalculationResult
+ @objc deinit
+}
+indirect public enum EvaluationResult {
+ case rawString(Swift.String)
+ case decimal(Foundation.Decimal)
+ case percentage(SoulverCore.Percentage)
+ case fraction(SoulverCore.Fraction)
+ case multiplier(SoulverCore.Multiplier)
+ case boolean(Swift.Bool)
+ case unitExpression(SoulverCore.UnitExpression)
+ case rate(SoulverCore.UnitRate)
+ case date(SoulverCore.Datestamp)
+ case iso8601(SoulverCore.iso8601)
+ case timestamp(SoulverCore.Timestamp)
+ case timespan(SoulverCore.Timespan)
+ case laptime(SoulverCore.Laptime)
+ case error(SoulverCore.EvaluationError)
+ case variable(SoulverCore.Variable)
+ case none
+ public var equivalentTokenType: SoulverCore.TokenType {
+ get
+ }
+}
+public protocol TokenMetadata {
+ func safeCopy() -> SoulverCore.TokenMetadata
+}
+public struct Fraction {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
+public struct Multiplier {
+ public let decimalValue: Foundation.Decimal
+}
+@_hasMissingDesignatedInitializers public class LineCollectionCompletions {
+ public class func completionsFor(textFragment: Swift.String, onLineAtIndex lineIndex: SoulverCore.LineIndex, in lineCollection: SoulverCore.LineCollection) -> [Swift.String]
+ @objc deinit
+}
+public enum UnitSymbolReplacementPosition : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case before
+ case beforeWithSpace
+ case after
+ case afterWithSpace
+ public var description: Swift.String {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitSymbolReplacementPosition]
+ public static var allCases: [SoulverCore.UnitSymbolReplacementPosition] {
+ get
+ }
+}
+public struct UnitSymbolReplacement : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public let originalSymbol: Swift.String
+ public let replacementSymbol: Swift.String
+ public let position: SoulverCore.UnitSymbolReplacementPosition
+ public init(original: Swift.String, replacement: Swift.String, position: SoulverCore.UnitSymbolReplacementPosition = .before)
+ public static func standardCustomSymbolsFor(locale: Foundation.Locale) -> [SoulverCore.UnitSymbolReplacement]
+ public static func == (a: SoulverCore.UnitSymbolReplacement, b: SoulverCore.UnitSymbolReplacement) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct CustomUnit : Swift.Hashable, Swift.Equatable, Swift.Codable {
+ public let name: Swift.String
+ public let definition: Swift.Double
+ public let equivalentUnit: SoulverCore.UnitIdentifier
+ public let legacyDefinition: Swift.String?
+ public init(name: Swift.String, definition: Swift.Double, equivalentUnit: SoulverCore.UnitIdentifier)
+ public init(from decoder: Swift.Decoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.CustomUnit, b: SoulverCore.CustomUnit) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public struct Percentage {
+ public let decimalValue: Foundation.Decimal
+}
+public typealias ExternalEvaluatorSymbol = Swift.String
+public protocol ExternalEvaluator {
+ var symbol: SoulverCore.ExternalEvaluatorSymbol { get }
+ func evaluate(_ expression: SoulverCore.RawExpression) -> SoulverCore.CalculationResult
+}
+@_hasMissingDesignatedInitializers public class LineSection : Swift.Codable {
+ public var lines: [SoulverCore.Line]
+ @objc deinit
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+}
+public typealias UID = Swift.String
+public struct LineReference : Swift.Equatable, Swift.Codable, Swift.Hashable, Swift.CustomStringConvertible {
+ public let UID: SoulverCore.UID
+ public init(UID: SoulverCore.UID)
+ public var description: Swift.String {
+ get
+ }
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.LineReference, b: SoulverCore.LineReference) -> Swift.Bool
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public struct iso8601 {
+ public let datestamp: SoulverCore.Datestamp
+}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
+public enum UnitMeasurementSystem : Swift.String, Swift.RawRepresentable, Swift.Equatable {
+ case customaryUS
+ case imperial
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+@_hasMissingDesignatedInitializers public class LocaleProvider {
+ public class func localeWith(identifier: Swift.String) -> Foundation.Locale
+ @objc deinit
+}
+public enum SIThreshold : Swift.String {
+ case septillion
+ case sextillion
+ case quintillion
+ case quadrillion
+ case trillion
+ case billion
+ case million
+ case hundredThousand
+ case thousand
+ case hecto
+ case deca
+ case centi
+ case milli
+ case micro
+ case nano
+ case pico
+ case femto
+ case atto
+ case zetto
+ case yocto
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public enum ApparentLineType {
+ case regular
+ case comment
+ case variableDeclaration
+ public static func == (a: SoulverCore.ApparentLineType, b: SoulverCore.ApparentLineType) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+}
+public enum LineCalculationBehaviour : Swift.String, Swift.Codable {
+ case evaluatesExpression
+ case sumsLinesAbove
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+}
+public class Line : Swift.Codable {
+ public var expression: SoulverCore.RawExpression {
+ get
+ set
+ }
+ public var behaviour: SoulverCore.LineCalculationBehaviour
+ public var skipStatistics: Swift.Bool
+ public var lineReference: SoulverCore.LineReference?
+ public var formattingPreferences: SoulverCore.FormattingPreferences?
+ public var result: SoulverCore.CalculationResult?
+ public var parsedExpression: SoulverCore.TokenList?
+ public var apparentLineType: SoulverCore.ApparentLineType?
+ public var lineIndex: SoulverCore.LineIndex?
+ public var explicitDependencies: Foundation.IndexSet?
+ public var variableEnvironment: SoulverCore.VariableList?
+ public var rawResult: Swift.String {
+ get
+ }
+ public var formattedResult: Swift.String {
+ get
+ }
+ convenience public init(_ expression: SoulverCore.RawExpression)
+ public init()
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ @objc deinit
+}
+extension Line {
+ public var isSubtotal: Swift.Bool {
+ get
+ }
+ public var isHeading: Swift.Bool {
+ get
+ }
+}
+extension Line {
+ public var declaredVariable: SoulverCore.Variable? {
+ get
+ }
+}
+extension Line : Swift.Equatable, Swift.Hashable {
+ public static func == (lhs: SoulverCore.Line, rhs: SoulverCore.Line) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public static var EmptyLine: SoulverCore.Line {
+ get
+ }
+ public var hashValue: Swift.Int {
+ get
+ }
+}
+extension Line : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension Line {
+ public var includesLineReferences: Swift.Bool {
+ get
+ }
+}
+extension UnitLength {
+ public static let pixel: Foundation.UnitLength
+ public static let em: Foundation.UnitLength
+ public static let point: Foundation.UnitLength
+}
+@objc @_inheritsConvenienceInitializers final public class UnitCurrency : Foundation.Dimension {
+ convenience public init(symbol: Swift.String, coefficient: Swift.Double)
+ public static let usd: SoulverCore.UnitCurrency
+ public static let aud: SoulverCore.UnitCurrency
+ public static let eur: SoulverCore.UnitCurrency
+ @objc override final public class func baseUnit() -> SoulverCore.UnitCurrency
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitComputerStorage : Foundation.Dimension {
+ public static let bytes: SoulverCore.UnitComputerStorage
+ public static let bits: SoulverCore.UnitComputerStorage
+ public static let nibbles: SoulverCore.UnitComputerStorage
+ public static let yottabytes: SoulverCore.UnitComputerStorage
+ public static let zettabytes: SoulverCore.UnitComputerStorage
+ public static let exabytes: SoulverCore.UnitComputerStorage
+ public static let petabytes: SoulverCore.UnitComputerStorage
+ public static let terabytes: SoulverCore.UnitComputerStorage
+ public static let gigabytes: SoulverCore.UnitComputerStorage
+ public static let megabytes: SoulverCore.UnitComputerStorage
+ public static let kilobytes: SoulverCore.UnitComputerStorage
+ public static let yottabits: SoulverCore.UnitComputerStorage
+ public static let zettabits: SoulverCore.UnitComputerStorage
+ public static let exabits: SoulverCore.UnitComputerStorage
+ public static let petabits: SoulverCore.UnitComputerStorage
+ public static let terabits: SoulverCore.UnitComputerStorage
+ public static let gigabits: SoulverCore.UnitComputerStorage
+ public static let megabits: SoulverCore.UnitComputerStorage
+ public static let kilobits: SoulverCore.UnitComputerStorage
+ public static let yobibytes: SoulverCore.UnitComputerStorage
+ public static let zebibytes: SoulverCore.UnitComputerStorage
+ public static let exbibytes: SoulverCore.UnitComputerStorage
+ public static let pebibytes: SoulverCore.UnitComputerStorage
+ public static let tebibytes: SoulverCore.UnitComputerStorage
+ public static let gibibytes: SoulverCore.UnitComputerStorage
+ public static let mebibytes: SoulverCore.UnitComputerStorage
+ public static let kibibytes: SoulverCore.UnitComputerStorage
+ public static let yobibits: SoulverCore.UnitComputerStorage
+ public static let zebibits: SoulverCore.UnitComputerStorage
+ public static let exbibits: SoulverCore.UnitComputerStorage
+ public static let pebibits: SoulverCore.UnitComputerStorage
+ public static let tebibits: SoulverCore.UnitComputerStorage
+ public static let gibibits: SoulverCore.UnitComputerStorage
+ public static let mebibits: SoulverCore.UnitComputerStorage
+ public static let kibibits: SoulverCore.UnitComputerStorage
+ @objc override final public class func baseUnit() -> SoulverCore.UnitComputerStorage
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class UnitDataTransfer : Foundation.Dimension {
+ public static let bytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let bitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yottabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zettabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let petabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let terabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gigabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let megabitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kilobitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibytesPerSecond: SoulverCore.UnitDataTransfer
+ public static let yobibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let zebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let exbibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let pebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let tebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let gibibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let mebibitsPerSecond: SoulverCore.UnitDataTransfer
+ public static let kibibitsPerSecond: SoulverCore.UnitDataTransfer
+ @objc override final public class func baseUnit() -> SoulverCore.UnitDataTransfer
+ @objc override final public func isEqual(_ object: Any?) -> Swift.Bool
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+ @objc deinit
+}
+@objc @_inheritsConvenienceInitializers final public class NullUnit : Foundation.Dimension {
+ @objc override final public class func baseUnit() -> Self
+ @objc deinit
+ @objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
+ @objc required dynamic public init?(coder: Foundation.NSCoder)
+}
+public typealias LineIndex = Swift.Int
+public typealias PageIndex = Swift.Int
+@_hasMissingDesignatedInitializers public class LineSheet : Swift.Codable {
+ required public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var debugDescription: Swift.String {
+ get
+ }
+ @objc deinit
+}
+public struct Timespan {
+ public let dateComponents: Foundation.DateComponents
+}
+public struct EngineFeatureFlags : Swift.Equatable, Swift.Hashable, Swift.Codable {
+ public var calendarCalculations: Swift.Bool
+ public var units: Swift.Bool
+ public var wordFunctions: Swift.Bool
+ public var variableDeclarations: Swift.Bool
+ public var bracketComments: Swift.Bool
+ public var inAmbiguityPreferSomethingToNothing: Swift.Bool
+ public var leftToRightOperatorEvaluation: Swift.Bool
+ public init()
+ public init(units: Swift.Bool, wordFunctions: Swift.Bool, variableDeclarations: Swift.Bool, bracketComments: Swift.Bool, calendarCalculations: Swift.Bool, leftToRightOperatorEvaluation: Swift.Bool, inAmbiguityPreferSomethingToNothing: Swift.Bool)
+ public init(from decoder: Swift.Decoder) throws
+ public static func == (a: SoulverCore.EngineFeatureFlags, b: SoulverCore.EngineFeatureFlags) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public func encode(to encoder: Swift.Encoder) throws
+}
+extension Int {
+ public func compare(_ other: Swift.Int) -> Foundation.ComparisonResult
+}
+public struct UnitRate {
+ public let value: Foundation.Decimal
+ public let ofUnit: SoulverCore.CocoaUnit?
+ public let perUnit: SoulverCore.CocoaUnit
+}
+extension UnitRate : Swift.Comparable {
+ public static func < (lhs: SoulverCore.UnitRate, rhs: SoulverCore.UnitRate) -> Swift.Bool
+ public static func == (a: SoulverCore.UnitRate, b: SoulverCore.UnitRate) -> Swift.Bool
+}
+extension UnitRate : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+extension UnitExpression : Swift.CustomDebugStringConvertible {
+ public var debugDescription: Swift.String {
+ get
+ }
+}
+public enum UnitIdentifier : Swift.String, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable {
+ case metersPerSecondSquared
+ case gravity
+ case degrees
+ case arcMinutes
+ case arcSeconds
+ case radians
+ case gradians
+ case revolutions
+ case squareMegameters
+ case squareKilometers
+ case squareMeters
+ case squareCentimeters
+ case squareMillimeters
+ case squareMicrometers
+ case squareNanometers
+ case squareInches
+ case squareFeet
+ case squareYards
+ case squareMiles
+ case acres
+ case ares
+ case hectares
+ case gramsPerLiter
+ case milligramsPerDeciliter
+ case partsPerMillion
+ case picoseconds
+ case nanoseconds
+ case microseconds
+ case milliseconds
+ case seconds
+ case minutes
+ case hours
+ case days
+ case weekdays
+ case weeks
+ case months
+ case years
+ case coulombs
+ case megaampereHours
+ case kiloampereHours
+ case ampereHours
+ case milliampereHours
+ case microampereHours
+ case megaamperes
+ case kiloamperes
+ case amperes
+ case milliamperes
+ case microamperes
+ case megavolts
+ case kilovolts
+ case volts
+ case millivolts
+ case microvolts
+ case megaohms
+ case kiloohms
+ case ohms
+ case milliohms
+ case microohms
+ case joules
+ case kilojoules
+ case megajoules
+ case gigajoules
+ case kilocalories
+ case calories
+ case wattSeconds
+ case wattMinutes
+ case wattHours
+ case kilowattHours
+ case megawattHours
+ case gigawattHours
+ case terawattHours
+ case terahertz
+ case gigahertz
+ case megahertz
+ case kilohertz
+ case hertz
+ case millihertz
+ case microhertz
+ case nanohertz
+ case litersPer100Kilometers
+ case milesPerImperialGallon
+ case milesPerGallon
+ case megameters
+ case kilometers
+ case hectometers
+ case decameters
+ case meters
+ case decimeters
+ case centimeters
+ case millimeters
+ case micrometers
+ case nanometers
+ case picometers
+ case inches
+ case feet
+ case yards
+ case miles
+ case scandinavianMiles
+ case lightyears
+ case nauticalMiles
+ case fathoms
+ case furlongs
+ case parsecs
+ case lux
+ case kilograms
+ case grams
+ case decigrams
+ case centigrams
+ case milligrams
+ case micrograms
+ case nanograms
+ case picograms
+ case ounces
+ case pounds
+ case stones
+ case metricTons
+ case shortTons
+ case carats
+ case ouncesTroy
+ case slugs
+ case terawatts
+ case gigawatts
+ case megawatts
+ case kilowatts
+ case watts
+ case milliwatts
+ case microwatts
+ case nanowatts
+ case picowatts
+ case femtowatts
+ case horsepower
+ case newtonsPerMetersSquared
+ case gigapascals
+ case megapascals
+ case kilopascals
+ case hectopascals
+ case inchesOfMercury
+ case bars
+ case millibars
+ case millimetersOfMercury
+ case poundsForcePerSquareInch
+ case metersPerSecond
+ case kilometersPerHour
+ case milesPerHour
+ case knots
+ case kelvin
+ case celsius
+ case fahrenheit
+ case megaliters
+ case kiloliters
+ case liters
+ case milliliters
+ case cubicKilometers
+ case cubicMeters
+ case cubicCentimeters
+ case cubicMillimeters
+ case cubicInches
+ case cubicFeet
+ case cubicYards
+ case cubicMiles
+ case acreFeet
+ case bushels
+ case teaspoons
+ case tablespoons
+ case fluidOunces
+ case cups
+ case pints
+ case quarts
+ case gallons
+ case imperialTeaspoons
+ case imperialTablespoons
+ case imperialFluidOunces
+ case imperialPints
+ case imperialQuarts
+ case imperialGallons
+ case metricCups
+ case bytes
+ case bits
+ case yottabytes
+ case zettabytes
+ case exabytes
+ case petabytes
+ case terabytes
+ case gigabytes
+ case megabytes
+ case kilobytes
+ case yottabits
+ case zettabits
+ case exabits
+ case petabits
+ case terabits
+ case gigabits
+ case megabits
+ case kilobits
+ case yobibytes
+ case zebibytes
+ case exbibytes
+ case pebibytes
+ case tebibytes
+ case gibibytes
+ case mebibytes
+ case kibibytes
+ case yobibits
+ case zebibits
+ case exbibits
+ case pebibits
+ case tebibits
+ case gibibits
+ case mebibits
+ case kibibits
+ case pixel
+ case em
+ case point
+ case bytesPerSecond
+ case bitsPerSecond
+ case yottabytesPerSecond
+ case zettabytesPerSecond
+ case exabytesPerSecond
+ case petabytesPerSecond
+ case terabytesPerSecond
+ case gigabytesPerSecond
+ case megabytesPerSecond
+ case kilobytesPerSecond
+ case yottabitsPerSecond
+ case zettabitsPerSecond
+ case exabitsPerSecond
+ case petabitsPerSecond
+ case terabitsPerSecond
+ case gigabitsPerSecond
+ case megabitsPerSecond
+ case kilobitsPerSecond
+ case yobibytesPerSecond
+ case zebibytesPerSecond
+ case exbibytesPerSecond
+ case pebibytesPerSecond
+ case tebibytesPerSecond
+ case gibibytesPerSecond
+ case mebibytesPerSecond
+ case kibibytesPerSecond
+ case yobibitsPerSecond
+ case zebibitsPerSecond
+ case exbibitsPerSecond
+ case pebibitsPerSecond
+ case tebibitsPerSecond
+ case gibibitsPerSecond
+ case mebibitsPerSecond
+ case kibibitsPerSecond
+ case usd
+ case aud
+ case eur
+ case undefined
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ public typealias AllCases = [SoulverCore.UnitIdentifier]
+ public static var allCases: [SoulverCore.UnitIdentifier] {
+ get
+ }
+}
+extension UnitIdentifier {
+ public var unitType: SoulverCore.UnitType {
+ get
+ }
+}
+public enum UnitType : Swift.String, Swift.CaseIterable, Swift.Codable {
+ case length
+ case mass
+ case duration
+ case currency
+ case volume
+ case speed
+ case acceleration
+ case temperature
+ case concentrationMass
+ case dispersion
+ case dataStorage
+ case dataTransfer
+ case area
+ case frequency
+ case angle
+ case illuminance
+ case energy
+ case power
+ case pressure
+ case fuelEfficiency
+ case electricCurrent
+ case electricCharge
+ case electricPotential
+ case electricResistance
+ case other
+ public var label: Swift.String {
+ get
+ }
+ public var baseUnitIdentifier: SoulverCore.UnitIdentifier {
+ get
+ }
+ public var associatedOtherUnits: [SoulverCore.UnitIdentifier] {
+ get
+ }
+ public typealias RawValue = Swift.String
+ public var rawValue: Swift.String {
+ get
+ }
+ public init?(rawValue: Swift.String)
+ public typealias AllCases = [SoulverCore.UnitType]
+ public static var allCases: [SoulverCore.UnitType] {
+ get
+ }
+}
+public func cocoaUnitFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.CocoaUnit
+public func unitIdentifierFor(cocoaUnit: SoulverCore.CocoaUnit) -> SoulverCore.UnitIdentifier?
+public func motherUnitIdentifierFor(identifier: SoulverCore.UnitIdentifier) -> SoulverCore.UnitIdentifier
+@objc @_inheritsConvenienceInitializers open class AsynchronousOperation : Foundation.Operation {
+ @objc override dynamic public var isAsynchronous: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isExecuting: Swift.Bool {
+ @objc get
+ }
+ @objc override dynamic public var isFinished: Swift.Bool {
+ @objc get
+ }
+ public var state: SoulverCore.AsynchronousOperation.State {
+ get
+ set
+ }
+ public enum State : Swift.String {
+ case ready
+ case executing
+ case finished
+ public typealias RawValue = Swift.String
+ public init?(rawValue: Swift.String)
+ public var rawValue: Swift.String {
+ get
+ }
+ }
+ @objc override dynamic open func start()
+ @objc override dynamic open func main()
+ @objc override dynamic public init()
+ @objc deinit
+}
+public struct UnitExpression {
+ public let value: Foundation.Decimal
+ public let unit: SoulverCore.CocoaUnit
+}
+extension UnitExpression : Swift.Comparable {
+ public static func == (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+ public static func < (lhs: SoulverCore.UnitExpression, rhs: SoulverCore.UnitExpression) -> Swift.Bool
+}
+public typealias TokenIndex = Swift.Int
+public struct TokenIndexPath : Swift.Equatable {
+ public let tokenIndex: SoulverCore.TokenIndex
+ public let lineIndex: SoulverCore.LineIndex
+ public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
+ public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
+}
+public struct NotationPreferences : Swift.Equatable {
+ public enum NotationStyle {
+ case auto
+ case on
+ case off
+ public static func == (a: SoulverCore.NotationPreferences.NotationStyle, b: SoulverCore.NotationPreferences.NotationStyle) -> Swift.Bool
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ }
+ public var notationStyle: SoulverCore.NotationPreferences.NotationStyle
+ public var upperNotationThreshold: SoulverCore.SIThreshold
+ public var lowerNotationThreshold: SoulverCore.SIThreshold
+ public init(notationStyle: SoulverCore.NotationPreferences.NotationStyle, upperNotationThreshold: SoulverCore.SIThreshold, lowerNotationThreshold: SoulverCore.SIThreshold)
+ public static func == (a: SoulverCore.NotationPreferences, b: SoulverCore.NotationPreferences) -> Swift.Bool
+}
+public struct FormattingPreferences : Swift.Codable, Swift.Equatable {
+ public static var maximumDp: Swift.Int
+ public var dp: Swift.Int
+ public var thousandsSeparatorDisabled: Swift.Bool
+ public var currencyFormattingDisabled: Swift.Bool
+ public var implicitUnitsDisabled: Swift.Bool
+ public var notationPreferences: SoulverCore.NotationPreferences
+ public var referencesTakeFormattedValue: Swift.Bool
+ public var fractionizeWherePossible: Swift.Bool
+ public init()
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public static func == (a: SoulverCore.FormattingPreferences, b: SoulverCore.FormattingPreferences) -> Swift.Bool
+}
+public struct ExpressionBeautificationOptions {
+ public var quickOperators: Swift.Bool
+ public var autoThousandsSeparators: Swift.Bool
+ public var padStandardOperators: Swift.Bool
+ public var fancyTimes: Swift.Bool
+ public var fancyMinus: Swift.Bool
+ public var collapseSpaces: Swift.Bool
+ public var formatsSlashCommentsWithSpaces: Swift.Bool
+ public static var defaults: SoulverCore.ExpressionBeautificationOptions {
+ get
+ }
+ public init()
+}
+extension Array where Element : Swift.Equatable {
+ public func doesNotContain(_ element: Element) -> Swift.Bool
+}
+extension Array {
+ public subscript(safe index: Swift.Array.Index) -> Element? {
+ get
+ }
+ public var lastIndex: Swift.Int? {
+ get
+ }
+ public func isValid(index: Swift.Int) -> Swift.Bool
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public mutating func trim(where predicate: (Element) throws -> Swift.Bool)
+ public mutating func move(from oldIndex: Swift.Array.Index, to newIndex: Swift.Array.Index)
+}
+extension IndexSet {
+ public var isNotEmpty: Swift.Bool {
+ get
+ }
+ public func isJust(_ integer: Swift.Int) -> Swift.Bool
+ public var onlyFirst: Foundation.IndexSet {
+ get
+ }
+ public var removingFirstIndex: Foundation.IndexSet {
+ get
+ }
+ public var smartDescription: Swift.String {
+ get
+ }
+ public var secondLastIndex: Swift.Int? {
+ get
+ }
+}
+public struct UnitDescription : Swift.Hashable, Swift.Codable {
+ public init(unit: SoulverCore.CocoaUnit, symbol: Swift.String, aliases: [Swift.String])
+ public init(from decoder: Swift.Decoder) throws
+ public func encode(to encoder: Swift.Encoder) throws
+ public var hashValue: Swift.Int {
+ get
+ }
+ public func hash(into hasher: inout Swift.Hasher)
+ public static func == (a: SoulverCore.UnitDescription, b: SoulverCore.UnitDescription) -> Swift.Bool
+}
+extension Dimension {
+ public var svUnitType: SoulverCore.UnitType {
+ get
+ }
+}
+extension SoulverCore.TokenType : Swift.Equatable {}
+extension SoulverCore.TokenType : Swift.Hashable {}
+extension SoulverCore.TokenSubType : Swift.Equatable {}
+extension SoulverCore.TokenSubType : Swift.Hashable {}
+extension SoulverCore.EvaluationError : Swift.Equatable {}
+extension SoulverCore.EvaluationError : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ReferenceSubstituionPolicy : Swift.Hashable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Equatable {}
+extension SoulverCore.LineCollectionEnumerator.ResultFormatting : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.Equatable {}
+extension SoulverCore.CurrencySet : Swift.Hashable {}
+extension SoulverCore.CurrencySet : Swift.RawRepresentable {}
+extension SoulverCore.LineStyle : Swift.Equatable {}
+extension SoulverCore.LineStyle : Swift.Hashable {}
+extension SoulverCore.LineStyle : Swift.RawRepresentable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Equatable {}
+extension SoulverCore.UnitSymbolReplacementPosition : Swift.Hashable {}
+extension SoulverCore.UnitMeasurementSystem : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.Equatable {}
+extension SoulverCore.SIThreshold : Swift.Hashable {}
+extension SoulverCore.SIThreshold : Swift.RawRepresentable {}
+extension SoulverCore.ApparentLineType : Swift.Equatable {}
+extension SoulverCore.ApparentLineType : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Equatable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.Hashable {}
+extension SoulverCore.LineCalculationBehaviour : Swift.RawRepresentable {}
+extension SoulverCore.UnitIdentifier : Swift.Equatable {}
+extension SoulverCore.UnitIdentifier : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.Equatable {}
+extension SoulverCore.UnitType : Swift.Hashable {}
+extension SoulverCore.UnitType : Swift.RawRepresentable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Equatable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.Hashable {}
+extension SoulverCore.AsynchronousOperation.State : Swift.RawRepresentable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Equatable {}
+extension SoulverCore.NotationPreferences.NotationStyle : Swift.Hashable {}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/module.modulemap b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/module.modulemap
new file mode 100644
index 000000000..2ed647f59
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/module.modulemap
@@ -0,0 +1,11 @@
+framework module SoulverCore {
+ umbrella header "SoulverCore.h"
+
+ export *
+ module * { export * }
+}
+
+module SoulverCore.Swift {
+ header "SoulverCore-Swift.h"
+ requires objc
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Cities.json
new file mode 100644
index 000000000..e00ce82fe
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Cities.json
@@ -0,0 +1,3569 @@
+[
+ {
+ "identifier": "shanghai",
+ "name": "Shanghai",
+ "population": "22,315,474",
+ "elevation": 12,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "istanbul",
+ "name": "Istanbul",
+ "population": "14,804,116",
+ "elevation": 39,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "buenos aires",
+ "name": "Buenos Aires",
+ "population": "13,076,300",
+ "elevation": 31,
+ "timezone_id": "America/Argentina/Buenos_Aires"
+ },
+ {
+ "identifier": "mumbai",
+ "name": "Mumbai",
+ "population": "12,691,836",
+ "elevation": 8,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "mexico city",
+ "name": "Mexico City",
+ "population": "12,294,193",
+ "elevation": 2240,
+ "timezone_id": "America/Mexico_City"
+ },
+ {
+ "identifier": "beijing",
+ "name": "Beijing",
+ "population": "11,716,620",
+ "elevation": 49,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "karachi",
+ "name": "Karachi",
+ "population": "11,624,219",
+ "elevation": 8,
+ "timezone_id": "Asia/Karachi"
+ },
+ {
+ "identifier": "tianjin",
+ "name": "Tianjin",
+ "population": "11,090,314",
+ "elevation": 11,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "guangzhou",
+ "name": "Guangzhou",
+ "population": "11,071,424",
+ "elevation": 15,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "delhi",
+ "name": "Delhi",
+ "population": "10,927,986",
+ "elevation": 227,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "moscow",
+ "name": "Moscow",
+ "population": "10,381,222",
+ "elevation": 144,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "shenzhen",
+ "name": "Shenzhen",
+ "population": "10,358,381",
+ "elevation": 4,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "dhaka",
+ "name": "Dhaka",
+ "population": "10,356,500",
+ "elevation": 23,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "seoul",
+ "name": "Seoul",
+ "population": "10,349,312",
+ "elevation": 38,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "sao paulo",
+ "name": "Sao Paulo",
+ "population": "10,021,295",
+ "elevation": 769,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "wuhan",
+ "name": "Wuhan",
+ "population": "9,785,388",
+ "elevation": 20,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "lagos",
+ "name": "Lagos",
+ "population": "9,000,000",
+ "elevation": 11,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "jakarta",
+ "name": "Jakarta",
+ "population": "8,540,121",
+ "elevation": 16,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "tokyo",
+ "name": "Tokyo",
+ "population": "8,336,599",
+ "elevation": 44,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "new york",
+ "name": "New York",
+ "population": "8,175,133",
+ "elevation": 57,
+ "aliases" : ["NYC"],
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "dongguan",
+ "name": "Dongguan",
+ "population": "8,000,000",
+ "elevation": 1,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "taipei",
+ "name": "Taipei",
+ "population": "7,871,900",
+ "elevation": 10,
+ "timezone_id": "Asia/Taipei"
+ },
+ {
+ "identifier": "kinshasa",
+ "name": "Kinshasa",
+ "population": "7,785,965",
+ "elevation": 281,
+ "timezone_id": "Africa/Kinshasa"
+ },
+ {
+ "identifier": "cairo",
+ "name": "Cairo",
+ "population": "7,734,614",
+ "elevation": 23,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "bogota",
+ "name": "Bogota",
+ "population": "7,674,366",
+ "elevation": 2582,
+ "timezone_id": "America/Bogota"
+ },
+ {
+ "identifier": "london",
+ "name": "London",
+ "population": "7,556,900",
+ "elevation": 25,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "chongqing",
+ "name": "Chongqing",
+ "population": "7,457,600",
+ "elevation": 225,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "chengdu",
+ "name": "Chengdu",
+ "population": "7,415,590",
+ "elevation": 499,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "baghdad",
+ "name": "Baghdad",
+ "population": "7,216,000",
+ "elevation": 41,
+ "timezone_id": "Asia/Baghdad"
+ },
+ {
+ "identifier": "nanjing",
+ "name": "Nanjing",
+ "population": "7,165,292",
+ "elevation": 22,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "tehran",
+ "name": "Tehran",
+ "population": "7,153,309",
+ "elevation": 1178,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "nanchong",
+ "name": "Nanchong",
+ "population": "7,150,000",
+ "elevation": 287,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "hong kong",
+ "name": "Hong Kong",
+ "population": "7,012,738",
+ "elevation": 60,
+ "timezone_id": "Asia/Hong_Kong"
+ },
+ {
+ "identifier": "xi'an",
+ "name": "Xi'an",
+ "population": "6,501,190",
+ "elevation": 416,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "rio de janeiro",
+ "name": "Rio de Janeiro",
+ "population": "6,023,699",
+ "elevation": 6,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "bangkok",
+ "name": "Bangkok",
+ "population": "5,104,476",
+ "elevation": 12,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "bengaluru",
+ "name": "Bengaluru",
+ "population": "5,104,047",
+ "elevation": 914,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "saint petersburg",
+ "name": "Saint Petersburg",
+ "population": "5,028,000",
+ "elevation": 11,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "santiago",
+ "name": "Santiago",
+ "population": "4,837,295",
+ "elevation": 556,
+ "timezone_id": "America/Santiago"
+ },
+ {
+ "identifier": "kolkata",
+ "name": "Kolkata",
+ "population": "4,631,392",
+ "elevation": 11,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "sydney",
+ "name": "Sydney",
+ "population": "4,627,345",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "yangon",
+ "name": "Yangon",
+ "population": "4,477,638",
+ "elevation": 30,
+ "timezone_id": "Asia/Yangon"
+ },
+ {
+ "identifier": "chennai",
+ "name": "Chennai",
+ "population": "4,328,063",
+ "elevation": 14,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "melbourne",
+ "name": "Melbourne",
+ "population": "4,246,375",
+ "elevation": 58,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "riyadh",
+ "name": "Riyadh",
+ "population": "4,205,961",
+ "elevation": 612,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "los angeles",
+ "name": "Los Angeles",
+ "population": "3,971,883",
+ "elevation": 96,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "chittagong",
+ "name": "Chittagong",
+ "population": "3,920,222",
+ "elevation": 15,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "alexandria",
+ "name": "Alexandria",
+ "population": "3,811,516",
+ "elevation": 9,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "ahmedabad",
+ "name": "Ahmedabad",
+ "population": "3,719,710",
+ "elevation": 56,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "busan",
+ "name": "Busan",
+ "population": "3,678,555",
+ "elevation": 26,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "abidjan",
+ "name": "Abidjan",
+ "population": "3,677,115",
+ "elevation": 76,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "kano",
+ "name": "Kano",
+ "population": "3,626,068",
+ "elevation": 484,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hyderabad",
+ "name": "Hyderabad",
+ "population": "3,597,816",
+ "elevation": 515,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "yokohama",
+ "name": "Yokohama",
+ "population": "3,574,443",
+ "elevation": 21,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "ibadan",
+ "name": "Ibadan",
+ "population": "3,565,108",
+ "elevation": 181,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "singapore",
+ "name": "Singapore",
+ "population": "3,547,809",
+ "elevation": 23,
+ "timezone_id": "Asia/Singapore"
+ },
+ {
+ "identifier": "ankara",
+ "name": "Ankara",
+ "population": "3,517,182",
+ "elevation": 874,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "ho chi minh city",
+ "name": "Ho Chi Minh City",
+ "population": "3,467,331",
+ "elevation": 7,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "cape town",
+ "name": "Cape Town",
+ "population": "3,433,441",
+ "elevation": 25,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "berlin",
+ "name": "Berlin",
+ "population": "3,426,354",
+ "elevation": 43,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "madrid",
+ "name": "Madrid",
+ "population": "3,255,944",
+ "elevation": 665,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pyongyang",
+ "name": "Pyongyang",
+ "population": "3,222,000",
+ "elevation": 43,
+ "timezone_id": "Asia/Pyongyang"
+ },
+ {
+ "identifier": "casablanca",
+ "name": "Casablanca",
+ "population": "3,144,909",
+ "elevation": 27,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "zhongshan",
+ "name": "Zhongshan",
+ "population": "3,121,275",
+ "elevation": 14,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "durban",
+ "name": "Durban",
+ "population": "3,120,282",
+ "elevation": 21,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "kabul",
+ "name": "Kabul",
+ "population": "3,043,532",
+ "elevation": 1798,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "urumqi",
+ "name": "Urumqi",
+ "population": "3,029,372",
+ "elevation": 862,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "caracas",
+ "name": "Caracas",
+ "population": "3,000,000",
+ "elevation": 887,
+ "timezone_id": "America/Caracas"
+ },
+ {
+ "identifier": "dubai",
+ "name": "Dubai",
+ "population": "2,956,587",
+ "elevation": 24,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "jeddah",
+ "name": "Jeddah",
+ "population": "2,867,446",
+ "elevation": 22,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "kyiv",
+ "name": "Kiev",
+ "population": "2,797,553",
+ "elevation": 187,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "luanda",
+ "name": "Luanda",
+ "population": "2,776,168",
+ "elevation": 73,
+ "timezone_id": "Africa/Luanda"
+ },
+ {
+ "identifier": "quezon city",
+ "name": "Quezon City",
+ "population": "2,761,720",
+ "elevation": 49,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "addis ababa",
+ "name": "Addis Ababa",
+ "population": "2,757,729",
+ "elevation": 2405,
+ "timezone_id": "Africa/Addis_Ababa"
+ },
+ {
+ "identifier": "nairobi",
+ "name": "Nairobi",
+ "population": "2,750,547",
+ "elevation": 1684,
+ "timezone_id": "Africa/Nairobi"
+ },
+ {
+ "identifier": "chicago",
+ "name": "Chicago",
+ "population": "2,720,546",
+ "elevation": 180,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "salvador",
+ "name": "Salvador",
+ "population": "2,711,840",
+ "elevation": 10,
+ "timezone_id": "America/Bahia"
+ },
+ {
+ "identifier": "dar es salaam",
+ "name": "Dar es Salaam",
+ "population": "2,698,652",
+ "elevation": 24,
+ "timezone_id": "Africa/Dar_es_Salaam"
+ },
+ {
+ "identifier": "toronto",
+ "name": "Toronto",
+ "population": "2,600,000",
+ "elevation": 175,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "osaka",
+ "name": "Osaka",
+ "population": "2,592,413",
+ "elevation": 24,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "mogadishu",
+ "name": "Mogadishu",
+ "population": "2,587,183",
+ "elevation": 12,
+ "timezone_id": "Africa/Mogadishu"
+ },
+ {
+ "identifier": "izmir",
+ "name": "Izmir",
+ "population": "2,500,603",
+ "elevation": 122,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "dakar",
+ "name": "Dakar",
+ "population": "2,476,400",
+ "elevation": 12,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "giza",
+ "name": "Giza",
+ "population": "2,443,203",
+ "elevation": 26,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "fortaleza",
+ "name": "Fortaleza",
+ "population": "2,400,000",
+ "elevation": 18,
+ "timezone_id": "America/Fortaleza"
+ },
+ {
+ "identifier": "surabaya",
+ "name": "Surabaya",
+ "population": "2,374,658",
+ "elevation": 8,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "belo horizonte",
+ "name": "Belo Horizonte",
+ "population": "2,373,224",
+ "elevation": 872,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "rome",
+ "name": "Rome",
+ "population": "2,318,895",
+ "elevation": 52,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "mashhad",
+ "name": "Mashhad",
+ "population": "2,307,177",
+ "elevation": 1003,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "brooklyn",
+ "name": "Brooklyn",
+ "population": "2,300,664",
+ "elevation": 18,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "houston",
+ "name": "Houston",
+ "population": "2,296,224",
+ "elevation": 30,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "queens",
+ "name": "Queens",
+ "population": "2,272,771",
+ "elevation": 13,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brasilia",
+ "name": "Brasilia",
+ "population": "2,207,718",
+ "elevation": 1136,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "santo domingo",
+ "name": "Santo Domingo",
+ "population": "2,201,941",
+ "elevation": 9,
+ "timezone_id": "America/Santo_Domingo"
+ },
+ {
+ "identifier": "nagoya",
+ "name": "Nagoya",
+ "population": "2,191,279",
+ "elevation": 23,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "brisbane",
+ "name": "Brisbane",
+ "population": "2,189,878",
+ "elevation": 27,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "havana",
+ "name": "Havana",
+ "population": "2,163,824",
+ "elevation": 41,
+ "timezone_id": "America/Havana"
+ },
+ {
+ "identifier": "paris",
+ "name": "Paris",
+ "population": "2,138,551",
+ "elevation": 42,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "johannesburg",
+ "name": "Johannesburg",
+ "population": "2,026,469",
+ "elevation": 1767,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "almaty",
+ "name": "Almaty",
+ "population": "2,000,900",
+ "elevation": 787,
+ "timezone_id": "Asia/Almaty"
+ },
+ {
+ "identifier": "tashkent",
+ "name": "Tashkent",
+ "population": "1,978,028",
+ "elevation": 424,
+ "timezone_id": "Asia/Tashkent"
+ },
+ {
+ "identifier": "algiers",
+ "name": "Algiers",
+ "population": "1,977,663",
+ "elevation": 113,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "khartoum",
+ "name": "Khartoum",
+ "population": "1,974,647",
+ "elevation": 381,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "accra",
+ "name": "Accra",
+ "population": "1,963,264",
+ "elevation": 33,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "guayaquil",
+ "name": "Guayaquil",
+ "population": "1,952,029",
+ "elevation": 1,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "sanaa",
+ "name": "Sanaa",
+ "population": "1,937,451",
+ "elevation": 2253,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "beirut",
+ "name": "Beirut",
+ "population": "1,916,100",
+ "elevation": 40,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "perth",
+ "name": "Perth",
+ "population": "1,896,548",
+ "elevation": 46,
+ "timezone_id": "Australia/Perth"
+ },
+ {
+ "identifier": "sapporo",
+ "name": "Sapporo",
+ "population": "1,883,027",
+ "elevation": 26,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "bucharest",
+ "name": "Bucharest",
+ "population": "1,877,155",
+ "elevation": 83,
+ "timezone_id": "Europe/Bucharest"
+ },
+ {
+ "identifier": "camayenne",
+ "name": "Camayenne",
+ "population": "1,871,242",
+ "elevation": 6,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "conakry",
+ "name": "Conakry",
+ "population": "1,767,200",
+ "elevation": 13,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "minsk",
+ "name": "Minsk",
+ "population": "1,742,124",
+ "elevation": 222,
+ "timezone_id": "Europe/Minsk"
+ },
+ {
+ "identifier": "budapest",
+ "name": "Budapest",
+ "population": "1,741,041",
+ "elevation": 75,
+ "timezone_id": "Europe/Budapest"
+ },
+ {
+ "identifier": "hamburg",
+ "name": "Hamburg",
+ "population": "1,739,117",
+ "elevation": 2,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "warsaw",
+ "name": "Warsaw",
+ "population": "1,702,139",
+ "elevation": 113,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "soweto",
+ "name": "Soweto",
+ "population": "1,695,047",
+ "elevation": 1632,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "vienna",
+ "name": "Vienna",
+ "population": "1,691,468",
+ "elevation": 193,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "rabat",
+ "name": "Rabat",
+ "population": "1,655,753",
+ "elevation": 46,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "barcelona",
+ "name": "Barcelona",
+ "population": "1,621,537",
+ "elevation": 47,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pretoria",
+ "name": "Pretoria",
+ "population": "1,619,438",
+ "elevation": 1332,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "aleppo",
+ "name": "Aleppo",
+ "population": "1,602,264",
+ "elevation": 401,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "manila",
+ "name": "Manila",
+ "population": "1,600,000",
+ "elevation": 13,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "montreal",
+ "name": "Montreal",
+ "population": "1,600,000",
+ "elevation": 216,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "kaduna",
+ "name": "Kaduna",
+ "population": "1,582,102",
+ "elevation": 626,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "phnom penh",
+ "name": "Phnom Penh",
+ "population": "1,573,544",
+ "elevation": 20,
+ "timezone_id": "Asia/Phnom_Penh"
+ },
+ {
+ "identifier": "damascus",
+ "name": "Damascus",
+ "population": "1,569,394",
+ "elevation": 701,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "philadelphia",
+ "name": "Philadelphia",
+ "population": "1,567,442",
+ "elevation": 40,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "phoenix",
+ "name": "Phoenix",
+ "population": "1,563,025",
+ "elevation": 366,
+ "timezone_id": "America/Phoenix"
+ },
+ {
+ "identifier": "isfahan",
+ "name": "Isfahan",
+ "population": "1,547,164",
+ "elevation": 1578,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "harare",
+ "name": "Harare",
+ "population": "1,542,813",
+ "elevation": 1494,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "kobe",
+ "name": "Kobe",
+ "population": "1,528,478",
+ "elevation": 35,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "stockholm",
+ "name": "Stockholm",
+ "population": "1,515,017",
+ "elevation": 12,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "manhattan",
+ "name": "Manhattan",
+ "population": "1,487,536",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "asuncion",
+ "name": "Asuncion",
+ "population": "1,482,200",
+ "elevation": 107,
+ "timezone_id": "America/Asuncion"
+ },
+ {
+ "identifier": "recife",
+ "name": "Recife",
+ "population": "1,478,098",
+ "elevation": 8,
+ "timezone_id": "America/Recife"
+ },
+ {
+ "identifier": "san antonio",
+ "name": "San Antonio",
+ "population": "1,469,845",
+ "elevation": 202,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kumasi",
+ "name": "Kumasi",
+ "population": "1,468,609",
+ "elevation": 270,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "kota bharu",
+ "name": "Kota Bharu",
+ "population": "1,459,994",
+ "elevation": 1,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "kyoto",
+ "name": "Kyoto",
+ "population": "1,459,640",
+ "elevation": 50,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "kuala lumpur",
+ "name": "Kuala Lumpur",
+ "population": "1,453,975",
+ "elevation": 56,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "karaj",
+ "name": "Karaj",
+ "population": "1,448,075",
+ "elevation": 1341,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kathmandu",
+ "name": "Kathmandu",
+ "population": "1,442,271",
+ "elevation": 1296,
+ "timezone_id": "Asia/Kathmandu"
+ },
+ {
+ "identifier": "hanoi",
+ "name": "Hanoi",
+ "population": "1,431,270",
+ "elevation": 10,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "kharkiv",
+ "name": "Kharkiv",
+ "population": "1,430,885",
+ "elevation": 113,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "cordoba",
+ "name": "Cordoba",
+ "population": "1,428,214",
+ "elevation": 395,
+ "timezone_id": "America/Argentina/Cordoba"
+ },
+ {
+ "identifier": "tabriz",
+ "name": "Tabriz",
+ "population": "1,424,641",
+ "elevation": 1396,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "novosibirsk",
+ "name": "Novosibirsk",
+ "population": "1,419,007",
+ "elevation": 164,
+ "timezone_id": "Asia/Novosibirsk"
+ },
+ {
+ "identifier": "belem",
+ "name": "Belem",
+ "population": "1,407,737",
+ "elevation": 15,
+ "timezone_id": "America/Belem"
+ },
+ {
+ "identifier": "quito",
+ "name": "Quito",
+ "population": "1,399,814",
+ "elevation": 2854,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "san diego",
+ "name": "San Diego",
+ "population": "1,394,928",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "fukuoka",
+ "name": "Fukuoka",
+ "population": "1,392,289",
+ "elevation": 3,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "antananarivo",
+ "name": "Antananarivo",
+ "population": "1,391,433",
+ "elevation": 1274,
+ "timezone_id": "Indian/Antananarivo"
+ },
+ {
+ "identifier": "the bronx",
+ "name": "The Bronx",
+ "population": "1,385,108",
+ "elevation": 19,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "lubumbashi",
+ "name": "Lubumbashi",
+ "population": "1,373,770",
+ "elevation": 1260,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "santa cruz de la sierra",
+ "name": "Santa Cruz de la Sierra",
+ "population": "1,364,389",
+ "elevation": 433,
+ "timezone_id": "America/La_Paz"
+ },
+ {
+ "identifier": "kampala",
+ "name": "Kampala",
+ "population": "1,353,189",
+ "elevation": 1223,
+ "timezone_id": "Africa/Kampala"
+ },
+ {
+ "identifier": "yekaterinburg",
+ "name": "Yekaterinburg",
+ "population": "1,349,772",
+ "elevation": 255,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "douala",
+ "name": "Douala",
+ "population": "1,338,082",
+ "elevation": 19,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "sharjah",
+ "name": "Sharjah",
+ "population": "1,324,473",
+ "elevation": 6,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "mecca",
+ "name": "Mecca",
+ "population": "1,323,624",
+ "elevation": 333,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "makassar",
+ "name": "Makassar",
+ "population": "1,321,717",
+ "elevation": 6,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "juarez",
+ "name": "Juarez",
+ "population": "1,321,004",
+ "elevation": 1124,
+ "timezone_id": "America/Ojinaga"
+ },
+ {
+ "identifier": "kawasaki",
+ "name": "Kawasaki",
+ "population": "1,306,785",
+ "elevation": 1,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "tijuana",
+ "name": "Tijuana",
+ "population": "1,300,983",
+ "elevation": 97,
+ "timezone_id": "America/Tijuana"
+ },
+ {
+ "identifier": "dallas",
+ "name": "Dallas",
+ "population": "1,300,092",
+ "elevation": 139,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "medina",
+ "name": "Medina",
+ "population": "1,300,000",
+ "elevation": 603,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "yaounde",
+ "name": "Yaounde",
+ "population": "1,299,369",
+ "elevation": 726,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "bamako",
+ "name": "Bamako",
+ "population": "1,297,281",
+ "elevation": 338,
+ "timezone_id": "Africa/Bamako"
+ },
+ {
+ "identifier": "brazzaville",
+ "name": "Brazzaville",
+ "population": "1,284,609",
+ "elevation": 284,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "nizhniy novgorod",
+ "name": "Nizhniy Novgorod",
+ "population": "1,284,164",
+ "elevation": 141,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "amman",
+ "name": "Amman",
+ "population": "1,275,857",
+ "elevation": 757,
+ "timezone_id": "Asia/Amman"
+ },
+ {
+ "identifier": "belgrade",
+ "name": "Belgrade",
+ "population": "1,273,651",
+ "elevation": 120,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "montevideo",
+ "name": "Montevideo",
+ "population": "1,270,737",
+ "elevation": 34,
+ "timezone_id": "America/Montevideo"
+ },
+ {
+ "identifier": "lusaka",
+ "name": "Lusaka",
+ "population": "1,267,440",
+ "elevation": 1277,
+ "timezone_id": "Africa/Lusaka"
+ },
+ {
+ "identifier": "munich",
+ "name": "Munich",
+ "population": "1,260,391",
+ "elevation": 524,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "shiraz",
+ "name": "Shiraz",
+ "population": "1,249,942",
+ "elevation": 1545,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "milan",
+ "name": "Milan",
+ "population": "1,236,837",
+ "elevation": 127,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "port-au-prince",
+ "name": "Port-au-Prince",
+ "population": "1,234,742",
+ "elevation": 53,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "adelaide",
+ "name": "Adelaide",
+ "population": "1,225,235",
+ "elevation": 56,
+ "timezone_id": "Australia/Adelaide"
+ },
+ {
+ "identifier": "omdurman",
+ "name": "Omdurman",
+ "population": "1,200,000",
+ "elevation": 391,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "saitama",
+ "name": "Saitama",
+ "population": "1,193,350",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "maputo",
+ "name": "Maputo",
+ "population": "1,191,613",
+ "elevation": 70,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "prague",
+ "name": "Prague",
+ "population": "1,165,581",
+ "elevation": 202,
+ "timezone_id": "Europe/Prague"
+ },
+ {
+ "identifier": "copenhagen",
+ "name": "Copenhagen",
+ "population": "1,153,615",
+ "elevation": 14,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "sofia",
+ "name": "Sofia",
+ "population": "1,152,556",
+ "elevation": 562,
+ "timezone_id": "Europe/Sofia"
+ },
+ {
+ "identifier": "tripoli",
+ "name": "Tripoli",
+ "population": "229,398",
+ "elevation": 51,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "port harcourt",
+ "name": "Port Harcourt",
+ "population": "1,148,665",
+ "elevation": 16,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hiroshima",
+ "name": "Hiroshima",
+ "population": "1,143,841",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "monterrey",
+ "name": "Monterrey",
+ "population": "1,135,512",
+ "elevation": 543,
+ "timezone_id": "America/Monterrey"
+ },
+ {
+ "identifier": "samara",
+ "name": "Samara",
+ "population": "1,134,730",
+ "elevation": 117,
+ "timezone_id": "Europe/Samara"
+ },
+ {
+ "identifier": "omsk",
+ "name": "Omsk",
+ "population": "1,129,281",
+ "elevation": 90,
+ "timezone_id": "Asia/Omsk"
+ },
+ {
+ "identifier": "benin city",
+ "name": "Benin City",
+ "population": "1,125,058",
+ "elevation": 88,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "baku",
+ "name": "Baku",
+ "population": "1,116,513",
+ "elevation": -23,
+ "timezone_id": "Asia/Baku"
+ },
+ {
+ "identifier": "maiduguri",
+ "name": "Maiduguri",
+ "population": "1,112,449",
+ "elevation": 325,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "kazan",
+ "name": "Kazan",
+ "population": "1,104,738",
+ "elevation": 61,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "yerevan",
+ "name": "Yerevan",
+ "population": "1,093,485",
+ "elevation": 994,
+ "timezone_id": "Asia/Yerevan"
+ },
+ {
+ "identifier": "ouagadougou",
+ "name": "Ouagadougou",
+ "population": "1,086,505",
+ "elevation": 299,
+ "timezone_id": "Africa/Ouagadougou"
+ },
+ {
+ "identifier": "rostov-na-donu",
+ "name": "Rostov-na-Donu",
+ "population": "1,074,482",
+ "elevation": 74,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chelyabinsk",
+ "name": "Chelyabinsk",
+ "population": "1,062,919",
+ "elevation": 219,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "tbilisi",
+ "name": "Tbilisi",
+ "population": "1,049,498",
+ "elevation": 491,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "ufa",
+ "name": "Ufa",
+ "population": "1,033,338",
+ "elevation": 158,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "san jose",
+ "name": "San Jose",
+ "population": "335,007",
+ "elevation": 1161,
+ "timezone_id": "America/Costa_Rica"
+ },
+ {
+ "identifier": "dublin",
+ "name": "Dublin",
+ "population": "1,024,027",
+ "elevation": 17,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "calgary",
+ "name": "Calgary",
+ "population": "1,019,942",
+ "elevation": 1042,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "brussels",
+ "name": "Brussels",
+ "population": "1,019,022",
+ "elevation": 28,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "volgograd",
+ "name": "Volgograd",
+ "population": "1,011,417",
+ "elevation": 65,
+ "timezone_id": "Europe/Volgograd"
+ },
+ {
+ "identifier": "odessa",
+ "name": "Odessa",
+ "population": "1,001,558",
+ "elevation": 58,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "guatemala city",
+ "name": "Guatemala City",
+ "population": "994,938",
+ "elevation": 1508,
+ "timezone_id": "America/Guatemala"
+ },
+ {
+ "identifier": "birmingham",
+ "name": "Birmingham",
+ "population": "984,333",
+ "elevation": 149,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "perm",
+ "name": "Perm",
+ "population": "982,419",
+ "elevation": 149,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "zaria",
+ "name": "Zaria",
+ "population": "975,153",
+ "elevation": 644,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "port elizabeth",
+ "name": "Port Elizabeth",
+ "population": "967,677",
+ "elevation": 75,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "fes",
+ "name": "Fes",
+ "population": "964,891",
+ "elevation": 406,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "cologne",
+ "name": "Cologne",
+ "population": "963,395",
+ "elevation": 58,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "naples",
+ "name": "Naples",
+ "population": "959,470",
+ "elevation": 14,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "maceio",
+ "name": "Maceio",
+ "population": "954,991",
+ "elevation": 11,
+ "timezone_id": "America/Maceio"
+ },
+ {
+ "identifier": "monrovia",
+ "name": "Monrovia",
+ "population": "939,524",
+ "elevation": 32,
+ "timezone_id": "Africa/Monrovia"
+ },
+ {
+ "identifier": "kingston",
+ "name": "Kingston",
+ "population": "937,700",
+ "elevation": 65,
+ "timezone_id": "America/Jamaica"
+ },
+ {
+ "identifier": "austin",
+ "name": "Austin",
+ "population": "931,830",
+ "elevation": 165,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "krasnoyarsk",
+ "name": "Krasnoyarsk",
+ "population": "927,200",
+ "elevation": 140,
+ "timezone_id": "Asia/Krasnoyarsk"
+ },
+ {
+ "identifier": "sale",
+ "name": "Sale",
+ "population": "903,485",
+ "elevation": 34,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "qom",
+ "name": "Qom",
+ "population": "900,000",
+ "elevation": 935,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bishkek",
+ "name": "Bishkek",
+ "population": "900,000",
+ "elevation": 767,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "abobo",
+ "name": "Abobo",
+ "population": "900,000",
+ "elevation": 105,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "aba",
+ "name": "Aba",
+ "population": "897,560",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "mendoza",
+ "name": "Mendoza",
+ "population": "876,884",
+ "elevation": 746,
+ "timezone_id": "America/Argentina/Mendoza"
+ },
+ {
+ "identifier": "mbuji-mayi",
+ "name": "Mbuji-Mayi",
+ "population": "874,761",
+ "elevation": 621,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "pikine",
+ "name": "Pikine",
+ "population": "874,062",
+ "elevation": 17,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "turin",
+ "name": "Turin",
+ "population": "870,456",
+ "elevation": 245,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san francisco",
+ "name": "San Francisco",
+ "aliases": ["San Fran"],
+ "population": "864,816",
+ "elevation": 28,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "liverpool",
+ "name": "Liverpool",
+ "population": "864,122",
+ "elevation": 30,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "saratov",
+ "name": "Saratov",
+ "population": "863,725",
+ "elevation": 72,
+ "timezone_id": "Europe/Saratov"
+ },
+ {
+ "identifier": "tegucigalpa",
+ "name": "Tegucigalpa",
+ "population": "850,848",
+ "elevation": 944,
+ "timezone_id": "America/Tegucigalpa"
+ },
+ {
+ "identifier": "voronezh",
+ "name": "Voronezh",
+ "population": "848,752",
+ "elevation": 156,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "ulan bator",
+ "name": "Ulan Bator",
+ "population": "844,818",
+ "elevation": 1284,
+ "timezone_id": "Asia/Ulaanbaatar"
+ },
+ {
+ "identifier": "ahvaz",
+ "name": "Ahvaz",
+ "population": "841,145",
+ "elevation": 23,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "marrakesh",
+ "name": "Marrakesh",
+ "population": "839,296",
+ "elevation": 457,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "denpasar",
+ "name": "Denpasar",
+ "aliases" : ["Bali"],
+ "population": "834,881",
+ "elevation": 33,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "fort worth",
+ "name": "Fort Worth",
+ "population": "833,319",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "indianapolis",
+ "name": "Indianapolis",
+ "population": "829,718",
+ "elevation": 248,
+ "timezone_id": "America/Indiana/Indianapolis"
+ },
+ {
+ "identifier": "jos",
+ "name": "Jos",
+ "population": "816,824",
+ "elevation": 1186,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "valencia",
+ "name": "Valencia",
+ "population": "814,208",
+ "elevation": 23,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "ilorin",
+ "name": "Ilorin",
+ "population": "814,192",
+ "elevation": 320,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "la paz",
+ "name": "La Paz",
+ "population": "215,178",
+ "elevation": 47,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "ottawa",
+ "name": "Ottawa",
+ "population": "812,129",
+ "elevation": 71,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "freetown",
+ "name": "Freetown",
+ "population": "802,639",
+ "elevation": 21,
+ "timezone_id": "Africa/Freetown"
+ },
+ {
+ "identifier": "jerusalem",
+ "name": "Jerusalem",
+ "population": "801,000",
+ "elevation": 786,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "muscat",
+ "name": "Muscat",
+ "population": "797,000",
+ "elevation": 14,
+ "timezone_id": "Asia/Muscat"
+ },
+ {
+ "identifier": "marseille",
+ "name": "Marseille",
+ "population": "794,811",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "pasragad branch",
+ "name": "Pasragad Branch",
+ "population": "787,878",
+ "elevation": 2010,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "boumerdas",
+ "name": "Boumerdas",
+ "population": "786,499",
+ "elevation": 5,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "san miguel de tucuman",
+ "name": "San Miguel de Tucuman",
+ "population": "781,023",
+ "elevation": 452,
+ "timezone_id": "America/Argentina/Tucuman"
+ },
+ {
+ "identifier": "merida",
+ "name": "Merida",
+ "population": "777,615",
+ "elevation": 14,
+ "timezone_id": "America/Merida"
+ },
+ {
+ "identifier": "niamey",
+ "name": "Niamey",
+ "population": "774,235",
+ "elevation": 206,
+ "timezone_id": "Africa/Niamey"
+ },
+ {
+ "identifier": "kahriz",
+ "name": "Kahriz",
+ "population": "766,706",
+ "elevation": 1302,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "krakow",
+ "name": "Krakow",
+ "population": "755,050",
+ "elevation": 219,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "da nang",
+ "name": "Da Nang",
+ "population": "752,493",
+ "elevation": 11,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "pietermaritzburg",
+ "name": "Pietermaritzburg",
+ "population": "750,845",
+ "elevation": 636,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "lome",
+ "name": "Lome",
+ "population": "749,700",
+ "elevation": 64,
+ "timezone_id": "Africa/Lome"
+ },
+ {
+ "identifier": "kigali",
+ "name": "Kigali",
+ "population": "745,261",
+ "elevation": 1542,
+ "timezone_id": "Africa/Kigali"
+ },
+ {
+ "identifier": "riga",
+ "name": "Riga",
+ "population": "742,572",
+ "elevation": 6,
+ "timezone_id": "Europe/Riga"
+ },
+ {
+ "identifier": "amsterdam",
+ "name": "Amsterdam",
+ "population": "741,636",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "oyo",
+ "name": "Oyo",
+ "population": "736,072",
+ "elevation": 298,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "nottingham",
+ "name": "Nottingham",
+ "population": "729,977",
+ "elevation": 46,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "campo grande",
+ "name": "Campo Grande",
+ "population": "729,151",
+ "elevation": 592,
+ "timezone_id": "America/Campo_Grande"
+ },
+ {
+ "identifier": "ashgabat",
+ "name": "Ashgabat",
+ "population": "727,700",
+ "elevation": 219,
+ "timezone_id": "Asia/Ashgabat"
+ },
+ {
+ "identifier": "n'djamena",
+ "name": "N'Djamena",
+ "population": "721,081",
+ "elevation": 299,
+ "timezone_id": "Africa/Ndjamena"
+ },
+ {
+ "identifier": "lviv",
+ "name": "Lviv",
+ "population": "717,803",
+ "elevation": 284,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "hermosillo",
+ "name": "Hermosillo",
+ "population": "715,061",
+ "elevation": 212,
+ "timezone_id": "America/Hermosillo"
+ },
+ {
+ "identifier": "edmonton",
+ "name": "Edmonton",
+ "population": "712,391",
+ "elevation": 610,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "bulawayo",
+ "name": "Bulawayo",
+ "population": "699,385",
+ "elevation": 1348,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "zagreb",
+ "name": "Zagreb",
+ "population": "698,966",
+ "elevation": 135,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "agadir",
+ "name": "Agadir",
+ "population": "698,310",
+ "elevation": 31,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sarajevo",
+ "name": "Sarajevo",
+ "population": "696,731",
+ "elevation": 509,
+ "timezone_id": "Europe/Sarajevo"
+ },
+ {
+ "identifier": "enugu",
+ "name": "Enugu",
+ "population": "688,862",
+ "elevation": 192,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "tangier",
+ "name": "Tangier",
+ "population": "688,356",
+ "elevation": 20,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sheffield",
+ "name": "Sheffield",
+ "population": "685,368",
+ "elevation": 75,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "seattle",
+ "name": "Seattle",
+ "population": "684,451",
+ "elevation": 56,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "denver",
+ "name": "Denver",
+ "population": "682,545",
+ "elevation": 1636,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "el paso",
+ "name": "El Paso",
+ "population": "681,124",
+ "elevation": 1137,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "dushanbe",
+ "name": "Dushanbe",
+ "population": "679,400",
+ "elevation": 767,
+ "timezone_id": "Asia/Dushanbe"
+ },
+ {
+ "identifier": "detroit",
+ "name": "Detroit",
+ "population": "677,116",
+ "elevation": 192,
+ "timezone_id": "America/Detroit"
+ },
+ {
+ "identifier": "culiacan",
+ "name": "Culiacan",
+ "population": "675,773",
+ "elevation": 95,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "matola",
+ "name": "Matola",
+ "population": "675,422",
+ "elevation": 42,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "boston",
+ "name": "Boston",
+ "population": "667,137",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "athens",
+ "name": "Athens",
+ "population": "664,046",
+ "elevation": 126,
+ "timezone_id": "Europe/Athens"
+ },
+ {
+ "identifier": "nouakchott",
+ "name": "Nouakchott",
+ "population": "661,400",
+ "elevation": 10,
+ "timezone_id": "Africa/Nouakchott"
+ },
+ {
+ "identifier": "pointe-noire",
+ "name": "Pointe-Noire",
+ "population": "659,084",
+ "elevation": 12,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "memphis",
+ "name": "Memphis",
+ "population": "655,770",
+ "elevation": 84,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "frankfurt am main",
+ "name": "Frankfurt am Main",
+ "aliases" : ["Frankfurt"],
+ "population": "650,000",
+ "elevation": 113,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "krasnodar",
+ "name": "Krasnodar",
+ "population": "649,851",
+ "elevation": 28,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "palermo",
+ "name": "Palermo",
+ "population": "648,260",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "colombo",
+ "name": "Colombo",
+ "population": "648,034",
+ "elevation": 1,
+ "timezone_id": "Asia/Colombo"
+ },
+ {
+ "identifier": "lilongwe",
+ "name": "Lilongwe",
+ "population": "646,750",
+ "elevation": 1056,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "oran",
+ "name": "Oran",
+ "population": "645,984",
+ "elevation": 118,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "chisinau",
+ "name": "Chisinau",
+ "population": "635,994",
+ "elevation": 55,
+ "timezone_id": "Europe/Chisinau"
+ },
+ {
+ "identifier": "tebessa",
+ "name": "Tebessa",
+ "population": "634,332",
+ "elevation": 867,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "portland",
+ "name": "Portland",
+ "population": "632,309",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "winnipeg",
+ "name": "Winnipeg",
+ "population": "632,063",
+ "elevation": 245,
+ "timezone_id": "America/Winnipeg"
+ },
+ {
+ "identifier": "oklahoma city",
+ "name": "Oklahoma City",
+ "population": "631,346",
+ "elevation": 395,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "cancun",
+ "name": "Cancun",
+ "population": "628,306",
+ "elevation": 11,
+ "timezone_id": "America/Cancun"
+ },
+ {
+ "identifier": "djibouti",
+ "name": "Djibouti",
+ "population": "623,891",
+ "elevation": 6,
+ "timezone_id": "Africa/Djibouti"
+ },
+ {
+ "identifier": "baltimore",
+ "name": "Baltimore",
+ "population": "621,849",
+ "elevation": 35,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kermanshah",
+ "name": "Kermanshah",
+ "population": "621,100",
+ "elevation": 1392,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bristol",
+ "name": "Bristol",
+ "population": "617,280",
+ "elevation": 21,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "benoni",
+ "name": "Benoni",
+ "population": "605,344",
+ "elevation": 1641,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "abu dhabi",
+ "name": "Abu Dhabi",
+ "population": "603,492",
+ "elevation": 13,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "washington",
+ "name": "Washington",
+ "population": "601,723",
+ "elevation": 6,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "milwaukee",
+ "name": "Milwaukee",
+ "population": "600,155",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vancouver",
+ "name": "Vancouver",
+ "population": "600,000",
+ "elevation": 70,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "barnaul",
+ "name": "Barnaul",
+ "population": "599,579",
+ "elevation": 189,
+ "timezone_id": "Asia/Barnaul"
+ },
+ {
+ "identifier": "rotterdam",
+ "name": "Rotterdam",
+ "population": "598,199",
+ "elevation": 9,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "rasht",
+ "name": "Rasht",
+ "population": "594,590",
+ "elevation": 4,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "abeokuta",
+ "name": "Abeokuta",
+ "population": "593,100",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "essen",
+ "name": "Essen",
+ "population": "593,085",
+ "elevation": 83,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "glasgow",
+ "name": "Glasgow",
+ "population": "591,620",
+ "elevation": 40,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "gold coast",
+ "name": "Gold Coast",
+ "population": "591,473",
+ "elevation": 12,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "abuja",
+ "name": "Abuja",
+ "population": "590,400",
+ "elevation": 476,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "stuttgart",
+ "name": "Stuttgart",
+ "population": "589,793",
+ "elevation": 252,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dortmund",
+ "name": "Dortmund",
+ "population": "588,462",
+ "elevation": 96,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vladivostok",
+ "name": "Vladivostok",
+ "population": "587,022",
+ "elevation": 40,
+ "timezone_id": "Asia/Vladivostok"
+ },
+ {
+ "identifier": "irkutsk",
+ "name": "Irkutsk",
+ "population": "586,695",
+ "elevation": 428,
+ "timezone_id": "Asia/Irkutsk"
+ },
+ {
+ "identifier": "blantyre",
+ "name": "Blantyre",
+ "population": "584,877",
+ "elevation": 1041,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "genoa",
+ "name": "Genoa",
+ "population": "580,223",
+ "elevation": 17,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "oslo",
+ "name": "Oslo",
+ "population": "580,000",
+ "elevation": 26,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "libreville",
+ "name": "Libreville",
+ "population": "578,156",
+ "elevation": 8,
+ "timezone_id": "Africa/Libreville"
+ },
+ {
+ "identifier": "kerman",
+ "name": "Kerman",
+ "population": "577,514",
+ "elevation": 1760,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "duesseldorf",
+ "name": "Duesseldorf",
+ "population": "573,057",
+ "elevation": 45,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "kuching",
+ "name": "Kuching",
+ "population": "570,407",
+ "elevation": 8,
+ "timezone_id": "Asia/Kuching"
+ },
+ {
+ "identifier": "albuquerque",
+ "name": "Albuquerque",
+ "population": "559,121",
+ "elevation": 1513,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "helsinki",
+ "name": "Helsinki",
+ "population": "558,457",
+ "elevation": 26,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "aden",
+ "name": "Aden",
+ "population": "550,602",
+ "elevation": 16,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "orenburg",
+ "name": "Orenburg",
+ "population": "550,204",
+ "elevation": 107,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "pristina",
+ "name": "Pristina",
+ "population": "550,000",
+ "elevation": 597,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bremen",
+ "name": "Bremen",
+ "population": "546,501",
+ "elevation": 3,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vilnius",
+ "name": "Vilnius",
+ "population": "542,366",
+ "elevation": 98,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "nashville",
+ "name": "Nashville",
+ "population": "530,852",
+ "elevation": 171,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "quebec",
+ "name": "Quebec",
+ "population": "528,595",
+ "elevation": 54,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "san salvador",
+ "name": "San Salvador",
+ "population": "525,990",
+ "elevation": 653,
+ "timezone_id": "America/El_Salvador"
+ },
+ {
+ "identifier": "macau",
+ "name": "Macau",
+ "population": "520,400",
+ "elevation": 22,
+ "timezone_id": "Asia/Macau"
+ },
+ {
+ "identifier": "tyumen",
+ "name": "Tyumen",
+ "population": "519,119",
+ "elevation": 81,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "lisbon",
+ "name": "Lisbon",
+ "population": "517,802",
+ "elevation": 45,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "hannover",
+ "name": "Hannover",
+ "population": "515,140",
+ "elevation": 57,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "salta",
+ "name": "Salta",
+ "population": "512,686",
+ "elevation": 1183,
+ "timezone_id": "America/Argentina/Salta"
+ },
+ {
+ "identifier": "leicester",
+ "name": "Leicester",
+ "population": "508,916",
+ "elevation": 65,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "leipzig",
+ "name": "Leipzig",
+ "population": "504,971",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "duisburg",
+ "name": "Duisburg",
+ "population": "504,358",
+ "elevation": 38,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "astrakhan",
+ "name": "Astrakhan",
+ "population": "502,533",
+ "elevation": -12,
+ "timezone_id": "Europe/Astrakhan"
+ },
+ {
+ "identifier": "nuernberg",
+ "name": "Nuernberg",
+ "population": "499,237",
+ "elevation": 300,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dresden",
+ "name": "Dresden",
+ "population": "486,854",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "tomsk",
+ "name": "Tomsk",
+ "population": "485,519",
+ "elevation": 117,
+ "timezone_id": "Asia/Tomsk"
+ },
+ {
+ "identifier": "yazd",
+ "name": "Yazd",
+ "population": "477,905",
+ "elevation": 1216,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kansas city",
+ "name": "Kansas City",
+ "population": "151,306",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "skopje",
+ "name": "Skopje",
+ "population": "474,889",
+ "elevation": 247,
+ "timezone_id": "Europe/Skopje"
+ },
+ {
+ "identifier": "the hague",
+ "name": "The Hague",
+ "population": "474,292",
+ "elevation": 4,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "lyon",
+ "name": "Lyon",
+ "population": "472,317",
+ "elevation": 173,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "edinburgh",
+ "name": "Edinburgh",
+ "population": "464,990",
+ "elevation": 66,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "antwerpen",
+ "name": "Antwerpen",
+ "population": "459,805",
+ "elevation": 2,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "pontianak",
+ "name": "Pontianak",
+ "population": "455,173",
+ "elevation": 2,
+ "timezone_id": "Asia/Pontianak"
+ },
+ {
+ "identifier": "leeds",
+ "name": "Leeds",
+ "population": "455,123",
+ "elevation": 50,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "cardiff",
+ "name": "Cardiff",
+ "population": "447,287",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "san juan",
+ "name": "San Juan",
+ "population": "418,140",
+ "elevation": 11,
+ "timezone_id": "America/Puerto_Rico"
+ },
+ {
+ "identifier": "omaha",
+ "name": "Omaha",
+ "population": "443,885",
+ "elevation": 315,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "carrefour",
+ "name": "Carrefour",
+ "population": "442,156",
+ "elevation": 32,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "miami",
+ "name": "Miami",
+ "population": "441,003",
+ "elevation": 25,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kaliningrad",
+ "name": "Kaliningrad",
+ "population": "434,954",
+ "elevation": 2,
+ "timezone_id": "Europe/Kaliningrad"
+ },
+ {
+ "identifier": "toulouse",
+ "name": "Toulouse",
+ "population": "433,055",
+ "elevation": 150,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tel aviv",
+ "name": "Tel Aviv",
+ "population": "432,892",
+ "elevation": 15,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "east jerusalem",
+ "name": "East Jerusalem",
+ "population": "428,304",
+ "elevation": 759,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "bratislava",
+ "name": "Bratislava",
+ "population": "423,737",
+ "elevation": 157,
+ "timezone_id": "Europe/Bratislava"
+ },
+ {
+ "identifier": "auckland",
+ "name": "Auckland",
+ "population": "417,910",
+ "elevation": 43,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "sevastopol",
+ "name": "Sevastopol",
+ "population": "416,263",
+ "elevation": 1,
+ "timezone_id": "Europe/Zaporozhye"
+ },
+ {
+ "identifier": "minneapolis",
+ "name": "Minneapolis",
+ "population": "410,939",
+ "elevation": 262,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "gaza",
+ "name": "Gaza",
+ "population": "410,000",
+ "elevation": 38,
+ "timezone_id": "Asia/Gaza"
+ },
+ {
+ "identifier": "kursk",
+ "name": "Kursk",
+ "population": "409,431",
+ "elevation": 219,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "panama",
+ "name": "Panama",
+ "population": "408,168",
+ "elevation": 17,
+ "timezone_id": "America/Panama"
+ },
+ {
+ "identifier": "tulsa",
+ "name": "Tulsa",
+ "population": "403,505",
+ "elevation": 226,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "tver",
+ "name": "Tver",
+ "population": "400,212",
+ "elevation": 132,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "manchester",
+ "name": "Manchester",
+ "population": "395,515",
+ "elevation": 51,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "tallinn",
+ "name": "Tallinn",
+ "population": "394,024",
+ "elevation": 12,
+ "timezone_id": "Europe/Tallinn"
+ },
+ {
+ "identifier": "kandahar",
+ "name": "Kandahar",
+ "population": "391,190",
+ "elevation": 1007,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "wichita",
+ "name": "Wichita",
+ "population": "389,965",
+ "elevation": 402,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "new orleans",
+ "name": "New Orleans",
+ "population": "389,617",
+ "elevation": 18,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "wellington",
+ "name": "Wellington",
+ "population": "381,900",
+ "elevation": 31,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "las palmas de gran canaria",
+ "name": "Las Palmas de Gran Canaria",
+ "population": "381,847",
+ "elevation": 23,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "mazatlan",
+ "name": "Mazatlan",
+ "population": "381,583",
+ "elevation": 10,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "tirana",
+ "name": "Tirana",
+ "population": "374,801",
+ "elevation": 113,
+ "timezone_id": "Europe/Tirane"
+ },
+ {
+ "identifier": "kaunas",
+ "name": "Kaunas",
+ "population": "374,643",
+ "elevation": 74,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "honolulu",
+ "name": "Honolulu",
+ "population": "371,657",
+ "elevation": 18,
+ "timezone_id": "Pacific/Honolulu"
+ },
+ {
+ "identifier": "canberra",
+ "name": "Canberra",
+ "population": "367,752",
+ "elevation": 571,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "bologna",
+ "name": "Bologna",
+ "population": "366,133",
+ "elevation": 71,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "christchurch",
+ "name": "Christchurch",
+ "population": "363,926",
+ "elevation": 14,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "halifax",
+ "name": "Halifax",
+ "population": "359,111",
+ "elevation": 6,
+ "timezone_id": "America/Halifax"
+ },
+ {
+ "identifier": "ambon",
+ "name": "Ambon",
+ "population": "355,596",
+ "elevation": 12,
+ "timezone_id": "Asia/Jayapura"
+ },
+ {
+ "identifier": "florence",
+ "name": "Florence",
+ "population": "349,296",
+ "elevation": 51,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "doha",
+ "name": "Doha",
+ "population": "344,939",
+ "elevation": 11,
+ "timezone_id": "Asia/Qatar"
+ },
+ {
+ "identifier": "zurich",
+ "name": "Zurich",
+ "population": "341,730",
+ "elevation": 429,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "nice",
+ "name": "Nice",
+ "population": "338,620",
+ "elevation": 18,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "simferopol",
+ "name": "Simferopol",
+ "population": "336,460",
+ "elevation": 247,
+ "timezone_id": "Europe/Simferopol"
+ },
+ {
+ "identifier": "tepic",
+ "name": "Tepic",
+ "population": "332,863",
+ "elevation": 932,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "sochi",
+ "name": "Sochi",
+ "population": "327,608",
+ "elevation": 14,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "smolensk",
+ "name": "Smolensk",
+ "population": "320,991",
+ "elevation": 250,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "samarkand",
+ "name": "Samarkand",
+ "population": "319,366",
+ "elevation": 719,
+ "timezone_id": "Asia/Samarkand"
+ },
+ {
+ "identifier": "murmansk",
+ "name": "Murmansk",
+ "population": "319,263",
+ "elevation": 96,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "vladikavkaz",
+ "name": "Vladikavkaz",
+ "population": "317,370",
+ "elevation": 671,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chita",
+ "name": "Chita",
+ "population": "308,500",
+ "elevation": 668,
+ "timezone_id": "Asia/Chita"
+ },
+ {
+ "identifier": "newcastle",
+ "name": "Newcastle",
+ "population": "308,308",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "porto velho",
+ "name": "Porto Velho",
+ "population": "306,180",
+ "elevation": 90,
+ "timezone_id": "America/Porto_Velho"
+ },
+ {
+ "identifier": "san salvador de jujuy",
+ "name": "San Salvador de Jujuy",
+ "population": "305,891",
+ "elevation": 1260,
+ "timezone_id": "America/Argentina/Jujuy"
+ },
+ {
+ "identifier": "pittsburgh",
+ "name": "Pittsburgh",
+ "population": "304,391",
+ "elevation": 239,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brest",
+ "name": "Brest",
+ "population": "144,899",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "anchorage",
+ "name": "Anchorage",
+ "population": "298,695",
+ "elevation": 16,
+ "timezone_id": "America/Anchorage"
+ },
+ {
+ "identifier": "cincinnati",
+ "name": "Cincinnati",
+ "population": "296,943",
+ "elevation": 267,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "wollongong",
+ "name": "Wollongong",
+ "population": "292,190",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "catania",
+ "name": "Catania",
+ "population": "290,927",
+ "elevation": 40,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "utrecht",
+ "name": "Utrecht",
+ "population": "290,529",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "victoria",
+ "name": "Victoria",
+ "population": "289,625",
+ "elevation": 41,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "port moresby",
+ "name": "Port Moresby",
+ "population": "283,733",
+ "elevation": 1,
+ "timezone_id": "Pacific/Port_Moresby"
+ },
+ {
+ "identifier": "logan city",
+ "name": "Logan City",
+ "population": "282,673",
+ "elevation": 39,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "bari",
+ "name": "Bari",
+ "population": "277,387",
+ "elevation": -9999,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "nantes",
+ "name": "Nantes",
+ "population": "277,269",
+ "elevation": 19,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "strasbourg",
+ "name": "Strasbourg",
+ "population": "274,845",
+ "elevation": 147,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "belfast",
+ "name": "Belfast",
+ "population": "274,770",
+ "elevation": 7,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "ljubljana",
+ "name": "Ljubljana",
+ "population": "272,220",
+ "elevation": 295,
+ "timezone_id": "Europe/Ljubljana"
+ },
+ {
+ "identifier": "orlando",
+ "name": "Orlando",
+ "population": "270,934",
+ "elevation": 54,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "petrozavodsk",
+ "name": "Petrozavodsk",
+ "population": "265,025",
+ "elevation": 73,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "plymouth",
+ "name": "Plymouth",
+ "population": "260,203",
+ "elevation": 14,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "rio branco",
+ "name": "Rio Branco",
+ "population": "257,642",
+ "elevation": 153,
+ "timezone_id": "America/Rio_Branco"
+ },
+ {
+ "identifier": "los mochis",
+ "name": "Los Mochis",
+ "population": "256,613",
+ "elevation": 14,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "porto",
+ "name": "Porto",
+ "population": "249,633",
+ "elevation": 97,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "madison",
+ "name": "Madison",
+ "population": "248,951",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "montpellier",
+ "name": "Montpellier",
+ "population": "248,252",
+ "elevation": 56,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "arhus",
+ "name": "Arhus",
+ "population": "237,551",
+ "elevation": 10,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "yakutsk",
+ "name": "Yakutsk",
+ "population": "235,600",
+ "elevation": 126,
+ "timezone_id": "Asia/Yakutsk"
+ },
+ {
+ "identifier": "georgetown",
+ "name": "Georgetown",
+ "population": "235,017",
+ "elevation": 3,
+ "timezone_id": "America/Guyana"
+ },
+ {
+ "identifier": "bordeaux",
+ "name": "Bordeaux",
+ "population": "231,844",
+ "elevation": 20,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "gent",
+ "name": "Gent",
+ "population": "231,493",
+ "elevation": 10,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "baton rouge",
+ "name": "Baton Rouge",
+ "population": "228,590",
+ "elevation": 10,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "lille",
+ "name": "Lille",
+ "population": "228,328",
+ "elevation": 27,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "nassau",
+ "name": "Nassau",
+ "population": "227,940",
+ "elevation": 5,
+ "timezone_id": "America/Nassau"
+ },
+ {
+ "identifier": "geelong",
+ "name": "Geelong",
+ "population": "226,034",
+ "elevation": -9999,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "paramaribo",
+ "name": "Paramaribo",
+ "population": "223,757",
+ "elevation": 5,
+ "timezone_id": "America/Paramaribo"
+ },
+ {
+ "identifier": "santa cruz de tenerife",
+ "name": "Santa Cruz de Tenerife",
+ "population": "222,417",
+ "elevation": 55,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "graz",
+ "name": "Graz",
+ "population": "222,326",
+ "elevation": 363,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "messina",
+ "name": "Messina",
+ "population": "219,948",
+ "elevation": 29,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "verona",
+ "name": "Verona",
+ "population": "219,103",
+ "elevation": 62,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "hobart",
+ "name": "Hobart",
+ "population": "216,656",
+ "elevation": 1,
+ "timezone_id": "Australia/Hobart"
+ },
+ {
+ "identifier": "novi sad",
+ "name": "Novi Sad",
+ "population": "215,400",
+ "elevation": 79,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bergen",
+ "name": "Bergen",
+ "population": "213,585",
+ "elevation": 20,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "des moines",
+ "name": "Des Moines",
+ "population": "210,330",
+ "elevation": 264,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kostanay",
+ "name": "Kostanay",
+ "population": "210,000",
+ "elevation": 167,
+ "timezone_id": "Asia/Qostanay"
+ },
+ {
+ "identifier": "linz",
+ "name": "Linz",
+ "population": "204,846",
+ "elevation": 268,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "padova",
+ "name": "Padova",
+ "population": "203,725",
+ "elevation": 18,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "pskov",
+ "name": "Pskov",
+ "population": "201,990",
+ "elevation": 51,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chiang mai",
+ "name": "Chiang Mai",
+ "population": "200,952",
+ "elevation": 313,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "nicosia",
+ "name": "Nicosia",
+ "population": "200,452",
+ "elevation": 147,
+ "timezone_id": "Asia/Nicosia"
+ },
+ {
+ "identifier": "oral",
+ "name": "Oral",
+ "population": "200,000",
+ "elevation": 35,
+ "timezone_id": "Asia/Oral"
+ },
+ {
+ "identifier": "osh",
+ "name": "Osh",
+ "population": "200,000",
+ "elevation": 988,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "saskatoon",
+ "name": "Saskatoon",
+ "population": "198,958",
+ "elevation": 484,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "little rock",
+ "name": "Little Rock",
+ "population": "197,992",
+ "elevation": 105,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vientiane",
+ "name": "Vientiane",
+ "population": "196,731",
+ "elevation": 174,
+ "timezone_id": "Asia/Vientiane"
+ },
+ {
+ "identifier": "aberdeen",
+ "name": "Aberdeen",
+ "population": "196,670",
+ "elevation": 13,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "palmas",
+ "name": "Palmas",
+ "population": "196,272",
+ "elevation": 271,
+ "timezone_id": "America/Araguaina"
+ },
+ {
+ "identifier": "townsville",
+ "name": "Townsville",
+ "population": "196,219",
+ "elevation": 15,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "salt lake city",
+ "name": "Salt Lake City",
+ "population": "192,672",
+ "elevation": 1311,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "cork",
+ "name": "Cork",
+ "population": "190,384",
+ "elevation": 10,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "tallahassee",
+ "name": "Tallahassee",
+ "population": "189,907",
+ "elevation": 71,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "santarem",
+ "name": "Santarem",
+ "population": "189,047",
+ "elevation": 51,
+ "timezone_id": "America/Santarem"
+ },
+ {
+ "identifier": "san fernando del valle de catamarca",
+ "name": "San Fernando del Valle de Catamarca",
+ "population": "188,812",
+ "elevation": 545,
+ "timezone_id": "America/Argentina/Catamarca"
+ },
+ {
+ "identifier": "trieste",
+ "name": "Trieste",
+ "population": "187,056",
+ "elevation": 19,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san luis",
+ "name": "San Luis",
+ "population": "183,982",
+ "elevation": 729,
+ "timezone_id": "America/Argentina/San_Luis"
+ },
+ {
+ "identifier": "geneva",
+ "name": "Geneva",
+ "population": "183,981",
+ "elevation": 400,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "atyrau",
+ "name": "Atyrau",
+ "population": "180,000",
+ "elevation": -25,
+ "timezone_id": "Asia/Atyrau"
+ },
+ {
+ "identifier": "kutaisi",
+ "name": "Kutaisi",
+ "population": "178,338",
+ "elevation": 153,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "yuzhno-sakhalinsk",
+ "name": "Yuzhno-Sakhalinsk",
+ "population": "176,484",
+ "elevation": 48,
+ "timezone_id": "Asia/Sakhalin"
+ },
+ {
+ "identifier": "split",
+ "name": "Split",
+ "population": "176,314",
+ "elevation": 12,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "regina",
+ "name": "Regina",
+ "population": "176,183",
+ "elevation": 577,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "turku",
+ "name": "Turku",
+ "population": "175,945",
+ "elevation": 22,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "oxford",
+ "name": "Oxford",
+ "population": "171,380",
+ "elevation": 72,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "jackson",
+ "name": "Jackson",
+ "population": "170,674",
+ "elevation": 100,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "springfield",
+ "name": "Springfield",
+ "population": "166,810",
+ "elevation": 399,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "basel",
+ "name": "Basel",
+ "population": "164,488",
+ "elevation": 279,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "la rioja",
+ "name": "La Rioja",
+ "population": "162,620",
+ "elevation": 502,
+ "timezone_id": "America/Argentina/La_Rioja"
+ },
+ {
+ "identifier": "hebron",
+ "name": "Hebron",
+ "population": "160,470",
+ "elevation": 903,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "modena",
+ "name": "Modena",
+ "population": "158,886",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "cambridge",
+ "name": "Cambridge",
+ "population": "158,434",
+ "elevation": 12,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "frisco",
+ "name": "Frisco",
+ "population": "154,407",
+ "elevation": 216,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "pasadena",
+ "name": "Pasadena",
+ "population": "153,784",
+ "elevation": 12,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "york",
+ "name": "York",
+ "population": "153,717",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "salzburg",
+ "name": "Salzburg",
+ "population": "153,377",
+ "elevation": 435,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "cairns",
+ "name": "Cairns",
+ "population": "153,075",
+ "elevation": 1,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "hamilton",
+ "name": "Hamilton",
+ "population": "152,641",
+ "elevation": 39,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "la laguna",
+ "name": "La Laguna",
+ "population": "150,661",
+ "elevation": 558,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "dili",
+ "name": "Dili",
+ "population": "150,000",
+ "elevation": 3,
+ "timezone_id": "Asia/Dili"
+ },
+ {
+ "identifier": "dijon",
+ "name": "Dijon",
+ "population": "149,782",
+ "elevation": 242,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "uppsala",
+ "name": "Uppsala",
+ "population": "149,245",
+ "elevation": 20,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "trondheim",
+ "name": "Trondheim",
+ "population": "147,139",
+ "elevation": 18,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "manama",
+ "name": "Manama",
+ "population": "147,074",
+ "elevation": 12,
+ "timezone_id": "Asia/Bahrain"
+ },
+ {
+ "identifier": "parma",
+ "name": "Parma",
+ "population": "146,299",
+ "elevation": 64,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "boise",
+ "name": "Boise",
+ "population": "145,987",
+ "elevation": 834,
+ "timezone_id": "America/Boise"
+ },
+ {
+ "identifier": "odense",
+ "name": "Odense",
+ "population": "145,931",
+ "elevation": 17,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "amiens",
+ "name": "Amiens",
+ "population": "143,086",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tours",
+ "name": "Tours",
+ "population": "141,621",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "podgorica",
+ "name": "Podgorica",
+ "population": "136,473",
+ "elevation": 49,
+ "timezone_id": "Europe/Podgorica"
+ },
+ {
+ "identifier": "innsbruck",
+ "name": "Innsbruck",
+ "population": "132,493",
+ "elevation": 587,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "toowoomba",
+ "name": "Toowoomba",
+ "population": "131,258",
+ "elevation": 599,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "darwin",
+ "name": "Darwin",
+ "population": "129,062",
+ "elevation": 31,
+ "timezone_id": "Australia/Darwin"
+ },
+ {
+ "identifier": "bern",
+ "name": "Bern",
+ "population": "121631",
+ "elevation": 549,
+ "timezone_id": "Europe/Zurich"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Countries.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Countries.json
new file mode 100644
index 000000000..fbf319baf
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Countries.json
@@ -0,0 +1,3392 @@
+[
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Kabul",
+ "code": "AF",
+ "capital": "Kabul",
+ "flagURL": "https://restcountries.eu/data/afg.svg",
+ "language": {
+ "name": "Pashto",
+ "code": "ps"
+ },
+ "currency": {
+ "name": "Afghan afghani",
+ "code": "AFN",
+ "symbol": "؋"
+ },
+ "name": "Afghanistan"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Tirane",
+ "code": "AL",
+ "capital": "Tirana",
+ "flagURL": "https://restcountries.eu/data/alb.svg",
+ "language": {
+ "name": "Albanian",
+ "code": "sq"
+ },
+ "currency": {
+ "name": "Albanian lek",
+ "code": "ALL",
+ "symbol": "L"
+ },
+ "name": "Albania"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Algiers",
+ "code": "DZ",
+ "capital": "Algiers",
+ "flagURL": "https://restcountries.eu/data/dza.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Algerian dinar",
+ "code": "DZD",
+ "symbol": "د.ج"
+ },
+ "name": "Algeria"
+ },
+ {
+ "region": "OC",
+ "code": "AS",
+ "capital": "Pago Pago",
+ "flagURL": "https://restcountries.eu/data/asm.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "United State Dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "American Samoa"
+ },
+ {
+ "region": "EU",
+ "code": "AD",
+ "capital": "Andorra la Vella",
+ "flagURL": "https://restcountries.eu/data/and.svg",
+ "language": {
+ "name": "Catalan",
+ "code": "ca"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Andorra",
+ "capitalCityTimezoneID": "Europe/Andorra"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Luanda",
+ "code": "AO",
+ "capital": "Luanda",
+ "flagURL": "https://restcountries.eu/data/ago.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Angolan kwanza",
+ "code": "AOA",
+ "symbol": "Kz"
+ },
+ "name": "Angola"
+ },
+ {
+ "region": "NA",
+ "code": "AI",
+ "capital": "The Valley",
+ "flagURL": "https://restcountries.eu/data/aia.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Anguilla"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Argentina/Buenos_Aires",
+ "code": "AR",
+ "capital": "Buenos Aires",
+ "flagURL": "https://restcountries.eu/data/arg.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Argentine peso",
+ "code": "ARS",
+ "symbol": "$"
+ },
+ "name": "Argentina"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Yerevan",
+ "code": "AM",
+ "capital": "Yerevan",
+ "flagURL": "https://restcountries.eu/data/arm.svg",
+ "language": {
+ "name": "Armenian",
+ "code": "hy"
+ },
+ "currency": {
+ "name": "Armenian dram",
+ "code": "AMD"
+ },
+ "name": "Armenia"
+ },
+ {
+ "region": "SA",
+ "code": "AW",
+ "capital": "Oranjestad",
+ "flagURL": "https://restcountries.eu/data/abw.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Aruban florin",
+ "code": "AWG",
+ "symbol": "ƒ"
+ },
+ "name": "Aruba"
+ },
+ {
+ "region": "OC",
+ "capitalCityTimezoneID": "Australia/Sydney",
+ "code": "AU",
+ "capital": "Canberra",
+ "flagURL": "https://restcountries.eu/data/aus.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Australian dollar",
+ "code": "AUD",
+ "symbol": "$"
+ },
+ "name": "Australia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Vienna",
+ "code": "AT",
+ "capital": "Vienna",
+ "flagURL": "https://restcountries.eu/data/aut.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Austria"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Baku",
+ "code": "AZ",
+ "capital": "Baku",
+ "flagURL": "https://restcountries.eu/data/aze.svg",
+ "language": {
+ "name": "Azerbaijani",
+ "code": "az"
+ },
+ "currency": {
+ "name": "Azerbaijani manat",
+ "code": "AZN"
+ },
+ "name": "Azerbaijan"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Nassau",
+ "code": "BS",
+ "capital": "Nassau",
+ "flagURL": "https://restcountries.eu/data/bhs.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Bahamian dollar",
+ "code": "BSD",
+ "symbol": "$"
+ },
+ "name": "Bahamas"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Bahrain",
+ "code": "BH",
+ "capital": "Manama",
+ "flagURL": "https://restcountries.eu/data/bhr.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Bahraini dinar",
+ "code": "BHD",
+ "symbol": ".د.ب"
+ },
+ "name": "Bahrain"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dhaka",
+ "code": "BD",
+ "capital": "Dhaka",
+ "flagURL": "https://restcountries.eu/data/bgd.svg",
+ "language": {
+ "name": "Bengali",
+ "code": "bn"
+ },
+ "currency": {
+ "name": "Bangladeshi taka",
+ "code": "BDT",
+ "symbol": "৳"
+ },
+ "name": "Bangladesh"
+ },
+ {
+ "region": "NA",
+ "code": "BB",
+ "capital": "Bridgetown",
+ "flagURL": "https://restcountries.eu/data/brb.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Barbadian dollar",
+ "code": "BBD",
+ "symbol": "$"
+ },
+ "name": "Barbados"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Minsk",
+ "code": "BY",
+ "capital": "Minsk",
+ "flagURL": "https://restcountries.eu/data/blr.svg",
+ "language": {
+ "name": "Belarusian",
+ "code": "be"
+ },
+ "currency": {
+ "name": "New Belarusian ruble",
+ "code": "BYN",
+ "symbol": "Br"
+ },
+ "name": "Belarus"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Brussels",
+ "code": "BE",
+ "capital": "Brussels",
+ "flagURL": "https://restcountries.eu/data/bel.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Belgium"
+ },
+ {
+ "region": "NA",
+ "code": "BZ",
+ "capital": "Belmopan",
+ "flagURL": "https://restcountries.eu/data/blz.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Belize dollar",
+ "code": "BZD",
+ "symbol": "$"
+ },
+ "name": "Belize"
+ },
+ {
+ "region": "AF",
+ "code": "BJ",
+ "capital": "Porto-Novo",
+ "flagURL": "https://restcountries.eu/data/ben.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Benin"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "Pacific/Auckland",
+ "code": "BM",
+ "capital": "Hamilton",
+ "flagURL": "https://restcountries.eu/data/bmu.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Bermudian dollar",
+ "code": "BMD",
+ "symbol": "$"
+ },
+ "name": "Bermuda"
+ },
+ {
+ "region": "AS",
+ "code": "BT",
+ "capital": "Thimphu",
+ "flagURL": "https://restcountries.eu/data/btn.svg",
+ "language": {
+ "name": "Dzongkha",
+ "code": "dz"
+ },
+ "currency": {
+ "name": "Bhutanese ngultrum",
+ "code": "BTN",
+ "symbol": "Nu."
+ },
+ "name": "Bhutan"
+ },
+ {
+ "region": "SA",
+ "code": "BO",
+ "capital": "Sucre",
+ "flagURL": "https://restcountries.eu/data/bol.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Bolivian boliviano",
+ "code": "BOB",
+ "symbol": "Bs."
+ },
+ "capitalCityTimezoneID": "America/La_Paz",
+ "name": "Bolivia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Sarajevo",
+ "code": "BA",
+ "capital": "Sarajevo",
+ "flagURL": "https://restcountries.eu/data/bih.svg",
+ "language": {
+ "name": "Bosnian",
+ "code": "bs"
+ },
+ "currency": {
+ "name": "Bosnia and Herzegovina convertible mark",
+ "code": "BAM"
+ },
+ "name": "Bosnia and Herzegovina"
+ },
+ {
+ "region": "AF",
+ "code": "BW",
+ "capital": "Gaborone",
+ "flagURL": "https://restcountries.eu/data/bwa.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Botswana pula",
+ "code": "BWP",
+ "symbol": "P"
+ },
+ "name": "Botswana"
+ },
+ {
+ "region": "SA",
+ "code": "BR",
+ "capital": "Brasília",
+ "flagURL": "https://restcountries.eu/data/bra.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Brazilian real",
+ "code": "BRL",
+ "symbol": "R$"
+ },
+ "name": "Brazil",
+ "capitalCityTimezoneID": "America/Sao_Paulo"
+ },
+ {
+ "region": "AF",
+ "code": "IO",
+ "capital": "Diego Garcia",
+ "flagURL": "https://restcountries.eu/data/iot.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "British Indian Ocean Territory"
+ },
+ {
+ "region": "AS",
+ "code": "BN",
+ "capital": "Bandar Seri Begawan",
+ "flagURL": "https://restcountries.eu/data/brn.svg",
+ "language": {
+ "name": "Malay",
+ "code": "ms"
+ },
+ "currency": {
+ "name": "Brunei dollar",
+ "code": "BND",
+ "symbol": "$"
+ },
+ "name": "Brunei"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Sofia",
+ "code": "BG",
+ "capital": "Sofia",
+ "flagURL": "https://restcountries.eu/data/bgr.svg",
+ "language": {
+ "name": "Bulgarian",
+ "code": "bg"
+ },
+ "currency": {
+ "name": "Bulgarian lev",
+ "code": "BGN",
+ "symbol": "лв"
+ },
+ "name": "Bulgaria"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Ouagadougou",
+ "code": "BF",
+ "capital": "Ouagadougou",
+ "flagURL": "https://restcountries.eu/data/bfa.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Burkina Faso"
+ },
+ {
+ "region": "AF",
+ "code": "BI",
+ "capital": "Bujumbura",
+ "flagURL": "https://restcountries.eu/data/bdi.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Burundian franc",
+ "code": "BIF",
+ "symbol": "Fr"
+ },
+ "name": "Burundi"
+ },
+ {
+ "region": "AF",
+ "code": "CV",
+ "capital": "Praia",
+ "flagURL": "https://restcountries.eu/data/cpv.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Cape Verdean escudo",
+ "code": "CVE",
+ "symbol": "Esc"
+ },
+ "name": "Cabo Verde"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Phnom_Penh",
+ "code": "KH",
+ "capital": "Phnom Penh",
+ "flagURL": "https://restcountries.eu/data/khm.svg",
+ "language": {
+ "name": "Khmer",
+ "code": "km"
+ },
+ "currency": {
+ "name": "Cambodian riel",
+ "code": "KHR",
+ "symbol": "៛"
+ },
+ "name": "Cambodia"
+ },
+ {
+ "region": "AF",
+ "code": "CM",
+ "capital": "Yaoundé",
+ "flagURL": "https://restcountries.eu/data/cmr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Cameroon"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Toronto",
+ "code": "CA",
+ "capital": "Ottawa",
+ "flagURL": "https://restcountries.eu/data/can.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Canadian dollar",
+ "code": "CAD",
+ "symbol": "$"
+ },
+ "name": "Canada"
+ },
+ {
+ "region": "AF",
+ "code": "CF",
+ "capital": "Bangui",
+ "flagURL": "https://restcountries.eu/data/caf.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Central African Republic"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Ndjamena",
+ "code": "TD",
+ "capital": "N'Djamena",
+ "flagURL": "https://restcountries.eu/data/tcd.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Chad"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Santiago",
+ "code": "CL",
+ "capital": "Santiago",
+ "flagURL": "https://restcountries.eu/data/chl.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Chilean peso",
+ "code": "CLP",
+ "symbol": "$"
+ },
+ "name": "Chile"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Shanghai",
+ "code": "CN",
+ "capital": "Beijing",
+ "flagURL": "https://restcountries.eu/data/chn.svg",
+ "language": {
+ "name": "Chinese",
+ "code": "zh"
+ },
+ "currency": {
+ "name": "Chinese yuan",
+ "code": "CNY",
+ "symbol": "¥"
+ },
+ "name": "China"
+ },
+ {
+ "region": "SA",
+ "code": "CO",
+ "capital": "Bogotá",
+ "flagURL": "https://restcountries.eu/data/col.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Colombian peso",
+ "code": "COP",
+ "symbol": "$"
+ },
+ "name": "Colombia",
+ "capitalCityTimezoneID": "America/Bogota"
+ },
+ {
+ "region": "AF",
+ "code": "KM",
+ "capital": "Moroni",
+ "flagURL": "https://restcountries.eu/data/com.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Comorian franc",
+ "code": "KMF",
+ "symbol": "Fr"
+ },
+ "name": "Comoros"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Brazzaville",
+ "code": "CG",
+ "capital": "Brazzaville",
+ "flagURL": "https://restcountries.eu/data/cog.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Congo"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Kinshasa",
+ "code": "CD",
+ "capital": "Kinshasa",
+ "flagURL": "https://restcountries.eu/data/cod.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Congolese franc",
+ "code": "CDF",
+ "symbol": "Fr"
+ },
+ "name": "Congo"
+ },
+ {
+ "region": "NA",
+ "code": "CR",
+ "capital": "San José",
+ "flagURL": "https://restcountries.eu/data/cri.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Costa Rican colón",
+ "code": "CRC",
+ "symbol": "₡"
+ },
+ "capitalCityTimezoneID": "America/Costa_Rica",
+ "name": "Costa Rica"
+ },
+ {
+ "region": "AF",
+ "code": "CI",
+ "capital": "Yamoussoukro",
+ "flagURL": "https://restcountries.eu/data/civ.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Côte d'Ivoire"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Zagreb",
+ "code": "HR",
+ "capital": "Zagreb",
+ "flagURL": "https://restcountries.eu/data/hrv.svg",
+ "language": {
+ "name": "Croatian",
+ "code": "hr"
+ },
+ "currency": {
+ "name": "Croatian kuna",
+ "code": "HRK",
+ "symbol": "kn"
+ },
+ "name": "Croatia"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Havana",
+ "code": "CU",
+ "capital": "Havana",
+ "flagURL": "https://restcountries.eu/data/cub.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Cuban convertible peso",
+ "code": "CUC",
+ "symbol": "$"
+ },
+ "name": "Cuba"
+ },
+ {
+ "region": "SA",
+ "code": "CW",
+ "capital": "Willemstad",
+ "flagURL": "https://restcountries.eu/data/cuw.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Netherlands Antillean guilder",
+ "code": "ANG",
+ "symbol": "ƒ"
+ },
+ "name": "Curaçao"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Asia/Nicosia",
+ "code": "CY",
+ "capital": "Nicosia",
+ "flagURL": "https://restcountries.eu/data/cyp.svg",
+ "language": {
+ "name": "Turkish",
+ "code": "tr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Cyprus"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Prague",
+ "code": "CZ",
+ "capital": "Prague",
+ "flagURL": "https://restcountries.eu/data/cze.svg",
+ "language": {
+ "name": "Czech",
+ "code": "cs"
+ },
+ "currency": {
+ "name": "Czech koruna",
+ "code": "CZK",
+ "symbol": "Kč"
+ },
+ "name": "Czech Republic"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Copenhagen",
+ "code": "DK",
+ "capital": "Copenhagen",
+ "flagURL": "https://restcountries.eu/data/dnk.svg",
+ "language": {
+ "name": "Danish",
+ "code": "da"
+ },
+ "currency": {
+ "name": "Danish krone",
+ "code": "DKK",
+ "symbol": "kr"
+ },
+ "name": "Denmark"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Djibouti",
+ "code": "DJ",
+ "capital": "Djibouti",
+ "flagURL": "https://restcountries.eu/data/dji.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Djiboutian franc",
+ "code": "DJF",
+ "symbol": "Fr"
+ },
+ "name": "Djibouti"
+ },
+ {
+ "region": "NA",
+ "code": "DM",
+ "capital": "Roseau",
+ "flagURL": "https://restcountries.eu/data/dma.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Dominica"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Santo_Domingo",
+ "code": "DO",
+ "capital": "Santo Domingo",
+ "flagURL": "https://restcountries.eu/data/dom.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Dominican peso",
+ "code": "DOP",
+ "symbol": "$"
+ },
+ "name": "Dominican Republic"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Guayaquil",
+ "code": "EC",
+ "capital": "Quito",
+ "flagURL": "https://restcountries.eu/data/ecu.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "Ecuador"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Cairo",
+ "code": "EG",
+ "capital": "Cairo",
+ "flagURL": "https://restcountries.eu/data/egy.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Egyptian pound",
+ "code": "EGP",
+ "symbol": "£"
+ },
+ "name": "Egypt"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/El_Salvador",
+ "code": "SV",
+ "capital": "San Salvador",
+ "flagURL": "https://restcountries.eu/data/slv.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "El Salvador"
+ },
+ {
+ "region": "AF",
+ "code": "GQ",
+ "capital": "Malabo",
+ "flagURL": "https://restcountries.eu/data/gnq.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Equatorial Guinea"
+ },
+ {
+ "region": "AF",
+ "code": "ER",
+ "capital": "Asmara",
+ "flagURL": "https://restcountries.eu/data/eri.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Eritrean nakfa",
+ "code": "ERN",
+ "symbol": "Nfk"
+ },
+ "name": "Eritrea"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Tallinn",
+ "code": "EE",
+ "capital": "Tallinn",
+ "flagURL": "https://restcountries.eu/data/est.svg",
+ "language": {
+ "name": "Estonian",
+ "code": "et"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Estonia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Addis_Ababa",
+ "code": "ET",
+ "capital": "Addis Ababa",
+ "flagURL": "https://restcountries.eu/data/eth.svg",
+ "language": {
+ "name": "Amharic",
+ "code": "am"
+ },
+ "currency": {
+ "name": "Ethiopian birr",
+ "code": "ETB",
+ "symbol": "Br"
+ },
+ "name": "Ethiopia"
+ },
+ {
+ "region": "OC",
+ "code": "FJ",
+ "capital": "Suva",
+ "flagURL": "https://restcountries.eu/data/fji.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Fijian dollar",
+ "code": "FJD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "Pacific/Fiji",
+ "name": "Fiji"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Helsinki",
+ "code": "FI",
+ "capital": "Helsinki",
+ "flagURL": "https://restcountries.eu/data/fin.svg",
+ "language": {
+ "name": "Finnish",
+ "code": "fi"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Finland"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Paris",
+ "code": "FR",
+ "capital": "Paris",
+ "flagURL": "https://restcountries.eu/data/fra.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "France"
+ },
+ {
+ "region": "SA",
+ "code": "GF",
+ "capital": "Cayenne",
+ "flagURL": "https://restcountries.eu/data/guf.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "French Guiana"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Libreville",
+ "code": "GA",
+ "capital": "Libreville",
+ "flagURL": "https://restcountries.eu/data/gab.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Central African CFA franc",
+ "code": "XAF",
+ "symbol": "Fr"
+ },
+ "name": "Gabon"
+ },
+ {
+ "region": "AF",
+ "code": "GM",
+ "capital": "Banjul",
+ "flagURL": "https://restcountries.eu/data/gmb.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Gambian dalasi",
+ "code": "GMD",
+ "symbol": "D"
+ },
+ "name": "Gambia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tbilisi",
+ "code": "GE",
+ "capital": "Tbilisi",
+ "flagURL": "https://restcountries.eu/data/geo.svg",
+ "language": {
+ "name": "Georgian",
+ "code": "ka"
+ },
+ "currency": {
+ "name": "Georgian Lari",
+ "code": "GEL",
+ "symbol": "ლ"
+ },
+ "name": "Georgia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Berlin",
+ "code": "DE",
+ "capital": "Berlin",
+ "flagURL": "https://restcountries.eu/data/deu.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Germany"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Accra",
+ "code": "GH",
+ "capital": "Accra",
+ "flagURL": "https://restcountries.eu/data/gha.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Ghanaian cedi",
+ "code": "GHS",
+ "symbol": "₵"
+ },
+ "name": "Ghana"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Athens",
+ "code": "GR",
+ "capital": "Athens",
+ "flagURL": "https://restcountries.eu/data/grc.svg",
+ "language": {
+ "name": "Greek (modern)",
+ "code": "el"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Greece"
+ },
+ {
+ "region": "NA",
+ "code": "GL",
+ "capital": "Nuuk",
+ "flagURL": "https://restcountries.eu/data/grl.svg",
+ "language": {
+ "name": "Kalaallisut",
+ "code": "kl"
+ },
+ "currency": {
+ "name": "Danish krone",
+ "code": "DKK",
+ "symbol": "kr"
+ },
+ "capitalCityTimezoneID": "America/Godthab",
+ "name": "Greenland"
+ },
+ {
+ "region": "NA",
+ "code": "GD",
+ "capital": "St. George's",
+ "flagURL": "https://restcountries.eu/data/grd.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Grenada"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Guatemala",
+ "code": "GT",
+ "capital": "Guatemala City",
+ "flagURL": "https://restcountries.eu/data/gtm.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Guatemalan quetzal",
+ "code": "GTQ",
+ "symbol": "Q"
+ },
+ "name": "Guatemala"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Conakry",
+ "code": "GN",
+ "capital": "Conakry",
+ "flagURL": "https://restcountries.eu/data/gin.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Guinean franc",
+ "code": "GNF",
+ "symbol": "Fr"
+ },
+ "name": "Guinea"
+ },
+ {
+ "region": "AF",
+ "code": "GW",
+ "capital": "Bissau",
+ "flagURL": "https://restcountries.eu/data/gnb.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Guinea-Bissau"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Guyana",
+ "code": "GY",
+ "capital": "Georgetown",
+ "flagURL": "https://restcountries.eu/data/guy.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Guyanese dollar",
+ "code": "GYD",
+ "symbol": "$"
+ },
+ "name": "Guyana"
+ },
+ {
+ "region": "Americas",
+ "capitalCityTimezoneID": "America/Port-au-Prince",
+ "code": "HT",
+ "capital": "Port-au-Prince",
+ "flagURL": "https://restcountries.eu/data/hti.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Haitian gourde",
+ "code": "HTG",
+ "symbol": "G"
+ },
+ "name": "Haiti"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Rome",
+ "code": "VA",
+ "capital": "Rome",
+ "flagURL": "https://restcountries.eu/data/vat.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "The Vatican"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Tegucigalpa",
+ "code": "HN",
+ "capital": "Tegucigalpa",
+ "flagURL": "https://restcountries.eu/data/hnd.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Honduran lempira",
+ "code": "HNL",
+ "symbol": "L"
+ },
+ "name": "Honduras"
+ },
+ {
+ "region": "AS",
+ "code": "HK",
+ "capital": "City of Victoria",
+ "flagURL": "https://restcountries.eu/data/hkg.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Hong Kong dollar",
+ "code": "HKD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "Asia/Hong_Kong",
+ "name": "Hong Kong"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Budapest",
+ "code": "HU",
+ "capital": "Budapest",
+ "flagURL": "https://restcountries.eu/data/hun.svg",
+ "language": {
+ "name": "Hungarian",
+ "code": "hu"
+ },
+ "currency": {
+ "name": "Hungarian forint",
+ "code": "HUF",
+ "symbol": "Ft"
+ },
+ "name": "Hungary"
+ },
+ {
+ "region": "EU",
+ "code": "IS",
+ "capital": "Reykjavík",
+ "flagURL": "https://restcountries.eu/data/isl.svg",
+ "capitalCityTimezoneID": "Atlantic/Reykjavik",
+ "language": {
+ "name": "Icelandic",
+ "code": "is"
+ },
+ "currency": {
+ "name": "Icelandic króna",
+ "code": "ISK",
+ "symbol": "kr"
+ },
+ "name": "Iceland"
+ },
+ {
+ "region": "AS",
+ "code": "IN",
+ "capital": "New Delhi",
+ "flagURL": "https://restcountries.eu/data/ind.svg",
+ "language": {
+ "name": "Hindi",
+ "code": "hi"
+ },
+ "currency": {
+ "name": "Indian rupee",
+ "code": "INR",
+ "symbol": "₹"
+ },
+ "capitalCityTimezoneID": "Asia/Kolkata",
+ "name": "India"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Jakarta",
+ "code": "ID",
+ "capital": "Jakarta",
+ "flagURL": "https://restcountries.eu/data/idn.svg",
+ "language": {
+ "name": "Indonesian",
+ "code": "id"
+ },
+ "currency": {
+ "name": "Indonesian rupiah",
+ "code": "IDR",
+ "symbol": "Rp"
+ },
+ "name": "Indonesia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tehran",
+ "code": "IR",
+ "capital": "Tehran",
+ "flagURL": "https://restcountries.eu/data/irn.svg",
+ "language": {
+ "name": "Persian (Farsi)",
+ "code": "fa"
+ },
+ "currency": {
+ "name": "Iranian rial",
+ "code": "IRR",
+ "symbol": "﷼"
+ },
+ "name": "Iran"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Baghdad",
+ "code": "IQ",
+ "capital": "Baghdad",
+ "flagURL": "https://restcountries.eu/data/irq.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Iraqi dinar",
+ "code": "IQD",
+ "symbol": "ع.د"
+ },
+ "name": "Iraq"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Dublin",
+ "code": "IE",
+ "capital": "Dublin",
+ "flagURL": "https://restcountries.eu/data/irl.svg",
+ "language": {
+ "name": "Irish",
+ "code": "ga"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Ireland"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Jerusalem",
+ "code": "IL",
+ "capital": "Jerusalem",
+ "flagURL": "https://restcountries.eu/data/isr.svg",
+ "language": {
+ "name": "Hebrew (modern)",
+ "code": "he"
+ },
+ "currency": {
+ "name": "Israeli new shekel",
+ "code": "ILS",
+ "symbol": "₪"
+ },
+ "name": "Israel"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Rome",
+ "code": "IT",
+ "capital": "Rome",
+ "flagURL": "https://restcountries.eu/data/ita.svg",
+ "language": {
+ "name": "Italian",
+ "code": "it"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Italy"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Jamaica",
+ "code": "JM",
+ "capital": "Kingston",
+ "flagURL": "https://restcountries.eu/data/jam.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Jamaican dollar",
+ "code": "JMD",
+ "symbol": "$"
+ },
+ "name": "Jamaica"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tokyo",
+ "code": "JP",
+ "capital": "Tokyo",
+ "flagURL": "https://restcountries.eu/data/jpn.svg",
+ "language": {
+ "name": "Japanese",
+ "code": "ja"
+ },
+ "currency": {
+ "name": "Japanese yen",
+ "code": "JPY",
+ "symbol": "¥"
+ },
+ "name": "Japan"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Amman",
+ "code": "JO",
+ "capital": "Amman",
+ "flagURL": "https://restcountries.eu/data/jor.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Jordanian dinar",
+ "code": "JOD",
+ "symbol": "د.ا"
+ },
+ "name": "Jordan"
+ },
+ {
+ "region": "AS",
+ "code": "KZ",
+ "capital": "Astana",
+ "flagURL": "https://restcountries.eu/data/kaz.svg",
+ "language": {
+ "name": "Kazakh",
+ "code": "kk"
+ },
+ "currency": {
+ "name": "Kazakhstani tenge",
+ "code": "KZT"
+ },
+ "capitalCityTimezoneID": "Asia/Almaty",
+ "name": "Kazakhstan"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Nairobi",
+ "code": "KE",
+ "capital": "Nairobi",
+ "flagURL": "https://restcountries.eu/data/ken.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Kenyan shilling",
+ "code": "KES",
+ "symbol": "Sh"
+ },
+ "name": "Kenya"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Pyongyang",
+ "code": "KP",
+ "capital": "Pyongyang",
+ "flagURL": "https://restcountries.eu/data/prk.svg",
+ "language": {
+ "name": "Korean",
+ "code": "ko"
+ },
+ "currency": {
+ "name": "North Korean won",
+ "code": "KPW",
+ "symbol": "₩"
+ },
+ "name": "North Korea"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Seoul",
+ "code": "KR",
+ "capital": "Seoul",
+ "flagURL": "https://restcountries.eu/data/kor.svg",
+ "language": {
+ "name": "Korean",
+ "code": "ko"
+ },
+ "currency": {
+ "name": "South Korean won",
+ "code": "KRW",
+ "symbol": "₩"
+ },
+ "name": "South Korea"
+ },
+ {
+ "region": "AS",
+ "code": "KW",
+ "capital": "Kuwait City",
+ "flagURL": "https://restcountries.eu/data/kwt.svg",
+ "capitalCityTimezoneID": "Asia/Kuwait",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Kuwaiti dinar",
+ "code": "KWD",
+ "symbol": "د.ك"
+ },
+ "name": "Kuwait"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Bishkek",
+ "code": "KG",
+ "capital": "Bishkek",
+ "flagURL": "https://restcountries.eu/data/kgz.svg",
+ "language": {
+ "name": "Kyrgyz",
+ "code": "ky"
+ },
+ "currency": {
+ "name": "Kyrgyzstani som",
+ "code": "KGS",
+ "symbol": "с"
+ },
+ "name": "Kyrgyzstan"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Vientiane",
+ "code": "LA",
+ "capital": "Vientiane",
+ "flagURL": "https://restcountries.eu/data/lao.svg",
+ "language": {
+ "name": "Lao",
+ "code": "lo"
+ },
+ "currency": {
+ "name": "Lao kip",
+ "code": "LAK",
+ "symbol": "₭"
+ },
+ "name": "Lao People's Democratic Republic"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Riga",
+ "code": "LV",
+ "capital": "Riga",
+ "flagURL": "https://restcountries.eu/data/lva.svg",
+ "language": {
+ "name": "Latvian",
+ "code": "lv"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Latvia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Beirut",
+ "code": "LB",
+ "capital": "Beirut",
+ "flagURL": "https://restcountries.eu/data/lbn.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Lebanese pound",
+ "code": "LBP",
+ "symbol": "ل.ل"
+ },
+ "name": "Lebanon"
+ },
+ {
+ "region": "AF",
+ "code": "LS",
+ "capital": "Maseru",
+ "flagURL": "https://restcountries.eu/data/lso.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Lesotho loti",
+ "code": "LSL",
+ "symbol": "L"
+ },
+ "name": "Lesotho"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Monrovia",
+ "code": "LR",
+ "capital": "Monrovia",
+ "flagURL": "https://restcountries.eu/data/lbr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Liberian dollar",
+ "code": "LRD",
+ "symbol": "$"
+ },
+ "name": "Liberia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Asia/Beirut",
+ "code": "LY",
+ "capital": "Tripoli",
+ "flagURL": "https://restcountries.eu/data/lby.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Libyan dinar",
+ "code": "LYD",
+ "symbol": "ل.د"
+ },
+ "name": "Libya"
+ },
+ {
+ "region": "EU",
+ "code": "LI",
+ "capital": "Vaduz",
+ "flagURL": "https://restcountries.eu/data/lie.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Swiss franc",
+ "code": "CHF",
+ "symbol": "Fr"
+ },
+ "capitalCityTimezoneID": "Europe/Vaduz",
+ "name": "Liechtenstein"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Vilnius",
+ "code": "LT",
+ "capital": "Vilnius",
+ "flagURL": "https://restcountries.eu/data/ltu.svg",
+ "language": {
+ "name": "Lithuanian",
+ "code": "lt"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Lithuania"
+ },
+ {
+ "region": "EU",
+ "code": "LU",
+ "capital": "Luxembourg",
+ "flagURL": "https://restcountries.eu/data/lux.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "capitalCityTimezoneID": "Europe/Luxembourg",
+ "name": "Luxembourg"
+ },
+ {
+ "region": "AS",
+ "code": "MO",
+ "capital": "",
+ "flagURL": "https://restcountries.eu/data/mac.svg",
+ "language": {
+ "name": "Chinese",
+ "code": "zh"
+ },
+ "currency": {
+ "name": "Macanese pataca",
+ "code": "MOP",
+ "symbol": "P"
+ },
+ "capitalCityTimezoneID": "Asia/Macau",
+ "name": "Macao"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Skopje",
+ "code": "MK",
+ "capital": "Skopje",
+ "flagURL": "https://restcountries.eu/data/mkd.svg",
+ "language": {
+ "name": "Macedonian",
+ "code": "mk"
+ },
+ "currency": {
+ "name": "Macedonian denar",
+ "code": "MKD",
+ "symbol": "ден"
+ },
+ "name": "Macedonia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Indian/Antananarivo",
+ "code": "MG",
+ "capital": "Antananarivo",
+ "flagURL": "https://restcountries.eu/data/mdg.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Malagasy ariary",
+ "code": "MGA",
+ "symbol": "Ar"
+ },
+ "name": "Madagascar"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Blantyre",
+ "code": "MW",
+ "capital": "Lilongwe",
+ "flagURL": "https://restcountries.eu/data/mwi.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Malawian kwacha",
+ "code": "MWK",
+ "symbol": "MK"
+ },
+ "name": "Malawi"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Kuala_Lumpur",
+ "code": "MY",
+ "capital": "Kuala Lumpur",
+ "flagURL": "https://restcountries.eu/data/mys.svg",
+ "language": {
+ "name": "Malaysian"
+ },
+ "currency": {
+ "name": "Malaysian ringgit",
+ "code": "MYR",
+ "symbol": "RM"
+ },
+ "name": "Malaysia"
+ },
+ {
+ "region": "AS",
+ "code": "MV",
+ "capital": "Malé",
+ "flagURL": "https://restcountries.eu/data/mdv.svg",
+ "language": {
+ "name": "Divehi",
+ "code": "dv"
+ },
+ "currency": {
+ "name": "Maldivian rufiyaa",
+ "code": "MVR",
+ "symbol": ".ރ"
+ },
+ "name": "Maldives"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Bamako",
+ "code": "ML",
+ "capital": "Bamako",
+ "flagURL": "https://restcountries.eu/data/mli.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Mali"
+ },
+ {
+ "region": "EU",
+ "code": "MT",
+ "capital": "Valletta",
+ "flagURL": "https://restcountries.eu/data/mlt.svg",
+ "language": {
+ "name": "Maltese",
+ "code": "mt"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "capitalCityTimezoneID": "Europe/Malta",
+ "name": "Malta"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Nouakchott",
+ "code": "MR",
+ "capital": "Nouakchott",
+ "flagURL": "https://restcountries.eu/data/mrt.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Mauritanian ouguiya",
+ "code": "MRO",
+ "symbol": "UM"
+ },
+ "name": "Mauritania"
+ },
+ {
+ "region": "AF",
+ "code": "MU",
+ "capital": "Port Louis",
+ "flagURL": "https://restcountries.eu/data/mus.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Mauritian rupee",
+ "code": "MUR",
+ "symbol": "₨"
+ },
+ "name": "Mauritius"
+ },
+ {
+ "region": "AF",
+ "code": "YT",
+ "capital": "Mamoudzou",
+ "flagURL": "https://restcountries.eu/data/myt.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Mayotte"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Mexico_City",
+ "code": "MX",
+ "capital": "Mexico City",
+ "flagURL": "https://restcountries.eu/data/mex.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Mexican peso",
+ "code": "MXN",
+ "symbol": "$"
+ },
+ "name": "Mexico"
+ },
+ {
+ "region": "EU",
+ "code": "MD",
+ "capital": "Chișinău",
+ "flagURL": "https://restcountries.eu/data/mda.svg",
+ "language": {
+ "name": "Romanian",
+ "code": "ro"
+ },
+ "currency": {
+ "name": "Moldovan leu",
+ "code": "MDL",
+ "symbol": "L"
+ },
+ "capitalCityTimezoneID": "Europe/Chisinau",
+ "name": "Moldova"
+ },
+ {
+ "region": "EU",
+ "code": "MC",
+ "capital": "Monaco",
+ "capitalCityTimezoneID": "Europe/Monaco",
+ "flagURL": "https://restcountries.eu/data/mco.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Monaco"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Ulaanbaatar",
+ "code": "MN",
+ "capital": "Ulan Bator",
+ "flagURL": "https://restcountries.eu/data/mng.svg",
+ "language": {
+ "name": "Mongolian",
+ "code": "mn"
+ },
+ "currency": {
+ "name": "Mongolian tögrög",
+ "code": "MNT",
+ "symbol": "₮"
+ },
+ "name": "Mongolia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Podgorica",
+ "code": "ME",
+ "capital": "Podgorica",
+ "flagURL": "https://restcountries.eu/data/mne.svg",
+ "language": {
+ "name": "Serbian",
+ "code": "sr"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Montenegro"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "Europe/London",
+ "code": "MS",
+ "capital": "Plymouth",
+ "flagURL": "https://restcountries.eu/data/msr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "East Caribbean dollar",
+ "code": "XCD",
+ "symbol": "$"
+ },
+ "name": "Montserrat"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Casablanca",
+ "code": "MA",
+ "capital": "Rabat",
+ "flagURL": "https://restcountries.eu/data/mar.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Moroccan dirham",
+ "code": "MAD",
+ "symbol": "د.م."
+ },
+ "name": "Morocco"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Maputo",
+ "code": "MZ",
+ "capital": "Maputo",
+ "flagURL": "https://restcountries.eu/data/moz.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Mozambican metical",
+ "code": "MZN",
+ "symbol": "MT"
+ },
+ "name": "Mozambique"
+ },
+ {
+ "region": "AS",
+ "code": "MM",
+ "capital": "Naypyidaw",
+ "flagURL": "https://restcountries.eu/data/mmr.svg",
+ "language": {
+ "name": "Burmese",
+ "code": "my"
+ },
+ "currency": {
+ "name": "Burmese kyat",
+ "code": "MMK",
+ "symbol": "Ks"
+ },
+ "capitalCityTimezoneID": "Asia/Rangoon",
+ "name": "Myanmar"
+ },
+ {
+ "region": "AF",
+ "code": "NA",
+ "capital": "Windhoek",
+ "flagURL": "https://restcountries.eu/data/nam.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Namibian dollar",
+ "code": "NAD",
+ "symbol": "$"
+ },
+ "name": "Namibia"
+ },
+ {
+ "region": "OC",
+ "code": "NR",
+ "capital": "Yaren",
+ "flagURL": "https://restcountries.eu/data/nru.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Australian dollar",
+ "code": "AUD",
+ "symbol": "$"
+ },
+ "name": "Nauru"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Kathmandu",
+ "code": "NP",
+ "capital": "Kathmandu",
+ "flagURL": "https://restcountries.eu/data/npl.svg",
+ "language": {
+ "name": "Nepali",
+ "code": "ne"
+ },
+ "currency": {
+ "name": "Nepalese rupee",
+ "code": "NPR",
+ "symbol": "₨"
+ },
+ "name": "Nepal"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Amsterdam",
+ "code": "NL",
+ "capital": "Amsterdam",
+ "flagURL": "https://restcountries.eu/data/nld.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Netherlands"
+ },
+ {
+ "region": "OC",
+ "code": "NC",
+ "capital": "Nouméa",
+ "flagURL": "https://restcountries.eu/data/ncl.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "CFP franc",
+ "code": "XPF",
+ "symbol": "Fr"
+ },
+ "name": "New Caledonia"
+ },
+ {
+ "region": "OC",
+ "capitalCityTimezoneID": "Pacific/Auckland",
+ "code": "NZ",
+ "capital": "Wellington",
+ "flagURL": "https://restcountries.eu/data/nzl.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "New Zealand dollar",
+ "code": "NZD",
+ "symbol": "$"
+ },
+ "name": "New Zealand"
+ },
+ {
+ "region": "NA",
+ "code": "NI",
+ "capital": "Managua",
+ "flagURL": "https://restcountries.eu/data/nic.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Nicaraguan córdoba",
+ "code": "NIO",
+ "symbol": "C$"
+ },
+ "name": "Nicaragua"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Niamey",
+ "code": "NE",
+ "capital": "Niamey",
+ "flagURL": "https://restcountries.eu/data/ner.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Niger"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Lagos",
+ "code": "NG",
+ "capital": "Abuja",
+ "flagURL": "https://restcountries.eu/data/nga.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Nigerian naira",
+ "code": "NGN",
+ "symbol": "₦"
+ },
+ "name": "Nigeria"
+ },
+ {
+ "region": "OC",
+ "code": "NU",
+ "capital": "Alofi",
+ "flagURL": "https://restcountries.eu/data/niu.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "New Zealand dollar",
+ "code": "NZD",
+ "symbol": "$"
+ },
+ "name": "Niue"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Oslo",
+ "code": "NO",
+ "capital": "Oslo",
+ "flagURL": "https://restcountries.eu/data/nor.svg",
+ "language": {
+ "name": "Norwegian",
+ "code": "no"
+ },
+ "currency": {
+ "name": "Norwegian krone",
+ "code": "NOK",
+ "symbol": "kr"
+ },
+ "name": "Norway"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Muscat",
+ "code": "OM",
+ "capital": "Muscat",
+ "flagURL": "https://restcountries.eu/data/omn.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Omani rial",
+ "code": "OMR",
+ "symbol": "ر.ع."
+ },
+ "name": "Oman"
+ },
+ {
+ "region": "AS",
+ "code": "PK",
+ "capital": "Islamabad",
+ "flagURL": "https://restcountries.eu/data/pak.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Pakistani rupee",
+ "code": "PKR",
+ "symbol": "₨"
+ },
+ "capitalCityTimezoneID": "Asia/Karachi",
+ "name": "Pakistan"
+ },
+ {
+ "region": "AS",
+ "code": "PS",
+ "capital": "Ramallah",
+ "flagURL": "https://restcountries.eu/data/pse.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Israeli new sheqel",
+ "code": "ILS",
+ "symbol": "₪"
+ },
+ "capitalCityTimezoneID": "Asia/Gaza",
+ "name": "Palestine"
+ },
+ {
+ "region": "NA",
+ "code": "PA",
+ "capital": "Panama City",
+ "flagURL": "https://restcountries.eu/data/pan.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "America/Panama",
+ "name": "Panama"
+ },
+ {
+ "region": "OC",
+ "capitalCityTimezoneID": "Pacific/Port_Moresby",
+ "code": "PG",
+ "capital": "Port Moresby",
+ "flagURL": "https://restcountries.eu/data/png.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Papua New Guinean kina",
+ "code": "PGK",
+ "symbol": "K"
+ },
+ "name": "Papua New Guinea"
+ },
+ {
+ "region": "SA",
+ "code": "PY",
+ "capital": "Asunción",
+ "flagURL": "https://restcountries.eu/data/pry.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Paraguayan guaraní",
+ "code": "PYG",
+ "symbol": "₲"
+ },
+ "capitalCityTimezoneID": "America/Asuncion",
+ "name": "Paraguay"
+ },
+ {
+ "region": "SA",
+ "code": "PE",
+ "capital": "Lima",
+ "flagURL": "https://restcountries.eu/data/per.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Peruvian sol",
+ "code": "PEN",
+ "symbol": "S/."
+ },
+ "capitalCityTimezoneID": "America/Lima",
+ "name": "Peru"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Manila",
+ "code": "PH",
+ "capital": "Manila",
+ "flagURL": "https://restcountries.eu/data/phl.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Philippine peso",
+ "code": "PHP",
+ "symbol": "₱"
+ },
+ "name": "Philippines"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Warsaw",
+ "code": "PL",
+ "capital": "Warsaw",
+ "flagURL": "https://restcountries.eu/data/pol.svg",
+ "language": {
+ "name": "Polish",
+ "code": "pl"
+ },
+ "currency": {
+ "name": "Polish złoty",
+ "code": "PLN",
+ "symbol": "zł"
+ },
+ "name": "Poland"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Lisbon",
+ "code": "PT",
+ "capital": "Lisbon",
+ "flagURL": "https://restcountries.eu/data/prt.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Portugal"
+ },
+ {
+ "region": "NA",
+ "capitalCityTimezoneID": "America/Puerto_Rico",
+ "code": "PR",
+ "capital": "San Juan",
+ "flagURL": "https://restcountries.eu/data/pri.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "Puerto Rico"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Qatar",
+ "code": "QA",
+ "capital": "Doha",
+ "flagURL": "https://restcountries.eu/data/qat.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Qatari riyal",
+ "code": "QAR",
+ "symbol": "ر.ق"
+ },
+ "name": "Qatar"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Belgrade",
+ "code": "XK",
+ "capital": "Pristina",
+ "flagURL": "https://restcountries.eu/data/kos.svg",
+ "language": {
+ "name": "Albanian",
+ "code": "sq"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Republic of Kosovo"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Bucharest",
+ "code": "RO",
+ "capital": "Bucharest",
+ "flagURL": "https://restcountries.eu/data/rou.svg",
+ "language": {
+ "name": "Romanian",
+ "code": "ro"
+ },
+ "currency": {
+ "name": "Romanian leu",
+ "code": "RON",
+ "symbol": "lei"
+ },
+ "name": "Romania"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Moscow",
+ "code": "RU",
+ "capital": "Moscow",
+ "flagURL": "https://restcountries.eu/data/rus.svg",
+ "language": {
+ "name": "Russian",
+ "code": "ru"
+ },
+ "currency": {
+ "name": "Russian ruble",
+ "code": "RUB",
+ "symbol": "₽"
+ },
+ "name": "Russia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Kigali",
+ "code": "RW",
+ "capital": "Kigali",
+ "flagURL": "https://restcountries.eu/data/rwa.svg",
+ "language": {
+ "name": "Kinyarwanda",
+ "code": "rw"
+ },
+ "currency": {
+ "name": "Rwandan franc",
+ "code": "RWF",
+ "symbol": "Fr"
+ },
+ "name": "Rwanda"
+ },
+ {
+ "region": "OC",
+ "code": "WS",
+ "capital": "Apia",
+ "flagURL": "https://restcountries.eu/data/wsm.svg",
+ "language": {
+ "name": "Samoan",
+ "code": "sm"
+ },
+ "currency": {
+ "name": "Samoan tālā",
+ "code": "WST",
+ "symbol": "T"
+ },
+ "name": "Samoa"
+ },
+ {
+ "region": "EU",
+ "code": "SM",
+ "capital": "City of San Marino",
+ "flagURL": "https://restcountries.eu/data/smr.svg",
+ "language": {
+ "name": "Italian",
+ "code": "it"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "San Marino"
+ },
+ {
+ "region": "AF",
+ "code": "ST",
+ "capital": "São Tomé",
+ "flagURL": "https://restcountries.eu/data/stp.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "São Tomé and Príncipe dobra",
+ "code": "STD",
+ "symbol": "Db"
+ },
+ "name": "Sao Tome and Principe"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Riyadh",
+ "code": "SA",
+ "capital": "Riyadh",
+ "flagURL": "https://restcountries.eu/data/sau.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Saudi riyal",
+ "code": "SAR",
+ "symbol": "ر.س"
+ },
+ "name": "Saudi Arabia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Dakar",
+ "code": "SN",
+ "capital": "Dakar",
+ "flagURL": "https://restcountries.eu/data/sen.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Senegal"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Belgrade",
+ "code": "RS",
+ "capital": "Belgrade",
+ "flagURL": "https://restcountries.eu/data/srb.svg",
+ "language": {
+ "name": "Serbian",
+ "code": "sr"
+ },
+ "currency": {
+ "name": "Serbian dinar",
+ "code": "RSD",
+ "symbol": "дин."
+ },
+ "name": "Serbia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "America/Vancouver",
+ "code": "SC",
+ "capital": "Victoria",
+ "flagURL": "https://restcountries.eu/data/syc.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "Seychellois rupee",
+ "code": "SCR",
+ "symbol": "₨"
+ },
+ "name": "Seychelles"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Freetown",
+ "code": "SL",
+ "capital": "Freetown",
+ "flagURL": "https://restcountries.eu/data/sle.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Sierra Leonean leone",
+ "code": "SLL",
+ "symbol": "Le"
+ },
+ "name": "Sierra Leone"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Singapore",
+ "code": "SG",
+ "capital": "Singapore",
+ "flagURL": "https://restcountries.eu/data/sgp.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Singapore dollar",
+ "code": "SGD",
+ "symbol": "$"
+ },
+ "name": "Singapore"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Bratislava",
+ "code": "SK",
+ "capital": "Bratislava",
+ "flagURL": "https://restcountries.eu/data/svk.svg",
+ "language": {
+ "name": "Slovak",
+ "code": "sk"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Slovakia"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Ljubljana",
+ "code": "SI",
+ "capital": "Ljubljana",
+ "flagURL": "https://restcountries.eu/data/svn.svg",
+ "language": {
+ "name": "Slovene",
+ "code": "sl"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Slovenia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Mogadishu",
+ "code": "SO",
+ "capital": "Mogadishu",
+ "flagURL": "https://restcountries.eu/data/som.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Somali shilling",
+ "code": "SOS",
+ "symbol": "Sh"
+ },
+ "name": "Somalia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Johannesburg",
+ "code": "ZA",
+ "capital": "Pretoria",
+ "flagURL": "https://restcountries.eu/data/zaf.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "South African rand",
+ "code": "ZAR",
+ "symbol": "R"
+ },
+ "name": "South Africa"
+ },
+ {
+ "region": "AF",
+ "code": "SS",
+ "capital": "Juba",
+ "flagURL": "https://restcountries.eu/data/ssd.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "South Sudanese pound",
+ "code": "SSP",
+ "symbol": "£"
+ },
+ "name": "South Sudan"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Madrid",
+ "code": "ES",
+ "capital": "Madrid",
+ "flagURL": "https://restcountries.eu/data/esp.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Euro",
+ "code": "EUR",
+ "symbol": "€"
+ },
+ "name": "Spain"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Colombo",
+ "code": "LK",
+ "capital": "Colombo",
+ "flagURL": "https://restcountries.eu/data/lka.svg",
+ "language": {
+ "name": "Sinhalese",
+ "code": "si"
+ },
+ "currency": {
+ "name": "Sri Lankan rupee",
+ "code": "LKR",
+ "symbol": "Rs"
+ },
+ "name": "Sri Lanka"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Khartoum",
+ "code": "SD",
+ "capital": "Khartoum",
+ "flagURL": "https://restcountries.eu/data/sdn.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Sudanese pound",
+ "code": "SDG",
+ "symbol": "ج.س."
+ },
+ "name": "Sudan"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Paramaribo",
+ "code": "SR",
+ "capital": "Paramaribo",
+ "flagURL": "https://restcountries.eu/data/sur.svg",
+ "language": {
+ "name": "Dutch",
+ "code": "nl"
+ },
+ "currency": {
+ "name": "Surinamese dollar",
+ "code": "SRD",
+ "symbol": "$"
+ },
+ "name": "Suriname"
+ },
+ {
+ "region": "AF",
+ "code": "SZ",
+ "capital": "Lobamba",
+ "flagURL": "https://restcountries.eu/data/swz.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Swazi lilangeni",
+ "code": "SZL",
+ "symbol": "L"
+ },
+ "name": "Swaziland"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Stockholm",
+ "code": "SE",
+ "capital": "Stockholm",
+ "flagURL": "https://restcountries.eu/data/swe.svg",
+ "language": {
+ "name": "Swedish",
+ "code": "sv"
+ },
+ "currency": {
+ "name": "Swedish krona",
+ "code": "SEK",
+ "symbol": "kr"
+ },
+ "name": "Sweden"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Zurich",
+ "code": "CH",
+ "capital": "Bern",
+ "flagURL": "https://restcountries.eu/data/che.svg",
+ "language": {
+ "name": "German",
+ "code": "de"
+ },
+ "currency": {
+ "name": "Swiss franc",
+ "code": "CHF",
+ "symbol": "Fr"
+ },
+ "name": "Switzerland"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Damascus",
+ "code": "SY",
+ "capital": "Damascus",
+ "flagURL": "https://restcountries.eu/data/syr.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Syrian pound",
+ "code": "SYP",
+ "symbol": "£"
+ },
+ "name": "Syrian Arab Republic"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Taipei",
+ "code": "TW",
+ "capital": "Taipei",
+ "flagURL": "https://restcountries.eu/data/twn.svg",
+ "language": {
+ "name": "Chinese",
+ "code": "zh"
+ },
+ "currency": {
+ "name": "New Taiwan dollar",
+ "code": "TWD",
+ "symbol": "$"
+ },
+ "name": "Taiwan"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dushanbe",
+ "code": "TJ",
+ "capital": "Dushanbe",
+ "flagURL": "https://restcountries.eu/data/tjk.svg",
+ "language": {
+ "name": "Tajik",
+ "code": "tg"
+ },
+ "currency": {
+ "name": "Tajikistani somoni",
+ "code": "TJS",
+ "symbol": "ЅМ"
+ },
+ "name": "Tajikistan"
+ },
+ {
+ "region": "AF",
+ "code": "TZ",
+ "capital": "Dodoma",
+ "flagURL": "https://restcountries.eu/data/tza.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Tanzanian shilling",
+ "code": "TZS",
+ "symbol": "Sh"
+ },
+ "capitalCityTimezoneID": "Africa/Dar_es_Salaam",
+ "name": "Tanzania"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Bangkok",
+ "code": "TH",
+ "capital": "Bangkok",
+ "flagURL": "https://restcountries.eu/data/tha.svg",
+ "language": {
+ "name": "Thai",
+ "code": "th"
+ },
+ "currency": {
+ "name": "Thai baht",
+ "code": "THB",
+ "symbol": "฿"
+ },
+ "name": "Thailand"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dili",
+ "code": "TL",
+ "capital": "Dili",
+ "flagURL": "https://restcountries.eu/data/tls.svg",
+ "language": {
+ "name": "Portuguese",
+ "code": "pt"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "name": "East Timor"
+ },
+ {
+ "region": "AF",
+ "code": "TG",
+ "capital": "Lomé",
+ "flagURL": "https://restcountries.eu/data/tgo.svg",
+ "language": {
+ "name": "French",
+ "code": "fr"
+ },
+ "currency": {
+ "name": "West African CFA franc",
+ "code": "XOF",
+ "symbol": "Fr"
+ },
+ "name": "Togo"
+ },
+ {
+ "region": "OC",
+ "code": "TO",
+ "capital": "Nuku'alofa",
+ "flagURL": "https://restcountries.eu/data/ton.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Tongan paʻanga",
+ "code": "TOP",
+ "symbol": "T$"
+ },
+ "capitalCityTimezoneID": "Pacific/Tongatapu",
+ "name": "Tonga"
+ },
+ {
+ "region": "AF",
+ "code": "TN",
+ "capital": "Tunis",
+ "flagURL": "https://restcountries.eu/data/tun.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Tunisian dinar",
+ "code": "TND",
+ "symbol": "د.ت"
+ },
+ "capitalCityTimezoneID": "Africa/Tunis",
+ "name": "Tunisia"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Europe/Istanbul",
+ "code": "TR",
+ "capital": "Ankara",
+ "flagURL": "https://restcountries.eu/data/tur.svg",
+ "language": {
+ "name": "Turkish",
+ "code": "tr"
+ },
+ "currency": {
+ "name": "Turkish lira",
+ "code": "TRY"
+ },
+ "name": "Turkey"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Ashgabat",
+ "code": "TM",
+ "capital": "Ashgabat",
+ "flagURL": "https://restcountries.eu/data/tkm.svg",
+ "language": {
+ "name": "Turkmen",
+ "code": "tk"
+ },
+ "currency": {
+ "name": "Turkmenistan manat",
+ "code": "TMT",
+ "symbol": "m"
+ },
+ "name": "Turkmenistan"
+ },
+ {
+ "region": "OC",
+ "code": "TV",
+ "capital": "Funafuti",
+ "flagURL": "https://restcountries.eu/data/tuv.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Australian dollar",
+ "code": "AUD",
+ "symbol": "$"
+ },
+ "name": "Tuvalu"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Kampala",
+ "code": "UG",
+ "capital": "Kampala",
+ "flagURL": "https://restcountries.eu/data/uga.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Ugandan shilling",
+ "code": "UGX",
+ "symbol": "Sh"
+ },
+ "name": "Uganda"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/Kiev",
+ "code": "UA",
+ "capital": "Kiev",
+ "flagURL": "https://restcountries.eu/data/ukr.svg",
+ "language": {
+ "name": "Ukrainian",
+ "code": "uk"
+ },
+ "currency": {
+ "name": "Ukrainian hryvnia",
+ "code": "UAH",
+ "symbol": "₴"
+ },
+ "name": "Ukraine"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Dubai",
+ "code": "AE",
+ "capital": "Abu Dhabi",
+ "flagURL": "https://restcountries.eu/data/are.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "United Arab Emirates dirham",
+ "code": "AED",
+ "symbol": "د.إ"
+ },
+ "aliases": ["UAE"],
+ "name": "United Arab Emirates"
+ },
+ {
+ "region": "EU",
+ "capitalCityTimezoneID": "Europe/London",
+ "code": "GB",
+ "capital": "London",
+ "flagURL": "https://restcountries.eu/data/gbr.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "British pound",
+ "code": "GBP",
+ "symbol": "£"
+ },
+ "aliases": ["Britain", "UK", "Scotland", "Ireland", "Wales"],
+ "name": "United Kingdom"
+ },
+ {
+ "region": "NA",
+ "code": "US",
+ "capital": "Washington, D.C.",
+ "flagURL": "https://restcountries.eu/data/usa.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "United States dollar",
+ "code": "USD",
+ "symbol": "$"
+ },
+ "capitalCityTimezoneID": "America/New_York",
+ "aliases": ["America", "USA", "United States"],
+ "name": "United States of America"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Montevideo",
+ "code": "UY",
+ "capital": "Montevideo",
+ "flagURL": "https://restcountries.eu/data/ury.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Uruguayan peso",
+ "code": "UYU",
+ "symbol": "$"
+ },
+ "name": "Uruguay"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Tashkent",
+ "code": "UZ",
+ "capital": "Tashkent",
+ "flagURL": "https://restcountries.eu/data/uzb.svg",
+ "language": {
+ "name": "Uzbek",
+ "code": "uz"
+ },
+ "currency": {
+ "name": "Uzbekistani so'm",
+ "code": "UZS"
+ },
+ "name": "Uzbekistan"
+ },
+ {
+ "region": "OC",
+ "code": "VU",
+ "capital": "Port Vila",
+ "flagURL": "https://restcountries.eu/data/vut.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Vanuatu vatu",
+ "code": "VUV",
+ "symbol": "Vt"
+ },
+ "capitalCityTimezoneID": "Pacific/Efate",
+ "name": "Vanuatu"
+ },
+ {
+ "region": "SA",
+ "capitalCityTimezoneID": "America/Caracas",
+ "code": "VE",
+ "capital": "Caracas",
+ "flagURL": "https://restcountries.eu/data/ven.svg",
+ "language": {
+ "name": "Spanish",
+ "code": "es"
+ },
+ "currency": {
+ "name": "Venezuelan bolívar",
+ "code": "VEF",
+ "symbol": "Bs F"
+ },
+ "name": "Venezuela"
+ },
+ {
+ "region": "AS",
+ "capitalCityTimezoneID": "Asia/Ho_Chi_Minh",
+ "code": "VN",
+ "capital": "Hanoi",
+ "flagURL": "https://restcountries.eu/data/vnm.svg",
+ "language": {
+ "name": "Vietnamese",
+ "code": "vi"
+ },
+ "currency": {
+ "name": "Vietnamese đồng",
+ "code": "VND",
+ "symbol": "₫"
+ },
+ "name": "Viet Nam"
+ },
+ {
+ "region": "AS",
+ "code": "YE",
+ "capital": "Sana'a",
+ "flagURL": "https://restcountries.eu/data/yem.svg",
+ "language": {
+ "name": "Arabic",
+ "code": "ar"
+ },
+ "currency": {
+ "name": "Yemeni rial",
+ "code": "YER",
+ "symbol": "﷼"
+ },
+ "capitalCityTimezoneID": "Asia/Aden",
+ "name": "Yemen"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Lusaka",
+ "code": "ZM",
+ "capital": "Lusaka",
+ "flagURL": "https://restcountries.eu/data/zmb.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Zambian kwacha",
+ "code": "ZMW",
+ "symbol": "ZK"
+ },
+ "name": "Zambia"
+ },
+ {
+ "region": "AF",
+ "capitalCityTimezoneID": "Africa/Harare",
+ "code": "ZW",
+ "capital": "Harare",
+ "flagURL": "https://restcountries.eu/data/zwe.svg",
+ "language": {
+ "name": "English",
+ "code": "en"
+ },
+ "currency": {
+ "name": "Botswana pula",
+ "code": "BWP",
+ "symbol": "P"
+ },
+ "name": "Zimbabwe"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/DefaultCurrencyRates.json
new file mode 100644
index 000000000..0662876ef
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/DefaultCurrencyRates.json
@@ -0,0 +1,730 @@
+{
+ "HRK" : {
+ "value" : 0.14492904853499922,
+ "code" : "HRK"
+ },
+ "HUF" : {
+ "value" : 0.0031565724021449374,
+ "code" : "HUF"
+ },
+ "CDF" : {
+ "value" : 0.00055066070592531789,
+ "code" : "CDF"
+ },
+ "XMR" : {
+ "value" : 63.43125998,
+ "code" : "XMR"
+ },
+ "ILS" : {
+ "value" : 0.28450327719324997,
+ "code" : "ILS"
+ },
+ "NGN" : {
+ "value" : 0.0025791139662877049,
+ "code" : "NGN"
+ },
+ "GYD" : {
+ "value" : 0.0047774081337857727,
+ "code" : "GYD"
+ },
+ "BYR" : {
+ "value" : 5.1020408163265308e-05,
+ "code" : "BYR"
+ },
+ "BHD" : {
+ "value" : 2.6481437836148753,
+ "code" : "BHD"
+ },
+ "SZL" : {
+ "value" : 0.055832456624183194,
+ "code" : "SZL"
+ },
+ "INR" : {
+ "value" : 0.013244594900687922,
+ "code" : "INR"
+ },
+ "SDG" : {
+ "value" : 0.018066818937430035,
+ "code" : "SDG"
+ },
+ "PEN" : {
+ "value" : 0.29378894906992292,
+ "code" : "PEN"
+ },
+ "EUR" : {
+ "value" : 1.098520841686669,
+ "code" : "EUR"
+ },
+ "TRX" : {
+ "value" : 0.01492488,
+ "code" : "TRX"
+ },
+ "QAR" : {
+ "value" : 0.2746511792697684,
+ "code" : "QAR"
+ },
+ "PGK" : {
+ "value" : 0.28621131210141498,
+ "code" : "PGK"
+ },
+ "LRD" : {
+ "value" : 0.005039049204783614,
+ "code" : "LRD"
+ },
+ "ISK" : {
+ "value" : 0.0070283824144839668,
+ "code" : "ISK"
+ },
+ "SYP" : {
+ "value" : 0.0019491840506026894,
+ "code" : "SYP"
+ },
+ "TRY" : {
+ "value" : 0.14707169230248823,
+ "code" : "TRY"
+ },
+ "UAH" : {
+ "value" : 0.037400250260034594,
+ "code" : "UAH"
+ },
+ "SGD" : {
+ "value" : 0.70706106532890722,
+ "code" : "SGD"
+ },
+ "MMK" : {
+ "value" : 0.00071152292211045594,
+ "code" : "MMK"
+ },
+ "NIO" : {
+ "value" : 0.029644476461796555,
+ "code" : "NIO"
+ },
+ "BIF" : {
+ "value" : 0.00052823751756257687,
+ "code" : "BIF"
+ },
+ "AFN" : {
+ "value" : 0.013054842217218737,
+ "code" : "AFN"
+ },
+ "LKR" : {
+ "value" : 0.005360736560914881,
+ "code" : "LKR"
+ },
+ "LTC" : {
+ "value" : 43.582596539999997,
+ "code" : "LTC"
+ },
+ "GTQ" : {
+ "value" : 0.13004462611389725,
+ "code" : "GTQ"
+ },
+ "XRP" : {
+ "value" : 0.19793100999999999,
+ "code" : "XRP"
+ },
+ "CHF" : {
+ "value" : 1.033185932140348,
+ "code" : "CHF"
+ },
+ "THB" : {
+ "value" : 0.031427754396750697,
+ "code" : "THB"
+ },
+ "AMD" : {
+ "value" : 0.00207606734847182,
+ "code" : "AMD"
+ },
+ "AOA" : {
+ "value" : 0.0017316827353721443,
+ "code" : "AOA"
+ },
+ "SEK" : {
+ "value" : 0.10440434969401696,
+ "code" : "SEK"
+ },
+ "DASH" : {
+ "value" : 75.360202450000003,
+ "code" : "DASH"
+ },
+ "SAR" : {
+ "value" : 0.2663164782521969,
+ "code" : "SAR"
+ },
+ "KWD" : {
+ "value" : 3.2384363533911289,
+ "code" : "KWD"
+ },
+ "IRR" : {
+ "value" : 2.37501483391515e-05,
+ "code" : "IRR"
+ },
+ "WST" : {
+ "value" : 0.36509328498524657,
+ "code" : "WST"
+ },
+ "BNB" : {
+ "value" : 16.571442189999999,
+ "code" : "BNB"
+ },
+ "BMD" : {
+ "value" : 1,
+ "code" : "BMD"
+ },
+ "BGN" : {
+ "value" : 0.56184762467679716,
+ "code" : "BGN"
+ },
+ "PHP" : {
+ "value" : 0.01975697927641051,
+ "code" : "PHP"
+ },
+ "ZMW" : {
+ "value" : 0.055235914524189821,
+ "code" : "ZMW"
+ },
+ "XAF" : {
+ "value" : 0.0016747515577241058,
+ "code" : "XAF"
+ },
+ "BDT" : {
+ "value" : 0.011772159736906356,
+ "code" : "BDT"
+ },
+ "NOK" : {
+ "value" : 0.10110620296665822,
+ "code" : "NOK"
+ },
+ "BOB" : {
+ "value" : 0.1448300802807618,
+ "code" : "BOB"
+ },
+ "TZS" : {
+ "value" : 0.00043198346421901678,
+ "code" : "TZS"
+ },
+ "XAG" : {
+ "value" : 17.222968550859424,
+ "code" : "XAG"
+ },
+ "VEF" : {
+ "value" : 0.1001251664706049,
+ "code" : "VEF"
+ },
+ "ANG" : {
+ "value" : 0.55713813738692186,
+ "code" : "ANG"
+ },
+ "VUV" : {
+ "value" : 0.0083010903075365523,
+ "code" : "VUV"
+ },
+ "BND" : {
+ "value" : 0.70692710803896297,
+ "code" : "BND"
+ },
+ "XCD" : {
+ "value" : 0.37002090618119926,
+ "code" : "XCD"
+ },
+ "SCR" : {
+ "value" : 0.056999274342238344,
+ "code" : "SCR"
+ },
+ "KYD" : {
+ "value" : 1.2000926471523601,
+ "code" : "KYD"
+ },
+ "DJF" : {
+ "value" : 0.0056268309356187571,
+ "code" : "DJF"
+ },
+ "CLF" : {
+ "value" : 34.456619116532288,
+ "code" : "CLF"
+ },
+ "LSL" : {
+ "value" : 0.05535562028103716,
+ "code" : "LSL"
+ },
+ "MOP" : {
+ "value" : 0.12524683019059812,
+ "code" : "MOP"
+ },
+ "ALL" : {
+ "value" : 0.0088873476253140456,
+ "code" : "ALL"
+ },
+ "UZS" : {
+ "value" : 9.8725590760133264e-05,
+ "code" : "UZS"
+ },
+ "UYU" : {
+ "value" : 0.022942214686775337,
+ "code" : "UYU"
+ },
+ "PLN" : {
+ "value" : 0.24306948141126142,
+ "code" : "PLN"
+ },
+ "LTL" : {
+ "value" : 0.33866849096093798,
+ "code" : "LTL"
+ },
+ "LYD" : {
+ "value" : 0.70511220450510281,
+ "code" : "LYD"
+ },
+ "JPY" : {
+ "value" : 0.0092808717456008376,
+ "code" : "JPY"
+ },
+ "MNT" : {
+ "value" : 0.00035728175233808797,
+ "code" : "MNT"
+ },
+ "FJD" : {
+ "value" : 0.44498831905662473,
+ "code" : "FJD"
+ },
+ "ZWL" : {
+ "value" : 0.0031055900524671115,
+ "code" : "ZWL"
+ },
+ "KPW" : {
+ "value" : 0.0011110363173807097,
+ "code" : "KPW"
+ },
+ "PKR" : {
+ "value" : 0.0062037571938768415,
+ "code" : "PKR"
+ },
+ "MRO" : {
+ "value" : 0.0028011203383314152,
+ "code" : "MRO"
+ },
+ "OMR" : {
+ "value" : 2.5972002181648186,
+ "code" : "OMR"
+ },
+ "GBP" : {
+ "value" : 1.2235109871286642,
+ "code" : "GBP"
+ },
+ "LVL" : {
+ "value" : 1.6531931425548445,
+ "code" : "LVL"
+ },
+ "SHP" : {
+ "value" : 1.2239437671275633,
+ "code" : "SHP"
+ },
+ "GEL" : {
+ "value" : 0.31154094068540877,
+ "code" : "GEL"
+ },
+ "TND" : {
+ "value" : 0.34677069787602949,
+ "code" : "TND"
+ },
+ "DKK" : {
+ "value" : 0.14732205337477994,
+ "code" : "DKK"
+ },
+ "KRW" : {
+ "value" : 0.00081241596998828818,
+ "code" : "KRW"
+ },
+ "NPR" : {
+ "value" : 0.0082777496242315562,
+ "code" : "NPR"
+ },
+ "BSD" : {
+ "value" : 1.0000590034812054,
+ "code" : "BSD"
+ },
+ "CRC" : {
+ "value" : 0.0017559340209898735,
+ "code" : "CRC"
+ },
+ "EGP" : {
+ "value" : 0.063054473453215437,
+ "code" : "EGP"
+ },
+ "MAD" : {
+ "value" : 0.10204590820909329,
+ "code" : "MAD"
+ },
+ "AUD" : {
+ "value" : 0.65917014433848653,
+ "code" : "AUD"
+ },
+ "BTC" : {
+ "value" : 9318.9785578200008,
+ "code" : "BTC"
+ },
+ "SLL" : {
+ "value" : 0.00010261672298827924,
+ "code" : "SLL"
+ },
+ "MWK" : {
+ "value" : 0.0013577148194343087,
+ "code" : "MWK"
+ },
+ "RSD" : {
+ "value" : 0.0093423201844629912,
+ "code" : "RSD"
+ },
+ "NZD" : {
+ "value" : 0.61422797685588981,
+ "code" : "NZD"
+ },
+ "SRD" : {
+ "value" : 0.13408463636782955,
+ "code" : "SRD"
+ },
+ "CLP" : {
+ "value" : 0.0012487488753798847,
+ "code" : "CLP"
+ },
+ "RUB" : {
+ "value" : 0.014138171758795495,
+ "code" : "RUB"
+ },
+ "NAD" : {
+ "value" : 0.055355558996211078,
+ "code" : "NAD"
+ },
+ "HKD" : {
+ "value" : 0.12896486352293318,
+ "code" : "HKD"
+ },
+ "GMD" : {
+ "value" : 0.019454282096622998,
+ "code" : "GMD"
+ },
+ "VND" : {
+ "value" : 4.2961362827225422e-05,
+ "code" : "VND"
+ },
+ "LAK" : {
+ "value" : 0.0001112392094137459,
+ "code" : "LAK"
+ },
+ "CUC" : {
+ "value" : 1,
+ "code" : "CUC"
+ },
+ "RON" : {
+ "value" : 0.22687595217001175,
+ "code" : "RON"
+ },
+ "MUR" : {
+ "value" : 0.02510042743768888,
+ "code" : "MUR"
+ },
+ "XAU" : {
+ "value" : 1733.1022530329287,
+ "code" : "XAU"
+ },
+ "GGP" : {
+ "value" : 1.2239437671275633,
+ "code" : "GGP"
+ },
+ "MXN" : {
+ "value" : 0.043794314919838449,
+ "code" : "MXN"
+ },
+ "BRL" : {
+ "value" : 0.17892198786622648,
+ "code" : "BRL"
+ },
+ "STD" : {
+ "value" : 4.5350048495809031e-05,
+ "code" : "STD"
+ },
+ "AWG" : {
+ "value" : 0.55555555555555558,
+ "code" : "AWG"
+ },
+ "MVR" : {
+ "value" : 0.064725199779183507,
+ "code" : "MVR"
+ },
+ "PAB" : {
+ "value" : 1.0000590034812054,
+ "code" : "PAB"
+ },
+ "TJS" : {
+ "value" : 0.097589500306626206,
+ "code" : "TJS"
+ },
+ "GNF" : {
+ "value" : 0.00010461826968145518,
+ "code" : "GNF"
+ },
+ "MGA" : {
+ "value" : 0.00026213480308829283,
+ "code" : "MGA"
+ },
+ "XDR" : {
+ "value" : 1.3653554702966917,
+ "code" : "XDR"
+ },
+ "ETB" : {
+ "value" : 0.029248580851544938,
+ "code" : "ETB"
+ },
+ "ZAR" : {
+ "value" : 0.05703725998934886,
+ "code" : "ZAR"
+ },
+ "COP" : {
+ "value" : 0.00026235150904588007,
+ "code" : "COP"
+ },
+ "IDR" : {
+ "value" : 6.7932475119730993e-05,
+ "code" : "IDR"
+ },
+ "SVC" : {
+ "value" : 0.11429099126405379,
+ "code" : "SVC"
+ },
+ "CVE" : {
+ "value" : 0.0099629527601613407,
+ "code" : "CVE"
+ },
+ "ETC" : {
+ "value" : 6.34598935,
+ "code" : "ETC"
+ },
+ "TTD" : {
+ "value" : 0.14800871297691554,
+ "code" : "TTD"
+ },
+ "GIP" : {
+ "value" : 1.2239437671275633,
+ "code" : "GIP"
+ },
+ "PYG" : {
+ "value" : 0.00015129248329562634,
+ "code" : "PYG"
+ },
+ "DOGE" : {
+ "value" : 0.0024541300000000001,
+ "code" : "DOGE"
+ },
+ "MZN" : {
+ "value" : 0.014539099425791353,
+ "code" : "MZN"
+ },
+ "FKP" : {
+ "value" : 1.2239437671275633,
+ "code" : "FKP"
+ },
+ "KZT" : {
+ "value" : 0.0024216670033994636,
+ "code" : "KZT"
+ },
+ "USD" : {
+ "value" : 1,
+ "code" : "USD"
+ },
+ "UGX" : {
+ "value" : 0.00026407177766677375,
+ "code" : "UGX"
+ },
+ "RWF" : {
+ "value" : 0.0010487894766981003,
+ "code" : "RWF"
+ },
+ "GHS" : {
+ "value" : 0.1736202744033713,
+ "code" : "GHS"
+ },
+ "ARS" : {
+ "value" : 0.014687716887089395,
+ "code" : "ARS"
+ },
+ "JEP" : {
+ "value" : 1.2239437671275633,
+ "code" : "JEP"
+ },
+ "DOP" : {
+ "value" : 0.01807415144750818,
+ "code" : "DOP"
+ },
+ "LBP" : {
+ "value" : 0.00066138773607610235,
+ "code" : "LBP"
+ },
+ "BZD" : {
+ "value" : 0.49612280031553413,
+ "code" : "BZD"
+ },
+ "BTN" : {
+ "value" : 0.013244403345589262,
+ "code" : "BTN"
+ },
+ "ADA" : {
+ "value" : 0.055333640000000003,
+ "code" : "ADA"
+ },
+ "MYR" : {
+ "value" : 0.23022372450876591,
+ "code" : "MYR"
+ },
+ "YER" : {
+ "value" : 0.0039948065437631674,
+ "code" : "YER"
+ },
+ "JMD" : {
+ "value" : 0.006803018199842469,
+ "code" : "JMD"
+ },
+ "TOP" : {
+ "value" : 0.43508508741512031,
+ "code" : "TOP"
+ },
+ "SOS" : {
+ "value" : 0.0017182113785871572,
+ "code" : "SOS"
+ },
+ "TMT" : {
+ "value" : 0.28490028490028491,
+ "code" : "TMT"
+ },
+ "MDL" : {
+ "value" : 0.056627645877204424,
+ "code" : "MDL"
+ },
+ "XOF" : {
+ "value" : 0.0016747515577241058,
+ "code" : "XOF"
+ },
+ "ETH" : {
+ "value" : 205.71375277000001,
+ "code" : "ETH"
+ },
+ "TWD" : {
+ "value" : 0.03343811165620806,
+ "code" : "TWD"
+ },
+ "BBD" : {
+ "value" : 0.49529519098087271,
+ "code" : "BBD"
+ },
+ "CAD" : {
+ "value" : 0.71893310327474036,
+ "code" : "CAD"
+ },
+ "CNY" : {
+ "value" : 0.14072220606262223,
+ "code" : "CNY"
+ },
+ "JOD" : {
+ "value" : 1.4104392248790194,
+ "code" : "JOD"
+ },
+ "XPF" : {
+ "value" : 0.0092115128324525945,
+ "code" : "XPF"
+ },
+ "XLM" : {
+ "value" : 0.068425250000000007,
+ "code" : "XLM"
+ },
+ "IQD" : {
+ "value" : 0.00083769121244326632,
+ "code" : "IQD"
+ },
+ "HNL" : {
+ "value" : 0.040298045959840822,
+ "code" : "HNL"
+ },
+ "AED" : {
+ "value" : 0.27225404569511902,
+ "code" : "AED"
+ },
+ "EOS" : {
+ "value" : 2.5032196999999998,
+ "code" : "EOS"
+ },
+ "ERN" : {
+ "value" : 0.066665991117956666,
+ "code" : "ERN"
+ },
+ "KES" : {
+ "value" : 0.0093591569945238647,
+ "code" : "KES"
+ },
+ "KMF" : {
+ "value" : 0.0022294061217904768,
+ "code" : "KMF"
+ },
+ "MKD" : {
+ "value" : 0.017829505849539937,
+ "code" : "MKD"
+ },
+ "DZD" : {
+ "value" : 0.007789974800989515,
+ "code" : "DZD"
+ },
+ "BSV" : {
+ "value" : 193.44753942,
+ "code" : "BSV"
+ },
+ "BWP" : {
+ "value" : 0.082500865227824072,
+ "code" : "BWP"
+ },
+ "SBD" : {
+ "value" : 0.12014800311615861,
+ "code" : "SBD"
+ },
+ "AZN" : {
+ "value" : 0.58747986412765707,
+ "code" : "AZN"
+ },
+ "BCH" : {
+ "value" : 235.7315255,
+ "code" : "BCH"
+ },
+ "KGS" : {
+ "value" : 0.01332812612331113,
+ "code" : "KGS"
+ },
+ "BYN" : {
+ "value" : 0.4182779080248708,
+ "code" : "BYN"
+ },
+ "KHR" : {
+ "value" : 0.00024331990144781915,
+ "code" : "KHR"
+ },
+ "NEO" : {
+ "value" : 9.8775383399999992,
+ "code" : "NEO"
+ },
+ "ZMK" : {
+ "value" : 0.00011109625114812615,
+ "code" : "ZMK"
+ },
+ "HTG" : {
+ "value" : 0.009394342069601741,
+ "code" : "HTG"
+ },
+ "CZK" : {
+ "value" : 0.040534238014289292,
+ "code" : "CZK"
+ },
+ "IMP" : {
+ "value" : 1.2239437671275633,
+ "code" : "IMP"
+ },
+ "BAM" : {
+ "value" : 0.5616873086752604,
+ "code" : "BAM"
+ }
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..ea5261e51
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/FunctionDescriptions.json
@@ -0,0 +1,313 @@
+{
+ "financial": [
+ {
+ "prototypeExpressions": [
+ "present value of 1000 after __timespan at 10%",
+ "present value of 1000 over __timespan at 10%"
+ ],
+ "identifier": "presentValue"
+ },
+ {
+ "prototypeExpressions": [
+ "annual return on 500 invested 1000 returned after __timespan",
+ "yearly return on 500 invested 1000 returned after __timespan",
+ "annual return on 500 invested 1000 returned over __timespan",
+ "yearly return on 500 invested 1000 returned over __timespan"
+ ],
+ "identifier": "returnOnInvestmentAfter"
+ },
+ {
+ "identifier": "returnOnInvestment",
+ "prototypeExpressions": [
+ "500 invested 1000 returned"
+ ]
+ },
+ {
+ "identifier": "totalLoanRepayment",
+ "prototypeExpressions": [
+ "total repayment on 10000 for __timespan at 6%",
+ "total repayment on 10000 after __timespan at 6%",
+ "total repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "annual repayment on 10000 for __timespan at 6%",
+ "annual repayment on 10000 after __timespan at 6%",
+ "annual repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 after __timespan at 6%",
+ "yearly repayment on 10000 for __timespan at 6%"
+ ],
+ "identifier": "annualLoanRepayment"
+ },
+ {
+ "identifier": "monthlyLoanRepayment",
+ "prototypeExpressions": [
+ "monthly repayment on 10000 for __timespan at 6%",
+ "monthly repayment on 10000 after __timespan at 6%",
+ "monthly repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "total interest on 10000 for __timespan at 6%",
+ "total interest on 10000 after __timespan at 6%",
+ "total interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "totalInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "annualInterestOnLoanRepayment",
+ "prototypeExpressions": [
+ "annual interest on 10000 for __timespan at 6%",
+ "annual interest on 10000 after __timespan at 6%",
+ "annual interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 after __timespan at 6%",
+ "yearly interest on 10000 for __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "monthly interest on 10000 for __timespan at 6%",
+ "monthly interest on 10000 after __timespan at 6%",
+ "monthly interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "monthlyInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "compoundInterest",
+ "prototypeExpressions": [
+ "100 after __timespan at 10%",
+ "100 for __timespan at 10%",
+ "100 over __timespan at 10%"
+ ]
+ }
+ ],
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "10% of 100"
+ ],
+ "identifier": "percentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10% off 100"
+ ],
+ "identifier": "percentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "10% on 100"
+ ],
+ "identifier": "percentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30 is 20% of what"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% of what is 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 is 20% off what"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% off what is 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 is 20% on what"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% on what is 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10 is what % of 20",
+ "10 as a % of 20",
+ "10 as % of 20"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10 is what % off 20",
+ "10 as a % off 20",
+ "10 as % off 20"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20 is what % on 10",
+ "20 as a % on 10",
+ "20 as % on 10"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "remainder of 20 divided by 3"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "half of 20"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "smaller of 2 and 30",
+ "lesser of 2 and 30"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "larger of 2 and 30",
+ "greater of 2 and 30"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "midpoint between 2 and 32"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "6 is to 600 as what is to 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "6 is to 600 as 8 is to what"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "random number between 1 and 5",
+ "random between 1 and 5"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ],
+ "identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ],
+ "identifier": "unitInTimespan"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__unit between __datestamp and __datestamp",
+ "__unit from __datestamp to __datestamp",
+ "__unit in __datestamp to __datestamp"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit to __datestamp",
+ "__unit before __datestamp",
+ "__unit until __datestamp",
+ "__unit till __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp to __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp to __timestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitSinceDate",
+ "prototypeExpressions": [
+ "__unit since __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan from __datestamp",
+ "__timespan after __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan ago"
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
+ {
+ "prototypeExpressions": [
+ "new timestamp"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone time",
+ "time in __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "time difference between __timezone and __timezone",
+ "difference between __timezone and __timezone",
+ "time difference between __timezone & __timezone",
+ "difference between __timezone & __timezone"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..e3332a1d4
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/LocalizedFixtures.json
@@ -0,0 +1,139 @@
+{
+ "fixtures": {
+ "decimalPlacesTypes": [
+ "dp",
+ "digit",
+ "digits"
+ ],
+ "multiplierTypes": [
+ "multiplier"
+ ],
+ "divisionOperators": [
+ "÷",
+ "per"
+ ],
+ "roundingConverters": [
+ "rounded"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "tomorrowDateAliases": [
+ "tomorrow"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "laptime"
+ ],
+ "numberTypes": [
+ "number"
+ ],
+ "roundingDownConverters": [
+ "rounded down"
+ ],
+ "yesterdayDateAliases": [
+ "yesterday"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "todayDateAliases": [
+ "today"
+ ],
+ "timestampTypes": [
+ "timestamp"
+ ],
+ "roundingUpConverters": [
+ "rounded up"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "dateTypes": [
+ "date"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "monthOfYearDateAliases": [
+ "jan",
+ "feb",
+ "mar",
+ "apr",
+ "may",
+ "june",
+ "july",
+ "aug",
+ "sept",
+ "oct",
+ "nov",
+ "dec",
+ "january",
+ "february",
+ "march",
+ "april",
+ "may",
+ "june",
+ "july",
+ "august",
+ "september",
+ "october",
+ "november",
+ "december"
+ ],
+ "colons": [
+ ":",
+ ":"
+ ],
+ "additionOperators": [
+ "plus"
+ ],
+ "timespanTypes": [
+ "timespan"
+ ],
+ "nowDateAliases": [
+ "now"
+ ],
+ "converterSymbols": [
+ "to",
+ "as"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "fractionTypes": [
+ "fraction"
+ ],
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "percentTypes": [
+ "percent",
+ "percentage"
+ ],
+ "dayOfWeekDateAliases": [
+ "monday",
+ "tuesday",
+ "wednesday",
+ "thursday",
+ "friday",
+ "saturday",
+ "sunday",
+ "mon",
+ "tu",
+ "tues",
+ "wed",
+ "thur",
+ "fri",
+ "sat",
+ "sun"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/TimeZoneAbbrieviations.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/TimeZoneAbbrieviations.json
new file mode 100644
index 000000000..5614c4c42
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/TimeZoneAbbrieviations.json
@@ -0,0 +1,64 @@
+{
+ "ACDT": "10.5",
+ "ACST": "9.5",
+ "ADT": "-3.0",
+ "AEDT": "11.0",
+ "AEST": "10.0",
+ "AKDT": "-8.0",
+ "AKST": "-9.0",
+ "ART": "-3.0",
+ "AST": "-4.0",
+ "AWST": "8.0",
+ "AWDT": "9.0",
+ "BDT": "6.0",
+ "BRST": "-2.0",
+ "BRT": "-3.0",
+ "BST": "1.0",
+ "CAT": "2.0",
+ "CDT": "-5.0",
+ "CEST": "2.0",
+ "CET": "1.0",
+ "CLST": "-3.0",
+ "CLT": "-4.0",
+ "COT": "-5.0",
+ "CST": "-6.0",
+ "EAT": "3.0",
+ "EDT": "-4.0",
+ "EEST": "3.0",
+ "EET": "2.0",
+ "EST": "-5.0",
+ "GMT": "0.0",
+ "GST": "4.0",
+ "HKT": "8.0",
+ "HST": "-10.0",
+ "ICT": "7.0",
+ "IRST": "3.5",
+ "IST": "5.5",
+ "JST": "8.0",
+ "KST": "9.0",
+ "MDT": "-6.0",
+ "MSD": "-6.0",
+ "MSK": "3.0",
+ "MST": "-7.0",
+ "NDT": "-2.5",
+ "NST": "-3.5",
+ "NZDT": "13.0",
+ "NZST": "12.0",
+ "PDT": "-7.0",
+ "PET": "-5.0",
+ "PHT": "8.0",
+ "PKT": "5.0",
+ "PST": "-8.0",
+ "SAST": "2.0",
+ "SGT": "8.0",
+ "SST": "-11.0",
+ "TRT": "3.0",
+ "UTC": "0.0",
+ "WAT": "1.0",
+ "WEST": "1.0",
+ "WET": "0.0",
+ "WIB": "7.0",
+ "WIT": "9.0",
+ "WITA": "8.0"
+
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..025cac593
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/UnitDescriptions.json
@@ -0,0 +1,1647 @@
+{
+ "energy" : [
+ {
+ "symbol" : "J",
+ "aliases" : [
+ "joule",
+ "joules"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "kJ",
+ "aliases" : [
+ "kilojoule",
+ "kilojoules"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "mJ",
+ "aliases" : [
+ "megajoule",
+ "megajoules"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "gJ",
+ "aliases" : [
+ "gigajoule",
+ "gigajoules"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "cal",
+ "aliases" : [
+ "calorie",
+ "calories"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "kCal",
+ "aliases" : [
+ "kilocalorie",
+ "kilocalories"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "Wh",
+ "aliases" : [
+ "watt hour",
+ "watt hours"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "W m",
+ "aliases" : [
+ "watt minute",
+ "watt minutes"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "W s",
+ "aliases" : [
+ "watt second",
+ "watt seconds"
+ ],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "kWh",
+ "aliases" : [
+ "kilowatt hour",
+ "kilowatt hours"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "MWh",
+ "aliases" : [
+ "megawatt hour",
+ "megawatt hours"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "GWh",
+ "aliases" : [
+ "gigawatt hour",
+ "gigawatt hours"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "TWh",
+ "aliases" : [
+ "terawatt hour",
+ "terawatt hours"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "ML",
+ "aliases" : [
+ "megaliter",
+ "megaliters",
+ "megalitre",
+ "megalitres",
+ "ML"
+ ],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "kL",
+ "aliases" : [
+ "kiloliter",
+ "kiloliters",
+ "kilolitre",
+ "kilolitres",
+ "kL"
+ ],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "L",
+ "aliases" : [
+ "liter",
+ "liters",
+ "litre",
+ "litres",
+ "L"
+ ],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "mL",
+ "aliases" : [
+ "milliliter",
+ "milliliters",
+ "millilitre",
+ "millilitres",
+ "mL"
+ ],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "km³",
+ "aliases" : [
+ "cubic kilometer",
+ "cubic kilometers",
+ "cubic kilometre",
+ "cubic kilometres",
+ "kilometer^3",
+ "kilometers^3",
+ "kilometer³",
+ "kilometre³",
+ "kilometers³",
+ "kilometres³",
+ "km3",
+ "km^3"
+ ],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "m³",
+ "aliases" : [
+ "cubic meter",
+ "cubic meters",
+ "cubic metre",
+ "cubic metres",
+ "m3",
+ "m^3",
+ "meter³",
+ "metre³",
+ "meters³",
+ "metres³"
+ ],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "cm³",
+ "aliases" : [
+ "cubic centimeter",
+ "cubic centimeters",
+ "cubic centimetre",
+ "cubic centimetres",
+ "cm3",
+ "cm^3",
+ "centimeter³"
+ ],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "mm³",
+ "aliases" : [
+ "cubic millimeter",
+ "cubic millimeters",
+ "cubic millimetre",
+ "cubic millimetres",
+ "mm3",
+ "mm^3"
+ ],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "in³",
+ "aliases" : [
+ "cubic inch",
+ "inches^3",
+ "cubic inches",
+ "in³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "ft³",
+ "aliases" : [
+ "cubic foot",
+ "cubic feet",
+ "cuft",
+ "ft³",
+ "ft3",
+ "ft^3"
+ ],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "yd³",
+ "aliases" : [
+ "cubic yard",
+ "cubic yards",
+ "yd³",
+ "yard³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "mi³",
+ "aliases" : [
+ "cubic mile",
+ "cubic miles",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "mile³",
+ "mile^3",
+ "miles^3"
+ ],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "bsh",
+ "aliases" : [
+ "bushel",
+ "bushels"
+ ],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "metric cup",
+ "aliases" : [
+ "metric cup",
+ "metric cups"
+ ],
+ "identifier" : "metricCups"
+ },
+ {
+ "symbol" : "cup",
+ "aliases" : [
+ "cup",
+ "cups"
+ ],
+ "identifier" : "cups"
+ },
+ {
+ "symbol" : "af",
+ "aliases" : [
+ "acre feet",
+ "acre foot"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pint",
+ "pints"
+ ],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "qt",
+ "aliases" : [
+ "quart",
+ "quarts"
+ ],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "gal",
+ "aliases" : [
+ "gallon",
+ "gallons",
+ "gal"
+ ],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "tbsp",
+ "aliases" : [
+ "tablespoon",
+ "tablespoons",
+ "tbsp"
+ ],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "tsp",
+ "aliases" : [
+ "teaspoon",
+ "teaspoons",
+ "tsp"
+ ],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "fl oz",
+ "aliases" : [
+ "fluid ounce",
+ "fluid ounces",
+ "floz"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "B",
+ "aliases" : [
+ "byte",
+ "bytes"
+ ],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "bit",
+ "aliases" : [
+ "bit",
+ "bits"
+ ],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "YB",
+ "aliases" : [
+ "yottabyte",
+ "yottabytes"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "ZB",
+ "aliases" : [
+ "zettabyte",
+ "zettabytes"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "EB",
+ "aliases" : [
+ "exabyte",
+ "exabytes"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "petabyte",
+ "petabytes"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "terabyte",
+ "terabytes",
+ "TB",
+ "tb"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "gigabyte",
+ "gigabytes",
+ "GB",
+ "gb"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "megabyte",
+ "megabytes",
+ "MB",
+ "mb"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "kilobyte",
+ "kilobytes",
+ "KB",
+ "kb"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "yottabit",
+ "yottabits",
+ "Ybit"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "zettabit",
+ "zettabits",
+ "Zbit"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "exabit",
+ "exabits",
+ "Ebit"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "petabit",
+ "petabits",
+ "Pbit"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "terabit",
+ "terabits",
+ "Tbit"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "gigabit",
+ "gigabits",
+ "Gbit"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "megabit",
+ "megabits",
+ "Mbit"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "kilobit",
+ "kilobits",
+ "Kbit",
+ "Kb"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [
+ "yobibyte",
+ "yobibytes",
+ "YiB"
+ ],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [
+ "zebibyte",
+ "zebibytes",
+ "ZiB"
+ ],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [
+ "exbibyte",
+ "exbibytes",
+ "EiB"
+ ],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [
+ "pebibyte",
+ "pebibytes",
+ "PiB"
+ ],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [
+ "tebibyte",
+ "tebibytes",
+ "TiB"
+ ],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [
+ "gibibyte",
+ "gibibytes",
+ "GiB"
+ ],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [
+ "mebibyte",
+ "mebibytes",
+ "MiB"
+ ],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [
+ "kibibyte",
+ "kibibytes",
+ "KiB"
+ ],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [
+ "yobibit",
+ "yobibits",
+ "Yibit"
+ ],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [
+ "zebibit",
+ "zebibits",
+ "Zibit"
+ ],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "exbibit",
+ "exbibits",
+ "Eibit"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [
+ "pebibit",
+ "pebibits",
+ "Pibit"
+ ],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [
+ "tebibit",
+ "tebibits",
+ "Tibit"
+ ],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [
+ "gibibit",
+ "gibibits",
+ "Gibit"
+ ],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [
+ "mebibit",
+ "mebibits",
+ "Mibit"
+ ],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [
+ "kibibit",
+ "kibibits",
+ "Kibit"
+ ],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "kelvin"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "degree celsius",
+ "degrees celsius",
+ "ºC",
+ "C",
+ "degC",
+ "celcius"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "degree fahrenheit",
+ "degrees fahrenheit",
+ "ºF",
+ "F",
+ "degF",
+ "fahrenheit"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [
+
+ ],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [
+
+ ],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "gBps"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "mBps"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "kBps"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "Pbps"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "tbps"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "gbps"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "mbps"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "kbps"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [
+
+ ],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [
+
+ ],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "m\/s",
+ "aliases" : [
+ "meter per second",
+ "meters per second",
+ "metre per second",
+ "metres per second"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "km\/h",
+ "aliases" : [
+ "kilometer per hour",
+ "kilometers per hour",
+ "kilometre per hour",
+ "kilometres per hour",
+ "kph"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "mph",
+ "aliases" : [
+ "mile per hour",
+ "miles per hour"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "kn",
+ "aliases" : [
+ "knot",
+ "knots"
+ ],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "degree",
+ "degrees"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "radian",
+ "radians"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "meter",
+ "meters",
+ "metre",
+ "metres"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "kilometer",
+ "kilometers",
+ "kilometre",
+ "kilometres"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "centimeter",
+ "centimeters",
+ "centimetre",
+ "centimetres"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "millimeter",
+ "millimetres",
+ "millimetre",
+ "millimeters"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "micrometre",
+ "micrometres",
+ "micrometre",
+ "micrometers"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "nanometer",
+ "nanometers",
+ "nanometre",
+ "nanometres"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "inch",
+ "inches"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "foot",
+ "feet"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "yard",
+ "yards"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "mile",
+ "miles"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "light year",
+ "light years"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "parsec",
+ "parsecs"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "nautical mile",
+ "nautical miles"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "fathom",
+ "fathoms"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "furlong",
+ "furlongs"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "pixel",
+ "pixels"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [
+
+ ],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pts"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "square kilometer",
+ "square kilometers",
+ "square kilometre",
+ "square kilometres",
+ "kilometre²",
+ "kilometres²",
+ "kilometer²",
+ "kilometers²",
+ "km^2",
+ "km2"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "square meter",
+ "square meters",
+ "square metre",
+ "square metres",
+ "m^2",
+ "metre^2",
+ "metres^2",
+ "meter^2",
+ "meters^2",
+ "meter²",
+ "meters²",
+ "metres²",
+ "metre²",
+ "m2"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "square centimeter",
+ "square centimeters",
+ "square centimetre",
+ "square centimetres",
+ "centimetres^2",
+ "centimetres²",
+ "centimeters^2",
+ "centimeters²",
+ "cm^2",
+ "cm2"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "square millimeter",
+ "square millimeters",
+ "square millimetre",
+ "square millimetres",
+ "millimeters^2",
+ "millimeters²",
+ "millimetres^2",
+ "millimetres²",
+ "mm^2",
+ "mm2"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "square micrometer",
+ "square micrometers",
+ "square micrometre",
+ "square micrometres",
+ "micrometers^2",
+ "micrometers²",
+ "micrometres^2",
+ "micrometres²",
+ "µm^2",
+ "µm2"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "square inch",
+ "square inches",
+ "sqin",
+ "in^2",
+ "in2",
+ "inches²"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "square foot",
+ "square feet",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "feett^2",
+ "feet²"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "square yard",
+ "square yards",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "yard^2",
+ "yards²",
+ "sqyd"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "square mile",
+ "square miles",
+ "mi^2",
+ "mi2",
+ "mile^2",
+ "miles^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "miles²"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "acre",
+ "acres",
+ "ac"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "hectare",
+ "hectares",
+ "ha"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "ares",
+ "aliases" : [
+
+ ],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L\/100km",
+ "aliases" : [
+ "l\/100 km",
+ "l\/100km",
+ "l \/ 100km",
+ "liters \/ 100km",
+ "litres \/ 100km",
+ "l \/ 100 km",
+ "liters \/ 100 km",
+ "litres \/ 100 km"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "miles per gallon"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "watt",
+ "watts"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "milliwatt",
+ "milliwatts"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "kilowatt",
+ "kilowatts"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "megawatt",
+ "megawatts"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "gigawatt",
+ "gigawatts"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "terawatt",
+ "terawatts"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "horsepower"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "kilogram",
+ "kilograms"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "gram",
+ "grams"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "milligram",
+ "milligrams"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "nanogram",
+ "nanograms"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "ounce",
+ "ounces"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "lbs",
+ "pound",
+ "pounds"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "stone",
+ "stones"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "metric ton",
+ "metric tons"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "short ton",
+ "short tons",
+ "tons",
+ "tonne",
+ "tonnes"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "carat",
+ "carats"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "ounce troy",
+ "ounces troy"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "hour",
+ "hours",
+ "hrs",
+ "h"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "second",
+ "seconds",
+ "sec",
+ "secs"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "minute",
+ "minutes",
+ "mins"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "days"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "weekday",
+ "weekdays",
+ "workdays",
+ "week day",
+ "week days",
+ "work days"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "weeks"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "months"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "years"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "millisecond",
+ "milliseconds"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "microsecond",
+ "microseconds"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "nanosecond",
+ "nanoseconds"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "usd",
+ "US$"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "hertz",
+ "hz"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "kilohertz"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "megahertz"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "gigahertz"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "terahertz"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "millihertz"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "microhertz"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "nanohertz"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist
new file mode 100644
index 000000000..41bbd87c0
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,46 @@
+
+
+
+
+ BuildMachineOSBuild
+ 19E287
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ SoulverCore
+ CFBundleIdentifier
+ app.soulver.core
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ SoulverCore
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0.3
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 3
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 11E146
+ DTPlatformVersion
+ GM
+ DTSDKBuild
+ 19E258
+ DTSDKName
+ macosx10.15
+ DTXcode
+ 1140
+ DTXcodeBuild
+ 11E146
+ LSMinimumSystemVersion
+ 10.14.4
+ NSHumanReadableCopyright
+ Copyright © 2020 Zac Cohan. All rights reserved.
+
+
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/Cities.json
new file mode 100644
index 000000000..2d5b33507
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/Cities.json
@@ -0,0 +1,3566 @@
+[
+ {
+ "identifier": "shanghai",
+ "name": "Shanghai",
+ "population": "22,315,474",
+ "elevation": 12,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "istanbul",
+ "name": "Istanbul",
+ "population": "14,804,116",
+ "elevation": 39,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "buenos aires",
+ "name": "Buenos Aires",
+ "population": "13,076,300",
+ "elevation": 31,
+ "timezone_id": "America/Argentina/Buenos_Aires"
+ },
+ {
+ "identifier": "mumbai",
+ "name": "Mumbai",
+ "population": "12,691,836",
+ "elevation": 8,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "mexico city",
+ "name": "Mexico City",
+ "population": "12,294,193",
+ "elevation": 2240,
+ "timezone_id": "America/Mexico_City"
+ },
+ {
+ "identifier": "beijing",
+ "name": "Beijing",
+ "population": "11,716,620",
+ "elevation": 49,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "karachi",
+ "name": "Karachi",
+ "population": "11,624,219",
+ "elevation": 8,
+ "timezone_id": "Asia/Karachi"
+ },
+ {
+ "identifier": "tianjin",
+ "name": "Tianjin",
+ "population": "11,090,314",
+ "elevation": 11,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "guangzhou",
+ "name": "Guangzhou",
+ "population": "11,071,424",
+ "elevation": 15,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "delhi",
+ "name": "Delhi",
+ "population": "10,927,986",
+ "elevation": 227,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "moscow",
+ "name": "Moskau",
+ "population": "10,381,222",
+ "elevation": 144,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "shenzhen",
+ "name": "Shenzhen",
+ "population": "10,358,381",
+ "elevation": 4,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "dhaka",
+ "name": "Dhaka",
+ "population": "10,356,500",
+ "elevation": 23,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "seoul",
+ "name": "Seoul",
+ "population": "10,349,312",
+ "elevation": 38,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "sao paulo",
+ "name": "Sao Paulo",
+ "population": "10,021,295",
+ "elevation": 769,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "wuhan",
+ "name": "Wuhan",
+ "population": "9,785,388",
+ "elevation": 20,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "lagos",
+ "name": "Lagos",
+ "population": "9,000,000",
+ "elevation": 11,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "jakarta",
+ "name": "Jakarta",
+ "population": "8,540,121",
+ "elevation": 16,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "tokyo",
+ "name": "Tokio",
+ "population": "8,336,599",
+ "elevation": 44,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "new york",
+ "name": "New York",
+ "population": "8,175,133",
+ "elevation": 57,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "dongguan",
+ "name": "Dongguan",
+ "population": "8,000,000",
+ "elevation": 1,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "taipei",
+ "name": "Taipei",
+ "population": "7,871,900",
+ "elevation": 10,
+ "timezone_id": "Asia/Taipei"
+ },
+ {
+ "identifier": "kinshasa",
+ "name": "Kinshasa",
+ "population": "7,785,965",
+ "elevation": 281,
+ "timezone_id": "Africa/Kinshasa"
+ },
+ {
+ "identifier": "cairo",
+ "name": "Kairo",
+ "population": "7,734,614",
+ "elevation": 23,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "bogota",
+ "name": "Bogota",
+ "population": "7,674,366",
+ "elevation": 2582,
+ "timezone_id": "America/Bogota"
+ },
+ {
+ "identifier": "london",
+ "name": "London",
+ "population": "7,556,900",
+ "elevation": 25,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "chongqing",
+ "name": "Chongqing",
+ "population": "7,457,600",
+ "elevation": 225,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "chengdu",
+ "name": "Chengdu",
+ "population": "7,415,590",
+ "elevation": 499,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "baghdad",
+ "name": "Baghdad",
+ "population": "7,216,000",
+ "elevation": 41,
+ "timezone_id": "Asia/Baghdad"
+ },
+ {
+ "identifier": "nanjing",
+ "name": "Nanjing",
+ "population": "7,165,292",
+ "elevation": 22,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "tehran",
+ "name": "Teheran",
+ "population": "7,153,309",
+ "elevation": 1178,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "nanchong",
+ "name": "Nanchong",
+ "population": "7,150,000",
+ "elevation": 287,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "hong kong",
+ "name": "Hong Kong",
+ "population": "7,012,738",
+ "elevation": 60,
+ "timezone_id": "Asia/Hong_Kong"
+ },
+ {
+ "identifier": "xi'an",
+ "name": "Xi'an",
+ "population": "6,501,190",
+ "elevation": 416,
+ "timezone_id": "Asia/Shanghai"
+ },
+ {
+ "identifier": "rio de janeiro",
+ "name": "Rio de Janeiro",
+ "population": "6,023,699",
+ "elevation": 6,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "bangkok",
+ "name": "Bangkok",
+ "population": "5,104,476",
+ "elevation": 12,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "bengaluru",
+ "name": "Bengaluru",
+ "population": "5,104,047",
+ "elevation": 914,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "saint petersburg",
+ "name": "Sankt Petersburg",
+ "population": "5,028,000",
+ "elevation": 11,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "santiago",
+ "name": "Santiago",
+ "population": "4,837,295",
+ "elevation": 556,
+ "timezone_id": "America/Santiago"
+ },
+ {
+ "identifier": "kolkata",
+ "name": "Kalkutta",
+ "population": "4,631,392",
+ "elevation": 11,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "sydney",
+ "name": "Sydney",
+ "population": "4,627,345",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "yangon",
+ "name": "Yangon",
+ "population": "4,477,638",
+ "elevation": 30,
+ "timezone_id": "Asia/Yangon"
+ },
+ {
+ "identifier": "chennai",
+ "name": "Chennai",
+ "population": "4,328,063",
+ "elevation": 14,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "melbourne",
+ "name": "Melbourne",
+ "population": "4,246,375",
+ "elevation": 58,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "riyadh",
+ "name": "Riad",
+ "population": "4,205,961",
+ "elevation": 612,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "los angeles",
+ "name": "Los Angeles",
+ "population": "3,971,883",
+ "elevation": 96,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "chittagong",
+ "name": "Chittagong",
+ "population": "3,920,222",
+ "elevation": 15,
+ "timezone_id": "Asia/Dhaka"
+ },
+ {
+ "identifier": "alexandria",
+ "name": "Alexandria",
+ "population": "3,811,516",
+ "elevation": 9,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "ahmedabad",
+ "name": "Ahmedabad",
+ "population": "3,719,710",
+ "elevation": 56,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "busan",
+ "name": "Busan",
+ "population": "3,678,555",
+ "elevation": 26,
+ "timezone_id": "Asia/Seoul"
+ },
+ {
+ "identifier": "abidjan",
+ "name": "Abidjan",
+ "population": "3,677,115",
+ "elevation": 76,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "kano",
+ "name": "Kano",
+ "population": "3,626,068",
+ "elevation": 484,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hyderabad",
+ "name": "Haiderabad",
+ "population": "3,597,816",
+ "elevation": 515,
+ "timezone_id": "Asia/Kolkata"
+ },
+ {
+ "identifier": "yokohama",
+ "name": "Yokohama",
+ "population": "3,574,443",
+ "elevation": 21,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "ibadan",
+ "name": "Ibadan",
+ "population": "3,565,108",
+ "elevation": 181,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "singapore",
+ "name": "Singapur",
+ "population": "3,547,809",
+ "elevation": 23,
+ "timezone_id": "Asia/Singapore"
+ },
+ {
+ "identifier": "ankara",
+ "name": "Ankara",
+ "population": "3,517,182",
+ "elevation": 874,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "ho chi minh city",
+ "name": "Ho-Chi-Minh-Stadt",
+ "population": "3,467,331",
+ "elevation": 7,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "cape town",
+ "name": "Kapstadt",
+ "population": "3,433,441",
+ "elevation": 25,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "berlin",
+ "name": "Berlin",
+ "population": "3,426,354",
+ "elevation": 43,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "madrid",
+ "name": "Madrid",
+ "population": "3,255,944",
+ "elevation": 665,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pyongyang",
+ "name": "Pjöngjang",
+ "population": "3,222,000",
+ "elevation": 43,
+ "timezone_id": "Asia/Pyongyang"
+ },
+ {
+ "identifier": "casablanca",
+ "name": "Casablanca",
+ "population": "3,144,909",
+ "elevation": 27,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "zhongshan",
+ "name": "Zhongshan",
+ "population": "3,121,275",
+ "elevation": 14,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "durban",
+ "name": "Durban",
+ "population": "3,120,282",
+ "elevation": 21,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "kabul",
+ "name": "Kabul",
+ "population": "3,043,532",
+ "elevation": 1798,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "urumqi",
+ "name": "Urumqi",
+ "population": "3,029,372",
+ "elevation": 862,
+ "timezone_id": "Asia/Urumqi"
+ },
+ {
+ "identifier": "caracas",
+ "name": "Caracas",
+ "population": "3,000,000",
+ "elevation": 887,
+ "timezone_id": "America/Caracas"
+ },
+ {
+ "identifier": "dubai",
+ "name": "Dubai",
+ "population": "2,956,587",
+ "elevation": 24,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "jeddah",
+ "name": "Jeddah",
+ "population": "2,867,446",
+ "elevation": 22,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "kyiv",
+ "name": "Kiew",
+ "population": "2,797,553",
+ "elevation": 187,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "luanda",
+ "name": "Luanda",
+ "population": "2,776,168",
+ "elevation": 73,
+ "timezone_id": "Africa/Luanda"
+ },
+ {
+ "identifier": "quezon city",
+ "name": "Quezon City",
+ "population": "2,761,720",
+ "elevation": 49,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "addis ababa",
+ "name": "Addis Abeba",
+ "population": "2,757,729",
+ "elevation": 2405,
+ "timezone_id": "Africa/Addis_Ababa"
+ },
+ {
+ "identifier": "nairobi",
+ "name": "Nairobi",
+ "population": "2,750,547",
+ "elevation": 1684,
+ "timezone_id": "Africa/Nairobi"
+ },
+ {
+ "identifier": "chicago",
+ "name": "Chicago",
+ "population": "2,720,546",
+ "elevation": 180,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "salvador",
+ "name": "Salvador",
+ "population": "2,711,840",
+ "elevation": 10,
+ "timezone_id": "America/Bahia"
+ },
+ {
+ "identifier": "dar es salaam",
+ "name": "Daressalam",
+ "population": "2,698,652",
+ "elevation": 24,
+ "timezone_id": "Africa/Dar_es_Salaam"
+ },
+ {
+ "identifier": "toronto",
+ "name": "Toronto",
+ "population": "2,600,000",
+ "elevation": 175,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "osaka",
+ "name": "Osaka",
+ "population": "2,592,413",
+ "elevation": 24,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "mogadishu",
+ "name": "Mogadischu",
+ "population": "2,587,183",
+ "elevation": 12,
+ "timezone_id": "Africa/Mogadishu"
+ },
+ {
+ "identifier": "izmir",
+ "name": "Izmir",
+ "population": "2,500,603",
+ "elevation": 122,
+ "timezone_id": "Europe/Istanbul"
+ },
+ {
+ "identifier": "dakar",
+ "name": "Dakar",
+ "population": "2,476,400",
+ "elevation": 12,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "giza",
+ "name": "Gizeh",
+ "population": "2,443,203",
+ "elevation": 26,
+ "timezone_id": "Africa/Cairo"
+ },
+ {
+ "identifier": "fortaleza",
+ "name": "Fortaleza",
+ "population": "2,400,000",
+ "elevation": 18,
+ "timezone_id": "America/Fortaleza"
+ },
+ {
+ "identifier": "surabaya",
+ "name": "Surabaya",
+ "population": "2,374,658",
+ "elevation": 8,
+ "timezone_id": "Asia/Jakarta"
+ },
+ {
+ "identifier": "belo horizonte",
+ "name": "Belo Horizonte",
+ "population": "2,373,224",
+ "elevation": 872,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "rome",
+ "name": "Rom",
+ "population": "2,318,895",
+ "elevation": 52,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "mashhad",
+ "name": "Mashhad",
+ "population": "2,307,177",
+ "elevation": 1003,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "brooklyn",
+ "name": "Brooklyn",
+ "population": "2,300,664",
+ "elevation": 18,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "houston",
+ "name": "Houston",
+ "population": "2,296,224",
+ "elevation": 30,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "queens",
+ "name": "Queens",
+ "population": "2,272,771",
+ "elevation": 13,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brasilia",
+ "name": "Brasilia",
+ "population": "2,207,718",
+ "elevation": 1136,
+ "timezone_id": "America/Sao_Paulo"
+ },
+ {
+ "identifier": "santo domingo",
+ "name": "Santo Domingo",
+ "population": "2,201,941",
+ "elevation": 9,
+ "timezone_id": "America/Santo_Domingo"
+ },
+ {
+ "identifier": "nagoya",
+ "name": "Nagoya",
+ "population": "2,191,279",
+ "elevation": 23,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "brisbane",
+ "name": "Brisbane",
+ "population": "2,189,878",
+ "elevation": 27,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "havana",
+ "name": "Havanna",
+ "population": "2,163,824",
+ "elevation": 41,
+ "timezone_id": "America/Havana"
+ },
+ {
+ "identifier": "paris",
+ "name": "Paris",
+ "population": "2,138,551",
+ "elevation": 42,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "johannesburg",
+ "name": "Johannesburg",
+ "population": "2,026,469",
+ "elevation": 1767,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "almaty",
+ "name": "Almaty",
+ "population": "2,000,900",
+ "elevation": 787,
+ "timezone_id": "Asia/Almaty"
+ },
+ {
+ "identifier": "tashkent",
+ "name": "Taschkent",
+ "population": "1,978,028",
+ "elevation": 424,
+ "timezone_id": "Asia/Tashkent"
+ },
+ {
+ "identifier": "algiers",
+ "name": "Algiers",
+ "population": "1,977,663",
+ "elevation": 113,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "khartoum",
+ "name": "Khartum",
+ "population": "1,974,647",
+ "elevation": 381,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "accra",
+ "name": "Accra",
+ "population": "1,963,264",
+ "elevation": 33,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "guayaquil",
+ "name": "Guayaquil",
+ "population": "1,952,029",
+ "elevation": 1,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "sanaa",
+ "name": "Sanaa",
+ "population": "1,937,451",
+ "elevation": 2253,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "beirut",
+ "name": "Beirut",
+ "population": "1,916,100",
+ "elevation": 40,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "perth",
+ "name": "Perth",
+ "population": "1,896,548",
+ "elevation": 46,
+ "timezone_id": "Australia/Perth"
+ },
+ {
+ "identifier": "sapporo",
+ "name": "Sapporo",
+ "population": "1,883,027",
+ "elevation": 26,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "bucharest",
+ "name": "Bukarest",
+ "population": "1,877,155",
+ "elevation": 83,
+ "timezone_id": "Europe/Bucharest"
+ },
+ {
+ "identifier": "camayenne",
+ "name": "Camayenne",
+ "population": "1,871,242",
+ "elevation": 6,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "conakry",
+ "name": "Conakry",
+ "population": "1,767,200",
+ "elevation": 13,
+ "timezone_id": "Africa/Conakry"
+ },
+ {
+ "identifier": "minsk",
+ "name": "Minsk",
+ "population": "1,742,124",
+ "elevation": 222,
+ "timezone_id": "Europe/Minsk"
+ },
+ {
+ "identifier": "budapest",
+ "name": "Budapest",
+ "population": "1,741,041",
+ "elevation": 75,
+ "timezone_id": "Europe/Budapest"
+ },
+ {
+ "identifier": "hamburg",
+ "name": "Hamburg",
+ "population": "1,739,117",
+ "elevation": 2,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "warsaw",
+ "name": "Warschau",
+ "population": "1,702,139",
+ "elevation": 113,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "soweto",
+ "name": "Soweto",
+ "population": "1,695,047",
+ "elevation": 1632,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "vienna",
+ "name": "Wien",
+ "population": "1,691,468",
+ "elevation": 193,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "rabat",
+ "name": "Rabat",
+ "population": "1,655,753",
+ "elevation": 46,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "barcelona",
+ "name": "Barcelona",
+ "population": "1,621,537",
+ "elevation": 47,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "pretoria",
+ "name": "Pretoria",
+ "population": "1,619,438",
+ "elevation": 1332,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "aleppo",
+ "name": "Aleppo",
+ "population": "1,602,264",
+ "elevation": 401,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "manila",
+ "name": "Manila",
+ "population": "1,600,000",
+ "elevation": 13,
+ "timezone_id": "Asia/Manila"
+ },
+ {
+ "identifier": "montreal",
+ "name": "Montreal",
+ "population": "1,600,000",
+ "elevation": 216,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "kaduna",
+ "name": "Kaduna",
+ "population": "1,582,102",
+ "elevation": 626,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "phnom penh",
+ "name": "Phnom Penh",
+ "population": "1,573,544",
+ "elevation": 20,
+ "timezone_id": "Asia/Phnom_Penh"
+ },
+ {
+ "identifier": "damascus",
+ "name": "Damaskus",
+ "population": "1,569,394",
+ "elevation": 701,
+ "timezone_id": "Asia/Damascus"
+ },
+ {
+ "identifier": "philadelphia",
+ "name": "Philadelphia",
+ "population": "1,567,442",
+ "elevation": 40,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "phoenix",
+ "name": "Phoenix",
+ "population": "1,563,025",
+ "elevation": 366,
+ "timezone_id": "America/Phoenix"
+ },
+ {
+ "identifier": "isfahan",
+ "name": "Isfahan",
+ "population": "1,547,164",
+ "elevation": 1578,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "harare",
+ "name": "Harare",
+ "population": "1,542,813",
+ "elevation": 1494,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "kobe",
+ "name": "Kobe",
+ "population": "1,528,478",
+ "elevation": 35,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "stockholm",
+ "name": "Stockholm",
+ "population": "1,515,017",
+ "elevation": 12,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "manhattan",
+ "name": "Manhattan",
+ "population": "1,487,536",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "asuncion",
+ "name": "Asuncion",
+ "population": "1,482,200",
+ "elevation": 107,
+ "timezone_id": "America/Asuncion"
+ },
+ {
+ "identifier": "recife",
+ "name": "Recife",
+ "population": "1,478,098",
+ "elevation": 8,
+ "timezone_id": "America/Recife"
+ },
+ {
+ "identifier": "san antonio",
+ "name": "San Antonio",
+ "population": "1,469,845",
+ "elevation": 202,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kumasi",
+ "name": "Kumasi",
+ "population": "1,468,609",
+ "elevation": 270,
+ "timezone_id": "Africa/Accra"
+ },
+ {
+ "identifier": "kota bharu",
+ "name": "Kota Bharu",
+ "population": "1,459,994",
+ "elevation": 1,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "kyoto",
+ "name": "Kyoto",
+ "population": "1,459,640",
+ "elevation": 50,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "kuala lumpur",
+ "name": "Kuala Lumpur",
+ "population": "1,453,975",
+ "elevation": 56,
+ "timezone_id": "Asia/Kuala_Lumpur"
+ },
+ {
+ "identifier": "karaj",
+ "name": "Karadsch",
+ "population": "1,448,075",
+ "elevation": 1341,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kathmandu",
+ "name": "Kathmandu",
+ "population": "1,442,271",
+ "elevation": 1296,
+ "timezone_id": "Asia/Kathmandu"
+ },
+ {
+ "identifier": "hanoi",
+ "name": "Hanoi",
+ "population": "1,431,270",
+ "elevation": 10,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "kharkiv",
+ "name": "Kharkiv",
+ "population": "1,430,885",
+ "elevation": 113,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "cordoba",
+ "name": "Cordoba",
+ "population": "1,428,214",
+ "elevation": 395,
+ "timezone_id": "America/Argentina/Cordoba"
+ },
+ {
+ "identifier": "tabriz",
+ "name": "Tabriz",
+ "population": "1,424,641",
+ "elevation": 1396,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "novosibirsk",
+ "name": "Nowosibirsk",
+ "population": "1,419,007",
+ "elevation": 164,
+ "timezone_id": "Asia/Novosibirsk"
+ },
+ {
+ "identifier": "belem",
+ "name": "Belem",
+ "population": "1,407,737",
+ "elevation": 15,
+ "timezone_id": "America/Belem"
+ },
+ {
+ "identifier": "quito",
+ "name": "Quito",
+ "population": "1,399,814",
+ "elevation": 2854,
+ "timezone_id": "America/Guayaquil"
+ },
+ {
+ "identifier": "san diego",
+ "name": "San Diego",
+ "population": "1,394,928",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "fukuoka",
+ "name": "Fukuoka",
+ "population": "1,392,289",
+ "elevation": 3,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "antananarivo",
+ "name": "Antananarivo",
+ "population": "1,391,433",
+ "elevation": 1274,
+ "timezone_id": "Indian/Antananarivo"
+ },
+ {
+ "identifier": "the bronx",
+ "name": "The Bronx",
+ "population": "1,385,108",
+ "elevation": 19,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "lubumbashi",
+ "name": "Lubumbashi",
+ "population": "1,373,770",
+ "elevation": 1260,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "santa cruz de la sierra",
+ "name": "Santa Cruz de la Sierra",
+ "population": "1,364,389",
+ "elevation": 433,
+ "timezone_id": "America/La_Paz"
+ },
+ {
+ "identifier": "kampala",
+ "name": "Kampala",
+ "population": "1,353,189",
+ "elevation": 1223,
+ "timezone_id": "Africa/Kampala"
+ },
+ {
+ "identifier": "yekaterinburg",
+ "name": "Jekaterinburg",
+ "population": "1,349,772",
+ "elevation": 255,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "douala",
+ "name": "Douala",
+ "population": "1,338,082",
+ "elevation": 19,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "sharjah",
+ "name": "Sharjah",
+ "population": "1,324,473",
+ "elevation": 6,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "mecca",
+ "name": "Mekka",
+ "population": "1,323,624",
+ "elevation": 333,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "makassar",
+ "name": "Makassar",
+ "population": "1,321,717",
+ "elevation": 6,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "juarez",
+ "name": "Juarez",
+ "population": "1,321,004",
+ "elevation": 1124,
+ "timezone_id": "America/Ojinaga"
+ },
+ {
+ "identifier": "kawasaki",
+ "name": "Kawasaki",
+ "population": "1,306,785",
+ "elevation": 1,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "tijuana",
+ "name": "Tijuana",
+ "population": "1,300,983",
+ "elevation": 97,
+ "timezone_id": "America/Tijuana"
+ },
+ {
+ "identifier": "dallas",
+ "name": "Dallas",
+ "population": "1,300,092",
+ "elevation": 139,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "medina",
+ "name": "Medina",
+ "population": "1,300,000",
+ "elevation": 603,
+ "timezone_id": "Asia/Riyadh"
+ },
+ {
+ "identifier": "yaounde",
+ "name": "Yaounde",
+ "population": "1,299,369",
+ "elevation": 726,
+ "timezone_id": "Africa/Douala"
+ },
+ {
+ "identifier": "bamako",
+ "name": "Bamako",
+ "population": "1,297,281",
+ "elevation": 338,
+ "timezone_id": "Africa/Bamako"
+ },
+ {
+ "identifier": "brazzaville",
+ "name": "Brazzaville",
+ "population": "1,284,609",
+ "elevation": 284,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "nizhniy novgorod",
+ "name": "Nischni Nowgorod",
+ "population": "1,284,164",
+ "elevation": 141,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "amman",
+ "name": "Amman",
+ "population": "1,275,857",
+ "elevation": 757,
+ "timezone_id": "Asia/Amman"
+ },
+ {
+ "identifier": "belgrade",
+ "name": "Belgrad",
+ "population": "1,273,651",
+ "elevation": 120,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "montevideo",
+ "name": "Montevideo",
+ "population": "1,270,737",
+ "elevation": 34,
+ "timezone_id": "America/Montevideo"
+ },
+ {
+ "identifier": "lusaka",
+ "name": "Lusaka",
+ "population": "1,267,440",
+ "elevation": 1277,
+ "timezone_id": "Africa/Lusaka"
+ },
+ {
+ "identifier": "munich",
+ "name": "München",
+ "population": "1,260,391",
+ "elevation": 524,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "shiraz",
+ "name": "Shiraz",
+ "population": "1,249,942",
+ "elevation": 1545,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "milan",
+ "name": "Mailand",
+ "population": "1,236,837",
+ "elevation": 127,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "port-au-prince",
+ "name": "Port-au-Prince",
+ "population": "1,234,742",
+ "elevation": 53,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "adelaide",
+ "name": "Adelaide",
+ "population": "1,225,235",
+ "elevation": 56,
+ "timezone_id": "Australia/Adelaide"
+ },
+ {
+ "identifier": "omdurman",
+ "name": "Omdurman",
+ "population": "1,200,000",
+ "elevation": 391,
+ "timezone_id": "Africa/Khartoum"
+ },
+ {
+ "identifier": "saitama",
+ "name": "Saitama",
+ "population": "1,193,350",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "maputo",
+ "name": "Maputo",
+ "population": "1,191,613",
+ "elevation": 70,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "prague",
+ "name": "Prag",
+ "population": "1,165,581",
+ "elevation": 202,
+ "timezone_id": "Europe/Prague"
+ },
+ {
+ "identifier": "copenhagen",
+ "name": "Kopenhagen",
+ "population": "1,153,615",
+ "elevation": 14,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "sofia",
+ "name": "Sofia",
+ "population": "1,152,556",
+ "elevation": 562,
+ "timezone_id": "Europe/Sofia"
+ },
+ {
+ "identifier": "tripoli",
+ "name": "Tripoli",
+ "population": "229,398",
+ "elevation": 51,
+ "timezone_id": "Asia/Beirut"
+ },
+ {
+ "identifier": "port harcourt",
+ "name": "Port Harcourt",
+ "population": "1,148,665",
+ "elevation": 16,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "hiroshima",
+ "name": "Hiroshima",
+ "population": "1,143,841",
+ "elevation": 16,
+ "timezone_id": "Asia/Tokyo"
+ },
+ {
+ "identifier": "monterrey",
+ "name": "Monterrey",
+ "population": "1,135,512",
+ "elevation": 543,
+ "timezone_id": "America/Monterrey"
+ },
+ {
+ "identifier": "samara",
+ "name": "Samara",
+ "population": "1,134,730",
+ "elevation": 117,
+ "timezone_id": "Europe/Samara"
+ },
+ {
+ "identifier": "omsk",
+ "name": "Omsk",
+ "population": "1,129,281",
+ "elevation": 90,
+ "timezone_id": "Asia/Omsk"
+ },
+ {
+ "identifier": "benin city",
+ "name": "Benin City",
+ "population": "1,125,058",
+ "elevation": 88,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "baku",
+ "name": "Baku",
+ "population": "1,116,513",
+ "elevation": -23,
+ "timezone_id": "Asia/Baku"
+ },
+ {
+ "identifier": "maiduguri",
+ "name": "Maiduguri",
+ "population": "1,112,449",
+ "elevation": 325,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "kazan",
+ "name": "Kazan",
+ "population": "1,104,738",
+ "elevation": 61,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "yerevan",
+ "name": "Jerewan",
+ "population": "1,093,485",
+ "elevation": 994,
+ "timezone_id": "Asia/Yerevan"
+ },
+ {
+ "identifier": "ouagadougou",
+ "name": "Ouagadougou",
+ "population": "1,086,505",
+ "elevation": 299,
+ "timezone_id": "Africa/Ouagadougou"
+ },
+ {
+ "identifier": "rostov-na-donu",
+ "name": "Rostow-na-donu",
+ "population": "1,074,482",
+ "elevation": 74,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chelyabinsk",
+ "name": "Chelyabinsk",
+ "population": "1,062,919",
+ "elevation": 219,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "tbilisi",
+ "name": "Tbilisi",
+ "population": "1,049,498",
+ "elevation": 491,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "ufa",
+ "name": "Ufa",
+ "population": "1,033,338",
+ "elevation": 158,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "san jose",
+ "name": "San Jose",
+ "population": "335,007",
+ "elevation": 1161,
+ "timezone_id": "America/Costa_Rica"
+ },
+ {
+ "identifier": "dublin",
+ "name": "Dublin",
+ "population": "1,024,027",
+ "elevation": 17,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "calgary",
+ "name": "Calgary",
+ "population": "1,019,942",
+ "elevation": 1042,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "brussels",
+ "name": "Brüssel",
+ "population": "1,019,022",
+ "elevation": 28,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "volgograd",
+ "name": "Wolgograd",
+ "population": "1,011,417",
+ "elevation": 65,
+ "timezone_id": "Europe/Volgograd"
+ },
+ {
+ "identifier": "odessa",
+ "name": "Odessa",
+ "population": "1,001,558",
+ "elevation": 58,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "guatemala city",
+ "name": "Guatemala-Stadt",
+ "population": "994,938",
+ "elevation": 1508,
+ "timezone_id": "America/Guatemala"
+ },
+ {
+ "identifier": "birmingham",
+ "name": "Birmingham",
+ "population": "984,333",
+ "elevation": 149,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "perm",
+ "name": "Perm",
+ "population": "982,419",
+ "elevation": 149,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "zaria",
+ "name": "Zaria",
+ "population": "975,153",
+ "elevation": 644,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "port elizabeth",
+ "name": "Port Elizabeth",
+ "population": "967,677",
+ "elevation": 75,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "fes",
+ "name": "Fes",
+ "population": "964,891",
+ "elevation": 406,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "cologne",
+ "name": "Köln",
+ "population": "963,395",
+ "elevation": 58,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "naples",
+ "name": "Neapel",
+ "population": "959,470",
+ "elevation": 14,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "maceio",
+ "name": "Maceio",
+ "population": "954,991",
+ "elevation": 11,
+ "timezone_id": "America/Maceio"
+ },
+ {
+ "identifier": "monrovia",
+ "name": "Monrovia",
+ "population": "939,524",
+ "elevation": 32,
+ "timezone_id": "Africa/Monrovia"
+ },
+ {
+ "identifier": "kingston",
+ "name": "Kingston",
+ "population": "937,700",
+ "elevation": 65,
+ "timezone_id": "America/Jamaica"
+ },
+ {
+ "identifier": "austin",
+ "name": "Austin",
+ "population": "931,830",
+ "elevation": 165,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "krasnoyarsk",
+ "name": "Krasnoyarsk",
+ "population": "927,200",
+ "elevation": 140,
+ "timezone_id": "Asia/Krasnoyarsk"
+ },
+ {
+ "identifier": "sale",
+ "name": "Sale",
+ "population": "903,485",
+ "elevation": 34,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "qom",
+ "name": "Qom",
+ "population": "900,000",
+ "elevation": 935,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bishkek",
+ "name": "Bishkek",
+ "population": "900,000",
+ "elevation": 767,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "abobo",
+ "name": "Abobo",
+ "population": "900,000",
+ "elevation": 105,
+ "timezone_id": "Africa/Abidjan"
+ },
+ {
+ "identifier": "aba",
+ "name": "Aba",
+ "population": "897,560",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "mendoza",
+ "name": "Mendoza",
+ "population": "876,884",
+ "elevation": 746,
+ "timezone_id": "America/Argentina/Mendoza"
+ },
+ {
+ "identifier": "mbuji-mayi",
+ "name": "Mbuji-Mayi",
+ "population": "874,761",
+ "elevation": 621,
+ "timezone_id": "Africa/Lubumbashi"
+ },
+ {
+ "identifier": "pikine",
+ "name": "Pikine",
+ "population": "874,062",
+ "elevation": 17,
+ "timezone_id": "Africa/Dakar"
+ },
+ {
+ "identifier": "turin",
+ "name": "Turin",
+ "population": "870,456",
+ "elevation": 245,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san francisco",
+ "name": "San Francisco",
+ "aliases": ["San Fran"],
+ "population": "864,816",
+ "elevation": 28,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "liverpool",
+ "name": "Liverpool",
+ "population": "864,122",
+ "elevation": 30,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "saratov",
+ "name": "Saratow",
+ "population": "863,725",
+ "elevation": 72,
+ "timezone_id": "Europe/Saratov"
+ },
+ {
+ "identifier": "tegucigalpa",
+ "name": "Tegucigalpa",
+ "population": "850,848",
+ "elevation": 944,
+ "timezone_id": "America/Tegucigalpa"
+ },
+ {
+ "identifier": "voronezh",
+ "name": "Woronesch",
+ "population": "848,752",
+ "elevation": 156,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "ulan bator",
+ "name": "Ulan Bator",
+ "population": "844,818",
+ "elevation": 1284,
+ "timezone_id": "Asia/Ulaanbaatar"
+ },
+ {
+ "identifier": "ahvaz",
+ "name": "Ahvaz",
+ "population": "841,145",
+ "elevation": 23,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "marrakesh",
+ "name": "Marrakesch",
+ "population": "839,296",
+ "elevation": 457,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "denpasar",
+ "name": "Denpasar",
+ "population": "834,881",
+ "elevation": 33,
+ "timezone_id": "Asia/Makassar"
+ },
+ {
+ "identifier": "fort worth",
+ "name": "Fort Worth",
+ "population": "833,319",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "indianapolis",
+ "name": "Indianapolis",
+ "population": "829,718",
+ "elevation": 248,
+ "timezone_id": "America/Indiana/Indianapolis"
+ },
+ {
+ "identifier": "jos",
+ "name": "Jos",
+ "population": "816,824",
+ "elevation": 1186,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "valencia",
+ "name": "Valencia",
+ "population": "814,208",
+ "elevation": 23,
+ "timezone_id": "Europe/Madrid"
+ },
+ {
+ "identifier": "ilorin",
+ "name": "Ilorin",
+ "population": "814,192",
+ "elevation": 320,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "la paz",
+ "name": "La Paz",
+ "population": "215,178",
+ "elevation": 47,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "ottawa",
+ "name": "Ottawa",
+ "population": "812,129",
+ "elevation": 71,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "freetown",
+ "name": "Freetown",
+ "population": "802,639",
+ "elevation": 21,
+ "timezone_id": "Africa/Freetown"
+ },
+ {
+ "identifier": "jerusalem",
+ "name": "Jerusalem",
+ "population": "801,000",
+ "elevation": 786,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "muscat",
+ "name": "Muscat",
+ "population": "797,000",
+ "elevation": 14,
+ "timezone_id": "Asia/Muscat"
+ },
+ {
+ "identifier": "marseille",
+ "name": "Marseille",
+ "population": "794,811",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "pasragad branch",
+ "name": "Pasragad Branch",
+ "population": "787,878",
+ "elevation": 2010,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "boumerdas",
+ "name": "Boumerdas",
+ "population": "786,499",
+ "elevation": 5,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "san miguel de tucuman",
+ "name": "San Miguel de Tucuman",
+ "population": "781,023",
+ "elevation": 452,
+ "timezone_id": "America/Argentina/Tucuman"
+ },
+ {
+ "identifier": "merida",
+ "name": "Merida",
+ "population": "777,615",
+ "elevation": 14,
+ "timezone_id": "America/Merida"
+ },
+ {
+ "identifier": "niamey",
+ "name": "Niamey",
+ "population": "774,235",
+ "elevation": 206,
+ "timezone_id": "Africa/Niamey"
+ },
+ {
+ "identifier": "kahriz",
+ "name": "Kahriz",
+ "population": "766,706",
+ "elevation": 1302,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "krakow",
+ "name": "Krakau",
+ "population": "755,050",
+ "elevation": 219,
+ "timezone_id": "Europe/Warsaw"
+ },
+ {
+ "identifier": "da nang",
+ "name": "Da Nang",
+ "population": "752,493",
+ "elevation": 11,
+ "timezone_id": "Asia/Ho_Chi_Minh"
+ },
+ {
+ "identifier": "pietermaritzburg",
+ "name": "Pietermaritzburg",
+ "population": "750,845",
+ "elevation": 636,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "lome",
+ "name": "Lome",
+ "population": "749,700",
+ "elevation": 64,
+ "timezone_id": "Africa/Lome"
+ },
+ {
+ "identifier": "kigali",
+ "name": "Kigali",
+ "population": "745,261",
+ "elevation": 1542,
+ "timezone_id": "Africa/Kigali"
+ },
+ {
+ "identifier": "riga",
+ "name": "Riga",
+ "population": "742,572",
+ "elevation": 6,
+ "timezone_id": "Europe/Riga"
+ },
+ {
+ "identifier": "amsterdam",
+ "name": "Amsterdam",
+ "population": "741,636",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "oyo",
+ "name": "Oyo",
+ "population": "736,072",
+ "elevation": 298,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "nottingham",
+ "name": "Nottingham",
+ "population": "729,977",
+ "elevation": 46,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "campo grande",
+ "name": "Campo Grande",
+ "population": "729,151",
+ "elevation": 592,
+ "timezone_id": "America/Campo_Grande"
+ },
+ {
+ "identifier": "ashgabat",
+ "name": "Aschgabat",
+ "population": "727,700",
+ "elevation": 219,
+ "timezone_id": "Asia/Ashgabat"
+ },
+ {
+ "identifier": "n'djamena",
+ "name": "N'Djamena",
+ "population": "721,081",
+ "elevation": 299,
+ "timezone_id": "Africa/Ndjamena"
+ },
+ {
+ "identifier": "lviv",
+ "name": "Lviv",
+ "population": "717,803",
+ "elevation": 284,
+ "timezone_id": "Europe/Kiev"
+ },
+ {
+ "identifier": "hermosillo",
+ "name": "Hermosillo",
+ "population": "715,061",
+ "elevation": 212,
+ "timezone_id": "America/Hermosillo"
+ },
+ {
+ "identifier": "edmonton",
+ "name": "Edmonton",
+ "population": "712,391",
+ "elevation": 610,
+ "timezone_id": "America/Edmonton"
+ },
+ {
+ "identifier": "bulawayo",
+ "name": "Bulawayo",
+ "population": "699,385",
+ "elevation": 1348,
+ "timezone_id": "Africa/Harare"
+ },
+ {
+ "identifier": "zagreb",
+ "name": "Zagreb",
+ "population": "698,966",
+ "elevation": 135,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "agadir",
+ "name": "Agadir",
+ "population": "698,310",
+ "elevation": 31,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sarajevo",
+ "name": "Sarajevo",
+ "population": "696,731",
+ "elevation": 509,
+ "timezone_id": "Europe/Sarajevo"
+ },
+ {
+ "identifier": "enugu",
+ "name": "Enugu",
+ "population": "688,862",
+ "elevation": 192,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "tangier",
+ "name": "Tangier",
+ "population": "688,356",
+ "elevation": 20,
+ "timezone_id": "Africa/Casablanca"
+ },
+ {
+ "identifier": "sheffield",
+ "name": "Sheffield",
+ "population": "685,368",
+ "elevation": 75,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "seattle",
+ "name": "Seattle",
+ "population": "684,451",
+ "elevation": 56,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "denver",
+ "name": "Denver",
+ "population": "682,545",
+ "elevation": 1636,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "el paso",
+ "name": "El Paso",
+ "population": "681,124",
+ "elevation": 1137,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "dushanbe",
+ "name": "Dushanbe",
+ "population": "679,400",
+ "elevation": 767,
+ "timezone_id": "Asia/Dushanbe"
+ },
+ {
+ "identifier": "detroit",
+ "name": "Detroit",
+ "population": "677,116",
+ "elevation": 192,
+ "timezone_id": "America/Detroit"
+ },
+ {
+ "identifier": "culiacan",
+ "name": "Culiacan",
+ "population": "675,773",
+ "elevation": 95,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "matola",
+ "name": "Matola",
+ "population": "675,422",
+ "elevation": 42,
+ "timezone_id": "Africa/Maputo"
+ },
+ {
+ "identifier": "boston",
+ "name": "Boston",
+ "population": "667,137",
+ "elevation": 38,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "athens",
+ "name": "Athen",
+ "population": "664,046",
+ "elevation": 126,
+ "timezone_id": "Europe/Athens"
+ },
+ {
+ "identifier": "nouakchott",
+ "name": "Nouakchott",
+ "population": "661,400",
+ "elevation": 10,
+ "timezone_id": "Africa/Nouakchott"
+ },
+ {
+ "identifier": "pointe-noire",
+ "name": "Pointe-Noire",
+ "population": "659,084",
+ "elevation": 12,
+ "timezone_id": "Africa/Brazzaville"
+ },
+ {
+ "identifier": "memphis",
+ "name": "Memphis",
+ "population": "655,770",
+ "elevation": 84,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "frankfurt am main",
+ "name": "Frankfurt am Main",
+ "population": "650,000",
+ "elevation": 113,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "krasnodar",
+ "name": "Krasnodar",
+ "population": "649,851",
+ "elevation": 28,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "palermo",
+ "name": "Palermo",
+ "population": "648,260",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "colombo",
+ "name": "Colombo",
+ "population": "648,034",
+ "elevation": 1,
+ "timezone_id": "Asia/Colombo"
+ },
+ {
+ "identifier": "lilongwe",
+ "name": "Lilongwe",
+ "population": "646,750",
+ "elevation": 1056,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "oran",
+ "name": "Oran",
+ "population": "645,984",
+ "elevation": 118,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "chisinau",
+ "name": "Chisinau",
+ "population": "635,994",
+ "elevation": 55,
+ "timezone_id": "Europe/Chisinau"
+ },
+ {
+ "identifier": "tebessa",
+ "name": "Tebessa",
+ "population": "634,332",
+ "elevation": 867,
+ "timezone_id": "Africa/Algiers"
+ },
+ {
+ "identifier": "portland",
+ "name": "Portland",
+ "population": "632,309",
+ "elevation": 15,
+ "timezone_id": "America/Los_Angeles"
+ },
+ {
+ "identifier": "winnipeg",
+ "name": "Winnipeg",
+ "population": "632,063",
+ "elevation": 245,
+ "timezone_id": "America/Winnipeg"
+ },
+ {
+ "identifier": "oklahoma city",
+ "name": "Oklahoma City",
+ "population": "631,346",
+ "elevation": 395,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "cancun",
+ "name": "Cancun",
+ "population": "628,306",
+ "elevation": 11,
+ "timezone_id": "America/Cancun"
+ },
+ {
+ "identifier": "djibouti",
+ "name": "Dschibuti",
+ "population": "623,891",
+ "elevation": 6,
+ "timezone_id": "Africa/Djibouti"
+ },
+ {
+ "identifier": "baltimore",
+ "name": "Baltimore",
+ "population": "621,849",
+ "elevation": 35,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kermanshah",
+ "name": "Kermanshah",
+ "population": "621,100",
+ "elevation": 1392,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "bristol",
+ "name": "Bristol",
+ "population": "617,280",
+ "elevation": 21,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "benoni",
+ "name": "Benoni",
+ "population": "605,344",
+ "elevation": 1641,
+ "timezone_id": "Africa/Johannesburg"
+ },
+ {
+ "identifier": "abu dhabi",
+ "name": "Abu Dhabi",
+ "population": "603,492",
+ "elevation": 13,
+ "timezone_id": "Asia/Dubai"
+ },
+ {
+ "identifier": "washington",
+ "name": "Washington",
+ "population": "601,723",
+ "elevation": 6,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "milwaukee",
+ "name": "Milwaukee",
+ "population": "600,155",
+ "elevation": 203,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vancouver",
+ "name": "Vancouver",
+ "population": "600,000",
+ "elevation": 70,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "barnaul",
+ "name": "Barnaul",
+ "population": "599,579",
+ "elevation": 189,
+ "timezone_id": "Asia/Barnaul"
+ },
+ {
+ "identifier": "rotterdam",
+ "name": "Rotterdam",
+ "population": "598,199",
+ "elevation": 9,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "rasht",
+ "name": "Rascht",
+ "population": "594,590",
+ "elevation": 4,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "abeokuta",
+ "name": "Abeokuta",
+ "population": "593,100",
+ "elevation": 64,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "essen",
+ "name": "Essen",
+ "population": "593,085",
+ "elevation": 83,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "glasgow",
+ "name": "Glasgow",
+ "population": "591,620",
+ "elevation": 40,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "gold coast",
+ "name": "Gold Coast",
+ "population": "591,473",
+ "elevation": 12,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "abuja",
+ "name": "Abuja",
+ "population": "590,400",
+ "elevation": 476,
+ "timezone_id": "Africa/Lagos"
+ },
+ {
+ "identifier": "stuttgart",
+ "name": "Stuttgart",
+ "population": "589,793",
+ "elevation": 252,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dortmund",
+ "name": "Dortmund",
+ "population": "588,462",
+ "elevation": 96,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vladivostok",
+ "name": "Wladiwostok",
+ "population": "587,022",
+ "elevation": 40,
+ "timezone_id": "Asia/Vladivostok"
+ },
+ {
+ "identifier": "irkutsk",
+ "name": "Irkutsk",
+ "population": "586,695",
+ "elevation": 428,
+ "timezone_id": "Asia/Irkutsk"
+ },
+ {
+ "identifier": "blantyre",
+ "name": "Blantyre",
+ "population": "584,877",
+ "elevation": 1041,
+ "timezone_id": "Africa/Blantyre"
+ },
+ {
+ "identifier": "genoa",
+ "name": "Genua",
+ "population": "580,223",
+ "elevation": 17,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "oslo",
+ "name": "Oslo",
+ "population": "580,000",
+ "elevation": 26,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "libreville",
+ "name": "Libreville",
+ "population": "578,156",
+ "elevation": 8,
+ "timezone_id": "Africa/Libreville"
+ },
+ {
+ "identifier": "kerman",
+ "name": "Kerman",
+ "population": "577,514",
+ "elevation": 1760,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "duesseldorf",
+ "name": "Düsseldorf",
+ "population": "573,057",
+ "elevation": 45,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "kuching",
+ "name": "Kuching",
+ "population": "570,407",
+ "elevation": 8,
+ "timezone_id": "Asia/Kuching"
+ },
+ {
+ "identifier": "albuquerque",
+ "name": "Albuquerque",
+ "population": "559,121",
+ "elevation": 1513,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "helsinki",
+ "name": "Helsinki",
+ "population": "558,457",
+ "elevation": 26,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "aden",
+ "name": "Aden",
+ "population": "550,602",
+ "elevation": 16,
+ "timezone_id": "Asia/Aden"
+ },
+ {
+ "identifier": "orenburg",
+ "name": "Orenburg",
+ "population": "550,204",
+ "elevation": 107,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "pristina",
+ "name": "Pristina",
+ "population": "550,000",
+ "elevation": 597,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bremen",
+ "name": "Bremen",
+ "population": "546,501",
+ "elevation": 3,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "vilnius",
+ "name": "Vilnius",
+ "population": "542,366",
+ "elevation": 98,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "nashville",
+ "name": "Nashville",
+ "population": "530,852",
+ "elevation": 171,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "quebec",
+ "name": "Quebec",
+ "population": "528,595",
+ "elevation": 54,
+ "timezone_id": "America/Toronto"
+ },
+ {
+ "identifier": "san salvador",
+ "name": "San Salvador",
+ "population": "525,990",
+ "elevation": 653,
+ "timezone_id": "America/El_Salvador"
+ },
+ {
+ "identifier": "macau",
+ "name": "Macau",
+ "population": "520,400",
+ "elevation": 22,
+ "timezone_id": "Asia/Macau"
+ },
+ {
+ "identifier": "tyumen",
+ "name": "Tyumen",
+ "population": "519,119",
+ "elevation": 81,
+ "timezone_id": "Asia/Yekaterinburg"
+ },
+ {
+ "identifier": "lisbon",
+ "name": "Lissabon",
+ "population": "517,802",
+ "elevation": 45,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "hannover",
+ "name": "Hannover",
+ "population": "515,140",
+ "elevation": 57,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "salta",
+ "name": "Salta",
+ "population": "512,686",
+ "elevation": 1183,
+ "timezone_id": "America/Argentina/Salta"
+ },
+ {
+ "identifier": "leicester",
+ "name": "Leicester",
+ "population": "508,916",
+ "elevation": 65,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "leipzig",
+ "name": "Leipzig",
+ "population": "504,971",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "duisburg",
+ "name": "Duisburg",
+ "population": "504,358",
+ "elevation": 38,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "astrakhan",
+ "name": "Astrakhan",
+ "population": "502,533",
+ "elevation": -12,
+ "timezone_id": "Europe/Astrakhan"
+ },
+ {
+ "identifier": "nuernberg",
+ "name": "Nürnberg",
+ "population": "499,237",
+ "elevation": 300,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "dresden",
+ "name": "Dresden",
+ "population": "486,854",
+ "elevation": 116,
+ "timezone_id": "Europe/Berlin"
+ },
+ {
+ "identifier": "tomsk",
+ "name": "Tomsk",
+ "population": "485,519",
+ "elevation": 117,
+ "timezone_id": "Asia/Tomsk"
+ },
+ {
+ "identifier": "yazd",
+ "name": "Yazd",
+ "population": "477,905",
+ "elevation": 1216,
+ "timezone_id": "Asia/Tehran"
+ },
+ {
+ "identifier": "kansas city",
+ "name": "Kansas City",
+ "population": "151,306",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "skopje",
+ "name": "Skopje",
+ "population": "474,889",
+ "elevation": 247,
+ "timezone_id": "Europe/Skopje"
+ },
+ {
+ "identifier": "the hague",
+ "name": "Den Haag",
+ "population": "474,292",
+ "elevation": 4,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "lyon",
+ "name": "Lyon",
+ "population": "472,317",
+ "elevation": 173,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "edinburgh",
+ "name": "Edinburgh",
+ "population": "464,990",
+ "elevation": 66,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "antwerpen",
+ "name": "Antwerpen",
+ "population": "459,805",
+ "elevation": 2,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "pontianak",
+ "name": "Pontianak",
+ "population": "455,173",
+ "elevation": 2,
+ "timezone_id": "Asia/Pontianak"
+ },
+ {
+ "identifier": "leeds",
+ "name": "Leeds",
+ "population": "455,123",
+ "elevation": 50,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "cardiff",
+ "name": "Cardiff",
+ "population": "447,287",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "san juan",
+ "name": "San Juan",
+ "population": "418,140",
+ "elevation": 11,
+ "timezone_id": "America/Puerto_Rico"
+ },
+ {
+ "identifier": "omaha",
+ "name": "Omaha",
+ "population": "443,885",
+ "elevation": 315,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "carrefour",
+ "name": "Carrefour",
+ "population": "442,156",
+ "elevation": 32,
+ "timezone_id": "America/Port-au-Prince"
+ },
+ {
+ "identifier": "miami",
+ "name": "Miami",
+ "population": "441,003",
+ "elevation": 25,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "kaliningrad",
+ "name": "Kaliningrad",
+ "population": "434,954",
+ "elevation": 2,
+ "timezone_id": "Europe/Kaliningrad"
+ },
+ {
+ "identifier": "toulouse",
+ "name": "Toulouse",
+ "population": "433,055",
+ "elevation": 150,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tel aviv",
+ "name": "Tel Aviv",
+ "population": "432,892",
+ "elevation": 15,
+ "timezone_id": "Asia/Jerusalem"
+ },
+ {
+ "identifier": "east jerusalem",
+ "name": "Ostjerusalem",
+ "population": "428,304",
+ "elevation": 759,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "bratislava",
+ "name": "Bratislava",
+ "population": "423,737",
+ "elevation": 157,
+ "timezone_id": "Europe/Bratislava"
+ },
+ {
+ "identifier": "auckland",
+ "name": "Auckland",
+ "population": "417,910",
+ "elevation": 43,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "sevastopol",
+ "name": "Sewastopol",
+ "population": "416,263",
+ "elevation": 1,
+ "timezone_id": "Europe/Zaporozhye"
+ },
+ {
+ "identifier": "minneapolis",
+ "name": "Minneapolis",
+ "population": "410,939",
+ "elevation": 262,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "gaza",
+ "name": "Gaza",
+ "population": "410,000",
+ "elevation": 38,
+ "timezone_id": "Asia/Gaza"
+ },
+ {
+ "identifier": "kursk",
+ "name": "Kursk",
+ "population": "409,431",
+ "elevation": 219,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "panama",
+ "name": "Panama",
+ "population": "408,168",
+ "elevation": 17,
+ "timezone_id": "America/Panama"
+ },
+ {
+ "identifier": "tulsa",
+ "name": "Tulsa",
+ "population": "403,505",
+ "elevation": 226,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "tver",
+ "name": "Tver",
+ "population": "400,212",
+ "elevation": 132,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "manchester",
+ "name": "Manchester",
+ "population": "395,515",
+ "elevation": 51,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "tallinn",
+ "name": "Tallinn",
+ "population": "394,024",
+ "elevation": 12,
+ "timezone_id": "Europe/Tallinn"
+ },
+ {
+ "identifier": "kandahar",
+ "name": "Kandahar",
+ "population": "391,190",
+ "elevation": 1007,
+ "timezone_id": "Asia/Kabul"
+ },
+ {
+ "identifier": "wichita",
+ "name": "Wichita",
+ "population": "389,965",
+ "elevation": 402,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "new orleans",
+ "name": "New Orleans",
+ "population": "389,617",
+ "elevation": 18,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "wellington",
+ "name": "Wellington",
+ "population": "381,900",
+ "elevation": 31,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "las palmas de gran canaria",
+ "name": "Las Palmas de Gran Canaria",
+ "population": "381,847",
+ "elevation": 23,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "mazatlan",
+ "name": "Mazatlan",
+ "population": "381,583",
+ "elevation": 10,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "tirana",
+ "name": "Tirana",
+ "population": "374,801",
+ "elevation": 113,
+ "timezone_id": "Europe/Tirane"
+ },
+ {
+ "identifier": "kaunas",
+ "name": "Kaunas",
+ "population": "374,643",
+ "elevation": 74,
+ "timezone_id": "Europe/Vilnius"
+ },
+ {
+ "identifier": "honolulu",
+ "name": "Honolulu",
+ "population": "371,657",
+ "elevation": 18,
+ "timezone_id": "Pacific/Honolulu"
+ },
+ {
+ "identifier": "canberra",
+ "name": "Canberra",
+ "population": "367,752",
+ "elevation": 571,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "bologna",
+ "name": "Bologna",
+ "population": "366,133",
+ "elevation": 71,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "christchurch",
+ "name": "Christchurch",
+ "population": "363,926",
+ "elevation": 14,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "halifax",
+ "name": "Halifax",
+ "population": "359,111",
+ "elevation": 6,
+ "timezone_id": "America/Halifax"
+ },
+ {
+ "identifier": "ambon",
+ "name": "Ambon",
+ "population": "355,596",
+ "elevation": 12,
+ "timezone_id": "Asia/Jayapura"
+ },
+ {
+ "identifier": "florence",
+ "name": "Florenz",
+ "population": "349,296",
+ "elevation": 51,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "doha",
+ "name": "Doha",
+ "population": "344,939",
+ "elevation": 11,
+ "timezone_id": "Asia/Qatar"
+ },
+ {
+ "identifier": "zurich",
+ "name": "Zürich",
+ "population": "341,730",
+ "elevation": 429,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "nice",
+ "name": "Nizza",
+ "population": "338,620",
+ "elevation": 18,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "simferopol",
+ "name": "Simferopol",
+ "population": "336,460",
+ "elevation": 247,
+ "timezone_id": "Europe/Simferopol"
+ },
+ {
+ "identifier": "tepic",
+ "name": "Tepic",
+ "population": "332,863",
+ "elevation": 932,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "sochi",
+ "name": "Sotschi",
+ "population": "327,608",
+ "elevation": 14,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "smolensk",
+ "name": "Smolensk",
+ "population": "320,991",
+ "elevation": 250,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "samarkand",
+ "name": "Samarkand",
+ "population": "319,366",
+ "elevation": 719,
+ "timezone_id": "Asia/Samarkand"
+ },
+ {
+ "identifier": "murmansk",
+ "name": "Murmansk",
+ "population": "319,263",
+ "elevation": 96,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "vladikavkaz",
+ "name": "Wladikawkas",
+ "population": "317,370",
+ "elevation": 671,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chita",
+ "name": "Chita",
+ "population": "308,500",
+ "elevation": 668,
+ "timezone_id": "Asia/Chita"
+ },
+ {
+ "identifier": "newcastle",
+ "name": "Newcastle",
+ "population": "308,308",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "porto velho",
+ "name": "Porto Velho",
+ "population": "306,180",
+ "elevation": 90,
+ "timezone_id": "America/Porto_Velho"
+ },
+ {
+ "identifier": "san salvador de jujuy",
+ "name": "San Salvador de Jujuy",
+ "population": "305,891",
+ "elevation": 1260,
+ "timezone_id": "America/Argentina/Jujuy"
+ },
+ {
+ "identifier": "pittsburgh",
+ "name": "Pittsburgh",
+ "population": "304,391",
+ "elevation": 239,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "brest",
+ "name": "Brest",
+ "population": "144,899",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "anchorage",
+ "name": "Anchorage",
+ "population": "298,695",
+ "elevation": 16,
+ "timezone_id": "America/Anchorage"
+ },
+ {
+ "identifier": "cincinnati",
+ "name": "Cincinnati",
+ "population": "296,943",
+ "elevation": 267,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "wollongong",
+ "name": "Wollongong",
+ "population": "292,190",
+ "elevation": 1,
+ "timezone_id": "Australia/Sydney"
+ },
+ {
+ "identifier": "catania",
+ "name": "Catania",
+ "population": "290,927",
+ "elevation": 40,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "utrecht",
+ "name": "Utrecht",
+ "population": "290,529",
+ "elevation": 13,
+ "timezone_id": "Europe/Amsterdam"
+ },
+ {
+ "identifier": "victoria",
+ "name": "Victoria",
+ "population": "289,625",
+ "elevation": 41,
+ "timezone_id": "America/Vancouver"
+ },
+ {
+ "identifier": "port moresby",
+ "name": "Port Moresby",
+ "population": "283,733",
+ "elevation": 1,
+ "timezone_id": "Pacific/Port_Moresby"
+ },
+ {
+ "identifier": "logan city",
+ "name": "Logan City",
+ "population": "282,673",
+ "elevation": 39,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "bari",
+ "name": "Bari",
+ "population": "277,387",
+ "elevation": -9999,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "nantes",
+ "name": "Nantes",
+ "population": "277,269",
+ "elevation": 19,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "strasbourg",
+ "name": "Straßburg",
+ "population": "274,845",
+ "elevation": 147,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "belfast",
+ "name": "Belfast",
+ "population": "274,770",
+ "elevation": 7,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "ljubljana",
+ "name": "Ljubljana",
+ "population": "272,220",
+ "elevation": 295,
+ "timezone_id": "Europe/Ljubljana"
+ },
+ {
+ "identifier": "orlando",
+ "name": "Orlando",
+ "population": "270,934",
+ "elevation": 54,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "petrozavodsk",
+ "name": "Petrosawodsk",
+ "population": "265,025",
+ "elevation": 73,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "plymouth",
+ "name": "Plymouth",
+ "population": "260,203",
+ "elevation": 14,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "rio branco",
+ "name": "Rio Branco",
+ "population": "257,642",
+ "elevation": 153,
+ "timezone_id": "America/Rio_Branco"
+ },
+ {
+ "identifier": "los mochis",
+ "name": "Los Mochis",
+ "population": "256,613",
+ "elevation": 14,
+ "timezone_id": "America/Mazatlan"
+ },
+ {
+ "identifier": "porto",
+ "name": "Porto",
+ "population": "249,633",
+ "elevation": 97,
+ "timezone_id": "Europe/Lisbon"
+ },
+ {
+ "identifier": "madison",
+ "name": "Madison",
+ "population": "248,951",
+ "elevation": 272,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "montpellier",
+ "name": "Montpellier",
+ "population": "248,252",
+ "elevation": 56,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "arhus",
+ "name": "Aarhus",
+ "population": "237,551",
+ "elevation": 10,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "yakutsk",
+ "name": "Jakutsk",
+ "population": "235,600",
+ "elevation": 126,
+ "timezone_id": "Asia/Yakutsk"
+ },
+ {
+ "identifier": "georgetown",
+ "name": "Georgetown",
+ "population": "235,017",
+ "elevation": 3,
+ "timezone_id": "America/Guyana"
+ },
+ {
+ "identifier": "bordeaux",
+ "name": "Bordeaux",
+ "population": "231,844",
+ "elevation": 20,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "gent",
+ "name": "Gent",
+ "population": "231,493",
+ "elevation": 10,
+ "timezone_id": "Europe/Brussels"
+ },
+ {
+ "identifier": "baton rouge",
+ "name": "Baton Rouge",
+ "population": "228,590",
+ "elevation": 10,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "lille",
+ "name": "Lille",
+ "population": "228,328",
+ "elevation": 27,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "nassau",
+ "name": "Nassau",
+ "population": "227,940",
+ "elevation": 5,
+ "timezone_id": "America/Nassau"
+ },
+ {
+ "identifier": "geelong",
+ "name": "Geelong",
+ "population": "226,034",
+ "elevation": -9999,
+ "timezone_id": "Australia/Melbourne"
+ },
+ {
+ "identifier": "paramaribo",
+ "name": "Paramaribo",
+ "population": "223,757",
+ "elevation": 5,
+ "timezone_id": "America/Paramaribo"
+ },
+ {
+ "identifier": "santa cruz de tenerife",
+ "name": "Santa Cruz de Tenerife",
+ "population": "222,417",
+ "elevation": 55,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "graz",
+ "name": "Graz",
+ "population": "222,326",
+ "elevation": 363,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "messina",
+ "name": "Messina",
+ "population": "219,948",
+ "elevation": 29,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "verona",
+ "name": "Verona",
+ "population": "219,103",
+ "elevation": 62,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "hobart",
+ "name": "Hobart",
+ "population": "216,656",
+ "elevation": 1,
+ "timezone_id": "Australia/Hobart"
+ },
+ {
+ "identifier": "novi sad",
+ "name": "Novi Sad",
+ "population": "215,400",
+ "elevation": 79,
+ "timezone_id": "Europe/Belgrade"
+ },
+ {
+ "identifier": "bergen",
+ "name": "Bergen",
+ "population": "213,585",
+ "elevation": 20,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "des moines",
+ "name": "Des Moines",
+ "population": "210,330",
+ "elevation": 264,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "kostanay",
+ "name": "Kostanay",
+ "population": "210,000",
+ "elevation": 167,
+ "timezone_id": "Asia/Qostanay"
+ },
+ {
+ "identifier": "linz",
+ "name": "Linz",
+ "population": "204,846",
+ "elevation": 268,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "padova",
+ "name": "Padua",
+ "population": "203,725",
+ "elevation": 18,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "pskov",
+ "name": "Pskov",
+ "population": "201,990",
+ "elevation": 51,
+ "timezone_id": "Europe/Moscow"
+ },
+ {
+ "identifier": "chiang mai",
+ "name": "Chiang Mai",
+ "population": "200,952",
+ "elevation": 313,
+ "timezone_id": "Asia/Bangkok"
+ },
+ {
+ "identifier": "nicosia",
+ "name": "Nicosia",
+ "population": "200,452",
+ "elevation": 147,
+ "timezone_id": "Asia/Nicosia"
+ },
+ {
+ "identifier": "oral",
+ "name": "Oral",
+ "population": "200,000",
+ "elevation": 35,
+ "timezone_id": "Asia/Oral"
+ },
+ {
+ "identifier": "osh",
+ "name": "Osh",
+ "population": "200,000",
+ "elevation": 988,
+ "timezone_id": "Asia/Bishkek"
+ },
+ {
+ "identifier": "saskatoon",
+ "name": "Saskatoon",
+ "population": "198,958",
+ "elevation": 484,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "little rock",
+ "name": "Little Rock",
+ "population": "197,992",
+ "elevation": 105,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "vientiane",
+ "name": "Vientiane",
+ "population": "196,731",
+ "elevation": 174,
+ "timezone_id": "Asia/Vientiane"
+ },
+ {
+ "identifier": "aberdeen",
+ "name": "Aberdeen",
+ "population": "196,670",
+ "elevation": 13,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "palmas",
+ "name": "Palmas",
+ "population": "196,272",
+ "elevation": 271,
+ "timezone_id": "America/Araguaina"
+ },
+ {
+ "identifier": "townsville",
+ "name": "Townsville",
+ "population": "196,219",
+ "elevation": 15,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "salt lake city",
+ "name": "Salt Lake City",
+ "population": "192,672",
+ "elevation": 1311,
+ "timezone_id": "America/Denver"
+ },
+ {
+ "identifier": "cork",
+ "name": "Cork",
+ "population": "190,384",
+ "elevation": 10,
+ "timezone_id": "Europe/Dublin"
+ },
+ {
+ "identifier": "tallahassee",
+ "name": "Tallahassee",
+ "population": "189,907",
+ "elevation": 71,
+ "timezone_id": "America/New_York"
+ },
+ {
+ "identifier": "santarem",
+ "name": "Santarem",
+ "population": "189,047",
+ "elevation": 51,
+ "timezone_id": "America/Santarem"
+ },
+ {
+ "identifier": "san fernando del valle de catamarca",
+ "name": "San Fernando del Valle de Catamarca",
+ "population": "188,812",
+ "elevation": 545,
+ "timezone_id": "America/Argentina/Catamarca"
+ },
+ {
+ "identifier": "trieste",
+ "name": "Triest",
+ "population": "187,056",
+ "elevation": 19,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "san luis",
+ "name": "San Luis",
+ "population": "183,982",
+ "elevation": 729,
+ "timezone_id": "America/Argentina/San_Luis"
+ },
+ {
+ "identifier": "geneva",
+ "name": "Genf",
+ "population": "183,981",
+ "elevation": 400,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "atyrau",
+ "name": "Atyrau",
+ "population": "180,000",
+ "elevation": -25,
+ "timezone_id": "Asia/Atyrau"
+ },
+ {
+ "identifier": "kutaisi",
+ "name": "Kutaisi",
+ "population": "178,338",
+ "elevation": 153,
+ "timezone_id": "Asia/Tbilisi"
+ },
+ {
+ "identifier": "yuzhno-sakhalinsk",
+ "name": "Juschno-Sachalinsk",
+ "population": "176,484",
+ "elevation": 48,
+ "timezone_id": "Asia/Sakhalin"
+ },
+ {
+ "identifier": "split",
+ "name": "Split",
+ "population": "176,314",
+ "elevation": 12,
+ "timezone_id": "Europe/Zagreb"
+ },
+ {
+ "identifier": "regina",
+ "name": "Regina",
+ "population": "176,183",
+ "elevation": 577,
+ "timezone_id": "America/Regina"
+ },
+ {
+ "identifier": "turku",
+ "name": "Turku",
+ "population": "175,945",
+ "elevation": 22,
+ "timezone_id": "Europe/Helsinki"
+ },
+ {
+ "identifier": "oxford",
+ "name": "Oxford",
+ "population": "171,380",
+ "elevation": 72,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "jackson",
+ "name": "Jackson",
+ "population": "170,674",
+ "elevation": 100,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "springfield",
+ "name": "Springfield",
+ "population": "166,810",
+ "elevation": 399,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "basel",
+ "name": "Basel",
+ "population": "164,488",
+ "elevation": 279,
+ "timezone_id": "Europe/Zurich"
+ },
+ {
+ "identifier": "la rioja",
+ "name": "La Rioja",
+ "population": "162,620",
+ "elevation": 502,
+ "timezone_id": "America/Argentina/La_Rioja"
+ },
+ {
+ "identifier": "hebron",
+ "name": "Hebron",
+ "population": "160,470",
+ "elevation": 903,
+ "timezone_id": "Asia/Hebron"
+ },
+ {
+ "identifier": "modena",
+ "name": "Modena",
+ "population": "158,886",
+ "elevation": 46,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "cambridge",
+ "name": "Cambridge",
+ "population": "158,434",
+ "elevation": 12,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "frisco",
+ "name": "Frisco",
+ "population": "154,407",
+ "elevation": 216,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "pasadena",
+ "name": "Pasadena",
+ "population": "153,784",
+ "elevation": 12,
+ "timezone_id": "America/Chicago"
+ },
+ {
+ "identifier": "york",
+ "name": "York",
+ "population": "153,717",
+ "elevation": 17,
+ "timezone_id": "Europe/London"
+ },
+ {
+ "identifier": "salzburg",
+ "name": "Salzburg",
+ "population": "153,377",
+ "elevation": 435,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "cairns",
+ "name": "Cairns",
+ "population": "153,075",
+ "elevation": 1,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "hamilton",
+ "name": "Hamilton",
+ "population": "152,641",
+ "elevation": 39,
+ "timezone_id": "Pacific/Auckland"
+ },
+ {
+ "identifier": "la laguna",
+ "name": "La Laguna",
+ "population": "150,661",
+ "elevation": 558,
+ "timezone_id": "Atlantic/Canary"
+ },
+ {
+ "identifier": "dili",
+ "name": "Dili",
+ "population": "150,000",
+ "elevation": 3,
+ "timezone_id": "Asia/Dili"
+ },
+ {
+ "identifier": "dijon",
+ "name": "Dijon",
+ "population": "149,782",
+ "elevation": 242,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "uppsala",
+ "name": "Uppsala",
+ "population": "149,245",
+ "elevation": 20,
+ "timezone_id": "Europe/Stockholm"
+ },
+ {
+ "identifier": "trondheim",
+ "name": "Trondheim",
+ "population": "147,139",
+ "elevation": 18,
+ "timezone_id": "Europe/Oslo"
+ },
+ {
+ "identifier": "manama",
+ "name": "Manama",
+ "population": "147,074",
+ "elevation": 12,
+ "timezone_id": "Asia/Bahrain"
+ },
+ {
+ "identifier": "parma",
+ "name": "Parma",
+ "population": "146,299",
+ "elevation": 64,
+ "timezone_id": "Europe/Rome"
+ },
+ {
+ "identifier": "boise",
+ "name": "Boise",
+ "population": "145,987",
+ "elevation": 834,
+ "timezone_id": "America/Boise"
+ },
+ {
+ "identifier": "odense",
+ "name": "Odense",
+ "population": "145,931",
+ "elevation": 17,
+ "timezone_id": "Europe/Copenhagen"
+ },
+ {
+ "identifier": "amiens",
+ "name": "Amiens",
+ "population": "143,086",
+ "elevation": 28,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "tours",
+ "name": "Touren",
+ "population": "141,621",
+ "elevation": 49,
+ "timezone_id": "Europe/Paris"
+ },
+ {
+ "identifier": "podgorica",
+ "name": "Podgorica",
+ "population": "136,473",
+ "elevation": 49,
+ "timezone_id": "Europe/Podgorica"
+ },
+ {
+ "identifier": "innsbruck",
+ "name": "Innsbruck",
+ "population": "132,493",
+ "elevation": 587,
+ "timezone_id": "Europe/Vienna"
+ },
+ {
+ "identifier": "toowoomba",
+ "name": "Toowoomba",
+ "population": "131,258",
+ "elevation": 599,
+ "timezone_id": "Australia/Brisbane"
+ },
+ {
+ "identifier": "darwin",
+ "name": "Darwin",
+ "population": "129,062",
+ "elevation": 31,
+ "timezone_id": "Australia/Darwin"
+ },
+ {
+ "identifier": "bern",
+ "name": "Bern",
+ "population": "121631",
+ "elevation": 549,
+ "timezone_id": "Europe/Zurich"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..17cd6316d
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/FunctionDescriptions.json
@@ -0,0 +1,216 @@
+{
+ "percentage": [
+ {
+ "identifier": "percentOf",
+ "prototypeExpressions": [
+ "10% von 100"
+ ]
+ },
+ {
+ "identifier": "percentOff",
+ "prototypeExpressions": [
+ "10% off 100"
+ ]
+ },
+ {
+ "identifier": "percentOn",
+ "prototypeExpressions": [
+ "10% on 100"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhat",
+ "prototypeExpressions": [
+ "30 ist 20% von was"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhatClassic",
+ "prototypeExpressions": [
+ "20% von was ist 30"
+ ]
+ },
+ {
+ "identifier": "isPercentOffWhat",
+ "prototypeExpressions": [
+ "30 ist 20% off was"
+ ]
+ },
+ {
+ "identifier": "isPercentOffWhatClassic",
+ "prototypeExpressions": [
+ "20% off what is 30"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhat",
+ "prototypeExpressions": [
+ "30 ist 20% on was"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhatClassic",
+ "prototypeExpressions": [
+ "20% on what is 30"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOf",
+ "prototypeExpressions": [
+ "10 ist wieviel % von 20",
+ "10 als % von 20"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOff",
+ "prototypeExpressions": [
+ "10 ist wieviel % off 20"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOn",
+ "prototypeExpressions": [
+ "20 ist wieviel % on 10",
+ "20 sind welche % auf 10",
+ "20 als % auf 10"
+ ]
+ }
+ ],
+ "general": [
+ {
+ "identifier": "remainder",
+ "prototypeExpressions": [
+ "rest von 20 durch 3",
+ "rest von 20 geteilt durch 3"
+ ]
+ },
+ {
+ "identifier": "halfOf",
+ "prototypeExpressions": [
+ "hälfte von 20"
+ ]
+ },
+ {
+ "identifier": "lesserOf",
+ "prototypeExpressions": [
+ "kleinere wert von 2 und 30",
+ "kleinere zahl von 2 und 30"
+ ]
+ },
+ {
+ "identifier": "greaterOf",
+ "prototypeExpressions": [
+ "größere wert von 2 und 30",
+ "größere zahl von 2 und 30",
+ "zahl von 2 und 30 ist größer",
+ "welche der zahlen von 2 und 30 ist größer"
+ ]
+ },
+ {
+ "identifier": "midpoint",
+ "prototypeExpressions": [
+ "mitte zwischen 2 und 32"
+ ]
+ },
+ {
+ "identifier": "proportionsFindNumerator",
+ "prototypeExpressions": [
+ "6 ist zu 600 wie was zu 8",
+ "6 verhält sich zu 600 wie was zu 8"
+ ]
+ },
+ {
+ "identifier": "proportionsFindDenominator",
+ "prototypeExpressions": [
+ "6 ist zu 600 wie 8 zu was",
+ "6 verhält sich zu 600 wie 8 zu was"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "zufallszahl zwischen 1 und 5",
+ "zufällig zwischen 1 und 5"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "identifier": "unitInUnitExpression",
+ "prototypeExpressions": [
+ "__unit in __unit_expression"
+ ]
+ }
+ ],
+ "datetime": [
+ {
+ "identifier": "calendarUnitBetweenDates",
+ "prototypeExpressions": [
+ "__unit zwischen __datestamp und __datestamp",
+ "__unit zwischen dem __datestamp und dem __datestamp",
+ "__unit von __datestamp bis __datestamp",
+ "__unit vom __datestamp bis zum __datestamp",
+ "__unit in __datestamp als __datestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit bis __datestamp",
+ "__unit vor __datestamp",
+ "__unit vor dem __datestamp",
+ "__unit bis zum __datestamp"
+ ]
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "__datestamp bis __datestamp",
+ "__datestamp bis zum __datestamp"
+ ]
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp bis __timestamp",
+ "__timestamp bis zum __timestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__unit seit __datestamp",
+ "__unit seit dem __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "neuer zeitstempel"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan von __datestamp",
+ "__timespan nach __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone zeit",
+ "zeit in __timezone"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "prototypeExpressions": [
+ "zeitdifferenz zwischen __timezone und __timezone",
+ "differenz zwischen __timezone und __timezone",
+ "zeitdifferenz zwischen __timezone & __timezone",
+ "differenz zwischen __timezone & __timezone"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/Localizable.strings
new file mode 100644
index 000000000..64b9262d2
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..74fe990ee
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..7cb8c512f
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/LocalizedFixtures.json
@@ -0,0 +1,148 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "Nk",
+ "Nk-Stelle",
+ "Stellen",
+ "Nk-Stellen"
+ ],
+ "multiplierTypes": [
+ "multiplier",
+ "Multiplikator"
+ ],
+ "divisionOperators": [
+ "÷",
+ "pro"
+ ],
+ "roundingConverters": [
+ "gerundet"
+ ],
+ "tomorrowDateAliases": [
+ "morgen"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "laptime",
+ "Rundenzeit"
+ ],
+ "numberTypes": [
+ "Zahl",
+ "Nummer"
+ ],
+ "roundingDownConverters": [
+ "abgerundet"
+ ],
+ "yesterdayDateAliases": [
+ "gestern"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "todayDateAliases": [
+ "heute"
+ ],
+ "timestampTypes": [
+ "Zeitstempel"
+ ],
+ "roundingUpConverters": [
+ "aufgerundet"
+ ],
+ "dateTypes": [
+ "Datum"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "monthOfYearDateAliases": [
+ "Jan",
+ "Jän",
+ "Feb",
+ "Mrz",
+ "Apr",
+ "Mai",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Okt",
+ "Nov",
+ "Dez",
+ "Januar",
+ "Jänner",
+ "Februar",
+ "März",
+ "April",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Dezember"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "additionOperators": [
+ ],
+ "timespanTypes": [
+ "Zeitdauer",
+ "Zeitspanne"
+ ],
+ "nowDateAliases": [
+ "jetzt"
+ ],
+ "converterSymbols": [
+ "bis",
+ "als",
+ "nach",
+ "mit"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "fractionTypes": [
+ "Bruch"
+ ],
+ "dayOfWeekDateAliases": [
+ "Montag",
+ "Mon",
+ "Mo",
+ "Dienstag",
+ "Die",
+ "Di",
+ "Mittwoch",
+ "Mit",
+ "Mi",
+ "Donnerstag",
+ "Don",
+ "Do",
+ "Freitag",
+ "Fre",
+ "Fr",
+ "Samstag",
+ "Sam",
+ "Sa",
+ "Sonntag",
+ "Son",
+ "So"
+ ],
+ "percentTypes": [
+ "Prozent",
+ "Prozentrechnung"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..2d9c2a8bc
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/UnitDescriptions.json
@@ -0,0 +1,1563 @@
+{
+ "speed": [
+ {
+ "aliases": [
+ "Meter pro Sekunde"
+ ],
+ "symbol": "m/s",
+ "identifier": "metersPerSecond"
+ },
+ {
+ "aliases": [
+ "kilometer per hour",
+ "kilometers per hour",
+ "kilometre per hour",
+ "kilometres per hour",
+ "kph"
+ ],
+ "symbol": "km/h",
+ "identifier": "kilometersPerHour"
+ },
+ {
+ "aliases": [
+ "mile per hour",
+ "miles per hour"
+ ],
+ "symbol": "mph",
+ "identifier": "milesPerHour"
+ },
+ {
+ "aliases": [
+ "knot",
+ "knots"
+ ],
+ "symbol": "kn",
+ "identifier": "knots"
+ }
+ ],
+ "volume": [
+ {
+ "aliases": [
+ "Megaliter",
+ "Megalitern",
+ "ML"
+ ],
+ "symbol": "ML",
+ "identifier": "megaliters"
+ },
+ {
+ "aliases": [
+ "Kiloliter",
+ "Kilolitern",
+ "kL"
+ ],
+ "symbol": "kL",
+ "identifier": "kiloliters"
+ },
+ {
+ "aliases": [
+ "Liter",
+ "Litern",
+ "L"
+ ],
+ "symbol": "l",
+ "identifier": "liters"
+ },
+ {
+ "aliases": [
+ "Milliliter",
+ "Millilitern",
+ "mL"
+ ],
+ "symbol": "ml",
+ "identifier": "milliliters"
+ },
+ {
+ "aliases": [
+ "Kubikkilometer",
+ "Kubikkilometern",
+ "Kilometer^3",
+ "Kilometer³",
+ "km3",
+ "km^3"
+ ],
+ "symbol": "km³",
+ "identifier": "cubicKilometers"
+ },
+ {
+ "aliases": [
+ "Kubikmeter",
+ "Kubikmetern",
+ "m3",
+ "m^3",
+ "Meter³"
+ ],
+ "symbol": "m³",
+ "identifier": "cubicMeters"
+ },
+ {
+ "aliases": [
+ "Kubilzentimeter",
+ "Kubilzentimetern",
+ "cm3",
+ "cm^3",
+ "Zentimeter³"
+ ],
+ "symbol": "cm³",
+ "identifier": "cubicCentimeters"
+ },
+ {
+ "aliases": [
+ "Kubikmillimeter",
+ "Kubikmillimetern",
+ "mm3",
+ "mm^3"
+ ],
+ "symbol": "mm³",
+ "identifier": "cubicMillimeters"
+ },
+ {
+ "aliases": [
+ "cubic inch",
+ "cubic inches",
+ "in³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "symbol": "in³",
+ "identifier": "cubicInches"
+ },
+ {
+ "aliases": [
+ "cubic foot",
+ "cubic feet",
+ "cuft",
+ "ft³",
+ "ft3",
+ "ft^3"
+ ],
+ "symbol": "ft³",
+ "identifier": "cubicFeet"
+ },
+ {
+ "aliases": [
+ "cubic yard",
+ "cubic yards",
+ "yd³",
+ "yard³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "symbol": "yd³",
+ "identifier": "cubicYards"
+ },
+ {
+ "aliases": [
+ "cubic mile",
+ "cubic miles",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "mile³",
+ "mile^3",
+ "miles^3"
+ ],
+ "symbol": "mi³",
+ "identifier": "cubicMiles"
+ },
+ {
+ "aliases": [
+ "bushel",
+ "bushels"
+ ],
+ "symbol": "bsh",
+ "identifier": "bushels"
+ },
+ {
+ "aliases": [
+ "Tasse",
+ "Tassen"
+ ],
+ "symbol": "Tasse",
+ "identifier": "metricCups"
+ },
+ {
+ "aliases": [
+ "cup",
+ "cups"
+ ],
+ "symbol": "cup",
+ "identifier": "cups"
+ },
+ {
+ "aliases": [
+ "acre feet",
+ "acre foot"
+ ],
+ "symbol": "af",
+ "identifier": "acreFeet"
+ },
+ {
+ "aliases": [
+ "pint",
+ "pints"
+ ],
+ "symbol": "pt",
+ "identifier": "pints"
+ },
+ {
+ "aliases": [
+ "quart",
+ "quarts"
+ ],
+ "symbol": "qt",
+ "identifier": "quarts"
+ },
+ {
+ "aliases": [
+ "Gallone",
+ "Gallonen",
+ "gal"
+ ],
+ "symbol": "gal",
+ "identifier": "gallons"
+ },
+ {
+ "aliases": [
+ "Esslöffel",
+ "tbsp"
+ ],
+ "symbol": "EL",
+ "identifier": "tablespoons"
+ },
+ {
+ "aliases": [
+ "Teelöffel",
+ "tsp"
+ ],
+ "symbol": "TL",
+ "identifier": "teaspoons"
+ },
+ {
+ "aliases": [
+ "Flüssigunze",
+ "Flüssigunzen",
+ "floz"
+ ],
+ "symbol": "fl oz",
+ "identifier": "fluidOunces"
+ }
+ ],
+ "dataStorage": [
+ {
+ "aliases": [
+ "byte",
+ "bytes"
+ ],
+ "symbol": "B",
+ "identifier": "bytes"
+ },
+ {
+ "aliases": [
+ "bit",
+ "bits"
+ ],
+ "symbol": "bit",
+ "identifier": "bits"
+ },
+ {
+ "aliases": [
+ "yottabyte",
+ "yottabytes"
+ ],
+ "symbol": "YB",
+ "identifier": "yottabytes"
+ },
+ {
+ "aliases": [
+ "zettabyte",
+ "zettabytes"
+ ],
+ "symbol": "ZB",
+ "identifier": "zettabytes"
+ },
+ {
+ "aliases": [
+ "exabyte",
+ "exabytes"
+ ],
+ "symbol": "EB",
+ "identifier": "exabytes"
+ },
+ {
+ "aliases": [
+ "petabyte",
+ "petabytes"
+ ],
+ "symbol": "PB",
+ "identifier": "petabytes"
+ },
+ {
+ "aliases": [
+ "terabyte",
+ "terabytes",
+ "TB",
+ "tb"
+ ],
+ "symbol": "TB",
+ "identifier": "terabytes"
+ },
+ {
+ "aliases": [
+ "gigabyte",
+ "gigabytes",
+ "GB",
+ "gb"
+ ],
+ "symbol": "GB",
+ "identifier": "gigabytes"
+ },
+ {
+ "aliases": [
+ "megabyte",
+ "megabytes",
+ "MB",
+ "mb"
+ ],
+ "symbol": "MB",
+ "identifier": "megabytes"
+ },
+ {
+ "aliases": [
+ "kilobyte",
+ "kilobytes",
+ "KB",
+ "kb"
+ ],
+ "symbol": "kB",
+ "identifier": "kilobytes"
+ },
+ {
+ "aliases": [
+ "yottabit",
+ "yottabits",
+ "Ybit"
+ ],
+ "symbol": "Yb",
+ "identifier": "yottabits"
+ },
+ {
+ "aliases": [
+ "zettabit",
+ "zettabits",
+ "Zbit"
+ ],
+ "symbol": "Zb",
+ "identifier": "zettabits"
+ },
+ {
+ "aliases": [
+ "exabit",
+ "exabits",
+ "Ebit"
+ ],
+ "symbol": "Eb",
+ "identifier": "exabits"
+ },
+ {
+ "aliases": [
+ "petabit",
+ "petabits",
+ "Pbit"
+ ],
+ "symbol": "Pb",
+ "identifier": "petabits"
+ },
+ {
+ "aliases": [
+ "terabit",
+ "terabits",
+ "Tbit"
+ ],
+ "symbol": "Tb",
+ "identifier": "terabits"
+ },
+ {
+ "aliases": [
+ "gigabit",
+ "gigabits",
+ "Gbit"
+ ],
+ "symbol": "Gb",
+ "identifier": "gigabits"
+ },
+ {
+ "aliases": [
+ "megabit",
+ "megabits",
+ "Mbit"
+ ],
+ "symbol": "Mb",
+ "identifier": "megabits"
+ },
+ {
+ "aliases": [
+ "kilobit",
+ "kilobits",
+ "Kbit",
+ "Kb"
+ ],
+ "symbol": "kb",
+ "identifier": "kilobits"
+ },
+ {
+ "aliases": [
+ "yobibyte",
+ "yobibytes",
+ "YiB"
+ ],
+ "symbol": "YiB",
+ "identifier": "yobibytes"
+ },
+ {
+ "aliases": [
+ "zebibyte",
+ "zebibytes",
+ "ZiB"
+ ],
+ "symbol": "ZiB",
+ "identifier": "zebibytes"
+ },
+ {
+ "aliases": [
+ "exbibyte",
+ "exbibytes",
+ "EiB"
+ ],
+ "symbol": "EiB",
+ "identifier": "exbibytes"
+ },
+ {
+ "aliases": [
+ "pebibyte",
+ "pebibytes",
+ "PiB"
+ ],
+ "symbol": "PiB",
+ "identifier": "pebibytes"
+ },
+ {
+ "aliases": [
+ "tebibyte",
+ "tebibytes",
+ "TiB"
+ ],
+ "symbol": "TiB",
+ "identifier": "tebibytes"
+ },
+ {
+ "aliases": [
+ "gibibyte",
+ "gibibytes",
+ "GiB"
+ ],
+ "symbol": "GiB",
+ "identifier": "gibibytes"
+ },
+ {
+ "aliases": [
+ "mebibyte",
+ "mebibytes",
+ "MiB"
+ ],
+ "symbol": "MiB",
+ "identifier": "mebibytes"
+ },
+ {
+ "aliases": [
+ "kibibyte",
+ "kibibytes",
+ "KiB"
+ ],
+ "symbol": "KiB",
+ "identifier": "kibibytes"
+ },
+ {
+ "aliases": [
+ "yobibit",
+ "yobibits",
+ "Yibit"
+ ],
+ "symbol": "Yib",
+ "identifier": "yobibits"
+ },
+ {
+ "aliases": [
+ "zebibit",
+ "zebibits",
+ "Zibit"
+ ],
+ "symbol": "Zib",
+ "identifier": "zebibits"
+ },
+ {
+ "aliases": [
+ "exbibit",
+ "exbibits",
+ "Eibit"
+ ],
+ "symbol": "Eib",
+ "identifier": "exbibits"
+ },
+ {
+ "aliases": [
+ "pebibit",
+ "pebibits",
+ "Pibit"
+ ],
+ "symbol": "Pib",
+ "identifier": "pebibits"
+ },
+ {
+ "aliases": [
+ "tebibit",
+ "tebibits",
+ "Tibit"
+ ],
+ "symbol": "Tib",
+ "identifier": "tebibits"
+ },
+ {
+ "aliases": [
+ "gibibit",
+ "gibibits",
+ "Gibit"
+ ],
+ "symbol": "Gib",
+ "identifier": "gibibits"
+ },
+ {
+ "aliases": [
+ "mebibit",
+ "mebibits",
+ "Mibit"
+ ],
+ "symbol": "Mib",
+ "identifier": "mebibits"
+ },
+ {
+ "aliases": [
+ "kibibit",
+ "kibibits",
+ "Kibit"
+ ],
+ "symbol": "Kib",
+ "identifier": "kibibits"
+ }
+ ],
+ "energy": [
+ {
+ "aliases": [
+ "joule",
+ "joules"
+ ],
+ "symbol": "J",
+ "identifier": "joules"
+ },
+ {
+ "aliases": [
+ "kilojoule",
+ "kilojoules"
+ ],
+ "symbol": "kJ",
+ "identifier": "kilojoules"
+ },
+ {
+ "aliases": [
+ "megajoule",
+ "megajoules"
+ ],
+ "symbol": "mJ",
+ "identifier": "megajoules"
+ },
+ {
+ "aliases": [
+ "gigajoule",
+ "gigajoules"
+ ],
+ "symbol": "gJ",
+ "identifier": "gigajoules"
+ },
+ {
+ "aliases": [
+ "calorie",
+ "calories"
+ ],
+ "symbol": "cal",
+ "identifier": "calories"
+ },
+ {
+ "aliases": [
+ "kilocalorie",
+ "kilocalories"
+ ],
+ "symbol": "kCal",
+ "identifier": "kilocalories"
+ },
+ {
+ "aliases": [
+ "watt hour",
+ "watt hours"
+ ],
+ "symbol": "Wh",
+ "identifier": "wattHours"
+ },
+ {
+ "aliases": [
+ "watt minute",
+ "watt minutes"
+ ],
+ "symbol": "W m",
+ "identifier": "wattMinutes"
+ },
+ {
+ "aliases": [
+ "watt second",
+ "watt seconds"
+ ],
+ "symbol": "W s",
+ "identifier": "wattSeconds"
+ },
+ {
+ "aliases": [
+ "kilowatt hour",
+ "kilowatt hours"
+ ],
+ "symbol": "kWh",
+ "identifier": "kilowattHours"
+ },
+ {
+ "aliases": [
+ "megawatt hour",
+ "megawatt hours"
+ ],
+ "symbol": "MWh",
+ "identifier": "megawattHours"
+ },
+ {
+ "aliases": [
+ "gigawatt hour",
+ "gigawatt hours"
+ ],
+ "symbol": "GWh",
+ "identifier": "gigawattHours"
+ },
+ {
+ "aliases": [
+ "terawatt hour",
+ "terawatt hours"
+ ],
+ "symbol": "TWh",
+ "identifier": "terawattHours"
+ }
+ ],
+ "temperature": [
+ {
+ "aliases": [
+ "Kelvin"
+ ],
+ "symbol": "K",
+ "identifier": "kelvin"
+ },
+ {
+ "aliases": [
+ "degree celsius",
+ "degrees celsius",
+ "ºC",
+ "C",
+ "degC",
+ "celcius"
+ ],
+ "symbol": "°C",
+ "identifier": "celsius"
+ },
+ {
+ "aliases": [
+ "degree fahrenheit",
+ "degrees fahrenheit",
+ "ºF",
+ "F",
+ "degF",
+ "fahrenheit"
+ ],
+ "symbol": "°F",
+ "identifier": "fahrenheit"
+ }
+ ],
+ "dataTransfer": [
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Bps",
+ "identifier": "bytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "bps",
+ "identifier": "bitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "YBps",
+ "identifier": "yottabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "ZBps",
+ "identifier": "zettabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "EBps",
+ "identifier": "exabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "PBps",
+ "identifier": "petabytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "TBps",
+ "identifier": "terabytesPerSecond"
+ },
+ {
+ "aliases": [
+ "gBps"
+ ],
+ "symbol": "GBps",
+ "identifier": "gigabytesPerSecond"
+ },
+ {
+ "aliases": [
+ "mBps"
+ ],
+ "symbol": "MBps",
+ "identifier": "megabytesPerSecond"
+ },
+ {
+ "aliases": [
+ "kBps"
+ ],
+ "symbol": "KBps",
+ "identifier": "kilobytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Ybps",
+ "identifier": "yottabitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Zbps",
+ "identifier": "zettabitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Ebps",
+ "identifier": "exabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "Pbps"
+ ],
+ "symbol": "Pbps",
+ "identifier": "petabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "tbps"
+ ],
+ "symbol": "Tbps",
+ "identifier": "terabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "gbps"
+ ],
+ "symbol": "Gbps",
+ "identifier": "gigabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "mbps"
+ ],
+ "symbol": "Mbps",
+ "identifier": "megabitsPerSecond"
+ },
+ {
+ "aliases": [
+ "kbps"
+ ],
+ "symbol": "Kbps",
+ "identifier": "kilobitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "YiBps",
+ "identifier": "yobibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "ZiBps",
+ "identifier": "zebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "EiBps",
+ "identifier": "exbibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "PiBps",
+ "identifier": "pebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "TiBps",
+ "identifier": "tebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "GiBps",
+ "identifier": "gibibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "MiBps",
+ "identifier": "mebibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "KiBps",
+ "identifier": "kibibytesPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Yibps",
+ "identifier": "yobibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Zibps",
+ "identifier": "zebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Eibps",
+ "identifier": "exbibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Pibps",
+ "identifier": "pebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Tibps",
+ "identifier": "tebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Gibps",
+ "identifier": "gibibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Mibps",
+ "identifier": "mebibitsPerSecond"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "Kibps",
+ "identifier": "kibibitsPerSecond"
+ }
+ ],
+ "angle": [
+ {
+ "aliases": [
+ "Grad"
+ ],
+ "symbol": "°",
+ "identifier": "degrees"
+ },
+ {
+ "aliases": [
+ "Radian"
+ ],
+ "symbol": "rad",
+ "identifier": "radians"
+ }
+ ],
+ "length": [
+ {
+ "aliases": [
+ "Meter",
+ "Metern"
+ ],
+ "symbol": "m",
+ "identifier": "meters"
+ },
+ {
+ "aliases": [
+ "Kilometer",
+ "Kilometern"
+ ],
+ "symbol": "km",
+ "identifier": "kilometers"
+ },
+ {
+ "aliases": [
+ "Zentimeter",
+ "Zentimetern"
+ ],
+ "symbol": "cm",
+ "identifier": "centimeters"
+ },
+ {
+ "aliases": [
+ "Millimeter",
+ "Millimetern"
+ ],
+ "symbol": "mm",
+ "identifier": "millimeters"
+ },
+ {
+ "aliases": [
+ "Mikrometer",
+ "Mikrometern"
+ ],
+ "symbol": "µm",
+ "identifier": "micrometers"
+ },
+ {
+ "aliases": [
+ "Nanometer",
+ "Nanometern"
+ ],
+ "symbol": "nm",
+ "identifier": "nanometers"
+ },
+ {
+ "aliases": [
+ "Zoll",
+ "inch",
+ "inches"
+ ],
+ "symbol": "in",
+ "identifier": "inches"
+ },
+ {
+ "aliases": [
+ "foot",
+ "Fuß",
+ "feet"
+ ],
+ "symbol": "ft",
+ "identifier": "feet"
+ },
+ {
+ "aliases": [
+ "yard",
+ "yards"
+ ],
+ "symbol": "yd",
+ "identifier": "yards"
+ },
+ {
+ "aliases": [
+ "Meile",
+ "Meilen"
+ ],
+ "symbol": "mi",
+ "identifier": "miles"
+ },
+ {
+ "aliases": [
+ "Lichtjahr",
+ "Lichtjahre"
+ ],
+ "symbol": "ly",
+ "identifier": "lightyears"
+ },
+ {
+ "aliases": [
+ "parsec",
+ "parsecs"
+ ],
+ "symbol": "pc",
+ "identifier": "parsecs"
+ },
+ {
+ "aliases": [
+ "Nautische Meile",
+ "Nautische Meilen"
+ ],
+ "symbol": "NM",
+ "identifier": "nauticalMiles"
+ },
+ {
+ "aliases": [
+ "Faden"
+ ],
+ "symbol": "ftm",
+ "identifier": "fathoms"
+ },
+ {
+ "aliases": [
+ "furlong",
+ "furlongs"
+ ],
+ "symbol": "fur",
+ "identifier": "furlongs"
+ },
+ {
+ "aliases": [
+ "Pixel"
+ ],
+ "symbol": "px",
+ "identifier": "pixel"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "em",
+ "identifier": "em"
+ },
+ {
+ "aliases": [
+ "pts"
+ ],
+ "symbol": "pt",
+ "identifier": "point"
+ }
+ ],
+ "area": [
+ {
+ "aliases": [
+ "Quadratkilometer",
+ "kilometer²",
+ "km^2",
+ "km2"
+ ],
+ "symbol": "km²",
+ "identifier": "squareKilometers"
+ },
+ {
+ "aliases": [
+ "Quadratmeter",
+ "m^2",
+ "meter²",
+ "m2"
+ ],
+ "symbol": "m²",
+ "identifier": "squareMeters"
+ },
+ {
+ "aliases": [
+ "Quadratzentimeter",
+ "Zentimeter^2",
+ "Zentimeter²",
+ "cm^2",
+ "cm2"
+ ],
+ "symbol": "cm²",
+ "identifier": "squareCentimeters"
+ },
+ {
+ "aliases": [
+ "Quadratmillimeter",
+ "Millimeter^2",
+ "Millimeter²",
+ "mm^2",
+ "mm2"
+ ],
+ "symbol": "mm²",
+ "identifier": "squareMillimeters"
+ },
+ {
+ "aliases": [
+ "Quadratmicrometer",
+ "Mikrometer^2",
+ "Mikrometer²",
+ "µm^2",
+ "µm2"
+ ],
+ "symbol": "µm²",
+ "identifier": "squareMicrometers"
+ },
+ {
+ "aliases": [
+ "Quadratzoll",
+ "in^2",
+ "in2",
+ "Zoll²"
+ ],
+ "symbol": "in²",
+ "identifier": "squareInches"
+ },
+ {
+ "aliases": [
+ "Quadratfuß",
+ "Quadratfuss",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "feet^2",
+ "feet²"
+ ],
+ "symbol": "ft²",
+ "identifier": "squareFeet"
+ },
+ {
+ "aliases": [
+ "square yard",
+ "square yards",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "yard^2",
+ "yards²",
+ "sqyd"
+ ],
+ "symbol": "yd²",
+ "identifier": "squareYards"
+ },
+ {
+ "aliases": [
+ "Quadratmeile",
+ "Quadratmeilen",
+ "mi^2",
+ "mi2",
+ "mile^2",
+ "miles^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "miles²"
+ ],
+ "symbol": "mi²",
+ "identifier": "squareMiles"
+ },
+ {
+ "aliases": [
+ "acre",
+ "acres",
+ "ac"
+ ],
+ "symbol": "ac",
+ "identifier": "acres"
+ },
+ {
+ "aliases": [
+ "Hektar",
+ "ha"
+ ],
+ "symbol": "ha",
+ "identifier": "hectares"
+ },
+ {
+ "aliases": [
+
+ ],
+ "symbol": "ares",
+ "identifier": "ares"
+ }
+ ],
+ "fuelEfficiency": [
+ {
+ "aliases": [
+ "l/100 km",
+ "l/100km",
+ "l / 100km",
+ "Liter / 100km",
+ "Liter / 100km",
+ "l / 100 km",
+ "Liter / 100 km",
+ "Liter / 100 km"
+ ],
+ "symbol": "l/100km",
+ "identifier": "litersPer100Kilometers"
+ },
+ {
+ "aliases": [
+ "Meilen per Gallone"
+ ],
+ "symbol": "mpg",
+ "identifier": "milesPerGallon"
+ }
+ ],
+ "power": [
+ {
+ "aliases": [
+ "Watt"
+ ],
+ "symbol": "W",
+ "identifier": "watts"
+ },
+ {
+ "aliases": [
+ "Milliwatt"
+ ],
+ "symbol": "mW",
+ "identifier": "milliwatts"
+ },
+ {
+ "aliases": [
+ "Kilowatt"
+ ],
+ "symbol": "kW",
+ "identifier": "kilowatts"
+ },
+ {
+ "aliases": [
+ "Megawatt"
+ ],
+ "symbol": "MW",
+ "identifier": "megawatts"
+ },
+ {
+ "aliases": [
+ "Gigawatt"
+ ],
+ "symbol": "GW",
+ "identifier": "gigawatts"
+ },
+ {
+ "aliases": [
+ "Terawatt"
+ ],
+ "symbol": "TW",
+ "identifier": "terawatts"
+ },
+ {
+ "aliases": [
+ "Pferdestärke",
+ "Pferdestärken"
+ ],
+ "symbol": "PS",
+ "identifier": "horsepower"
+ }
+ ],
+ "mass": [
+ {
+ "aliases": [
+ "Kilogram"
+ ],
+ "symbol": "kg",
+ "identifier": "kilograms"
+ },
+ {
+ "aliases": [
+ "Gramm"
+ ],
+ "symbol": "g",
+ "identifier": "grams"
+ },
+ {
+ "aliases": [
+ "Milligramm"
+ ],
+ "symbol": "mg",
+ "identifier": "milligrams"
+ },
+ {
+ "aliases": [
+ "Nanogramm"
+ ],
+ "symbol": "ng",
+ "identifier": "nanograms"
+ },
+ {
+ "aliases": [
+ "Unze",
+ "Unzen"
+ ],
+ "symbol": "oz",
+ "identifier": "ounces"
+ },
+ {
+ "aliases": [
+ "lbs",
+ "Pfund",
+ "Pfd"
+ ],
+ "symbol": "lb",
+ "identifier": "pounds"
+ },
+ {
+ "aliases": [
+ "stone",
+ "stones"
+ ],
+ "symbol": "st",
+ "identifier": "stones"
+ },
+ {
+ "aliases": [
+ "Tonne",
+ "Tonnen"
+ ],
+ "symbol": "t",
+ "identifier": "metricTons"
+ },
+ {
+ "aliases": [
+ "short ton",
+ "short tons",
+ "tons",
+ "tonne",
+ "tonnes"
+ ],
+ "symbol": "ton",
+ "identifier": "shortTons"
+ },
+ {
+ "aliases": [
+ "Karat"
+ ],
+ "symbol": "ct",
+ "identifier": "carats"
+ },
+ {
+ "aliases": [
+ "ounce troy",
+ "ounces troy"
+ ],
+ "symbol": "oz t",
+ "identifier": "ouncesTroy"
+ }
+ ],
+ "duration": [
+ {
+ "aliases": [
+ "Stunde",
+ "Stunden",
+ "Std"
+ ],
+ "symbol": "h",
+ "identifier": "hours"
+ },
+ {
+ "aliases": [
+ "Sekunde",
+ "Sekunden",
+ "sek"
+ ],
+ "symbol": "s",
+ "identifier": "seconds"
+ },
+ {
+ "aliases": [
+ "Minute",
+ "Minuten"
+ ],
+ "symbol": "min",
+ "identifier": "minutes"
+ },
+ {
+ "aliases": [
+ "Tag",
+ "Tage",
+ "Tagen"
+ ],
+ "symbol": "d",
+ "identifier": "days"
+ },
+ {
+ "aliases": [
+ "Wochentag",
+ "Wochentage",
+ "Wochentagen",
+ "Arbeitstage",
+ "Arbeitstag",
+ "Arbeitstagen"
+ ],
+ "symbol": "WT",
+ "identifier": "weekdays"
+ },
+ {
+ "aliases": [
+ "Woche",
+ "Wochen"
+ ],
+ "symbol": "Woche",
+ "identifier": "weeks"
+ },
+ {
+ "aliases": [
+ "Monat",
+ "Monate",
+ "Monaten"
+ ],
+ "symbol": "Mon",
+ "identifier": "months"
+ },
+ {
+ "aliases": [
+ "Jahr",
+ "Jahre",
+ "Jahren"
+ ],
+ "symbol": "Jahr",
+ "identifier": "years"
+ },
+ {
+ "aliases": [
+ "Millisekunde",
+ "Millisekunden"
+ ],
+ "symbol": "ms",
+ "identifier": "milliseconds"
+ },
+ {
+ "aliases": [
+ "Mikrosekunde",
+ "Mikrosekunden"
+ ],
+ "symbol": "µs",
+ "identifier": "microseconds"
+ },
+ {
+ "aliases": [
+ "Nanosekunde",
+ "Nanosekunden"
+ ],
+ "symbol": "ns",
+ "identifier": "nanoseconds"
+ }
+ ],
+ "currency": [
+ {
+ "aliases": [
+ "usd"
+ ],
+ "symbol": "USD",
+ "identifier": "usd"
+ }
+ ],
+ "frequency": [
+ {
+ "aliases": [
+ "Hertz",
+ "hz"
+ ],
+ "symbol": "Hz",
+ "identifier": "hertz"
+ },
+ {
+ "aliases": [
+ "Kilohertz"
+ ],
+ "symbol": "kHz",
+ "identifier": "kilohertz"
+ },
+ {
+ "aliases": [
+ "Megahertz"
+ ],
+ "symbol": "MHz",
+ "identifier": "megahertz"
+ },
+ {
+ "aliases": [
+ "Gigahertz"
+ ],
+ "symbol": "GHz",
+ "identifier": "gigahertz"
+ },
+ {
+ "aliases": [
+ "Terahertz"
+ ],
+ "symbol": "THz",
+ "identifier": "terahertz"
+ },
+ {
+ "aliases": [
+ "Millihertz"
+ ],
+ "symbol": "mHz",
+ "identifier": "millihertz"
+ },
+ {
+ "aliases": [
+ "Mikrohertz"
+ ],
+ "symbol": "µHz",
+ "identifier": "microhertz"
+ },
+ {
+ "aliases": [
+ "Nanohertz"
+ ],
+ "symbol": "nHz",
+ "identifier": "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/Localizable.strings
new file mode 100644
index 000000000..862a28015
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..8a91fd9fd
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/en.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/Cities.json
new file mode 100644
index 000000000..a0aaab1fd
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/Cities.json
@@ -0,0 +1,5245 @@
+[
+ {
+ "population" : "22,315,474",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Шанхай",
+ "aliases" : [
+ "Шанхаем",
+ "Шанхае"
+ ],
+ "identifier" : "shanghai"
+ },
+ {
+ "population" : "14,804,116",
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "Стамбул",
+ "aliases" : [
+ "Стамбулом",
+ "Стамбуле"
+ ],
+ "identifier" : "istanbul"
+ },
+ {
+ "population" : "13,076,300",
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "Буэнос-Айрес",
+ "aliases" : [
+ "Буэнос-Айресе",
+ "Буэнос-Айресом"
+ ],
+ "identifier" : "buenos aires"
+ },
+ {
+ "population" : "12,691,836",
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Мумбаи",
+ "identifier" : "mumbai"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "Мехико",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "population" : "11,716,620",
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Пекин",
+ "aliases" : [
+ "Пекине",
+ "Пекином"
+ ],
+ "identifier" : "beijing"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "Карачи",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "population" : "11,090,314",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Тяньцзинь",
+ "aliases" : [
+ "Тяньцзине",
+ "Тяньцзинем"
+ ],
+ "identifier" : "tianjin"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Гуанчжоу",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Дели",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "population" : "10,381,222",
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Москва",
+ "aliases" : [
+ "Москву",
+ "Москвой",
+ "Москве"
+ ],
+ "identifier" : "moscow"
+ },
+ {
+ "population" : "10,358,381",
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Шэньчжэнь",
+ "aliases" : [
+ "Шэньчжэне",
+ "Шэньчжэнем"
+ ],
+ "identifier" : "shenzhen"
+ },
+ {
+ "population" : "10,356,500",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "Дакка",
+ "aliases" : [
+ "Дакку",
+ "Даккой",
+ "Дакке"
+ ],
+ "identifier" : "dhaka"
+ },
+ {
+ "population" : "10,349,312",
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "Сеул",
+ "aliases" : [
+ "Сеулом",
+ "Сеуле"
+ ],
+ "identifier" : "seoul"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Сан-Паулу",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "population" : "9,785,388",
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Ухань",
+ "aliases" : [
+ "Уханем",
+ "Ухане"
+ ],
+ "identifier" : "wuhan"
+ },
+ {
+ "population" : "9,000,000",
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Лагос",
+ "aliases" : [
+ "Лагосом",
+ "Лагосе"
+ ],
+ "identifier" : "lagos"
+ },
+ {
+ "population" : "8,540,121",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "Джакарта",
+ "aliases" : [
+ "Джакартой",
+ "Джакарту",
+ "Джакарте"
+ ],
+ "identifier" : "jakarta"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Токио",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "population" : "8,175,133",
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "Нью-Йорк",
+ "aliases" : [
+ "Нью-Йорком",
+ "Нью Йорк",
+ "Нью-Йорке"
+ ],
+ "identifier" : "new york"
+ },
+ {
+ "population" : "8,000,000",
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Дунгуань",
+ "aliases" : [
+ "Дунгуане",
+ "Дунгуанем"
+ ],
+ "identifier" : "dongguan"
+ },
+ {
+ "population" : "7,871,900",
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "Тайбэй",
+ "aliases" : [
+ "Тайбэем",
+ "Тайбэе"
+ ],
+ "identifier" : "taipei"
+ },
+ {
+ "population" : "7,785,965",
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "Киншаса",
+ "aliases" : [
+ "Киншасе",
+ "Киншасу",
+ "Киншасой"
+ ],
+ "identifier" : "kinshasa"
+ },
+ {
+ "population" : "7,734,614",
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "Каир",
+ "aliases" : [
+ "Каиром",
+ "Каире"
+ ],
+ "identifier" : "cairo"
+ },
+ {
+ "population" : "7,674,366",
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "Богота",
+ "aliases" : [
+ "Боготе",
+ "Боготой",
+ "Боготу"
+ ],
+ "identifier" : "bogota"
+ },
+ {
+ "population" : "7,556,900",
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "Лондон",
+ "aliases" : [
+ "Лондоне",
+ "Лондоном"
+ ],
+ "identifier" : "london"
+ },
+ {
+ "population" : "7,457,600",
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Чунцин",
+ "aliases" : [
+ "Чунцине",
+ "Чунцином"
+ ],
+ "identifier" : "chongqing"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Чэнду",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "population" : "7,216,000",
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "Багдад",
+ "aliases" : [
+ "Багдадом",
+ "багдаде"
+ ],
+ "identifier" : "baghdad"
+ },
+ {
+ "population" : "7,165,292",
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Нанкин",
+ "aliases" : [
+ "Нанкином",
+ "Нанкине"
+ ],
+ "identifier" : "nanjing"
+ },
+ {
+ "population" : "7,153,309",
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Тегеран",
+ "aliases" : [
+ "Тегераном",
+ "Тегеране"
+ ],
+ "identifier" : "tehran"
+ },
+ {
+ "population" : "7,150,000",
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Наньчун",
+ "aliases" : [
+ "Наньчуном",
+ "Наньчуне"
+ ],
+ "identifier" : "nanchong"
+ },
+ {
+ "population" : "7,012,738",
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "Гонконг",
+ "aliases" : [
+ "Гонконге",
+ "Гонконгом"
+ ],
+ "identifier" : "hong kong"
+ },
+ {
+ "population" : "6,501,190",
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "Сиань",
+ "aliases" : [
+ "Сиане"
+ ],
+ "identifier" : "xi'an"
+ },
+ {
+ "population" : "6,023,699",
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Рио де Жанейро",
+ "aliases" : [
+ "Рио-де-Жанейро"
+ ],
+ "identifier" : "rio de janeiro"
+ },
+ {
+ "population" : "5,104,476",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "Бангкок",
+ "aliases" : [
+ "Бангкоке",
+ "Бангкоком"
+ ],
+ "identifier" : "bangkok"
+ },
+ {
+ "population" : "5,104,047",
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Бенгалор",
+ "aliases" : [
+ "Бангалор",
+ "Бангалоре",
+ "Бенгалором"
+ ],
+ "identifier" : "bengaluru"
+ },
+ {
+ "population" : "5,028,000",
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Санкт-Петербург",
+ "aliases" : [
+ "Санкт-Петербургом",
+ "Санкт-Петербурге"
+ ],
+ "identifier" : "saint petersburg"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "Сантьяго",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "population" : "4,631,392",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Колькутта",
+ "aliases" : [
+ "Калькутту",
+ "Калькуттой",
+ "Калькутте"
+ ],
+ "identifier" : "kolkata"
+ },
+ {
+ "population" : "4,627,345",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Сидней",
+ "aliases" : [
+ "Сиднеем",
+ "Сиднее"
+ ],
+ "identifier" : "sydney"
+ },
+ {
+ "population" : "4,477,638",
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "Янгон",
+ "aliases" : [
+ "Янгоне",
+ "Янгоном"
+ ],
+ "identifier" : "yangon"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Ченнаи",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "population" : "4,246,375",
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "Мельбурн",
+ "aliases" : [
+ "Мельбурном",
+ "Мельбурне"
+ ],
+ "identifier" : "melbourne"
+ },
+ {
+ "population" : "4,205,961",
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Эр - Рияд",
+ "aliases" : [
+ "Эр-Рияде",
+ "Эр-Рияд",
+ "Эр-Риядом"
+ ],
+ "identifier" : "riyadh"
+ },
+ {
+ "population" : "3,971,883",
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Лос-Анджелес",
+ "aliases" : [
+ "Лос-Анджелесом",
+ "Лос-Анжелесе"
+ ],
+ "identifier" : "los angeles"
+ },
+ {
+ "population" : "3,920,222",
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "Читтагонг",
+ "aliases" : [
+ "Читтагонге",
+ "Читтагонгом"
+ ],
+ "identifier" : "chittagong"
+ },
+ {
+ "population" : "3,811,516",
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "Александрия",
+ "aliases" : [
+ "Александрией",
+ "Александрии",
+ "Александрию"
+ ],
+ "identifier" : "alexandria"
+ },
+ {
+ "population" : "3,719,710",
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Ахмедабад",
+ "aliases" : [
+ "Ахмедабаде",
+ "Ахмедабадом"
+ ],
+ "identifier" : "ahmedabad"
+ },
+ {
+ "population" : "3,678,555",
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "Пусан",
+ "aliases" : [
+ "Пусаном",
+ "Пусане"
+ ],
+ "identifier" : "busan"
+ },
+ {
+ "population" : "3,677,115",
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "Абиджан",
+ "aliases" : [
+ "Абиджаном",
+ "Абиджане"
+ ],
+ "identifier" : "abidjan"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Кано",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "population" : "3,597,816",
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "Хайдарабад",
+ "aliases" : [
+ "Хайдарабаде",
+ "Хайдарабадом"
+ ],
+ "identifier" : "hyderabad"
+ },
+ {
+ "population" : "3,574,443",
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Йокогама",
+ "aliases" : [
+ "Йокогаму",
+ "Йокогамой",
+ "Йокогаме"
+ ],
+ "identifier" : "yokohama"
+ },
+ {
+ "population" : "3,565,108",
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Ибадан",
+ "aliases" : [
+ "Ибадане",
+ "Ибаданом"
+ ],
+ "identifier" : "ibadan"
+ },
+ {
+ "population" : "3,547,809",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "Сингапур",
+ "aliases" : [
+ "Сингапуре",
+ "Сингапуром"
+ ],
+ "identifier" : "singapore"
+ },
+ {
+ "population" : "3,517,182",
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "Анкара",
+ "aliases" : [
+ "Анкарой",
+ "Анкаре",
+ "Анкару"
+ ],
+ "identifier" : "ankara"
+ },
+ {
+ "population" : "3,467,331",
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "Хошимин",
+ "aliases" : [
+ " Хошимине",
+ "Хошимином"
+ ],
+ "identifier" : "ho chi minh city"
+ },
+ {
+ "population" : "3,433,441",
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Кейптаун",
+ "aliases" : [
+ "Кейптауне",
+ "Кейптауном"
+ ],
+ "identifier" : "cape town"
+ },
+ {
+ "population" : "3,426,354",
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Берлин",
+ "aliases" : [
+ "Берлином",
+ "Берлине"
+ ],
+ "identifier" : "berlin"
+ },
+ {
+ "population" : "3,255,944",
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "Мадрид",
+ "aliases" : [
+ "Мадриде",
+ "Мадридом"
+ ],
+ "identifier" : "madrid"
+ },
+ {
+ "population" : "3,222,000",
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "Пхеньян",
+ "aliases" : [
+ "Пхеньяне",
+ "Пхеньяном"
+ ],
+ "identifier" : "pyongyang"
+ },
+ {
+ "population" : "3,144,909",
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Касабланка",
+ "aliases" : [
+ "Касабланкой",
+ "Касабланке",
+ "Касабланку"
+ ],
+ "identifier" : "casablanca"
+ },
+ {
+ "population" : "3,121,275",
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "Чжуншань",
+ "aliases" : [
+ "Чжуншане",
+ "Чжуншанем"
+ ],
+ "identifier" : "zhongshan"
+ },
+ {
+ "population" : "3,120,282",
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Дурбан",
+ "aliases" : [
+ "Дурбаном",
+ "Дурбане"
+ ],
+ "identifier" : "durban"
+ },
+ {
+ "population" : "3,043,532",
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "Кабул",
+ "aliases" : [
+ "Кабулом",
+ "Кабуле"
+ ],
+ "identifier" : "kabul"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "Урумчи",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "population" : "3,000,000",
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "Каракас",
+ "aliases" : [
+ "Каракасом",
+ "Каракасе"
+ ],
+ "identifier" : "caracas"
+ },
+ {
+ "population" : "2,956,587",
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "Дубай",
+ "aliases" : [
+ "Дубае",
+ "Дубаем"
+ ],
+ "identifier" : "dubai"
+ },
+ {
+ "population" : "2,867,446",
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Джидда",
+ "aliases" : [
+ "Джиддой",
+ "Джидде",
+ "Джидду"
+ ],
+ "identifier" : "jeddah"
+ },
+ {
+ "population" : "2,797,553",
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Киев",
+ "aliases" : [
+ "Киевом",
+ "Киеве"
+ ],
+ "identifier" : "kyiv"
+ },
+ {
+ "population" : "2,776,168",
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "Луанда",
+ "aliases" : [
+ "Луанде",
+ "Луандой",
+ "Луанду"
+ ],
+ "identifier" : "luanda"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "Кесон-Сити",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "population" : "2,757,729",
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "Аддис-Абеба",
+ "aliases" : [
+ "Аддис-Абебой",
+ "Аддис-Абебе",
+ "Аддис-Абебу"
+ ],
+ "identifier" : "addis ababa"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "Найроби",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "Чикаго",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "population" : "2,711,840",
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "Сальвадор",
+ "aliases" : [
+ "Сальвадором",
+ "Сальвадоре"
+ ],
+ "identifier" : "salvador"
+ },
+ {
+ "population" : "2,698,652",
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "Дар-эс-Салам",
+ "aliases" : [
+ "Дар-эс-Саламе",
+ "Дар-эс-Саламом"
+ ],
+ "identifier" : "dar es salaam"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "Торонто",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "population" : "2,592,413",
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Осака",
+ "aliases" : [
+ "Осаку",
+ "Осакой",
+ "Осаке"
+ ],
+ "identifier" : "osaka"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "Могадишо",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "population" : "2,500,603",
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "Измир",
+ "aliases" : [
+ "Измиром",
+ "Измире"
+ ],
+ "identifier" : "izmir"
+ },
+ {
+ "population" : "2,476,400",
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "Дакар",
+ "aliases" : [
+ "Дакаре",
+ "Дакаром"
+ ],
+ "identifier" : "dakar"
+ },
+ {
+ "population" : "2,443,203",
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "Гиза",
+ "aliases" : [
+ "Гизе",
+ "Гизу",
+ "Гизой"
+ ],
+ "identifier" : "giza"
+ },
+ {
+ "population" : "2,400,000",
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "Форталеза",
+ "aliases" : [
+ "Форталезе",
+ "Форталезу",
+ "Форталезой"
+ ],
+ "identifier" : "fortaleza"
+ },
+ {
+ "population" : "2,374,658",
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "Сурабая",
+ "aliases" : [
+ "Сурабаей",
+ "Сурабае",
+ "Сурабаю"
+ ],
+ "identifier" : "surabaya"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Белу-Оризонти",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "population" : "2,318,895",
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Рим",
+ "aliases" : [
+ "Риме",
+ "Римом"
+ ],
+ "identifier" : "rome"
+ },
+ {
+ "population" : "2,307,177",
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Мешхед",
+ "aliases" : [
+ "Мешхеде",
+ "Мешхедом"
+ ],
+ "identifier" : "mashhad"
+ },
+ {
+ "population" : "2,300,664",
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "Бруклин",
+ "aliases" : [
+ "Бруклином",
+ "Бруклине"
+ ],
+ "identifier" : "brooklyn"
+ },
+ {
+ "population" : "2,296,224",
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "Хьюстон",
+ "aliases" : [
+ "Хьюстоном",
+ "Хьюстоне"
+ ],
+ "identifier" : "houston"
+ },
+ {
+ "population" : "2,272,771",
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "Квинс",
+ "aliases" : [
+ "Квинс»",
+ "Квинсе",
+ "Квинсом"
+ ],
+ "identifier" : "queens"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "Бразилиа",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "population" : "2,201,941",
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "Санто-Доминго",
+ "aliases" : [
+ "Санто-Доминго "
+ ],
+ "identifier" : "santo domingo"
+ },
+ {
+ "population" : "2,191,279",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Нагоя",
+ "aliases" : [
+ "Нагоей",
+ "Нагое"
+ ],
+ "identifier" : "nagoya"
+ },
+ {
+ "population" : "2,189,878",
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Брисбен",
+ "aliases" : [
+ "Брисбне",
+ "Брисбном"
+ ],
+ "identifier" : "brisbane"
+ },
+ {
+ "population" : "2,163,824",
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "Гавана",
+ "aliases" : [
+ "Гаваной",
+ "Гавану",
+ "Гаване"
+ ],
+ "identifier" : "havana"
+ },
+ {
+ "population" : "2,138,551",
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Париж",
+ "aliases" : [
+ "Париже",
+ "Парижем"
+ ],
+ "identifier" : "paris"
+ },
+ {
+ "population" : "2,026,469",
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Йоханнесбург",
+ "aliases" : [
+ "Йоханнесбурге",
+ "Йоханнесбургом"
+ ],
+ "identifier" : "johannesburg"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "Алматы",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "population" : "1,978,028",
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "Ташкент",
+ "aliases" : [
+ "Ташкенте",
+ "Ташкентом"
+ ],
+ "identifier" : "tashkent"
+ },
+ {
+ "population" : "1,977,663",
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Алжир",
+ "aliases" : [
+ "Алжире",
+ "Алжиром"
+ ],
+ "identifier" : "algiers"
+ },
+ {
+ "population" : "1,974,647",
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "Хартум",
+ "aliases" : [
+ "Хартуме",
+ "Хартумом"
+ ],
+ "identifier" : "khartoum"
+ },
+ {
+ "population" : "1,963,264",
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "Аккра",
+ "aliases" : [
+ "Аккре",
+ "Аккру",
+ "Аккрой"
+ ],
+ "identifier" : "accra"
+ },
+ {
+ "population" : "1,952,029",
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "Гуякиль",
+ "aliases" : [
+ "Гуякилем",
+ "Гуякиле"
+ ],
+ "identifier" : "guayaquil"
+ },
+ {
+ "population" : "1,937,451",
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "Сана",
+ "aliases" : [
+ "Сане",
+ "Саной"
+ ],
+ "identifier" : "sanaa"
+ },
+ {
+ "population" : "1,916,100",
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "Бейрут",
+ "aliases" : [
+ "Бейрутом",
+ "Бейруте"
+ ],
+ "identifier" : "beirut"
+ },
+ {
+ "population" : "1,896,548",
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "Перт",
+ "aliases" : [
+ "Пертом",
+ "Перте"
+ ],
+ "identifier" : "perth"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Саппоро",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "population" : "1,877,155",
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "Бухарест",
+ "aliases" : [
+ "Бухарестом",
+ "Бухаресте"
+ ],
+ "identifier" : "bucharest"
+ },
+ {
+ "population" : "1,871,242",
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "Камайен",
+ "aliases" : [
+ "Камайеном",
+ "Камайен",
+ "Камайенне"
+ ],
+ "identifier" : "camayenne"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "Конакри",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "population" : "1,742,124",
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "Минск",
+ "aliases" : [
+ "Минске",
+ "Минском"
+ ],
+ "identifier" : "minsk"
+ },
+ {
+ "population" : "1,741,041",
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "Будапешт",
+ "aliases" : [
+ "Будапештом",
+ "Будапеште"
+ ],
+ "identifier" : "budapest"
+ },
+ {
+ "population" : "1,739,117",
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Гамбург",
+ "aliases" : [
+ "Гамбургом",
+ "Гамбурге"
+ ],
+ "identifier" : "hamburg"
+ },
+ {
+ "population" : "1,702,139",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "Варшава",
+ "aliases" : [
+ "Варшавой",
+ "Варшаву",
+ "Варшаве"
+ ],
+ "identifier" : "warsaw"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Соуэто",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "population" : "1,691,468",
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Вена",
+ "aliases" : [
+ "Вену",
+ "Веной",
+ "Вене"
+ ],
+ "identifier" : "vienna"
+ },
+ {
+ "population" : "1,655,753",
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Рабат",
+ "aliases" : [
+ "Рабатом",
+ "Рабате"
+ ],
+ "identifier" : "rabat"
+ },
+ {
+ "population" : "1,621,537",
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "Барселона",
+ "aliases" : [
+ "Барселоне",
+ "Барселоной",
+ "Барселону"
+ ],
+ "identifier" : "barcelona"
+ },
+ {
+ "population" : "1,619,438",
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Претория",
+ "aliases" : [
+ "Преторией",
+ "Преторию",
+ "Претории"
+ ],
+ "identifier" : "pretoria"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "Алеппо",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "population" : "1,600,000",
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "Манила",
+ "aliases" : [
+ "Маниле",
+ "Манилой",
+ "Манилу"
+ ],
+ "identifier" : "manila"
+ },
+ {
+ "population" : "1,600,000",
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "Монреаль",
+ "aliases" : [
+ "Монреалем",
+ "Монреале"
+ ],
+ "identifier" : "montreal"
+ },
+ {
+ "population" : "1,582,102",
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Кадуна",
+ "aliases" : [
+ "Кадуне",
+ "Кадуной",
+ "Кадуну"
+ ],
+ "identifier" : "kaduna"
+ },
+ {
+ "population" : "1,573,544",
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "Пномпень",
+ "aliases" : [
+ "Пномпенем",
+ "Пномпене"
+ ],
+ "identifier" : "phnom penh"
+ },
+ {
+ "population" : "1,569,394",
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "Дамаск",
+ "aliases" : [
+ "Дамаске",
+ "Дамаском"
+ ],
+ "identifier" : "damascus"
+ },
+ {
+ "population" : "1,567,442",
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "Филадельфия",
+ "aliases" : [
+ "Филадельфию",
+ "Филадельфией",
+ "Филадельфии"
+ ],
+ "identifier" : "philadelphia"
+ },
+ {
+ "population" : "1,563,025",
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "Феникс",
+ "aliases" : [
+ "Фениксом",
+ "Фениксе"
+ ],
+ "identifier" : "phoenix"
+ },
+ {
+ "population" : "1,547,164",
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Исфахан",
+ "aliases" : [
+ "Исфаханом",
+ "Исфахане"
+ ],
+ "identifier" : "isfahan"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "Хараре",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Кобе",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "population" : "1,515,017",
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "Стокгольм",
+ "aliases" : [
+ "Стокгольмом",
+ "Стокгольме"
+ ],
+ "identifier" : "stockholm"
+ },
+ {
+ "population" : "1,487,536",
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "Манхэттен",
+ "aliases" : [
+ "Манхэттеном",
+ "Манхэттене"
+ ],
+ "identifier" : "manhattan"
+ },
+ {
+ "population" : "1,482,200",
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "Асунсьон",
+ "aliases" : [
+ "Асунсьоном",
+ "Асунсьоне"
+ ],
+ "identifier" : "asuncion"
+ },
+ {
+ "population" : "1,478,098",
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "Ресифе",
+ "aliases" : [
+ "Ресифи"
+ ],
+ "identifier" : "recife"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "Сан-Антонио",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "Кумаси",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "Кота-Бару",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Киото",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "population" : "1,453,975",
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "Куала-Лумпур",
+ "aliases" : [
+ "Куала-Лумпуром",
+ "Куала-Лумпуре"
+ ],
+ "identifier" : "kuala lumpur"
+ },
+ {
+ "population" : "1,448,075",
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Карадж",
+ "aliases" : [
+ "Кередж",
+ "Кереджем",
+ "Кередже"
+ ],
+ "identifier" : "karaj"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "Катманду",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "population" : "1,431,270",
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "Ханой",
+ "aliases" : [
+ "Ханое",
+ "Ханоем"
+ ],
+ "identifier" : "hanoi"
+ },
+ {
+ "population" : "1,430,885",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Харьков",
+ "aliases" : [
+ "Харьковом",
+ "Харькове"
+ ],
+ "identifier" : "kharkiv"
+ },
+ {
+ "population" : "1,428,214",
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "Кордова",
+ "aliases" : [
+ "Кордове",
+ "Кордовой",
+ "Кордову"
+ ],
+ "identifier" : "cordoba"
+ },
+ {
+ "population" : "1,424,641",
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Тебриз",
+ "aliases" : [
+ "Тебризом",
+ "Тебризе"
+ ],
+ "identifier" : "tabriz"
+ },
+ {
+ "population" : "1,419,007",
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "Новосибирск",
+ "aliases" : [
+ "новосибирске",
+ "Новосибирском"
+ ],
+ "identifier" : "novosibirsk"
+ },
+ {
+ "population" : "1,407,737",
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "Белен",
+ "aliases" : [
+ "Беленом",
+ "Белене"
+ ],
+ "identifier" : "belem"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "Кито",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Сан-Диего",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "population" : "1,392,289",
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Фукуока",
+ "aliases" : [
+ "Фукуокой",
+ "Фукуоке",
+ "Фукуоку"
+ ],
+ "identifier" : "fukuoka"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "Антананариву",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "population" : "1,385,108",
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "Бронкс",
+ "aliases" : [
+ "Бронксе",
+ "Бронксом"
+ ],
+ "identifier" : "the bronx"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "Лубумбаши",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "Санта-Крус-де-ла-Сьерра",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "population" : "1,353,189",
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "Кампала",
+ "aliases" : [
+ "Кампале",
+ "Кампалой",
+ "Кампалу"
+ ],
+ "identifier" : "kampala"
+ },
+ {
+ "population" : "1,349,772",
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Екатеринбург",
+ "aliases" : [
+ "Екатеринбургом",
+ "Екатеринбурге"
+ ],
+ "identifier" : "yekaterinburg"
+ },
+ {
+ "population" : "1,338,082",
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "Дуала",
+ "aliases" : [
+ "Дуалой",
+ "Дуале",
+ "Дуалу"
+ ],
+ "identifier" : "douala"
+ },
+ {
+ "population" : "1,324,473",
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "Sharjah",
+ "aliases" : [
+ "Шарджу",
+ "Шардже",
+ "Шарджей"
+ ],
+ "identifier" : "sharjah"
+ },
+ {
+ "population" : "1,323,624",
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Мекка",
+ "aliases" : [
+ "Мекку",
+ "Меккой",
+ "Мекке"
+ ],
+ "identifier" : "mecca"
+ },
+ {
+ "population" : "1,321,717",
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "Макассар",
+ "aliases" : [
+ "Макассаром",
+ "Макассаре"
+ ],
+ "identifier" : "makassar"
+ },
+ {
+ "population" : "1,321,004",
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "Хуарес",
+ "aliases" : [
+ "Хуаресом",
+ "Хуаресе"
+ ],
+ "identifier" : "juarez"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Кавасаки",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "population" : "1,300,983",
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "Тихуана",
+ "aliases" : [
+ "Тихуаной",
+ "Тихуане",
+ "Тихуану"
+ ],
+ "identifier" : "tijuana"
+ },
+ {
+ "population" : "1,300,092",
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "Даллас",
+ "aliases" : [
+ "Далласе",
+ "Далласом"
+ ],
+ "identifier" : "dallas"
+ },
+ {
+ "population" : "1,300,000",
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "Медина",
+ "aliases" : [
+ "Медину",
+ "Мединой",
+ "Медине"
+ ],
+ "identifier" : "medina"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "Яунде",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "Бамако",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "population" : "1,284,609",
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "Браззавиль",
+ "aliases" : [
+ "Браззавилем",
+ "Браззавиле"
+ ],
+ "identifier" : "brazzaville"
+ },
+ {
+ "population" : "1,284,164",
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Нижний Новгород",
+ "aliases" : [
+ "Нижним Новгородом",
+ "Нижнем Новгороде"
+ ],
+ "identifier" : "nizhniy novgorod"
+ },
+ {
+ "population" : "1,275,857",
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "Амман",
+ "aliases" : [
+ "Аммане",
+ "Амманом"
+ ],
+ "identifier" : "amman"
+ },
+ {
+ "population" : "1,273,651",
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "Белград",
+ "aliases" : [
+ "Белграде",
+ "Белградом"
+ ],
+ "identifier" : "belgrade"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "Монтевидео",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "population" : "1,267,440",
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "Лусака",
+ "aliases" : [
+ "Лусакой",
+ "Лусаке",
+ "Лусаку"
+ ],
+ "identifier" : "lusaka"
+ },
+ {
+ "population" : "1,260,391",
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Мюнхен",
+ "aliases" : [
+ "Мюнхене",
+ "Мюнхеном"
+ ],
+ "identifier" : "munich"
+ },
+ {
+ "population" : "1,249,942",
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Шираз",
+ "aliases" : [
+ "Ширазе",
+ "Ширазом"
+ ],
+ "identifier" : "shiraz"
+ },
+ {
+ "population" : "1,236,837",
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Милан",
+ "aliases" : [
+ "Миланом",
+ "Милане"
+ ],
+ "identifier" : "milan"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "Порт-о-Пренс",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "population" : "1,225,235",
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "Аделаида",
+ "aliases" : [
+ "Аделаидой",
+ "Аделаиду",
+ "Аделаиде"
+ ],
+ "identifier" : "adelaide"
+ },
+ {
+ "population" : "1,200,000",
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "Омдурман",
+ "aliases" : [
+ "Омдурмане",
+ "Омдурманом"
+ ],
+ "identifier" : "omdurman"
+ },
+ {
+ "population" : "1,193,350",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Сайтама",
+ "aliases" : [
+ "Сайтаму",
+ "Сайтамой",
+ "Сайтаме"
+ ],
+ "identifier" : "saitama"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "Мапуту",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "population" : "1,165,581",
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "Прага",
+ "aliases" : [
+ "Праге",
+ "Прагой",
+ "Прагу"
+ ],
+ "identifier" : "prague"
+ },
+ {
+ "population" : "1,153,615",
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "Копенгаген",
+ "aliases" : [
+ "копенгагене",
+ "Копенгагеном"
+ ],
+ "identifier" : "copenhagen"
+ },
+ {
+ "population" : "1,152,556",
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "София",
+ "aliases" : [
+ "Софией",
+ "Софию",
+ "Софии"
+ ],
+ "identifier" : "sofia"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "Триполи",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Порт-Харкорт",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "population" : "1,143,841",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "Хиросима",
+ "aliases" : [
+ "Хиросиму",
+ "Хиросимой",
+ "Хиросиме"
+ ],
+ "identifier" : "hiroshima"
+ },
+ {
+ "population" : "1,135,512",
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "Монтеррей",
+ "aliases" : [
+ "Монтеррее",
+ "Монтерреем"
+ ],
+ "identifier" : "monterrey"
+ },
+ {
+ "population" : "1,134,730",
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "Самара",
+ "aliases" : [
+ "Самару",
+ "Самарой",
+ "Самаре"
+ ],
+ "identifier" : "samara"
+ },
+ {
+ "population" : "1,129,281",
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "Омск",
+ "aliases" : [
+ "Омском",
+ "Омске"
+ ],
+ "identifier" : "omsk"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Бенин-Сити",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "Баку",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Майдугури",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "population" : "1,104,738",
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Казань",
+ "aliases" : [
+ "Казани",
+ "Казанью"
+ ],
+ "identifier" : "kazan"
+ },
+ {
+ "population" : "1,093,485",
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "Ереван",
+ "aliases" : [
+ "Ереване",
+ "Ереваном"
+ ],
+ "identifier" : "yerevan"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "Уагадугу",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "population" : "1,074,482",
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Ростов-на-Дону",
+ "aliases" : [
+ "Ростовом-на-Дону",
+ "Ростове-на-Дону"
+ ],
+ "identifier" : "rostov-na-donu"
+ },
+ {
+ "population" : "1,062,919",
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Челябинск",
+ "aliases" : [
+ "челябинском",
+ "челябинске"
+ ],
+ "identifier" : "chelyabinsk"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "Тбилиси",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "population" : "1,033,338",
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Уфа",
+ "aliases" : [
+ "Уфой",
+ "Уфу",
+ "Уфе"
+ ],
+ "identifier" : "ufa"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "Сан-Хосе",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "population" : "1,024,027",
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "Дублин",
+ "aliases" : [
+ "Дублином",
+ "Дублине"
+ ],
+ "identifier" : "dublin"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "Калгари",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "population" : "1,019,022",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "Брюссель",
+ "aliases" : [
+ "Брюсселем",
+ "Брюсселе"
+ ],
+ "identifier" : "brussels"
+ },
+ {
+ "population" : "1,011,417",
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "Волгоград",
+ "aliases" : [
+ "Волгоградом",
+ "Волгограде"
+ ],
+ "identifier" : "volgograd"
+ },
+ {
+ "population" : "1,001,558",
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Одесса",
+ "aliases" : [
+ "Одессой",
+ "Одессу",
+ "Одессе"
+ ],
+ "identifier" : "odessa"
+ },
+ {
+ "population" : "994,938",
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "Гватемала",
+ "aliases" : [
+ "Гватемалой",
+ "Гватемале",
+ "Гватемалу"
+ ],
+ "identifier" : "guatemala city"
+ },
+ {
+ "population" : "984,333",
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "Бирмингем",
+ "aliases" : [
+ "бирмингеме",
+ "Бирмингемом"
+ ],
+ "identifier" : "birmingham"
+ },
+ {
+ "population" : "982,419",
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Пермь",
+ "aliases" : [
+ "Перми",
+ "Пермью"
+ ],
+ "identifier" : "perm"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Зариа",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Порт-Элизабет",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "population" : "964,891",
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Фес",
+ "aliases" : [
+ "Фесе",
+ "Фесу",
+ "Фесом"
+ ],
+ "identifier" : "fes"
+ },
+ {
+ "population" : "963,395",
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Кёльн",
+ "aliases" : [
+ "Кёльне",
+ "Кёльном"
+ ],
+ "identifier" : "cologne"
+ },
+ {
+ "population" : "959,470",
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Неаполь",
+ "aliases" : [
+ "Неаполем",
+ "Неаполе"
+ ],
+ "identifier" : "naples"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "Масейо",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "population" : "939,524",
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "Монровия",
+ "aliases" : [
+ "Монровии",
+ "Монровию",
+ "Монровией"
+ ],
+ "identifier" : "monrovia"
+ },
+ {
+ "population" : "937,700",
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "Кингстон",
+ "aliases" : [
+ "Кингстоне",
+ "Кингстоном"
+ ],
+ "identifier" : "kingston"
+ },
+ {
+ "population" : "931,830",
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "Остин",
+ "aliases" : [
+ "Остине",
+ "Остином"
+ ],
+ "identifier" : "austin"
+ },
+ {
+ "population" : "927,200",
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "Красноярск",
+ "aliases" : [
+ "красноярском",
+ "красноярске"
+ ],
+ "identifier" : "krasnoyarsk"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Сале",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "population" : "900,000",
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Кум",
+ "aliases" : [
+ "Кумом",
+ "Куме"
+ ],
+ "identifier" : "qom"
+ },
+ {
+ "population" : "900,000",
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "Бишкек",
+ "aliases" : [
+ "Бишкеке",
+ "Бишкеком"
+ ],
+ "identifier" : "bishkek"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "Абобо",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "population" : "897,560",
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Аба",
+ "aliases" : [
+ "Абе",
+ "Абу",
+ "Абой"
+ ],
+ "identifier" : "aba"
+ },
+ {
+ "population" : "876,884",
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "Мендоса",
+ "aliases" : [
+ "Мендосой",
+ "Мендосу",
+ "Мендосе"
+ ],
+ "identifier" : "mendoza"
+ },
+ {
+ "population" : "874,761",
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "Мбужи-Майи",
+ "aliases" : [
+ "Мбуджи-Майи"
+ ],
+ "identifier" : "mbuji-mayi"
+ },
+ {
+ "population" : "874,062",
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "Пикин",
+ "aliases" : [
+ "Пикине",
+ "Пикином"
+ ],
+ "identifier" : "pikine"
+ },
+ {
+ "population" : "870,456",
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Турин",
+ "aliases" : [
+ "Турином",
+ "Турине"
+ ],
+ "identifier" : "turin"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Сан-Франциско",
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "population" : "864,122",
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "Ливерпуль",
+ "aliases" : [
+ "Ливерпуле",
+ "Ливерпулем"
+ ],
+ "identifier" : "liverpool"
+ },
+ {
+ "population" : "863,725",
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "Саратов",
+ "aliases" : [
+ "Саратове",
+ "Саратовом"
+ ],
+ "identifier" : "saratov"
+ },
+ {
+ "population" : "850,848",
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "Тегусигальпа",
+ "aliases" : [
+ "Тегусигальпе",
+ "Тегусигальпой",
+ "Тегусигальпу"
+ ],
+ "identifier" : "tegucigalpa"
+ },
+ {
+ "population" : "848,752",
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Воронеж",
+ "aliases" : [
+ "Воронеже",
+ "Воронежем"
+ ],
+ "identifier" : "voronezh"
+ },
+ {
+ "population" : "844,818",
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "Улан-Батор",
+ "aliases" : [
+ "Улан-Баторе",
+ "Улан-Батором"
+ ],
+ "identifier" : "ulan bator"
+ },
+ {
+ "population" : "841,145",
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Ахваз",
+ "aliases" : [
+ "Ахвазом",
+ "Ахвазе"
+ ],
+ "identifier" : "ahvaz"
+ },
+ {
+ "population" : "839,296",
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Марракеш",
+ "aliases" : [
+ "Марракеше",
+ "Марракешем"
+ ],
+ "identifier" : "marrakesh"
+ },
+ {
+ "population" : "834,881",
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "Денпасар",
+ "aliases" : [
+ "Денпасаре",
+ "Денпасаром"
+ ],
+ "identifier" : "denpasar"
+ },
+ {
+ "population" : "833,319",
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "Форт-Уэрт",
+ "aliases" : [
+ "Форт-Уэртом",
+ "Форт-Уэрте"
+ ],
+ "identifier" : "fort worth"
+ },
+ {
+ "population" : "829,718",
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "Индианаполис",
+ "aliases" : [
+ "Индианаполисе",
+ "Индианаполисом"
+ ],
+ "identifier" : "indianapolis"
+ },
+ {
+ "population" : "816,824",
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Джос",
+ "aliases" : [
+ "Джосом",
+ "Джосе"
+ ],
+ "identifier" : "jos"
+ },
+ {
+ "population" : "814,208",
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "Валенсия",
+ "aliases" : [
+ "Валенсию",
+ "Валенсией",
+ "Валенсии"
+ ],
+ "identifier" : "valencia"
+ },
+ {
+ "population" : "814,192",
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Илорин",
+ "aliases" : [
+ "Илорином",
+ "Илорине"
+ ],
+ "identifier" : "ilorin"
+ },
+ {
+ "population" : "215,178",
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Ла-Пас",
+ "aliases" : [
+ "Ла-Пасе",
+ "Ла-Пасом"
+ ],
+ "identifier" : "la paz"
+ },
+ {
+ "population" : "812,129",
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "Оттава",
+ "aliases" : [
+ "Оттаву",
+ "Оттаве",
+ "Оттавой"
+ ],
+ "identifier" : "ottawa"
+ },
+ {
+ "population" : "802,639",
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "Фритаун",
+ "aliases" : [
+ "Фритауном",
+ " Фритауне"
+ ],
+ "identifier" : "freetown"
+ },
+ {
+ "population" : "801,000",
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "Иерусалим",
+ "aliases" : [
+ "Иерусалиме",
+ "Иерусалимом"
+ ],
+ "identifier" : "jerusalem"
+ },
+ {
+ "population" : "797,000",
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "Маскат",
+ "aliases" : [
+ "Маскате",
+ "Маскатом"
+ ],
+ "identifier" : "muscat"
+ },
+ {
+ "population" : "794,811",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Марсель",
+ "aliases" : [
+ "Марселем",
+ "Марселе"
+ ],
+ "identifier" : "marseille"
+ },
+ {
+ "population" : "787,878",
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Пасрагад",
+ "aliases" : [
+ "Пасрагадом",
+ "Пасрагаде"
+ ],
+ "identifier" : "pasragad branch"
+ },
+ {
+ "population" : "786,499",
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Бумердес",
+ "aliases" : [
+ "Бумердесом",
+ "Бумердасе"
+ ],
+ "identifier" : "boumerdas"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "Сан-Мигель-де-Тукуман",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "population" : "777,615",
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "Мерида",
+ "aliases" : [
+ "Мериду",
+ "Меридой",
+ "Мериде"
+ ],
+ "identifier" : "merida"
+ },
+ {
+ "population" : "774,235",
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "Ниамей",
+ "aliases" : [
+ "Ниамее",
+ "Ниамеем"
+ ],
+ "identifier" : "niamey"
+ },
+ {
+ "population" : "766,706",
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Кахриз",
+ "aliases" : [
+ "Каризе",
+ "Каризом"
+ ],
+ "identifier" : "kahriz"
+ },
+ {
+ "population" : "755,050",
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "Краков",
+ "aliases" : [
+ "Кракове",
+ "Краковом"
+ ],
+ "identifier" : "krakow"
+ },
+ {
+ "population" : "752,493",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "Дананг",
+ "aliases" : [
+ "Дананге",
+ "Данангом"
+ ],
+ "identifier" : "da nang"
+ },
+ {
+ "population" : "750,845",
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Питермарицбург",
+ "aliases" : [
+ "Питермарицбургом",
+ "Питермарицбурге"
+ ],
+ "identifier" : "pietermaritzburg"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "Ломе",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "Кигали",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "population" : "742,572",
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "Рига",
+ "aliases" : [
+ "Риге",
+ "Ригу",
+ "Ригой"
+ ],
+ "identifier" : "riga"
+ },
+ {
+ "population" : "741,636",
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Амстердам",
+ "aliases" : [
+ "Амстердамом",
+ "Амстердаме"
+ ],
+ "identifier" : "amsterdam"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Ойо",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "population" : "729,977",
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "Ноттингем",
+ "aliases" : [
+ "Ноттингемом",
+ "Ноттингеме"
+ ],
+ "identifier" : "nottingham"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "Кампу-Гранди",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "population" : "727,700",
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "Ашхабад",
+ "aliases" : [
+ "Ашхабаде",
+ "Ашхабадом"
+ ],
+ "identifier" : "ashgabat"
+ },
+ {
+ "population" : "721,081",
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "Нджамена",
+ "aliases" : [
+ "Нджамену",
+ "Нджаменой",
+ "Нджамене"
+ ],
+ "identifier" : "n'djamena"
+ },
+ {
+ "population" : "717,803",
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "Львов",
+ "aliases" : [
+ " Львовом",
+ " Львове"
+ ],
+ "identifier" : "lviv"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "Эрмосильо",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "population" : "712,391",
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "Эдмонтон",
+ "aliases" : [
+ "Эдмонтоном",
+ "Эдмонтоне"
+ ],
+ "identifier" : "edmonton"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "Булавайо",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "population" : "698,966",
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "Загреб",
+ "aliases" : [
+ "Загребе",
+ "Загребом"
+ ],
+ "identifier" : "zagreb"
+ },
+ {
+ "population" : "698,310",
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Агадир",
+ "aliases" : [
+ "Агадире",
+ "Агадиром"
+ ],
+ "identifier" : "agadir"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "Сараево",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Энугу",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "population" : "688,356",
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "Танжер",
+ "aliases" : [
+ "Танжере",
+ "Танжером"
+ ],
+ "identifier" : "tangier"
+ },
+ {
+ "population" : "685,368",
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "Шеффилж",
+ "aliases" : [
+ "Шеффилде",
+ "Шеффилд",
+ "Шеффилдом"
+ ],
+ "identifier" : "sheffield"
+ },
+ {
+ "population" : "684,451",
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Сиэтл",
+ "aliases" : [
+ "Cиэтле",
+ "Сиэтлом"
+ ],
+ "identifier" : "seattle"
+ },
+ {
+ "population" : "682,545",
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "Денвер",
+ "aliases" : [
+ "Денвере",
+ "Денвером"
+ ],
+ "identifier" : "denver"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "Эль-Пасо",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "Душанбе",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "population" : "677,116",
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "Детройт",
+ "aliases" : [
+ "Детройтом",
+ "Детройте"
+ ],
+ "identifier" : "detroit"
+ },
+ {
+ "population" : "675,773",
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Кульякан",
+ "aliases" : [
+ "Кульакане",
+ "Кулиакан",
+ "Кульяканом"
+ ],
+ "identifier" : "culiacan"
+ },
+ {
+ "population" : "675,422",
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "Матола",
+ "aliases" : [
+ "Матолу",
+ "Матоле",
+ "Матолой"
+ ],
+ "identifier" : "matola"
+ },
+ {
+ "population" : "667,137",
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "Бостон",
+ "aliases" : [
+ "Бостоне",
+ "Бостоном"
+ ],
+ "identifier" : "boston"
+ },
+ {
+ "population" : "664,046",
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "Афины",
+ "aliases" : [
+ "Афинах",
+ "Афинами"
+ ],
+ "identifier" : "athens"
+ },
+ {
+ "population" : "661,400",
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "Нуакшот",
+ "aliases" : [
+ "Нуакшоте",
+ "Нуакшотом"
+ ],
+ "identifier" : "nouakchott"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "Пуэнт-Нуар",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "population" : "655,770",
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "Мемфис",
+ "aliases" : [
+ "Мемфисом",
+ "Мемфисе"
+ ],
+ "identifier" : "memphis"
+ },
+ {
+ "population" : "650,000",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Франкфурт-на-Майне",
+ "aliases" : [
+ "Франкфуртом-на-Майне",
+ " Франкфурте-на-Майне"
+ ],
+ "identifier" : "frankfurt am main"
+ },
+ {
+ "population" : "649,851",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Краснодар",
+ "aliases" : [
+ "Краснодаре",
+ "Краснодаром"
+ ],
+ "identifier" : "krasnodar"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Палермо",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "Коломбо",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "Лилонгве",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "population" : "645,984",
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Оран",
+ "aliases" : [
+ "Ораном",
+ "Оране"
+ ],
+ "identifier" : "oran"
+ },
+ {
+ "population" : "635,994",
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "Кишинев",
+ "aliases" : [
+ "Кишиневе",
+ "Кишиневом"
+ ],
+ "identifier" : "chisinau"
+ },
+ {
+ "population" : "634,332",
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "Тебесса",
+ "aliases" : [
+ "Тебессой",
+ "Тебессу",
+ "Тебессе"
+ ],
+ "identifier" : "tebessa"
+ },
+ {
+ "population" : "632,309",
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "Портленд",
+ "aliases" : [
+ "Портлендом",
+ "Портленде"
+ ],
+ "identifier" : "portland"
+ },
+ {
+ "population" : "632,063",
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "Виннипег",
+ "aliases" : [
+ "Виннипегом",
+ "Виннипеге"
+ ],
+ "identifier" : "winnipeg"
+ },
+ {
+ "population" : "631,346",
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "Оклахома",
+ "aliases" : [
+ "Оклахому",
+ "Оклахоме",
+ "Оклахомой"
+ ],
+ "identifier" : "oklahoma city"
+ },
+ {
+ "population" : "628,306",
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "Канкун",
+ "aliases" : [
+ "Канкуном",
+ "Канкуне"
+ ],
+ "identifier" : "cancun"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "Джибути",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "population" : "621,849",
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "Балтимор",
+ "aliases" : [
+ "Балтимором",
+ "Балтиморе"
+ ],
+ "identifier" : "baltimore"
+ },
+ {
+ "population" : "621,100",
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Керманшах",
+ "aliases" : [
+ "Керманшахом",
+ "Керманшахе"
+ ],
+ "identifier" : "kermanshah"
+ },
+ {
+ "population" : "617,280",
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "Бристоль",
+ "aliases" : [
+ "Бристоле",
+ "Бристолем"
+ ],
+ "identifier" : "bristol"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "Бенони",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "Абу-Даби",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "population" : "601,723",
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "Вашингтон",
+ "aliases" : [
+ "Вашингтоном",
+ "Вашингтоне"
+ ],
+ "identifier" : "washington"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "Милуоки",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "population" : "600,000",
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "Ванкувер",
+ "aliases" : [
+ "Ванкувером",
+ "Ванкувере"
+ ],
+ "identifier" : "vancouver"
+ },
+ {
+ "population" : "599,579",
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "Барнаул",
+ "aliases" : [
+ "Барнаулом",
+ "Барнауле"
+ ],
+ "identifier" : "barnaul"
+ },
+ {
+ "population" : "598,199",
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Роттердам",
+ "aliases" : [
+ "Роттердамом",
+ "Роттердаме"
+ ],
+ "identifier" : "rotterdam"
+ },
+ {
+ "population" : "594,590",
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Решт",
+ "aliases" : [
+ "Реште"
+ ],
+ "identifier" : "rasht"
+ },
+ {
+ "population" : "593,100",
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Абеокута",
+ "aliases" : [
+ "Абеокуту",
+ "Абеокуте",
+ "Абеокутой"
+ ],
+ "identifier" : "abeokuta"
+ },
+ {
+ "population" : "593,085",
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Эссен",
+ "aliases" : [
+ "Эссене",
+ "Эссеном"
+ ],
+ "identifier" : "essen"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "Глазго",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Голд-Кост",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "population" : "590,400",
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "Абуджа",
+ "aliases" : [
+ "Абуджей",
+ "Абудже",
+ "Абуджу"
+ ],
+ "identifier" : "abuja"
+ },
+ {
+ "population" : "589,793",
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Штутгарт",
+ "aliases" : [
+ "Штутгартом",
+ "Штутгарте"
+ ],
+ "identifier" : "stuttgart"
+ },
+ {
+ "population" : "588,462",
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дортмунд",
+ "aliases" : [
+ "Дортмунде",
+ "Дортмундом"
+ ],
+ "identifier" : "dortmund"
+ },
+ {
+ "population" : "587,022",
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "Владивосток",
+ "aliases" : [
+ " Владивостоке",
+ "Владивостоком"
+ ],
+ "identifier" : "vladivostok"
+ },
+ {
+ "population" : "586,695",
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "Иркутск",
+ "aliases" : [
+ "Иркутске",
+ "Иркутском"
+ ],
+ "identifier" : "irkutsk"
+ },
+ {
+ "population" : "584,877",
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "Блантайр",
+ "aliases" : [
+ "Блантайре",
+ "Блантайром"
+ ],
+ "identifier" : "blantyre"
+ },
+ {
+ "population" : "580,223",
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Генуя",
+ "aliases" : [
+ "Генуей",
+ "Генуе",
+ "Геную"
+ ],
+ "identifier" : "genoa"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "Осло",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "population" : "578,156",
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "Либревиль",
+ "aliases" : [
+ "Либревилем",
+ "Либревиле"
+ ],
+ "identifier" : "libreville"
+ },
+ {
+ "population" : "577,514",
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Керман",
+ "aliases" : [
+ "Керманом",
+ "Кермане"
+ ],
+ "identifier" : "kerman"
+ },
+ {
+ "population" : "573,057",
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дюссельдорф",
+ "aliases" : [
+ "Дюссельдорфом",
+ "Дюссельдорфе"
+ ],
+ "identifier" : "duesseldorf"
+ },
+ {
+ "population" : "570,407",
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "Кучинг",
+ "aliases" : [
+ "Кучинге",
+ "Кучингом"
+ ],
+ "identifier" : "kuching"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "Альбукерке",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "Хельсинки",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "population" : "550,602",
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "Аден",
+ "aliases" : [
+ "Адене",
+ "Аденом"
+ ],
+ "identifier" : "aden"
+ },
+ {
+ "population" : "550,204",
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Оренбург",
+ "aliases" : [
+ "Оренбургом",
+ "Оренбурге"
+ ],
+ "identifier" : "orenburg"
+ },
+ {
+ "population" : "550,000",
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "Приштина",
+ "aliases" : [
+ "Приштину",
+ "Приштиной",
+ "Приштине"
+ ],
+ "identifier" : "pristina"
+ },
+ {
+ "population" : "546,501",
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Бремен",
+ "aliases" : [
+ "Бременом",
+ "Бремене"
+ ],
+ "identifier" : "bremen"
+ },
+ {
+ "population" : "542,366",
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "Вильнюс",
+ "aliases" : [
+ "Вильнюсе",
+ "Вильнюсом"
+ ],
+ "identifier" : "vilnius"
+ },
+ {
+ "population" : "530,852",
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "Нэшвилл",
+ "aliases" : [
+ "Нэшвиллом",
+ "Нэшвилле"
+ ],
+ "identifier" : "nashville"
+ },
+ {
+ "population" : "528,595",
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "Квебек",
+ "aliases" : [
+ "Квебеком",
+ "Квебеке"
+ ],
+ "identifier" : "quebec"
+ },
+ {
+ "population" : "525,990",
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "Сан-Сальвадор",
+ "aliases" : [
+ "Сан-Сальвадоре",
+ "Сан-Сальвадором"
+ ],
+ "identifier" : "san salvador"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "Макао",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "population" : "519,119",
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "Тюмень",
+ "aliases" : [
+ "Тюменью",
+ "Тюмени"
+ ],
+ "identifier" : "tyumen"
+ },
+ {
+ "population" : "517,802",
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "Лиссабон",
+ "aliases" : [
+ "Лиссабоне",
+ "Лиссабоном"
+ ],
+ "identifier" : "lisbon"
+ },
+ {
+ "population" : "515,140",
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Ганновер",
+ "aliases" : [
+ "Ганновере",
+ "Ганновером"
+ ],
+ "identifier" : "hannover"
+ },
+ {
+ "population" : "512,686",
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "Сальта",
+ "aliases" : [
+ "Сальту",
+ "Сальтой",
+ "Сальте"
+ ],
+ "identifier" : "salta"
+ },
+ {
+ "population" : "508,916",
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "Лестер",
+ "aliases" : [
+ "Лестере",
+ "Лестером"
+ ],
+ "identifier" : "leicester"
+ },
+ {
+ "population" : "504,971",
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Лейпциг",
+ "aliases" : [
+ "Лейпцигом",
+ "Лейпциге"
+ ],
+ "identifier" : "leipzig"
+ },
+ {
+ "population" : "504,358",
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дуйсбург",
+ "aliases" : [
+ "Дуйсбургом",
+ "Дуйсбурге"
+ ],
+ "identifier" : "duisburg"
+ },
+ {
+ "population" : "502,533",
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "Астрахань",
+ "aliases" : [
+ "Астраханью",
+ "Астрахани"
+ ],
+ "identifier" : "astrakhan"
+ },
+ {
+ "population" : "499,237",
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Нюрнберг",
+ "aliases" : [
+ "Нюрнберге",
+ "Нюрнбергом"
+ ],
+ "identifier" : "nuernberg"
+ },
+ {
+ "population" : "486,854",
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "Дрезден",
+ "aliases" : [
+ "Дрездене",
+ "Дрезденом"
+ ],
+ "identifier" : "dresden"
+ },
+ {
+ "population" : "485,519",
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "Томск",
+ "aliases" : [
+ "Томске",
+ "Томском"
+ ],
+ "identifier" : "tomsk"
+ },
+ {
+ "population" : "477,905",
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "Йезд",
+ "aliases" : [
+ "Йезде",
+ "Йездом"
+ ],
+ "identifier" : "yazd"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "Канзас-Сити",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "population" : "474,889",
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "Скопье",
+ "aliases" : [
+ " Скопье"
+ ],
+ "identifier" : "skopje"
+ },
+ {
+ "population" : "474,292",
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Гаага",
+ "aliases" : [
+ "Гаагой",
+ "Гааге",
+ "Гаагу"
+ ],
+ "identifier" : "the hague"
+ },
+ {
+ "population" : "472,317",
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Лион",
+ "aliases" : [
+ "Лионом",
+ "Лионе"
+ ],
+ "identifier" : "lyon"
+ },
+ {
+ "population" : "464,990",
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "Эдинбург",
+ "aliases" : [
+ "Эдинбургом",
+ "Эдинбурге"
+ ],
+ "identifier" : "edinburgh"
+ },
+ {
+ "population" : "459,805",
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "Антверпен",
+ "aliases" : [
+ "Антверпене",
+ "Антверпеном"
+ ],
+ "identifier" : "antwerpen"
+ },
+ {
+ "population" : "455,173",
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "Понтианак",
+ "aliases" : [
+ "Понтианаком",
+ "Понтианаке"
+ ],
+ "identifier" : "pontianak"
+ },
+ {
+ "population" : "455,123",
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "Лидс",
+ "aliases" : [
+ "Лидсом",
+ "Лидсе"
+ ],
+ "identifier" : "leeds"
+ },
+ {
+ "population" : "447,287",
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "Кардифф",
+ "aliases" : [
+ "Кардиффе",
+ "Кардиффом"
+ ],
+ "identifier" : "cardiff"
+ },
+ {
+ "population" : "418,140",
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "Сан-Хуан",
+ "aliases" : [
+ "Сан-Хуане",
+ "Сан-Хуаном"
+ ],
+ "identifier" : "san juan"
+ },
+ {
+ "population" : "443,885",
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "Омаха",
+ "aliases" : [
+ "Омаху",
+ "Омахе",
+ "Омахой"
+ ],
+ "identifier" : "omaha"
+ },
+ {
+ "population" : "442,156",
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "Карфур",
+ "aliases" : [
+ "Карфуром",
+ "Карфуре"
+ ],
+ "identifier" : "carrefour"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "Майами",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "population" : "434,954",
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "Калининград",
+ "aliases" : [
+ "Калининградом",
+ "Калининграде"
+ ],
+ "identifier" : "kaliningrad"
+ },
+ {
+ "population" : "433,055",
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Тулуза",
+ "aliases" : [
+ "Тулузой",
+ "Тулузу",
+ "Тулузе"
+ ],
+ "identifier" : "toulouse"
+ },
+ {
+ "population" : "432,892",
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "Тель-Авив",
+ "aliases" : [
+ "Тель-Авивом",
+ "Тель-Авиве"
+ ],
+ "identifier" : "tel aviv"
+ },
+ {
+ "population" : "428,304",
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "Восточный Иерусалим",
+ "aliases" : [
+ "Восточном Иерусалиме",
+ "Восточным Иерусалимом"
+ ],
+ "identifier" : "east jerusalem"
+ },
+ {
+ "population" : "423,737",
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "Братислава",
+ "aliases" : [
+ "Братиславе",
+ "Братиславу",
+ "Братиславой"
+ ],
+ "identifier" : "bratislava"
+ },
+ {
+ "population" : "417,910",
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Окленд",
+ "aliases" : [
+ "Окленде",
+ "Оклендом"
+ ],
+ "identifier" : "auckland"
+ },
+ {
+ "population" : "416,263",
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "Севастополь",
+ "aliases" : [
+ "Севастополе",
+ "Севастополем"
+ ],
+ "identifier" : "sevastopol"
+ },
+ {
+ "population" : "410,939",
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "Миннеаполис",
+ "aliases" : [
+ "Миннеаполисе",
+ "Миннеаполисом"
+ ],
+ "identifier" : "minneapolis"
+ },
+ {
+ "population" : "410,000",
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "Газа",
+ "aliases" : [
+ "Газе",
+ "Газой",
+ "Газу"
+ ],
+ "identifier" : "gaza"
+ },
+ {
+ "population" : "409,431",
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Курск",
+ "aliases" : [
+ "Курске",
+ "Курском"
+ ],
+ "identifier" : "kursk"
+ },
+ {
+ "population" : "408,168",
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "Панама",
+ "aliases" : [
+ "Панаму",
+ "Панамой",
+ "Панаме"
+ ],
+ "identifier" : "panama"
+ },
+ {
+ "population" : "403,505",
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "Талса",
+ "aliases" : [
+ "Талсой",
+ "Талсу",
+ "Талсе"
+ ],
+ "identifier" : "tulsa"
+ },
+ {
+ "population" : "400,212",
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Тверь",
+ "aliases" : [
+ "Твери",
+ "Тверью"
+ ],
+ "identifier" : "tver"
+ },
+ {
+ "population" : "395,515",
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "Манчестер",
+ "aliases" : [
+ "Манчестере",
+ "Манчестером"
+ ],
+ "identifier" : "manchester"
+ },
+ {
+ "population" : "394,024",
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "Таллин",
+ "aliases" : [
+ "Таллинном",
+ "Таллине"
+ ],
+ "identifier" : "tallinn"
+ },
+ {
+ "population" : "391,190",
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "Кандагар",
+ "aliases" : [
+ "Кандагаром",
+ "Кандагаре"
+ ],
+ "identifier" : "kandahar"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "Уичито",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "population" : "389,617",
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "Новый Орлеан",
+ "aliases" : [
+ "Новым Орлеаном",
+ "Новом Орлеане"
+ ],
+ "identifier" : "new orleans"
+ },
+ {
+ "population" : "381,900",
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Веллингтон",
+ "aliases" : [
+ "Веллингтоне",
+ "Веллингтоном"
+ ],
+ "identifier" : "wellington"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "Лас-Пальмас-де-Гран-Канария",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "population" : "381,583",
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Масатлан",
+ "aliases" : [
+ "Масатлане",
+ "Мазатлан",
+ "Масатланом"
+ ],
+ "identifier" : "mazatlan"
+ },
+ {
+ "population" : "374,801",
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "Тирана",
+ "aliases" : [
+ "Тирану",
+ "Тиране",
+ "Тираной"
+ ],
+ "identifier" : "tirana"
+ },
+ {
+ "population" : "374,643",
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "Каунас",
+ "aliases" : [
+ "Каунасе",
+ "Каунасом"
+ ],
+ "identifier" : "kaunas"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "Гонолулу",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "population" : "367,752",
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Канберра",
+ "aliases" : [
+ "Канберру",
+ "Канберре",
+ "Канберрой"
+ ],
+ "identifier" : "canberra"
+ },
+ {
+ "population" : "366,133",
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Болонья",
+ "aliases" : [
+ "Болонью",
+ "Болоньей",
+ "Болонье"
+ ],
+ "identifier" : "bologna"
+ },
+ {
+ "population" : "363,926",
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Крайстчерч",
+ "aliases" : [
+ "Крайстчерче",
+ "Крайстчерчем"
+ ],
+ "identifier" : "christchurch"
+ },
+ {
+ "population" : "359,111",
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "Галифакс",
+ "aliases" : [
+ "Галифаксом",
+ "Галифаксе"
+ ],
+ "identifier" : "halifax"
+ },
+ {
+ "population" : "355,596",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "Амбон",
+ "aliases" : [
+ "Амбоном",
+ "Амбоне"
+ ],
+ "identifier" : "ambon"
+ },
+ {
+ "population" : "349,296",
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Флоренция",
+ "aliases" : [
+ " Флоренции",
+ "Флоренцию",
+ "Флоренцией"
+ ],
+ "identifier" : "florence"
+ },
+ {
+ "population" : "344,939",
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "Доха",
+ "aliases" : [
+ "Дохой",
+ "Дохе",
+ "Доху"
+ ],
+ "identifier" : "doha"
+ },
+ {
+ "population" : "341,730",
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Цюрих",
+ "aliases" : [
+ "Цюрихом",
+ "Цюрихе"
+ ],
+ "identifier" : "zurich"
+ },
+ {
+ "population" : "338,620",
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Ницца",
+ "aliases" : [
+ "Ниццу",
+ "Ницце",
+ "Ниццей"
+ ],
+ "identifier" : "nice"
+ },
+ {
+ "population" : "336,460",
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "Симферополь",
+ "aliases" : [
+ "Симферополе",
+ "Симферополем"
+ ],
+ "identifier" : "simferopol"
+ },
+ {
+ "population" : "332,863",
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Тепик",
+ "aliases" : [
+ "Тепиком",
+ "Тепике"
+ ],
+ "identifier" : "tepic"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Сочи",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "population" : "320,991",
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Смоленск",
+ "aliases" : [
+ "Смоленске",
+ " Смоленском"
+ ],
+ "identifier" : "smolensk"
+ },
+ {
+ "population" : "319,366",
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "Самарканд",
+ "aliases" : [
+ "Самарканде",
+ "Самаркандом"
+ ],
+ "identifier" : "samarkand"
+ },
+ {
+ "population" : "319,263",
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Мурманск",
+ "aliases" : [
+ "Мурманском",
+ "Мурманске"
+ ],
+ "identifier" : "murmansk"
+ },
+ {
+ "population" : "317,370",
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Владикавказ",
+ "aliases" : [
+ "Владикавказом",
+ " Владикавказе"
+ ],
+ "identifier" : "vladikavkaz"
+ },
+ {
+ "population" : "308,500",
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "Чита",
+ "aliases" : [
+ "Читой",
+ "Читу",
+ "Чите"
+ ],
+ "identifier" : "chita"
+ },
+ {
+ "population" : "308,308",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Ньюкасл",
+ "aliases" : [
+ "Ньюкаслом",
+ "Ньюкасле"
+ ],
+ "identifier" : "newcastle"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "Порто-Велью",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "Сан-Сальвадор-де-Жужуй",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "population" : "304,391",
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "Pittsburgh",
+ "aliases" : [
+ "Питтсбург",
+ "Питтсбурге",
+ "Питтсбургом"
+ ],
+ "identifier" : "pittsburgh"
+ },
+ {
+ "population" : "144,899",
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Брест",
+ "aliases" : [
+ "Брестом",
+ "Бресте"
+ ],
+ "identifier" : "brest"
+ },
+ {
+ "population" : "298,695",
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "Анкоридж",
+ "aliases" : [
+ "Анкориджем",
+ "Анкоридже"
+ ],
+ "identifier" : "anchorage"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "Цинциннати",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "population" : "292,190",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "Вуллонгонг",
+ "aliases" : [
+ "Вуллонгонгом",
+ "Вуллонгонге"
+ ],
+ "identifier" : "wollongong"
+ },
+ {
+ "population" : "290,927",
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Катания",
+ "aliases" : [
+ "Катании",
+ "Катанию",
+ "Катанией"
+ ],
+ "identifier" : "catania"
+ },
+ {
+ "population" : "290,529",
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "Утрехт",
+ "aliases" : [
+ "Утрехте",
+ "Утрехтом"
+ ],
+ "identifier" : "utrecht"
+ },
+ {
+ "population" : "289,625",
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "Виктория",
+ "aliases" : [
+ "Виктории",
+ "Викторию",
+ "Викторией"
+ ],
+ "identifier" : "victoria"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "Порт-Морсби",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Логан-Сити",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Бари",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Нант",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "population" : "274,845",
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Страсбург",
+ "aliases" : [
+ "Страсбурге",
+ " Страсбургом"
+ ],
+ "identifier" : "strasbourg"
+ },
+ {
+ "population" : "274,770",
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "Белфаст",
+ "aliases" : [
+ "Белфасте",
+ "Белфастом"
+ ],
+ "identifier" : "belfast"
+ },
+ {
+ "population" : "272,220",
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "Любляна",
+ "aliases" : [
+ "Любляне",
+ "Любляну",
+ "Любляной"
+ ],
+ "identifier" : "ljubljana"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "Орландо",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "population" : "265,025",
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Петрозаводск",
+ "aliases" : [
+ "Петрозаводске",
+ "Петрозаводском"
+ ],
+ "identifier" : "petrozavodsk"
+ },
+ {
+ "population" : "260,203",
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "Плимут",
+ "aliases" : [
+ "Плимуте",
+ "Плимутом"
+ ],
+ "identifier" : "plymouth"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "Риу-Бранку",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "Лос-Мочис",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "Порту",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "population" : "248,951",
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "Мэдисон",
+ "aliases" : [
+ "Мэдисоне",
+ "Мэдисоном"
+ ],
+ "identifier" : "madison"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Монпелье",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "population" : "237,551",
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "Орхус",
+ "aliases" : [
+ "Орхусом",
+ "Орхусе"
+ ],
+ "identifier" : "arhus"
+ },
+ {
+ "population" : "235,600",
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "Якутск",
+ "aliases" : [
+ "Якутске",
+ "Якутском"
+ ],
+ "identifier" : "yakutsk"
+ },
+ {
+ "population" : "235,017",
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "Джорджтаун",
+ "aliases" : [
+ "Джорджтауном",
+ "Джорджтауне"
+ ],
+ "identifier" : "georgetown"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Бордо",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "population" : "231,493",
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "Гент",
+ "aliases" : [
+ "Генте",
+ "Гентом"
+ ],
+ "identifier" : "gent"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "Батон-Руж",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "population" : "228,328",
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Лилль",
+ "aliases" : [
+ "Лиллем",
+ "Лилле"
+ ],
+ "identifier" : "lille"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "Нассау",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "population" : "226,034",
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "Джилонг",
+ "aliases" : [
+ "Джилонгом",
+ "Джилонге"
+ ],
+ "identifier" : "geelong"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "Парамарибо",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "Санта-Крус-де-Тенерифе",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "population" : "222,326",
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Грац",
+ "aliases" : [
+ "Граце",
+ "Грацем"
+ ],
+ "identifier" : "graz"
+ },
+ {
+ "population" : "219,948",
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Мессина",
+ "aliases" : [
+ "Мессиной",
+ "Мессину",
+ "Мессине"
+ ],
+ "identifier" : "messina"
+ },
+ {
+ "population" : "219,103",
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Верона",
+ "aliases" : [
+ "Верону",
+ "Вероне",
+ "Вероной"
+ ],
+ "identifier" : "verona"
+ },
+ {
+ "population" : "216,656",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "Хобарт",
+ "aliases" : [
+ "Хобартом",
+ "Хобарте"
+ ],
+ "identifier" : "hobart"
+ },
+ {
+ "population" : "215,400",
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "Нови-Сад",
+ "aliases" : [
+ "Нови-Садом",
+ "Нови-Саде"
+ ],
+ "identifier" : "novi sad"
+ },
+ {
+ "population" : "213,585",
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "Берген",
+ "aliases" : [
+ "Бергене",
+ "Бергеном"
+ ],
+ "identifier" : "bergen"
+ },
+ {
+ "population" : "210,330",
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "Де-Мойн",
+ "aliases" : [
+ "Де-Мойне",
+ "Де-Мойном"
+ ],
+ "identifier" : "des moines"
+ },
+ {
+ "population" : "210,000",
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "Костанай",
+ "aliases" : [
+ "Костанае",
+ "Костанаем"
+ ],
+ "identifier" : "kostanay"
+ },
+ {
+ "population" : "204,846",
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Линц",
+ "aliases" : [
+ "Линцем",
+ "Линце"
+ ],
+ "identifier" : "linz"
+ },
+ {
+ "population" : "203,725",
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Падуя",
+ "aliases" : [
+ "Падуе",
+ "Падую"
+ ],
+ "identifier" : "padova"
+ },
+ {
+ "population" : "201,990",
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "Псков",
+ "aliases" : [
+ "Псковом",
+ "Пскове"
+ ],
+ "identifier" : "pskov"
+ },
+ {
+ "population" : "200,952",
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "Чианмай",
+ "aliases" : [
+ "Чиангмаем",
+ "Чиангмае",
+ "Чиангмай"
+ ],
+ "identifier" : "chiang mai"
+ },
+ {
+ "population" : "200,452",
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "Никосия",
+ "aliases" : [
+ "Никосии",
+ "Никосией",
+ "Никосию"
+ ],
+ "identifier" : "nicosia"
+ },
+ {
+ "population" : "200,000",
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "Улальск",
+ "aliases" : [
+ "Уральск",
+ "Уральском",
+ "Уральске"
+ ],
+ "identifier" : "oral"
+ },
+ {
+ "population" : "200,000",
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "Ош",
+ "aliases" : [
+ "Ошем",
+ "Оше"
+ ],
+ "identifier" : "osh"
+ },
+ {
+ "population" : "198,958",
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "Саскатун",
+ "aliases" : [
+ "Саскатуном",
+ "Саскатуне"
+ ],
+ "identifier" : "saskatoon"
+ },
+ {
+ "population" : "197,992",
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "Литл-Рок",
+ "aliases" : [
+ "Литл-Роком",
+ "Литл-Роке"
+ ],
+ "identifier" : "little rock"
+ },
+ {
+ "population" : "196,731",
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "Вьентьян",
+ "aliases" : [
+ "Вьентьяном",
+ " Вьентьяне"
+ ],
+ "identifier" : "vientiane"
+ },
+ {
+ "population" : "196,670",
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "Абердин",
+ "aliases" : [
+ "Абердине",
+ "Абердином"
+ ],
+ "identifier" : "aberdeen"
+ },
+ {
+ "population" : "196,272",
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "Пальмас",
+ "aliases" : [
+ "Пальмасом",
+ "Пальмасе"
+ ],
+ "identifier" : "palmas"
+ },
+ {
+ "population" : "196,219",
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Таунсвилл",
+ "aliases" : [
+ "Таунсвиллом",
+ "Таунсвилле"
+ ],
+ "identifier" : "townsville"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "Солт-Лейк-Сити",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "population" : "190,384",
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "Корк",
+ "aliases" : [
+ "Корке",
+ "Корком"
+ ],
+ "identifier" : "cork"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "Таллахасси",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "population" : "189,047",
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "Сантарен",
+ "aliases" : [
+ "Сантареном",
+ "Сантарене"
+ ],
+ "identifier" : "santarem"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "Сан-Фернандо-дель-Валье-де-Катамарка",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "population" : "187,056",
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Триест",
+ "aliases" : [
+ "Триестом",
+ "Триесте"
+ ],
+ "identifier" : "trieste"
+ },
+ {
+ "population" : "183,982",
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "Сан-Луис",
+ "aliases" : [
+ "Сан-Луисом",
+ "Сан-Луисе"
+ ],
+ "identifier" : "san luis"
+ },
+ {
+ "population" : "183,981",
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Женева",
+ "aliases" : [
+ "Женевой",
+ "Женеве",
+ "Женеву"
+ ],
+ "identifier" : "geneva"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "Атырау",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "Кутаиси",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "population" : "176,484",
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "Южно-Сахалинск",
+ "aliases" : [
+ "Южно-Сахалинске",
+ "Южно-Сахалинском"
+ ],
+ "identifier" : "yuzhno-sakhalinsk"
+ },
+ {
+ "population" : "176,314",
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "Сплит",
+ "aliases" : [
+ "Сплитом",
+ "Сплите"
+ ],
+ "identifier" : "split"
+ },
+ {
+ "population" : "176,183",
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "Реджайна",
+ "aliases" : [
+ "Реджайне",
+ "Реджайной",
+ "Реджайну"
+ ],
+ "identifier" : "regina"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "Турку",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "population" : "171,380",
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "Оксфорд",
+ "aliases" : [
+ "Оксфорде",
+ "Оксфордом"
+ ],
+ "identifier" : "oxford"
+ },
+ {
+ "population" : "170,674",
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "Джексон",
+ "aliases" : [
+ "Джексоне",
+ "Джексоном"
+ ],
+ "identifier" : "jackson"
+ },
+ {
+ "population" : "166,810",
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "Спрингфилд",
+ "aliases" : [
+ "Спрингфилде",
+ " Спрингфилдом"
+ ],
+ "identifier" : "springfield"
+ },
+ {
+ "population" : "164,488",
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Базель",
+ "aliases" : [
+ "Базеле",
+ "Базелем"
+ ],
+ "identifier" : "basel"
+ },
+ {
+ "population" : "162,620",
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "Риоха",
+ "aliases" : [
+ "Риохе",
+ "Риоху",
+ "Риохой"
+ ],
+ "identifier" : "la rioja"
+ },
+ {
+ "population" : "160,470",
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "Хеврон",
+ "aliases" : [
+ "Хевроном",
+ "Хевроне"
+ ],
+ "identifier" : "hebron"
+ },
+ {
+ "population" : "158,886",
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Модена",
+ "aliases" : [
+ "Модене",
+ "Модену",
+ "Моденой"
+ ],
+ "identifier" : "modena"
+ },
+ {
+ "population" : "158,434",
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "Кембридж",
+ "aliases" : [
+ "Кембриджем",
+ "Кембридже"
+ ],
+ "identifier" : "cambridge"
+ },
+ {
+ "population" : "154,407",
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "Сан-Франциско",
+ "aliases" : [
+ "Фриско",
+ " Фриско"
+ ],
+ "identifier" : "frisco"
+ },
+ {
+ "population" : "153,784",
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "Пасадена",
+ "aliases" : [
+ "Пасадене",
+ "Пасаденой",
+ "Пасадену"
+ ],
+ "identifier" : "pasadena"
+ },
+ {
+ "population" : "153,717",
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "Йорк",
+ "aliases" : [
+ "Йорком",
+ "Йорке"
+ ],
+ "identifier" : "york"
+ },
+ {
+ "population" : "153,377",
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Зальцбург",
+ "aliases" : [
+ "Зальцбурге",
+ "Зальцбургом"
+ ],
+ "identifier" : "salzburg"
+ },
+ {
+ "population" : "153,075",
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Кернс",
+ "aliases" : [
+ "Кернсом",
+ "Кэрнс",
+ "Кернсе"
+ ],
+ "identifier" : "cairns"
+ },
+ {
+ "population" : "152,641",
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "Гамильтон",
+ "aliases" : [
+ "Гамильтоном",
+ "Гамильтоне"
+ ],
+ "identifier" : "hamilton"
+ },
+ {
+ "population" : "150,661",
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "Ла-Лагуна",
+ "aliases" : [
+ "Ла-Лагуной",
+ "Ла-Лагуне",
+ "Ла-Лагуну"
+ ],
+ "identifier" : "la laguna"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "Дили",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "population" : "149,782",
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Дижон",
+ "aliases" : [
+ "Дижоне",
+ "Дижоном"
+ ],
+ "identifier" : "dijon"
+ },
+ {
+ "population" : "149,245",
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "Упсала",
+ "aliases" : [
+ "Упсале",
+ "Упсалу",
+ "Упсалой"
+ ],
+ "identifier" : "uppsala"
+ },
+ {
+ "population" : "147,139",
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "Трондхейм",
+ "aliases" : [
+ "Тронхейм",
+ "Тронхеймом",
+ "Тронхейме"
+ ],
+ "identifier" : "trondheim"
+ },
+ {
+ "population" : "147,074",
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "Манама",
+ "aliases" : [
+ "Манаме",
+ "Манаму",
+ "Манамой"
+ ],
+ "identifier" : "manama"
+ },
+ {
+ "population" : "146,299",
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "Парма",
+ "aliases" : [
+ "Пармой",
+ "Парме",
+ "Парму"
+ ],
+ "identifier" : "parma"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "Бойсе",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "Оденсе",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "population" : "143,086",
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Амьен",
+ "aliases" : [
+ "Амьеном",
+ "Амьене"
+ ],
+ "identifier" : "amiens"
+ },
+ {
+ "population" : "141,621",
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "Тур",
+ "aliases" : [
+ "Туром",
+ "Туре"
+ ],
+ "identifier" : "tours"
+ },
+ {
+ "population" : "136,473",
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "Подгорица",
+ "aliases" : [
+ "Подгорице",
+ "Подгорицу",
+ "Подгорицей"
+ ],
+ "identifier" : "podgorica"
+ },
+ {
+ "population" : "132,493",
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "Инсбрук",
+ "aliases" : [
+ "Инсбруке",
+ "Инсбруком"
+ ],
+ "identifier" : "innsbruck"
+ },
+ {
+ "population" : "131,258",
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "Тувумба",
+ "aliases" : [
+ "Тувумбе",
+ "Тувумбу",
+ "Тувумбой"
+ ],
+ "identifier" : "toowoomba"
+ },
+ {
+ "population" : "129,062",
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "Дарвин",
+ "aliases" : [
+ "Дарвине",
+ "Дарвином"
+ ],
+ "identifier" : "darwin"
+ },
+ {
+ "population" : "121631",
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "Берн",
+ "aliases" : [
+ "Берне",
+ "Берном"
+ ],
+ "identifier" : "bern"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..257145396
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/FunctionDescriptions.json
@@ -0,0 +1,220 @@
+{
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "10% от 100",
+ "10% из 100"
+ ],
+ "identifier": "percentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10% к 100"
+ ],
+ "identifier": "percentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30 это 20% от чего",
+ "30 это 20% от"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% от чего равно 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 это 20% отняли от"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% из чего равно 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30 это 20% к чему",
+ "30 это 20% к"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20% к чему равно 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10 как % от 20",
+ "10 сколько % от 20",
+ "10 сколько процентов от 20"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10 сколько % отняли от 20",
+ "10 сколько процентов отняли от 20"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20 сколько % сверх 10",
+ "20 сколько процентов сверх 10"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "остаток от 20 разделенного на 3"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "половина 20"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "меньшее из 2 и 30"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "большее из 2 и 30"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "среднее между 2 и 32"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "6 к 600 как что к 8",
+ "6 к 600 это как что к 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "6 к 600 как 8 к чему",
+ "6 к 600 это как 8 к чему"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "случайное число между 1 и 5",
+ "рандомное число между 1 и 5",
+ "число между 1 и 5"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit в __unit_expression"
+ ],
+ "identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit в __timespan"
+ ],
+ "identifier": "unitInTimespan"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__unit от __datestamp до __datestamp",
+ "__unit между __datestamp и __datestamp",
+ "__unit с __datestamp по __datestamp"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit до __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp до __datestamp",
+ "__datestamp по __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__timestamp до __timestamp",
+ "__timestamp по __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan назад",
+ "__timespan тому назад",
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit с __datestamp"
+ ],
+ "identifier": "calendarUnitSinceDate"
+ },
+ {
+ "prototypeExpressions": [
+ "новая метка времени"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan после __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan до __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone время",
+ "время в __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "разница во времени между __timezone и __timezone",
+ "разница __timezone и __timezone"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/Localizable.strings
new file mode 100644
index 000000000..4e8e9025b
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..af5dcfd62
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..9a0e5c766
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/LocalizedFixtures.json
@@ -0,0 +1,152 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "цифра",
+ "цифры",
+ "цифр"
+ ],
+ "multiplierTypes": [
+ "кратность"
+ ],
+ "divisionOperators": [
+ "÷",
+ "за"
+ ],
+ "roundingConverters": [
+ "округленное"
+ ],
+ "tomorrowDateAliases": [
+ "завтра"
+ ],
+ "multiplicationOperators": [
+ "×"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "время круга"
+ ],
+ "numberTypes": [
+ "число"
+ ],
+ "roundingDownConverters": [
+ "округленное вниз"
+ ],
+ "yesterdayDateAliases": [
+ "вчера"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "todayDateAliases": [
+ "сегодня"
+ ],
+ "timestampTypes": [
+ "метка времени"
+ ],
+ "roundingUpConverters": [
+ "округленное вверх"
+ ],
+ "dateTypes": [
+ "дата"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "monthOfYearDateAliases": [
+ "янв",
+ "фев",
+ "мар",
+ "апр",
+ "май",
+ "июн",
+ "июл",
+ "авг",
+ "сен",
+ "окт",
+ "ноя",
+ "дек",
+ "январь",
+ "февраль",
+ "март",
+ "апрель",
+ "май",
+ "июнь",
+ "июль",
+ "август",
+ "сентябрь",
+ "октябрь",
+ "ноябрь",
+ "декабрь",
+ "января",
+ "февраля",
+ "марта",
+ "апреля",
+ "мая",
+ "июня",
+ "июля",
+ "августа",
+ "сентября",
+ "октября",
+ "ноября",
+ "декабря"
+ ],
+ "piAliases": [
+ "π",
+ "пи"
+ ],
+ "additionOperators": [
+ "плюс"
+ ],
+ "timespanTypes": [
+ "временной промежуток"
+ ],
+ "nowDateAliases": [
+ "сейчас"
+ ],
+ "converterSymbols": [
+ "в",
+ "как"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "fractionTypes": [
+ "дробь"
+ ],
+ "dayOfWeekDateAliases": [
+ "Воскресенье",
+ "Вс",
+ "Вск",
+ "Вт",
+ "Вторник",
+ "Втр",
+ "Пн",
+ "Пнд",
+ "Понедельник",
+ "Пт",
+ "Птн",
+ "Пятница",
+ "Сб",
+ "Сбт",
+ "Ср",
+ "Срд",
+ "Среда",
+ "Суббота",
+ "Четверг",
+ "Чт",
+ "Чтв"
+ ],
+ "percentTypes": [
+ "процент"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..549c5ac0f
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/UnitDescriptions.json
@@ -0,0 +1,1633 @@
+{
+ "energy": [
+ {
+ "aliases": [
+ "джоуль",
+ "джоулей",
+ "джоули",
+ "джоулях"
+ ],
+ "identifier": "joules",
+ "symbol": "Дж"
+ },
+ {
+ "aliases": [
+ "килоджоуль",
+ "килоджоулей",
+ "килоджоули",
+ "килоджоулях"
+ ],
+ "identifier": "kilojoules",
+ "symbol": "кДж"
+ },
+ {
+ "aliases": [
+ "мегаджоуль",
+ "мегаджоулей",
+ "мегаджоули",
+ "мегаджоулях"
+ ],
+ "identifier": "megajoules",
+ "symbol": "МДж"
+ },
+ {
+ "aliases": [
+ "гигаджоуль",
+ "гигаджоулей",
+ "гигаджоули",
+ "гигаджоулях"
+ ],
+ "identifier": "gigajoules",
+ "symbol": "ГДж"
+ },
+ {
+ "aliases": [
+ "калорий",
+ "калории",
+ "калориях",
+ "калория"
+ ],
+ "identifier": "calories",
+ "symbol": "кал"
+ },
+ {
+ "aliases": [
+ "калорий",
+ "калории",
+ "калориях",
+ "калория"
+ ],
+ "identifier": "kilocalories",
+ "symbol": "ккал"
+ },
+ {
+ "aliases": [
+ "ваттов в час",
+ "ватты в часы",
+ "ватта в час",
+ "ваттах в час",
+ "ватт в час",
+ "Вт·ч"
+ ],
+ "identifier": "wattHours",
+ "symbol": "Вт·ч"
+ },
+ {
+ "aliases": [
+ "ваттов в минуту",
+ "ватты в минуту",
+ "ватта в минуту",
+ "ваттах в минуту",
+ "ватт в минуту",
+ "Вт·мин"
+ ],
+ "identifier": "wattMinutes",
+ "symbol": "Вт·мин"
+ },
+ {
+ "aliases": [
+ "ваттов в секунду",
+ "ватты в секунду",
+ "ватта в секунду",
+ "ваттах в секунду",
+ "ватт в секунду",
+ "Вт·сек"
+ ],
+ "identifier": "wattSeconds",
+ "symbol": "Вт·сек"
+ },
+ {
+ "aliases": [
+ "киловатт-час",
+ "киловатт-часов",
+ "киловатт-часы",
+ "киловатт-часова"
+ ],
+ "identifier": "kilowattHours",
+ "symbol": "кВт⋅ч"
+ },
+ {
+ "aliases": [
+ "мегаватт-час",
+ "мегаватт-часов",
+ "мегаватт-часы",
+ "мегаватт-часова"
+ ],
+ "identifier": "megawattHours",
+ "symbol": "МВт·ч"
+ },
+ {
+ "aliases": [
+ "гигаватт-час",
+ "гигаватт-часов",
+ "гигаватт-часы",
+ "гигаватт-часова"
+ ],
+ "identifier": "gigawattHours",
+ "symbol": "ГВт·ч"
+ },
+ {
+ "aliases": [
+ "тераватт-час",
+ "тераватт-часов",
+ "тераватт-часы",
+ "тераватт-часова"
+ ],
+ "identifier": "terawattHours",
+ "symbol": "ТВт·ч"
+ }
+ ],
+ "speed": [
+ {
+ "aliases": [
+ "метр в секунду",
+ "метры в секунду",
+ "метра в секунду",
+ "метров в секунду",
+ "метрах в секунду"
+ ],
+ "identifier": "metersPerSecond",
+ "symbol": "м/с"
+ },
+ {
+ "aliases": [
+ "клиометр в час",
+ "километры в час",
+ "километра в час",
+ "километров в час",
+ "километрах в час"
+ ],
+ "identifier": "kilometersPerHour",
+ "symbol": "km/h"
+ },
+ {
+ "aliases": [
+ "милй в час",
+ "мили в час",
+ "милях в час",
+ "миля в час",
+ "миль в час"
+ ],
+ "identifier": "milesPerHour",
+ "symbol": "миля/ч"
+ },
+ {
+ "aliases": [
+ "узел",
+ "узлов",
+ "узлы",
+ "узла",
+ "узлах"
+ ],
+ "identifier": "knots",
+ "symbol": "уз"
+ }
+ ],
+ "volume": [
+ {
+ "aliases": [
+ "мегалитр",
+ "мегалитров",
+ "мегалитры",
+ "мегалитра",
+ "мегалитрах"
+ ],
+ "identifier": "megaliters",
+ "symbol": "Мл"
+ },
+ {
+ "aliases": [
+ "килолитр",
+ "килолитров",
+ "килолитры",
+ "килолитра",
+ "килолитрах"
+ ],
+ "identifier": "kiloliters",
+ "symbol": "кл"
+ },
+ {
+ "aliases": [
+ "литр",
+ "литров",
+ "литры",
+ "литра",
+ "литрах"
+ ],
+ "identifier": "liters",
+ "symbol": "л"
+ },
+ {
+ "aliases": [
+ "милилитр",
+ "милилитров",
+ "милилитры",
+ "милилитра",
+ "милилитрах"
+ ],
+ "identifier": "milliliters",
+ "symbol": "мл"
+ },
+ {
+ "aliases": [
+ "кубических километров",
+ "кубокилометры",
+ "кубокилометра",
+ "кубокилометрах",
+ "кубокилометров",
+ "кубические километры",
+ "кубических километра",
+ "кубических километрах"
+ ],
+ "identifier": "cubicKilometers",
+ "symbol": "км³"
+ },
+ {
+ "aliases": [
+ "кубических метров",
+ "кубометры",
+ "кубометра",
+ "кубометрах",
+ "кубометров",
+ "кубические метры",
+ "кубических метра",
+ "кубических метрах"
+ ],
+ "identifier": "cubicMeters",
+ "symbol": "м³"
+ },
+ {
+ "aliases": [
+ "кубических сантиметров",
+ "кубосантиметры",
+ "кубосантиметра",
+ "кубосантиметрах",
+ "кубосантиметров",
+ "кубические сантиметры",
+ "кубических сантиметра",
+ "кубических сантиметрах"
+ ],
+ "identifier": "cubicCentimeters",
+ "symbol": "см³"
+ },
+ {
+ "aliases": [
+ "кубических милиметров",
+ "кубомилиметры",
+ "кубомилиметра",
+ "кубомилиметрах",
+ "кубомилиметров",
+ "кубические милиметры",
+ "кубических милиметра",
+ "кубических милиметрах"
+ ],
+ "identifier": "cubicMillimeters",
+ "symbol": "мм³"
+ },
+ {
+ "aliases": [
+ "кубический дюйм",
+ "куб дюйм",
+ "кубических дюймов",
+ "кубические дюймы",
+ "куб дюймы",
+ "кубических дюйма",
+ "кубических дюймах"
+ ],
+ "identifier": "cubicInches",
+ "symbol": "in³"
+ },
+ {
+ "aliases": [
+ "кубический фут",
+ "кубических футов",
+ "кубические футы",
+ "кубических фута",
+ "кубических футах"
+ ],
+ "identifier": "cubicFeet",
+ "symbol": "ft³"
+ },
+ {
+ "aliases": [
+ "кубический ярд",
+ "кубических ярдов",
+ "кубические ярды",
+ "кубических ярда",
+ "кубических ярдах"
+ ],
+ "identifier": "cubicYards",
+ "symbol": "yd³"
+ },
+ {
+ "aliases": [
+ "кубических милй",
+ "кубические мили",
+ "кубических мили",
+ "кубических милях",
+ "кубическая миля",
+ "кубическая миль"
+ ],
+ "identifier": "cubicMiles",
+ "symbol": "mi³"
+ },
+ {
+ "aliases": [
+ "бушель",
+ "бушеля",
+ "бушелей",
+ "бушелях"
+ ],
+ "identifier": "bushels",
+ "symbol": "bsh"
+ },
+ {
+ "aliases": [
+ "метрический стакан",
+ "метрических стаканов",
+ "метрическых стаканах",
+ "метрическых стакана",
+ "метрическые стаканы"
+ ],
+ "identifier": "metricCups",
+ "symbol": "метрический стакан"
+ },
+ {
+ "aliases": [
+ "стакан",
+ "стаканы",
+ "стакана",
+ "стаканах",
+ "стаканов"
+ ],
+ "identifier": "cups",
+ "symbol": "cup"
+ },
+ {
+ "aliases": [
+ "акров-фут",
+ "акры-фут",
+ "акра-фут",
+ "акрах-фут"
+ ],
+ "identifier": "acreFeet",
+ "symbol": "af"
+ },
+ {
+ "aliases": [
+ "пинт",
+ "пинты",
+ "пинтах",
+ "пинта"
+ ],
+ "identifier": "pints",
+ "symbol": "pt"
+ },
+ {
+ "aliases": [
+ "кварта",
+ "кварты",
+ "кварт",
+ "квартах"
+ ],
+ "identifier": "quarts",
+ "symbol": "qt"
+ },
+ {
+ "aliases": [
+ "галлон",
+ "галлонов",
+ "галлонах",
+ "галлоны"
+ ],
+ "identifier": "gallons",
+ "symbol": "gal"
+ },
+ {
+ "aliases": [
+ "столовая ложка",
+ "столовых ложек",
+ "столовые ложки",
+ "столовых ложки",
+ "столовых ложках",
+ "ст. ложка"
+ ],
+ "identifier": "tablespoons",
+ "symbol": "ст. л."
+ },
+ {
+ "aliases": [
+ "чайная ложка",
+ "чайных ложек",
+ "чайные ложки",
+ "чайных ложки",
+ "чайных ложках",
+ "ч. ложка"
+ ],
+ "identifier": "teaspoons",
+ "symbol": "ч. л."
+ },
+ {
+ "aliases": [
+ "жидкая унция",
+ "жидких унций",
+ "жидкие унции",
+ "жидких унции",
+ "жидких унциях"
+ ],
+ "identifier": "fluidOunces",
+ "symbol": "fl oz"
+ }
+ ],
+ "dataStorage": [
+ {
+ "aliases": [
+ "байт",
+ "байты",
+ "байтах",
+ "байта"
+ ],
+ "identifier": "bytes",
+ "symbol": "Б"
+ },
+ {
+ "aliases": [
+ "бит",
+ "биты",
+ "битах",
+ "бита"
+ ],
+ "identifier": "bits",
+ "symbol": "бит"
+ },
+ {
+ "aliases": [
+ "йоттабайт",
+ "йоттабайты",
+ "йоттабайтах",
+ "йоттабайта"
+ ],
+ "identifier": "yottabytes",
+ "symbol": "ибайт"
+ },
+ {
+ "aliases": [
+ "зеттабайт",
+ "зеттабайтах",
+ "зеттабайты",
+ "зеттабайта"
+ ],
+ "identifier": "zettabytes",
+ "symbol": "збайт"
+ },
+ {
+ "aliases": [
+ "эксабайт",
+ "эксабайтах",
+ "эксабайты",
+ "эксабайта"
+ ],
+ "identifier": "exabytes",
+ "symbol": "эбайт"
+ },
+ {
+ "aliases": [
+ "петабайт",
+ "петабайты",
+ "петабайтах",
+ "петабайта"
+ ],
+ "identifier": "petabytes",
+ "symbol": "пбайт"
+ },
+ {
+ "aliases": [
+ "терабайт",
+ "терабайтах",
+ "терабайты",
+ "терабайта",
+ "Тб"
+ ],
+ "identifier": "terabytes",
+ "symbol": "тбайт"
+ },
+ {
+ "aliases": [
+ "гигабайт",
+ "гигабайты",
+ "гигабайтах",
+ "гигабайта",
+ "Гб"
+ ],
+ "identifier": "gigabytes",
+ "symbol": "гбайт"
+ },
+ {
+ "aliases": [
+ "мегабайт",
+ "мегабайты",
+ "мегабайтах",
+ "мегабайта",
+ "Мб"
+ ],
+ "identifier": "megabytes",
+ "symbol": "мбайт"
+ },
+ {
+ "aliases": [
+ "килобайт",
+ "килобайты",
+ "килобайтах",
+ "килобайта",
+ "Кб"
+ ],
+ "identifier": "kilobytes",
+ "symbol": "КБ"
+ },
+ {
+ "aliases": [
+ "йоттабит",
+ "йоттабиты",
+ "йоттабитах",
+ "йоттабита",
+ "Yбит"
+ ],
+ "identifier": "yottabits",
+ "symbol": "Йбит"
+ },
+ {
+ "aliases": [
+ "зеттабит",
+ "зеттабитах",
+ "зеттабиты",
+ "зеттабита",
+ "Zбит"
+ ],
+ "identifier": "zettabits",
+ "symbol": "Збит"
+ },
+ {
+ "aliases": [
+ "эксабит",
+ "эксабиты",
+ "эксабитах",
+ "эксабита",
+ "Eбит"
+ ],
+ "identifier": "exabits",
+ "symbol": "Эбит"
+ },
+ {
+ "aliases": [
+ "петабит",
+ "петабиты",
+ "петабитах",
+ "петабита",
+ "Pбит"
+ ],
+ "identifier": "petabits",
+ "symbol": "Пбит"
+ },
+ {
+ "aliases": [
+ "терабит",
+ "терабиты",
+ "терабитах",
+ "терабита",
+ "Tбит"
+ ],
+ "identifier": "terabits",
+ "symbol": "Тбит"
+ },
+ {
+ "aliases": [
+ "гигабит",
+ "гигабиты",
+ "гигабитах",
+ "гигабита",
+ "Gбит"
+ ],
+ "identifier": "gigabits",
+ "symbol": "Гбит"
+ },
+ {
+ "aliases": [
+ "мегабит",
+ "мегабиты",
+ "мегабитах",
+ "мегабита"
+ ],
+ "identifier": "megabits",
+ "symbol": "Мбит"
+ },
+ {
+ "aliases": [
+ "килобиты",
+ "килобитах",
+ "килобита"
+ ],
+ "identifier": "kilobits",
+ "symbol": "Kбит"
+ },
+ {
+ "aliases": [
+ "йобибайт",
+ "йобибайты",
+ "йобибайтах",
+ "йобибайта"
+ ],
+ "identifier": "yobibytes",
+ "symbol": "ЙиБ"
+ },
+ {
+ "aliases": [
+ "зебибайт",
+ "зебибайты",
+ "зебибайтах",
+ "зебибайта"
+ ],
+ "identifier": "zebibytes",
+ "symbol": "ЗиБ"
+ },
+ {
+ "aliases": [
+ "эксибайт",
+ "эксибайты",
+ "эксибайтах",
+ "эксибайта"
+ ],
+ "identifier": "exbibytes",
+ "symbol": "ЭиБ"
+ },
+ {
+ "aliases": [
+ "пебибайт",
+ "пебибайты",
+ "пебибайтах",
+ "пебибайта"
+ ],
+ "identifier": "pebibytes",
+ "symbol": "ПиБ"
+ },
+ {
+ "aliases": [
+ "тебибайт",
+ "тебибайты",
+ "тебибайтах",
+ "тебибайта"
+ ],
+ "identifier": "tebibytes",
+ "symbol": "ТиБ"
+ },
+ {
+ "aliases": [
+ "гибибайт",
+ "гибибайты",
+ "гибибайтах",
+ "гибибайта"
+ ],
+ "identifier": "gibibytes",
+ "symbol": "ГиБ"
+ },
+ {
+ "aliases": [
+ "мебибайт",
+ "мебибайты",
+ "мебибайтах",
+ "мебибайта"
+ ],
+ "identifier": "mebibytes",
+ "symbol": "МиБ"
+ },
+ {
+ "aliases": [
+ "кибибайт",
+ "кибибайты",
+ "кибибайтах",
+ "кибибайта"
+ ],
+ "identifier": "kibibytes",
+ "symbol": "КиБ"
+ },
+ {
+ "aliases": [
+ "йобибит",
+ "йобибиты",
+ "йобибитах",
+ "йобибита",
+ "Yiбит"
+ ],
+ "identifier": "yobibits",
+ "symbol": "Йиб"
+ },
+ {
+ "aliases": [
+ "зебибит",
+ "зебибиты",
+ "зебибитах",
+ "зебибита",
+ "Ziбит"
+ ],
+ "identifier": "zebibits",
+ "symbol": "Зиб"
+ },
+ {
+ "aliases": [
+ "эксибит",
+ "эксибиты",
+ "эксибитах",
+ "эксибита",
+ "Эибит"
+ ],
+ "identifier": "exbibits",
+ "symbol": "Эи"
+ },
+ {
+ "aliases": [
+ "пебибит",
+ "пебибиты",
+ "пебибитах",
+ "пебибита",
+ "Пибит"
+ ],
+ "identifier": "pebibits",
+ "symbol": "Пиб"
+ },
+ {
+ "aliases": [
+ "тебибит",
+ "тебибиты",
+ "тебибитах",
+ "тебибита",
+ "Тибит"
+ ],
+ "identifier": "tebibits",
+ "symbol": "Тиб"
+ },
+ {
+ "aliases": [
+ "гибибит",
+ "гибибиты",
+ "гибибитах",
+ "гибибита"
+ ],
+ "identifier": "gibibits",
+ "symbol": "Гиб"
+ },
+ {
+ "aliases": [
+ "мебибит",
+ "мебибиты",
+ "мебибитах",
+ "мебибита",
+ "Miбит"
+ ],
+ "identifier": "mebibits",
+ "symbol": "Миб"
+ },
+ {
+ "aliases": [
+ "кибибит",
+ "кибибиты",
+ "кибибитах",
+ "кибибита"
+ ],
+ "identifier": "kibibits",
+ "symbol": "Киб"
+ }
+ ],
+ "temperature": [
+ {
+ "aliases": [
+ "келвин"
+ ],
+ "identifier": "kelvin",
+ "symbol": "K"
+ },
+ {
+ "aliases": [
+ "градус цельсия",
+ "градусы цельсия",
+ "градусов цельсия",
+ "градусах цельсия",
+ "градуса цельсия",
+ "С"
+ ],
+ "identifier": "celsius",
+ "symbol": "°С"
+ },
+ {
+ "aliases": [
+ "градус фаренгейта",
+ "градусы фаренгейта",
+ "градусов фаренгейта",
+ "градусах фаренгейта",
+ "градуса фаренгейта",
+ "Ф"
+ ],
+ "identifier": "fahrenheit",
+ "symbol": "°Ф"
+ }
+ ],
+ "angle": [
+ {
+ "aliases": [
+ "градус",
+ "градусах",
+ "градуса",
+ "градусы",
+ "градусов"
+ ],
+ "identifier": "degrees",
+ "symbol": "°"
+ },
+ {
+ "aliases": [
+ "радиан",
+ "радианах",
+ "радианы",
+ "радиана",
+ "радианов"
+ ],
+ "identifier": "radians",
+ "symbol": "рад"
+ }
+ ],
+ "length": [
+ {
+ "aliases": [
+ "метров",
+ "метры",
+ "метра",
+ "метрах"
+ ],
+ "identifier": "meters",
+ "symbol": "м"
+ },
+ {
+ "aliases": [
+ "километров",
+ "километры",
+ "километра",
+ "километрах"
+ ],
+ "identifier": "kilometers",
+ "symbol": "км"
+ },
+ {
+ "aliases": [
+ "метров",
+ "метры",
+ "метра",
+ "метрах"
+ ],
+ "identifier": "centimeters",
+ "symbol": "см"
+ },
+ {
+ "aliases": [
+ "миллметров",
+ "миллметры",
+ "миллметра",
+ "миллметрах"
+ ],
+ "identifier": "millimeters",
+ "symbol": "мм"
+ },
+ {
+ "aliases": [
+ "микрометров",
+ "микрометры",
+ "микрометра",
+ "микрометрах"
+ ],
+ "identifier": "micrometers",
+ "symbol": "мкм"
+ },
+ {
+ "aliases": [
+ "нанометров",
+ "нанометры",
+ "нанометра",
+ "нанометрах"
+ ],
+ "identifier": "nanometers",
+ "symbol": "нм"
+ },
+ {
+ "aliases": [
+ "дюймов",
+ "дюймы",
+ "дюйма",
+ "дюймах"
+ ],
+ "identifier": "inches",
+ "symbol": "дюйм"
+ },
+ {
+ "aliases": [
+ "фут",
+ "футов",
+ "футы",
+ "фута",
+ "футах"
+ ],
+ "identifier": "feet",
+ "symbol": "ft"
+ },
+ {
+ "aliases": [
+ "ярд",
+ "ярдов",
+ "ярды",
+ "ярда",
+ "ярдах"
+ ],
+ "identifier": "yards",
+ "symbol": "yd"
+ },
+ {
+ "aliases": [
+ "миля",
+ "миль",
+ "мили",
+ "милях"
+ ],
+ "identifier": "miles",
+ "symbol": "mi"
+ },
+ {
+ "aliases": [
+ "световой год",
+ "световые года",
+ "световых лет"
+ ],
+ "identifier": "lightyears",
+ "symbol": "св. год"
+ },
+ {
+ "aliases": [
+ "парсек",
+ "парсеков",
+ "парсеки",
+ "парсека",
+ "парсеках"
+ ],
+ "identifier": "parsecs",
+ "symbol": "пк"
+ },
+ {
+ "aliases": [
+ "морская миля",
+ "морских милй",
+ "морских миль",
+ "морские мили",
+ "морских мили",
+ "морских милях"
+ ],
+ "identifier": "nauticalMiles",
+ "symbol": "NM"
+ },
+ {
+ "aliases": [
+ "морских саженей",
+ "морские сажени",
+ "морских саженях",
+ "морская сажень"
+ ],
+ "identifier": "fathoms",
+ "symbol": "ftm"
+ },
+ {
+ "aliases": [
+ "фурлонг",
+ "фурлонгы",
+ "фурлонгах",
+ "фурлонга",
+ "фурлонгов"
+ ],
+ "identifier": "furlongs",
+ "symbol": "fur"
+ },
+ {
+ "aliases": [
+ "пиксель",
+ "пиксел",
+ "пикселов",
+ "пикселы",
+ "пиксела",
+ "пикселей",
+ "пикселя",
+ "пикс"
+ ],
+ "symbol": "px",
+ "identifier": "pixel"
+ },
+ {
+ "aliases": [
+
+ ],
+ "identifier": "em",
+ "symbol": "em"
+ },
+ {
+ "aliases": [
+
+ ],
+ "identifier": "point",
+ "symbol": "pt"
+ }
+ ],
+ "area": [
+ {
+ "aliases": [
+ "квадратных километров",
+ "квадратные километры",
+ "квадратных километра",
+ "квадратных километрах",
+ "километры в квадрате",
+ "километра в квадрате",
+ "километрах в квадрате",
+ "километрах в квадрате",
+ "квадратный километр",
+ "километр в квадрате",
+ "км в квадрате"
+ ],
+ "identifier": "squareKilometers",
+ "symbol": "км²"
+ },
+ {
+ "aliases": [
+ "квадратных метров",
+ "квадратные метры",
+ "квадратных метра",
+ "квадратных метрах",
+ "метры в квадрате",
+ "метрах в квадрате",
+ "метра в квадрате",
+ "метров в квадрате",
+ "квадратный метр",
+ "метр в квадрате"
+ ],
+ "identifier": "squareMeters",
+ "symbol": "м²"
+ },
+ {
+ "aliases": [
+ "квадратных сантиметров",
+ "квадратные сантиметры",
+ "квадратных сантиметра",
+ "квадратных сантиметрах",
+ "квадратный сантиметр",
+ "см в квадрате"
+ ],
+ "identifier": "squareCentimeters",
+ "symbol": "см²"
+ },
+ {
+ "aliases": [
+ "квадратных миллиметров",
+ "квадратные миллиметры",
+ "квадратных миллиметры",
+ "квадратных миллиметрах",
+ "квадратный миллиметр",
+ "мм в квадрате"
+ ],
+ "symbol": "мм²",
+ "identifier": "squareMillimeters"
+ },
+ {
+ "aliases": [
+ "квадратных микрометров",
+ "квадратные микрометры",
+ "квадратных микрометры",
+ "квадратных микрометрах",
+ "квадратный микрометр",
+ "мм в квадрате"
+ ],
+ "identifier": "squareMicrometers",
+ "symbol": "мкм²"
+ },
+ {
+ "aliases": [
+ "квадратных дюймов",
+ "квадратные дюймы",
+ "квадратных дюйма",
+ "квадратных дюймах",
+ "кв дюйм",
+ "кв дюймы",
+ "кв дюйма",
+ "кв дюймов",
+ "кв дюймах",
+ "квадратный дюйм"
+ ],
+ "identifier": "squareInches",
+ "symbol": "in²"
+ },
+ {
+ "aliases": [
+ "квадратных футов",
+ "квадратные футе",
+ "квадратные футы",
+ "квадратных фута",
+ "квадратных футах",
+ "футы в квадрате",
+ "фута в квадрате",
+ "футов в квадрате",
+ "футах в квадрате",
+ "квадратный фут",
+ "фут в квадрате"
+ ],
+ "identifier": "squareFeet",
+ "symbol": "ft²"
+ },
+ {
+ "aliases": [
+ "квадратных ярдов",
+ "квадратные ярды",
+ "квадратных ярда",
+ "квадратных ярдах",
+ "ярды в квадрате",
+ "ярда в квадрате",
+ "ярдов в квадрате",
+ "ярдах в квадрате",
+ "квадратный ярд",
+ "ярд в квадрате"
+ ],
+ "identifier": "squareYards",
+ "symbol": "yd²"
+ },
+ {
+ "aliases": [
+ "квадратная миля",
+ "квадратных милй",
+ "квадратные мили",
+ "квадратных миль",
+ "квадратных милях"
+ ],
+ "identifier": "squareMiles",
+ "symbol": "mi²"
+ },
+ {
+ "aliases": [
+ "акров",
+ "акры",
+ "акра",
+ "акрах",
+ "акр"
+ ],
+ "identifier": "acres",
+ "symbol": "ac"
+ },
+ {
+ "aliases": [
+ "гектаров",
+ "гектары",
+ "гектара",
+ "гектарах",
+ "гектар"
+ ],
+ "identifier": "hectares",
+ "symbol": "га"
+ },
+ {
+ "aliases": [
+ "сотка",
+ "сотки",
+ "ара",
+ "аров",
+ "ары"
+ ],
+ "identifier": "ares",
+ "symbol": "ар"
+ }
+ ],
+ "fuelEfficiency": [
+ {
+ "aliases": [
+ "l/100 km",
+ "l/100km",
+ "l / 100km",
+ "liters / 100km",
+ "litres / 100km",
+ "l / 100 km",
+ "liters / 100 km",
+ "litres / 100 km"
+ ],
+ "identifier": "litersPer100Kilometers",
+ "symbol": "L/100km"
+ },
+ {
+ "aliases": [
+ "miles per gallon"
+ ],
+ "identifier": "milesPerGallon",
+ "symbol": "mpg"
+ }
+ ],
+ "power": [
+ {
+ "aliases": [
+ "ватт",
+ "ваттов",
+ "ватты",
+ "ватта",
+ "ваттах"
+ ],
+ "identifier": "watts",
+ "symbol": "Вт"
+ },
+ {
+ "aliases": [
+ "миливатт",
+ "миливаттов",
+ "миливатты",
+ "миливатта",
+ "миливаттах"
+ ],
+ "identifier": "milliwatts",
+ "symbol": "мВт"
+ },
+ {
+ "aliases": [
+ "киловатт",
+ "киловаттов",
+ "киловатты",
+ "киловатта",
+ "киловаттах"
+ ],
+ "symbol": "кВт",
+ "identifier": "kilowatts"
+ },
+ {
+ "aliases": [
+ "мегаватт",
+ "мегаваттов",
+ "мегаватты",
+ "мегаватта",
+ "мегаваттах"
+ ],
+ "identifier": "megawatts",
+ "symbol": "МВт"
+ },
+ {
+ "aliases": [
+ "гигаватт",
+ "гигаваттов",
+ "гигаватты",
+ "гигаватта",
+ "гигаваттах"
+ ],
+ "identifier": "gigawatts",
+ "symbol": "ГВт"
+ },
+ {
+ "aliases": [
+ "тераватт",
+ "гигаваттов",
+ "гигаватты",
+ "гигаватта",
+ "гигаваттах"
+ ],
+ "identifier": "terawatts",
+ "symbol": "ТВт"
+ },
+ {
+ "aliases": [
+ "лошадиная сила",
+ "лошадиных сил",
+ "лошадиные силы",
+ "лошадиных силы",
+ "лошадиных силах"
+ ],
+ "identifier": "horsepower",
+ "symbol": "л. с."
+ }
+ ],
+ "mass": [
+ {
+ "aliases": [
+ "килограмм",
+ "килограммов",
+ "килограммы",
+ "килограмма",
+ "килограммах"
+ ],
+ "identifier": "kilograms",
+ "symbol": "кг"
+ },
+ {
+ "aliases": [
+ "грамм",
+ "граммов",
+ "граммы",
+ "грамма",
+ "граммах"
+ ],
+ "identifier": "grams",
+ "symbol": "г"
+ },
+ {
+ "aliases": [
+ "миллиграмм",
+ "миллиграммов",
+ "миллиграммы",
+ "миллиграмма",
+ "миллиграммах"
+ ],
+ "symbol": "мг",
+ "identifier": "milligrams"
+ },
+ {
+ "aliases": [
+ "нанограмм",
+ "нанограммов",
+ "нанограммы",
+ "нанограмма",
+ "нанограммах"
+ ],
+ "identifier": "nanograms",
+ "symbol": "нг"
+ },
+ {
+ "aliases": [
+ "унция",
+ "унций",
+ "унции",
+ "унциях"
+ ],
+ "identifier": "ounces",
+ "symbol": "oz"
+ },
+ {
+ "aliases": [
+ "фунт",
+ "фунтов",
+ "фунты",
+ "фунта",
+ "фунтах"
+ ],
+ "identifier": "pounds",
+ "symbol": "lb"
+ },
+ {
+ "aliases": [
+ "стоун",
+ "стоунов",
+ "стоуны",
+ "стона",
+ "стоунах"
+ ],
+ "identifier": "stones",
+ "symbol": "st"
+ },
+ {
+ "aliases": [
+ "тонна",
+ "метрическая тонна",
+ "тонн",
+ "тонны",
+ "метрические тонны",
+ "тоннах",
+ "метрических тонны",
+ "метрических тонн",
+ "метрических тоннах"
+ ],
+ "identifier": "metricTons",
+ "symbol": "т"
+ },
+ {
+ "aliases": [
+ "карат",
+ "каратов",
+ "караты",
+ "каратах",
+ "карата"
+ ],
+ "identifier": "carats",
+ "symbol": "кар"
+ },
+ {
+ "aliases": [
+ "тройская унция",
+ "тройскые унции",
+ "тройскых унцией"
+ ],
+ "identifier": "ouncesTroy",
+ "symbol": "oz t"
+ }
+ ],
+ "duration": [
+ {
+ "aliases": [
+ "час",
+ "часов",
+ "часах",
+ "часа"
+ ],
+ "identifier": "hours",
+ "symbol": "часы"
+ },
+ {
+ "aliases": [
+ "секунд",
+ "секунды",
+ "секундах",
+ "секунда"
+ ],
+ "identifier": "seconds",
+ "symbol": "сек"
+ },
+ {
+ "aliases": [
+ "минута",
+ "минуты",
+ "минутах",
+ "минут"
+ ],
+ "identifier": "minutes",
+ "symbol": "мин"
+ },
+ {
+ "aliases": [
+ "дни",
+ "день",
+ "дней",
+ "дня",
+ "днях"
+ ],
+ "identifier": "days",
+ "symbol": "дни"
+ },
+ {
+ "aliases": [
+ "рабочий день",
+ "рабочих дней",
+ "рабочих днях",
+ "рабочие дни",
+ "рабочих дня"
+ ],
+ "identifier": "weekdays",
+ "symbol": "workday"
+ },
+ {
+ "aliases": [
+ "неделя",
+ "недель",
+ "неделей",
+ "неделях",
+ "неделю"
+ ],
+ "identifier": "weeks",
+ "symbol": "недели"
+ },
+ {
+ "aliases": [
+ "месяц",
+ "месяца",
+ "месяцах",
+ "месяцев"
+ ],
+ "identifier": "months",
+ "symbol": "месяцы"
+ },
+ {
+ "aliases": [
+ "года",
+ "лет",
+ "год"
+ ],
+ "identifier": "years",
+ "symbol": "годы"
+ },
+ {
+ "aliases": [
+ "миллисекунда",
+ "миллисекунд",
+ "миллисекундах",
+ "миллисекунды"
+ ],
+ "identifier": "milliseconds",
+ "symbol": "мс"
+ },
+ {
+ "aliases": [
+ "микросекунда",
+ "микросекундах",
+ "микросекунды",
+ "микросекунд"
+ ],
+ "identifier": "microseconds",
+ "symbol": "мкс"
+ },
+ {
+ "aliases": [
+ "наносекунда",
+ "наносекундах",
+ "наносекунды"
+ ],
+ "identifier": "nanoseconds",
+ "symbol": "нс"
+ }
+ ],
+ "currency": [
+ {
+ "aliases": [
+ "usd"
+ ],
+ "identifier": "usd",
+ "symbol": "USD"
+ }
+ ],
+ "frequency": [
+ {
+ "aliases": [
+ "герцов",
+ "герц",
+ "герцы",
+ "герца",
+ "герцах"
+ ],
+ "identifier": "hertz",
+ "symbol": "Гц"
+ },
+ {
+ "aliases": [
+ "килогерцов",
+ "килогерц",
+ "килогерцы",
+ "килогерцах",
+ "килогерца",
+ "килогерцах"
+ ],
+ "identifier": "kilohertz",
+ "symbol": "кГц"
+ },
+ {
+ "aliases": [
+ "мегагерцов",
+ "мегагерц",
+ "мегагерцы",
+ "мегагерца",
+ "мегагерцах"
+ ],
+ "identifier": "megahertz",
+ "symbol": "МГц"
+ },
+ {
+ "aliases": [
+ "гигагерцов",
+ "гигагерц",
+ "гигагерцы",
+ "гигагерца",
+ "гигагерцах"
+ ],
+ "identifier": "gigahertz",
+ "symbol": "ГГц"
+ },
+ {
+ "aliases": [
+ "терагерцов",
+ "терагерц",
+ "терагерцы",
+ "терагерца",
+ "тергерцах"
+ ],
+ "identifier": "terahertz",
+ "symbol": "ТГц"
+ },
+ {
+ "aliases": [
+ "миллигерцов",
+ "миллигерц",
+ "миллигерцы",
+ "миллигерца",
+ "миллигерцах"
+ ],
+ "identifier": "millihertz",
+ "symbol": "мГц"
+ },
+ {
+ "aliases": [
+ "микогерцов",
+ "микогерц",
+ "микогерцы",
+ "микогерца",
+ "микогерцах"
+ ],
+ "identifier": "microhertz",
+ "symbol": "мкГц"
+ },
+ {
+ "aliases": [
+ "наногерцов",
+ "наногерц",
+ "наногерцы",
+ "наногерца",
+ "наногерцах"
+ ],
+ "identifier": "nanohertz",
+ "symbol": "нГц"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Cities.json
new file mode 100644
index 000000000..6d77c16f1
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Cities.json
@@ -0,0 +1,3566 @@
+[
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "上海",
+ "identifier" : "shanghai",
+ "population" : "22,315,474"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊斯坦堡",
+ "identifier" : "istanbul",
+ "population" : "14,804,116"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "布宜诺斯艾利斯",
+ "identifier" : "buenos aires",
+ "population" : "13,076,300"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "孟买",
+ "identifier" : "mumbai",
+ "population" : "12,691,836"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "墨西哥城",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "北京",
+ "identifier" : "beijing",
+ "population" : "11,716,620"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "卡拉奇",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "天津",
+ "identifier" : "tianjin",
+ "population" : "11,090,314"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "广州",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "新德里",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "莫斯科",
+ "identifier" : "moscow",
+ "population" : "10,381,222"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "深圳",
+ "identifier" : "shenzhen",
+ "population" : "10,358,381"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "达卡",
+ "identifier" : "dhaka",
+ "population" : "10,356,500"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "汉城",
+ "identifier" : "seoul",
+ "population" : "10,349,312"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "圣保罗",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "武汉市",
+ "identifier" : "wuhan",
+ "population" : "9,785,388"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "拉各斯",
+ "identifier" : "lagos",
+ "population" : "9,000,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "雅加达",
+ "identifier" : "jakarta",
+ "population" : "8,540,121"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "东京",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "纽约",
+ "identifier" : "new york",
+ "population" : "8,175,133"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "东莞市",
+ "identifier" : "dongguan",
+ "population" : "8,000,000"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "台北",
+ "identifier" : "taipei",
+ "population" : "7,871,900"
+ },
+ {
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "金夏沙",
+ "identifier" : "kinshasa",
+ "population" : "7,785,965"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "开罗",
+ "identifier" : "cairo",
+ "population" : "7,734,614"
+ },
+ {
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "波哥大",
+ "identifier" : "bogota",
+ "population" : "7,674,366"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "伦敦",
+ "identifier" : "london",
+ "population" : "7,556,900"
+ },
+ {
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "重庆市",
+ "identifier" : "chongqing",
+ "population" : "7,457,600"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "成都市",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "巴格达",
+ "identifier" : "baghdad",
+ "population" : "7,216,000"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南京",
+ "identifier" : "nanjing",
+ "population" : "7,165,292"
+ },
+ {
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "德黑兰",
+ "identifier" : "tehran",
+ "population" : "7,153,309"
+ },
+ {
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南充",
+ "identifier" : "nanchong",
+ "population" : "7,150,000"
+ },
+ {
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "香港",
+ "identifier" : "hong kong",
+ "population" : "7,012,738"
+ },
+ {
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "西安",
+ "identifier" : "xi'an",
+ "population" : "6,501,190"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "里约热内卢",
+ "identifier" : "rio de janeiro",
+ "population" : "6,023,699"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "曼谷",
+ "identifier" : "bangkok",
+ "population" : "5,104,476"
+ },
+ {
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "班加罗尔",
+ "identifier" : "bengaluru",
+ "population" : "5,104,047"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "圣彼得堡",
+ "identifier" : "saint petersburg",
+ "population" : "5,028,000"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "圣地亚哥",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "加尔各答",
+ "identifier" : "kolkata",
+ "population" : "4,631,392"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "悉尼",
+ "identifier" : "sydney",
+ "population" : "4,627,345"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "仰光",
+ "identifier" : "yangon",
+ "population" : "4,477,638"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "钦奈",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "墨尔本",
+ "identifier" : "melbourne",
+ "population" : "4,246,375"
+ },
+ {
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "利雅得",
+ "identifier" : "riyadh",
+ "population" : "4,205,961"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "洛杉矶",
+ "identifier" : "los angeles",
+ "population" : "3,971,883"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "吉大港市",
+ "identifier" : "chittagong",
+ "population" : "3,920,222"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "亚历山德里亚",
+ "identifier" : "alexandria",
+ "population" : "3,811,516"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "艾哈迈达巴德",
+ "identifier" : "ahmedabad",
+ "population" : "3,719,710"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "釜山",
+ "identifier" : "busan",
+ "population" : "3,678,555"
+ },
+ {
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿比让",
+ "identifier" : "abidjan",
+ "population" : "3,677,115"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "鹿野",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "海得拉巴",
+ "identifier" : "hyderabad",
+ "population" : "3,597,816"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "横滨",
+ "identifier" : "yokohama",
+ "population" : "3,574,443"
+ },
+ {
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊巴丹岛",
+ "identifier" : "ibadan",
+ "population" : "3,565,108"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "新加坡",
+ "identifier" : "singapore",
+ "population" : "3,547,809"
+ },
+ {
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "安卡拉",
+ "identifier" : "ankara",
+ "population" : "3,517,182"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "胡志明市",
+ "identifier" : "ho chi minh city",
+ "population" : "3,467,331"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "开普敦",
+ "identifier" : "cape town",
+ "population" : "3,433,441"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "柏林",
+ "identifier" : "berlin",
+ "population" : "3,426,354"
+ },
+ {
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "马德里",
+ "identifier" : "madrid",
+ "population" : "3,255,944"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "平壤",
+ "identifier" : "pyongyang",
+ "population" : "3,222,000"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "卡萨布兰卡",
+ "identifier" : "casablanca",
+ "population" : "3,144,909"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "中山",
+ "identifier" : "zhongshan",
+ "population" : "3,121,275"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "德班",
+ "identifier" : "durban",
+ "population" : "3,120,282"
+ },
+ {
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "喀布尔",
+ "identifier" : "kabul",
+ "population" : "3,043,532"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "乌鲁木齐",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "加拉加斯",
+ "identifier" : "caracas",
+ "population" : "3,000,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "迪拜",
+ "identifier" : "dubai",
+ "population" : "2,956,587"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "吉达",
+ "identifier" : "jeddah",
+ "population" : "2,867,446"
+ },
+ {
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "基辅",
+ "identifier" : "kyiv",
+ "population" : "2,797,553"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "罗安达",
+ "identifier" : "luanda",
+ "population" : "2,776,168"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "奎松市",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "亚的斯亚贝巴(埃塞俄比亚首都",
+ "identifier" : "addis ababa",
+ "population" : "2,757,729"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "内罗毕",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "芝加哥",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "萨尔瓦多",
+ "identifier" : "salvador",
+ "population" : "2,711,840"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "达累斯萨拉姆",
+ "identifier" : "dar es salaam",
+ "population" : "2,698,652"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "多伦多",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "大阪",
+ "identifier" : "osaka",
+ "population" : "2,592,413"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "摩加迪沙",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊兹密尔",
+ "identifier" : "izmir",
+ "population" : "2,500,603"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "达喀尔",
+ "identifier" : "dakar",
+ "population" : "2,476,400"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "吉萨",
+ "identifier" : "giza",
+ "population" : "2,443,203"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "福塔雷萨",
+ "identifier" : "fortaleza",
+ "population" : "2,400,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "泗水",
+ "identifier" : "surabaya",
+ "population" : "2,374,658"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "贝洛奥里藏特",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "罗马",
+ "identifier" : "rome",
+ "population" : "2,318,895"
+ },
+ {
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "马什哈德",
+ "identifier" : "mashhad",
+ "population" : "2,307,177"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "布鲁克林区",
+ "identifier" : "brooklyn",
+ "population" : "2,300,664"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "休斯顿",
+ "identifier" : "houston",
+ "population" : "2,296,224"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "皇后区",
+ "identifier" : "queens",
+ "population" : "2,272,771"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "巴西利亚",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "圣多明哥",
+ "identifier" : "santo domingo",
+ "population" : "2,201,941"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "名古屋",
+ "identifier" : "nagoya",
+ "population" : "2,191,279"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "布里斯班",
+ "identifier" : "brisbane",
+ "population" : "2,189,878"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "哈瓦那",
+ "identifier" : "havana",
+ "population" : "2,163,824"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "巴黎",
+ "identifier" : "paris",
+ "population" : "2,138,551"
+ },
+ {
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "约翰内斯堡",
+ "identifier" : "johannesburg",
+ "population" : "2,026,469"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "阿拉木图",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "塔什干",
+ "identifier" : "tashkent",
+ "population" : "1,978,028"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "阿尔及尔",
+ "identifier" : "algiers",
+ "population" : "1,977,663"
+ },
+ {
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "喀土穆",
+ "identifier" : "khartoum",
+ "population" : "1,974,647"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "阿克拉",
+ "identifier" : "accra",
+ "population" : "1,963,264"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "瓜亚基尔",
+ "identifier" : "guayaquil",
+ "population" : "1,952,029"
+ },
+ {
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "萨那",
+ "identifier" : "sanaa",
+ "population" : "1,937,451"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "贝鲁特",
+ "identifier" : "beirut",
+ "population" : "1,916,100"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "珀斯",
+ "identifier" : "perth",
+ "population" : "1,896,548"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "札幌",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "布加勒斯特",
+ "identifier" : "bucharest",
+ "population" : "1,877,155"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "卡马耶纳",
+ "identifier" : "camayenne",
+ "population" : "1,871,242"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "科纳克里",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "明斯克",
+ "identifier" : "minsk",
+ "population" : "1,742,124"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "布达佩斯",
+ "identifier" : "budapest",
+ "population" : "1,741,041"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "汉堡",
+ "identifier" : "hamburg",
+ "population" : "1,739,117"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "华沙",
+ "identifier" : "warsaw",
+ "population" : "1,702,139"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "索韦托",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "维也纳",
+ "identifier" : "vienna",
+ "population" : "1,691,468"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "拉巴特",
+ "identifier" : "rabat",
+ "population" : "1,655,753"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴塞罗纳",
+ "identifier" : "barcelona",
+ "population" : "1,621,537"
+ },
+ {
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "比勒陀利亚",
+ "identifier" : "pretoria",
+ "population" : "1,619,438"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "阿勒颇",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "马尼拉",
+ "identifier" : "manila",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "蒙特利尔",
+ "identifier" : "montreal",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "卡杜纳",
+ "identifier" : "kaduna",
+ "population" : "1,582,102"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "金边",
+ "identifier" : "phnom penh",
+ "population" : "1,573,544"
+ },
+ {
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "大马士革",
+ "identifier" : "damascus",
+ "population" : "1,569,394"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "费城",
+ "identifier" : "philadelphia",
+ "population" : "1,567,442"
+ },
+ {
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "凤凰",
+ "identifier" : "phoenix",
+ "population" : "1,563,025"
+ },
+ {
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "伊斯法罕",
+ "identifier" : "isfahan",
+ "population" : "1,547,164"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "哈拉雷",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "科比",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "斯德哥尔摩",
+ "identifier" : "stockholm",
+ "population" : "1,515,017"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "曼哈顿",
+ "identifier" : "manhattan",
+ "population" : "1,487,536"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "亚松森",
+ "identifier" : "asuncion",
+ "population" : "1,482,200"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "累西腓",
+ "identifier" : "recife",
+ "population" : "1,478,098"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "圣安东尼奥",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "库马西",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "哥打巴鲁",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "京都",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "吉隆坡",
+ "identifier" : "kuala lumpur",
+ "population" : "1,453,975"
+ },
+ {
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡拉伊",
+ "identifier" : "karaj",
+ "population" : "1,448,075"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "加德满都",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "河内",
+ "identifier" : "hanoi",
+ "population" : "1,431,270"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "哈尔科夫",
+ "identifier" : "kharkiv",
+ "population" : "1,430,885"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "科尔多瓦",
+ "identifier" : "cordoba",
+ "population" : "1,428,214"
+ },
+ {
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "大不里士",
+ "identifier" : "tabriz",
+ "population" : "1,424,641"
+ },
+ {
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "新西伯利亚",
+ "identifier" : "novosibirsk",
+ "population" : "1,419,007"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "贝伦",
+ "identifier" : "belem",
+ "population" : "1,407,737"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "基多",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "圣地亚哥",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "福冈",
+ "identifier" : "fukuoka",
+ "population" : "1,392,289"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "塔那那利佛",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "布朗克斯",
+ "identifier" : "the bronx",
+ "population" : "1,385,108"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "卢本巴希",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "圣克鲁斯-德拉塞拉",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "坎帕拉",
+ "identifier" : "kampala",
+ "population" : "1,353,189"
+ },
+ {
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "叶卡捷琳堡",
+ "identifier" : "yekaterinburg",
+ "population" : "1,349,772"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "杜阿拉",
+ "identifier" : "douala",
+ "population" : "1,338,082"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "沙迦",
+ "identifier" : "sharjah",
+ "population" : "1,324,473"
+ },
+ {
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麦加",
+ "identifier" : "mecca",
+ "population" : "1,323,624"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "望加锡",
+ "identifier" : "makassar",
+ "population" : "1,321,717"
+ },
+ {
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "华雷斯",
+ "identifier" : "juarez",
+ "population" : "1,321,004"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "川崎",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "蒂华纳",
+ "identifier" : "tijuana",
+ "population" : "1,300,983"
+ },
+ {
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "达拉斯",
+ "identifier" : "dallas",
+ "population" : "1,300,092"
+ },
+ {
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麦地那",
+ "identifier" : "medina",
+ "population" : "1,300,000"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "雅温得",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "巴马科",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "布拉柴维尔",
+ "identifier" : "brazzaville",
+ "population" : "1,284,609"
+ },
+ {
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "下诺夫哥罗德",
+ "identifier" : "nizhniy novgorod",
+ "population" : "1,284,164"
+ },
+ {
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "安曼",
+ "identifier" : "amman",
+ "population" : "1,275,857"
+ },
+ {
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "贝尔格莱德",
+ "identifier" : "belgrade",
+ "population" : "1,273,651"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "蒙得维的亚",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "卢萨卡",
+ "identifier" : "lusaka",
+ "population" : "1,267,440"
+ },
+ {
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "慕尼黑",
+ "identifier" : "munich",
+ "population" : "1,260,391"
+ },
+ {
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "设拉子",
+ "identifier" : "shiraz",
+ "population" : "1,249,942"
+ },
+ {
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "米兰",
+ "identifier" : "milan",
+ "population" : "1,236,837"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "太子港",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "阿德莱德",
+ "identifier" : "adelaide",
+ "population" : "1,225,235"
+ },
+ {
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "恩杜曼",
+ "identifier" : "omdurman",
+ "population" : "1,200,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "ita玉",
+ "identifier" : "saitama",
+ "population" : "1,193,350"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "马普托",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "布拉格",
+ "identifier" : "prague",
+ "population" : "1,165,581"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "哥本哈根",
+ "identifier" : "copenhagen",
+ "population" : "1,153,615"
+ },
+ {
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "苏菲亚",
+ "identifier" : "sofia",
+ "population" : "1,152,556"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "的黎波里",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "哈科特港",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "广岛",
+ "identifier" : "hiroshima",
+ "population" : "1,143,841"
+ },
+ {
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "蒙特雷",
+ "identifier" : "monterrey",
+ "population" : "1,135,512"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "萨马拉",
+ "identifier" : "samara",
+ "population" : "1,134,730"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "鄂木斯克",
+ "identifier" : "omsk",
+ "population" : "1,129,281"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "贝宁市",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "巴库",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "迈杜古里",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "喀山",
+ "identifier" : "kazan",
+ "population" : "1,104,738"
+ },
+ {
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "叶里温",
+ "identifier" : "yerevan",
+ "population" : "1,093,485"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "瓦加杜古",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "罗斯托夫纳多努",
+ "identifier" : "rostov-na-donu",
+ "population" : "1,074,482"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "车里雅宾斯克",
+ "identifier" : "chelyabinsk",
+ "population" : "1,062,919"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "第比利斯",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "乌法",
+ "identifier" : "ufa",
+ "population" : "1,033,338"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "圣荷西",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "都柏林",
+ "identifier" : "dublin",
+ "population" : "1,024,027"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "卡尔加里",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "布鲁塞尔",
+ "identifier" : "brussels",
+ "population" : "1,019,022"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "伏尔加格勒",
+ "identifier" : "volgograd",
+ "population" : "1,011,417"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "敖德萨",
+ "identifier" : "odessa",
+ "population" : "1,001,558"
+ },
+ {
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "危地马拉城",
+ "identifier" : "guatemala city",
+ "population" : "994,938"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "伯明翰",
+ "identifier" : "birmingham",
+ "population" : "984,333"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "烫发",
+ "identifier" : "perm",
+ "population" : "982,419"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "扎里亚",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "伊丽莎白港",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "非斯",
+ "identifier" : "fes",
+ "population" : "964,891"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "科隆",
+ "identifier" : "cologne",
+ "population" : "963,395"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "那不勒斯",
+ "identifier" : "naples",
+ "population" : "959,470"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "马塞约",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "蒙罗维亚",
+ "identifier" : "monrovia",
+ "population" : "939,524"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "金斯顿",
+ "identifier" : "kingston",
+ "population" : "937,700"
+ },
+ {
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "奥斯丁",
+ "identifier" : "austin",
+ "population" : "931,830"
+ },
+ {
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "克拉斯诺亚尔斯克",
+ "identifier" : "krasnoyarsk",
+ "population" : "927,200"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "特卖",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "库姆",
+ "identifier" : "qom",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "比什凯克",
+ "identifier" : "bishkek",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿波波",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿坝",
+ "identifier" : "aba",
+ "population" : "897,560"
+ },
+ {
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "门多萨",
+ "identifier" : "mendoza",
+ "population" : "876,884"
+ },
+ {
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "姆布吉马耶",
+ "identifier" : "mbuji-mayi",
+ "population" : "874,761"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "皮金",
+ "identifier" : "pikine",
+ "population" : "874,062"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "都灵",
+ "identifier" : "turin",
+ "population" : "870,456"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "旧金山",
+ "aliases": ["三番"],
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "利物浦",
+ "identifier" : "liverpool",
+ "population" : "864,122"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "萨拉托夫",
+ "identifier" : "saratov",
+ "population" : "863,725"
+ },
+ {
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "德古西加巴",
+ "identifier" : "tegucigalpa",
+ "population" : "850,848"
+ },
+ {
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "沃罗涅日",
+ "identifier" : "voronezh",
+ "population" : "848,752"
+ },
+ {
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "乌兰巴托",
+ "identifier" : "ulan bator",
+ "population" : "844,818"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "阿瓦士",
+ "identifier" : "ahvaz",
+ "population" : "841,145"
+ },
+ {
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "马拉喀什",
+ "identifier" : "marrakesh",
+ "population" : "839,296"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "登巴萨",
+ "identifier" : "denpasar",
+ "population" : "834,881"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "沃思堡",
+ "identifier" : "fort worth",
+ "population" : "833,319"
+ },
+ {
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "印第安纳波利斯",
+ "identifier" : "indianapolis",
+ "population" : "829,718"
+ },
+ {
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "乔斯",
+ "identifier" : "jos",
+ "population" : "816,824"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴伦西亚",
+ "identifier" : "valencia",
+ "population" : "814,208"
+ },
+ {
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊洛林",
+ "identifier" : "ilorin",
+ "population" : "814,192"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "拉巴斯",
+ "identifier" : "la paz",
+ "population" : "215,178"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "渥太华",
+ "identifier" : "ottawa",
+ "population" : "812,129"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "弗里敦",
+ "identifier" : "freetown",
+ "population" : "802,639"
+ },
+ {
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "耶路撒冷",
+ "identifier" : "jerusalem",
+ "population" : "801,000"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "马斯喀特",
+ "identifier" : "muscat",
+ "population" : "797,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "马赛",
+ "identifier" : "marseille",
+ "population" : "794,811"
+ },
+ {
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "帕斯拉格德分行",
+ "identifier" : "pasragad branch",
+ "population" : "787,878"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "布默达斯",
+ "identifier" : "boumerdas",
+ "population" : "786,499"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "San Miguel de Tucuman",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "梅里达",
+ "identifier" : "merida",
+ "population" : "777,615"
+ },
+ {
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "尼亚美",
+ "identifier" : "niamey",
+ "population" : "774,235"
+ },
+ {
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡里兹",
+ "identifier" : "kahriz",
+ "population" : "766,706"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "克拉科夫",
+ "identifier" : "krakow",
+ "population" : "755,050"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "岘港市",
+ "identifier" : "da nang",
+ "population" : "752,493"
+ },
+ {
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "彼得马里茨堡",
+ "identifier" : "pietermaritzburg",
+ "population" : "750,845"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "洛美",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "基加利",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "里加",
+ "identifier" : "riga",
+ "population" : "742,572"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "阿姆斯特丹",
+ "identifier" : "amsterdam",
+ "population" : "741,636"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "大洋",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "诺丁汉",
+ "identifier" : "nottingham",
+ "population" : "729,977"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "大坎普市",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "阿什哈巴德",
+ "identifier" : "ashgabat",
+ "population" : "727,700"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "恩贾梅纳",
+ "identifier" : "n'djamena",
+ "population" : "721,081"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "利沃夫",
+ "identifier" : "lviv",
+ "population" : "717,803"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "埃莫西约",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "埃德蒙顿",
+ "identifier" : "edmonton",
+ "population" : "712,391"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "布拉瓦约",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "萨格勒布",
+ "identifier" : "zagreb",
+ "population" : "698,966"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "阿加迪尔",
+ "identifier" : "agadir",
+ "population" : "698,310"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "萨拉热窝",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "埃努古",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "丹吉尔",
+ "identifier" : "tangier",
+ "population" : "688,356"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "谢菲尔德",
+ "identifier" : "sheffield",
+ "population" : "685,368"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "西雅图",
+ "identifier" : "seattle",
+ "population" : "684,451"
+ },
+ {
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "丹佛",
+ "identifier" : "denver",
+ "population" : "682,545"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "埃尔帕索",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "杜尚别",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "底特律",
+ "identifier" : "detroit",
+ "population" : "677,116"
+ },
+ {
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "库里亚坎人",
+ "identifier" : "culiacan",
+ "population" : "675,773"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "马托拉",
+ "identifier" : "matola",
+ "population" : "675,422"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "波斯顿",
+ "identifier" : "boston",
+ "population" : "667,137"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "雅典",
+ "identifier" : "athens",
+ "population" : "664,046"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "努瓦克肖特",
+ "identifier" : "nouakchott",
+ "population" : "661,400"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "黑角",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "孟菲斯",
+ "identifier" : "memphis",
+ "population" : "655,770"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "法兰克福",
+ "identifier" : "frankfurt am main",
+ "population" : "650,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "克拉斯诺达尔",
+ "identifier" : "krasnodar",
+ "population" : "649,851"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴勒莫",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "科伦坡",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "利隆圭",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "奥兰",
+ "identifier" : "oran",
+ "population" : "645,984"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "基希讷乌",
+ "identifier" : "chisinau",
+ "population" : "635,994"
+ },
+ {
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "特比萨",
+ "identifier" : "tebessa",
+ "population" : "634,332"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "波特兰",
+ "identifier" : "portland",
+ "population" : "632,309"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "温尼伯",
+ "identifier" : "winnipeg",
+ "population" : "632,063"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "俄克拉荷马城",
+ "identifier" : "oklahoma city",
+ "population" : "631,346"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "坎昆",
+ "identifier" : "cancun",
+ "population" : "628,306"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "吉布地",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "巴尔的摩",
+ "identifier" : "baltimore",
+ "population" : "621,849"
+ },
+ {
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克尔曼沙",
+ "identifier" : "kermanshah",
+ "population" : "621,100"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "布里斯托尔",
+ "identifier" : "bristol",
+ "population" : "617,280"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "贝诺尼",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "阿布扎比",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "华盛顿州",
+ "identifier" : "washington",
+ "population" : "601,723"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "密尔沃基",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "温哥华",
+ "identifier" : "vancouver",
+ "population" : "600,000"
+ },
+ {
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "巴瑙尔",
+ "identifier" : "barnaul",
+ "population" : "599,579"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "鹿特丹",
+ "identifier" : "rotterdam",
+ "population" : "598,199"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "拉什特",
+ "identifier" : "rasht",
+ "population" : "594,590"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿倍库塔",
+ "identifier" : "abeokuta",
+ "population" : "593,100"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "埃森",
+ "identifier" : "essen",
+ "population" : "593,085"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "格拉斯哥",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "黄金海岸",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿布贾",
+ "identifier" : "abuja",
+ "population" : "590,400"
+ },
+ {
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "斯图加特",
+ "identifier" : "stuttgart",
+ "population" : "589,793"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "多特蒙德",
+ "identifier" : "dortmund",
+ "population" : "588,462"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "海参div",
+ "identifier" : "vladivostok",
+ "population" : "587,022"
+ },
+ {
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "伊尔库茨克",
+ "identifier" : "irkutsk",
+ "population" : "586,695"
+ },
+ {
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "布兰太尔",
+ "identifier" : "blantyre",
+ "population" : "584,877"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "热那亚",
+ "identifier" : "genoa",
+ "population" : "580,223"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "奥斯陆",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "利伯维尔",
+ "identifier" : "libreville",
+ "population" : "578,156"
+ },
+ {
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克尔曼",
+ "identifier" : "kerman",
+ "population" : "577,514"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜塞尔多夫",
+ "identifier" : "duesseldorf",
+ "population" : "573,057"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "古晋",
+ "identifier" : "kuching",
+ "population" : "570,407"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "阿尔伯克基",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "赫尔辛基",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "亚丁",
+ "identifier" : "aden",
+ "population" : "550,602"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "奥伦堡",
+ "identifier" : "orenburg",
+ "population" : "550,204"
+ },
+ {
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "普里什蒂纳",
+ "identifier" : "pristina",
+ "population" : "550,000"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "不来梅",
+ "identifier" : "bremen",
+ "population" : "546,501"
+ },
+ {
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "维尔纽斯",
+ "identifier" : "vilnius",
+ "population" : "542,366"
+ },
+ {
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "纳什维尔",
+ "identifier" : "nashville",
+ "population" : "530,852"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "魁北克",
+ "identifier" : "quebec",
+ "population" : "528,595"
+ },
+ {
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "圣萨尔瓦多",
+ "identifier" : "san salvador",
+ "population" : "525,990"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "澳门",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "秋明州",
+ "identifier" : "tyumen",
+ "population" : "519,119"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "里斯本",
+ "identifier" : "lisbon",
+ "population" : "517,802"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "汉诺威",
+ "identifier" : "hannover",
+ "population" : "515,140"
+ },
+ {
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "萨尔塔",
+ "identifier" : "salta",
+ "population" : "512,686"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "莱斯特",
+ "identifier" : "leicester",
+ "population" : "508,916"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "莱比锡",
+ "identifier" : "leipzig",
+ "population" : "504,971"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜伊斯堡",
+ "identifier" : "duisburg",
+ "population" : "504,358"
+ },
+ {
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "阿斯特拉罕",
+ "identifier" : "astrakhan",
+ "population" : "502,533"
+ },
+ {
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "纽伦堡",
+ "identifier" : "nuernberg",
+ "population" : "499,237"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "德累斯顿",
+ "identifier" : "dresden",
+ "population" : "486,854"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "托木斯克",
+ "identifier" : "tomsk",
+ "population" : "485,519"
+ },
+ {
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "亚兹德",
+ "identifier" : "yazd",
+ "population" : "477,905"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "堪萨斯城",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "斯科普里",
+ "identifier" : "skopje",
+ "population" : "474,889"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "海牙",
+ "identifier" : "the hague",
+ "population" : "474,292"
+ },
+ {
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里昂",
+ "identifier" : "lyon",
+ "population" : "472,317"
+ },
+ {
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "爱丁堡",
+ "identifier" : "edinburgh",
+ "population" : "464,990"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "安特卫普",
+ "identifier" : "antwerpen",
+ "population" : "459,805"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "坤甸",
+ "identifier" : "pontianak",
+ "population" : "455,173"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "利兹",
+ "identifier" : "leeds",
+ "population" : "455,123"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "加的夫",
+ "identifier" : "cardiff",
+ "population" : "447,287"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "圣胡安",
+ "identifier" : "san juan",
+ "population" : "418,140"
+ },
+ {
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "奥马哈",
+ "identifier" : "omaha",
+ "population" : "443,885"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "家乐福",
+ "identifier" : "carrefour",
+ "population" : "442,156"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "迈阿密",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "加里宁格勒",
+ "identifier" : "kaliningrad",
+ "population" : "434,954"
+ },
+ {
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "图卢兹",
+ "identifier" : "toulouse",
+ "population" : "433,055"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "特拉维夫",
+ "identifier" : "tel aviv",
+ "population" : "432,892"
+ },
+ {
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "东耶路撒冷",
+ "identifier" : "east jerusalem",
+ "population" : "428,304"
+ },
+ {
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "布拉迪斯拉发",
+ "identifier" : "bratislava",
+ "population" : "423,737"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "奥克兰市",
+ "identifier" : "auckland",
+ "population" : "417,910"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "塞瓦斯托波尔",
+ "identifier" : "sevastopol",
+ "population" : "416,263"
+ },
+ {
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "明尼阿波利斯",
+ "identifier" : "minneapolis",
+ "population" : "410,939"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "加沙",
+ "identifier" : "gaza",
+ "population" : "410,000"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "库尔斯克",
+ "identifier" : "kursk",
+ "population" : "409,431"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "巴拿马",
+ "identifier" : "panama",
+ "population" : "408,168"
+ },
+ {
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "塔尔萨",
+ "identifier" : "tulsa",
+ "population" : "403,505"
+ },
+ {
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "特维尔",
+ "identifier" : "tver",
+ "population" : "400,212"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "曼彻斯特",
+ "identifier" : "manchester",
+ "population" : "395,515"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "塔林",
+ "identifier" : "tallinn",
+ "population" : "394,024"
+ },
+ {
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "坎大哈",
+ "identifier" : "kandahar",
+ "population" : "391,190"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "威奇托",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "新奥尔良",
+ "identifier" : "new orleans",
+ "population" : "389,617"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "惠灵顿",
+ "identifier" : "wellington",
+ "population" : "381,900"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "大加那利岛拉斯帕尔马斯",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "马萨特兰",
+ "identifier" : "mazatlan",
+ "population" : "381,583"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "地拉那",
+ "identifier" : "tirana",
+ "population" : "374,801"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "考纳斯",
+ "identifier" : "kaunas",
+ "population" : "374,643"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "火奴鲁鲁",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "堪培拉",
+ "identifier" : "canberra",
+ "population" : "367,752"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "博洛尼亚",
+ "identifier" : "bologna",
+ "population" : "366,133"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "基督城",
+ "identifier" : "christchurch",
+ "population" : "363,926"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "哈利法克斯",
+ "identifier" : "halifax",
+ "population" : "359,111"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "安汶",
+ "identifier" : "ambon",
+ "population" : "355,596"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "佛罗伦斯",
+ "identifier" : "florence",
+ "population" : "349,296"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "多哈",
+ "identifier" : "doha",
+ "population" : "344,939"
+ },
+ {
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "苏黎世",
+ "identifier" : "zurich",
+ "population" : "341,730"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "好啊",
+ "identifier" : "nice",
+ "population" : "338,620"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "辛菲罗波尔",
+ "identifier" : "simferopol",
+ "population" : "336,460"
+ },
+ {
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "特皮克",
+ "identifier" : "tepic",
+ "population" : "332,863"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "索契",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "斯摩棱斯克",
+ "identifier" : "smolensk",
+ "population" : "320,991"
+ },
+ {
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "撒马尔罕",
+ "identifier" : "samarkand",
+ "population" : "319,366"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "摩尔曼斯克",
+ "identifier" : "murmansk",
+ "population" : "319,263"
+ },
+ {
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "弗拉季卡夫卡兹",
+ "identifier" : "vladikavkaz",
+ "population" : "317,370"
+ },
+ {
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "赤太",
+ "identifier" : "chita",
+ "population" : "308,500"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "新城堡",
+ "identifier" : "newcastle",
+ "population" : "308,308"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "韦略港",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "圣萨尔瓦多·德胡胡伊",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "匹兹堡",
+ "identifier" : "pittsburgh",
+ "population" : "304,391"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "布雷斯特",
+ "identifier" : "brest",
+ "population" : "144,899"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "锚地",
+ "identifier" : "anchorage",
+ "population" : "298,695"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "辛辛那提",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "卧龙岗市",
+ "identifier" : "wollongong",
+ "population" : "292,190"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "卡塔尼亚",
+ "identifier" : "catania",
+ "population" : "290,927"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "乌特勒支",
+ "identifier" : "utrecht",
+ "population" : "290,529"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "维多利亚州",
+ "identifier" : "victoria",
+ "population" : "289,625"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "莫尔兹比港",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "洛根市",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴里",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "南特",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "史特拉斯堡",
+ "identifier" : "strasbourg",
+ "population" : "274,845"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "贝尔法斯特",
+ "identifier" : "belfast",
+ "population" : "274,770"
+ },
+ {
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "卢布尔雅那",
+ "identifier" : "ljubljana",
+ "population" : "272,220"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "奥兰多",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "彼得罗扎沃茨克",
+ "identifier" : "petrozavodsk",
+ "population" : "265,025"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "普利茅斯",
+ "identifier" : "plymouth",
+ "population" : "260,203"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "里约布兰科",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "洛斯·莫奇斯",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "波尔图",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "麦迪逊",
+ "identifier" : "madison",
+ "population" : "248,951"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "蒙彼利埃",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "奥胡斯",
+ "identifier" : "arhus",
+ "population" : "237,551"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "雅库茨克",
+ "identifier" : "yakutsk",
+ "population" : "235,600"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "乔治敦",
+ "identifier" : "georgetown",
+ "population" : "235,017"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "波尔多",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "根特",
+ "identifier" : "gent",
+ "population" : "231,493"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "巴吞鲁日",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里尔",
+ "identifier" : "lille",
+ "population" : "228,328"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "拿骚",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "吉朗",
+ "identifier" : "geelong",
+ "population" : "226,034"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "帕拉马里博",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "圣克鲁斯-德特内里费",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "格拉茨",
+ "identifier" : "graz",
+ "population" : "222,326"
+ },
+ {
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "墨西拿",
+ "identifier" : "messina",
+ "population" : "219,948"
+ },
+ {
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "维罗纳",
+ "identifier" : "verona",
+ "population" : "219,103"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "霍巴特",
+ "identifier" : "hobart",
+ "population" : "216,656"
+ },
+ {
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "诺维萨德",
+ "identifier" : "novi sad",
+ "population" : "215,400"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "卑尔根",
+ "identifier" : "bergen",
+ "population" : "213,585"
+ },
+ {
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "得梅因",
+ "identifier" : "des moines",
+ "population" : "210,330"
+ },
+ {
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "科斯塔奈",
+ "identifier" : "kostanay",
+ "population" : "210,000"
+ },
+ {
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "林兹",
+ "identifier" : "linz",
+ "population" : "204,846"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕多瓦",
+ "identifier" : "padova",
+ "population" : "203,725"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "普斯科夫",
+ "identifier" : "pskov",
+ "population" : "201,990"
+ },
+ {
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "清迈",
+ "identifier" : "chiang mai",
+ "population" : "200,952"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "尼科西亚",
+ "identifier" : "nicosia",
+ "population" : "200,452"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "口服",
+ "identifier" : "oral",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "奥什",
+ "identifier" : "osh",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "萨斯卡通",
+ "identifier" : "saskatoon",
+ "population" : "198,958"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "小石头",
+ "identifier" : "little rock",
+ "population" : "197,992"
+ },
+ {
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "万象",
+ "identifier" : "vientiane",
+ "population" : "196,731"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "香港仔",
+ "identifier" : "aberdeen",
+ "population" : "196,670"
+ },
+ {
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "帕尔马斯",
+ "identifier" : "palmas",
+ "population" : "196,272"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "汤斯维尔",
+ "identifier" : "townsville",
+ "population" : "196,219"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "盐湖城",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "软木",
+ "identifier" : "cork",
+ "population" : "190,384"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "塔拉哈西",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "圣塔伦",
+ "identifier" : "santarem",
+ "population" : "189,047"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "卡塔马卡圣费尔南多·德尔瓦莱",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "的里雅斯特",
+ "identifier" : "trieste",
+ "population" : "187,056"
+ },
+ {
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "圣路易斯",
+ "identifier" : "san luis",
+ "population" : "183,982"
+ },
+ {
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "日内瓦",
+ "identifier" : "geneva",
+ "population" : "183,981"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "阿特劳",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "库塔伊西",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "南萨哈林斯克",
+ "identifier" : "yuzhno-sakhalinsk",
+ "population" : "176,484"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "分裂",
+ "identifier" : "split",
+ "population" : "176,314"
+ },
+ {
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "里贾纳",
+ "identifier" : "regina",
+ "population" : "176,183"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "图尔库",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "牛津",
+ "identifier" : "oxford",
+ "population" : "171,380"
+ },
+ {
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "杰克逊",
+ "identifier" : "jackson",
+ "population" : "170,674"
+ },
+ {
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "斯普林菲尔德",
+ "identifier" : "springfield",
+ "population" : "166,810"
+ },
+ {
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "巴塞尔",
+ "identifier" : "basel",
+ "population" : "164,488"
+ },
+ {
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "拉里奥哈",
+ "identifier" : "la rioja",
+ "population" : "162,620"
+ },
+ {
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "希伯伦",
+ "identifier" : "hebron",
+ "population" : "160,470"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "摩德纳",
+ "identifier" : "modena",
+ "population" : "158,886"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "剑桥",
+ "identifier" : "cambridge",
+ "population" : "158,434"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "弗里斯科",
+ "identifier" : "frisco",
+ "population" : "154,407"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "帕萨迪纳",
+ "identifier" : "pasadena",
+ "population" : "153,784"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "约克",
+ "identifier" : "york",
+ "population" : "153,717"
+ },
+ {
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "萨尔茨堡",
+ "identifier" : "salzburg",
+ "population" : "153,377"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "凯恩斯",
+ "identifier" : "cairns",
+ "population" : "153,075"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "汉密尔顿",
+ "identifier" : "hamilton",
+ "population" : "152,641"
+ },
+ {
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "拉古纳",
+ "identifier" : "la laguna",
+ "population" : "150,661"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "帝力",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "第戎",
+ "identifier" : "dijon",
+ "population" : "149,782"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "乌普萨拉",
+ "identifier" : "uppsala",
+ "population" : "149,245"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "特隆赫姆",
+ "identifier" : "trondheim",
+ "population" : "147,139"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "麦纳麦",
+ "identifier" : "manama",
+ "population" : "147,074"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕尔马",
+ "identifier" : "parma",
+ "population" : "146,299"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "博伊西",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "欧登塞",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "亚眠",
+ "identifier" : "amiens",
+ "population" : "143,086"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "旅游团",
+ "identifier" : "tours",
+ "population" : "141,621"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "波德戈里察",
+ "identifier" : "podgorica",
+ "population" : "136,473"
+ },
+ {
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "因斯布鲁克",
+ "identifier" : "innsbruck",
+ "population" : "132,493"
+ },
+ {
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "图文巴",
+ "identifier" : "toowoomba",
+ "population" : "131,258"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "达尔文",
+ "identifier" : "darwin",
+ "population" : "129,062"
+ },
+ {
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "伯尔尼",
+ "identifier" : "bern",
+ "population" : "121631"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..edf339b38
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
@@ -0,0 +1,282 @@
+{
+ "percentage": [
+ {
+ "identifier": "reversedPercentOf",
+ "prototypeExpressions": [
+ "100的10%",
+ "100之10%",
+ "100 的 10%",
+ "100 之 10%"
+ ]
+ },
+ {
+ "identifier": "reversedPercentOff",
+ "prototypeExpressions": [
+ "100减10%",
+ "100去10%",
+ "100 减 10%",
+ "100 去 10%"
+ ]
+ },
+ {
+ "identifier": "reversedPercentOn",
+ "prototypeExpressions": [
+ "100加10%",
+ "100加上10%",
+ "100 加 10%",
+ "100 加上 10%"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhat",
+ "prototypeExpressions": [
+ "30 是多少的 20%",
+ "30 是什么的 20%",
+ "30是多少的20%",
+ "30是什么的20%"
+ ]
+ },
+ {
+ "identifier": "isPercentOfWhatClassic",
+ "prototypeExpressions": [
+ "多少的 20% 是 30",
+ "多少的 20% 为 30",
+ "多少的20%是30",
+ "多少的20%为30",
+ "什么的 20% 为 30",
+ "什么的 20% 是 30",
+ "什么的20%为30",
+ "什么的20%是30"
+ ]
+ },
+ {
+ "identifier": "isPercentOffWhatClassic",
+ "prototypeExpressions": [
+ "多少减去 20% 是 30",
+ "多少减 20% 是 30",
+ "多少减去20%是30",
+ "多少减20%是30",
+ "什么减去 20% 是 30",
+ "什么减 20% 是 30",
+ "什么减去20%是30",
+ "什么减20%是30"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhat",
+ "prototypeExpressions": [
+ "30 是多少加 20%",
+ "30 是多少加上 20%",
+ "30 是多少加20%",
+ "30 是多少加上20%",
+ "30 是什么加 20%",
+ "30 是什么加上 20%",
+ "30 是什么加20%",
+ "30 是什么加上20%"
+ ]
+ },
+ {
+ "identifier": "isPercentOnWhatClassic",
+ "prototypeExpressions": [
+ "多少加 20% 是 30",
+ "多少加 20% 为 30",
+ "多少加上 20% 是 30",
+ "多少加上 20% 为 30",
+ "多少加20%是30",
+ "多少加20%为30",
+ "多少加上20%是30",
+ "多少加上20%为30",
+ "什么加 20% 是 30",
+ "什么加 20% 为 30",
+ "什么加上 20% 是 30",
+ "什么加上 20% 为 30",
+ "什么加20%是30",
+ "什么加20%为30",
+ "什么加上20%是30",
+ "什么加上20%为30"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOf",
+ "prototypeExpressions": [
+ "10 是 20 里的占比为",
+ "10 是 20 里的百分比为",
+ "10是20里的占比为",
+ "10是20里的百分比为",
+ "10 在 20 里的占比为",
+ "10 在 20 里的百分比为",
+ "10在20里的占比为",
+ "10在20里的百分比为"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOff",
+ "prototypeExpressions": [
+ "10 是 20 去掉百分之多少",
+ "10是20去掉百分之多少",
+ "10 是 20 减去百分之多少",
+ "10是20减去百分之多少",
+ "10 是 20 减百分之多少",
+ "10是20减百分之多少",
+ "10 是 20 去掉百分之几",
+ "10是20去掉百分之几",
+ "10 是 20 减去百分之几",
+ "10是20减去百分之几",
+ "10 是 20 减百分之几",
+ "10是20减百分之几"
+ ]
+ },
+ {
+ "identifier": "isWhatPercentOn",
+ "prototypeExpressions": [
+ "20 是 10 加百分之多少",
+ "20 是 10 加上百分之几",
+ "20是10加百分之多少",
+ "20是10加上百分之几"
+ ]
+ }
+ ],
+ "general": [
+ {
+ "identifier": "remainder",
+ "prototypeExpressions": [
+ "20 除以 3 的余数",
+ "20除以3的余数",
+ "20 除 3 之余",
+ "20除3之余"
+ ]
+ },
+ {
+ "identifier": "halfOf",
+ "prototypeExpressions": [
+ "20 的一半为",
+ "20 的一半是",
+ "20 的一般",
+ "20的一半为",
+ "20的一半是"
+ ]
+ },
+ {
+ "identifier": "lesserOf",
+ "prototypeExpressions": [
+ "2和30之间小的一个数",
+ "2和30之间较小的一个数",
+ "2和30之间最小的一个数",
+ "2 和 30 之间小的一个数",
+ "2 和 30 之间较小的一个数",
+ "2 和 30 之间最小的一个数"
+ ]
+ },
+ {
+ "identifier": "greaterOf",
+ "prototypeExpressions": [
+ "2和30之间大的一个数",
+ "2和30之间较大的一个数",
+ "2和30之间最大的一个数",
+ "2 和 30 之间大的一个数",
+ "2 和 30 之间较大的一个数",
+ "2 和 30 之间最大的一个数"
+ ]
+ },
+ {
+ "identifier": "midpoint",
+ "prototypeExpressions": [
+ "2 与 32 的中间点",
+ "2 与 32 的中间数",
+ "2 与 32 的中间值",
+ "2 和 32 的中间点",
+ "2 和 32 的中间数",
+ "2 和 32 的中间值",
+ "2 与 32 的中间点",
+ "2 与 32 的中间数",
+ "2 与 32 的中间值"
+ ]
+ },
+ {
+ "identifier": "proportionsFindNumerator",
+ "prototypeExpressions": [
+ "多少除以8相当于6除以600",
+ "多少除以8等于6除以600",
+ "什么除以8相当于6除以600",
+ "什么除以8等于6除以600"
+ ]
+ },
+ {
+ "identifier": "proportionsFindDenominator",
+ "prototypeExpressions": [
+ "8除以多少相当于6除以600",
+ "8除以多少等于6除以600",
+ "8除以什么相当于6除以600",
+ "8除以什么等于6除以600"
+ ]
+ },
+ {
+ "identifier": "makeRandomNumber",
+ "prototypeExpressions": [
+ "1 到 5 之间的任意数",
+ "1 与 5 之间的任意数",
+ "1 和 5 之间的任意数",
+ "1到5之间的任意数",
+ "1与5之间的任意数",
+ "1和5之间的任意数"
+ ]
+ }
+ ],
+ "unitRelated": [
+ ],
+ "datetime": [
+ {
+ "identifier": "calendarUnitBetweenDates",
+ "prototypeExpressions": [
+ "在 __datestamp 和 __datestamp 之间的 __unit 数",
+ "__datestamp 和 __datestamp 之间的 __unit",
+ "从 __datestamp 到 __datestamp 之间的 __unit 数",
+ "从 __datestamp 到 __datestamp 之间的 __unit"
+ ]
+ },
+ {
+ "identifier": "calendarUnitToDate",
+ "prototypeExpressions": [
+ "__unit 才到 __datestamp",
+ "多少 __unit 直到 __datestamp"
+ ]
+ },
+ {
+ "identifier": "intervalBetweenDates",
+ "prototypeExpressions": [
+ "从 __datestamp 到 __datestamp",
+ "从 __datestamp 至 __datestamp",
+ "__datestamp 到 __datestamp",
+ "__datestamp 至 __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "从 __timestamp 到 __timestamp",
+ "从 __timestamp 至 __timestamp",
+ "__timestamp 到 __timestamp",
+ "__timestamp 至 __timestamp"
+ ],
+ "identifier": "intervalBetweenTimestamps"
+ },
+ {
+ "identifier": "generateTimestamp",
+ "prototypeExpressions": [
+ "新的时间戳"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timezone 时间",
+ "__timezone 的时间"
+ ],
+ "identifier": "timeInTimezone"
+ },
+ {
+ "identifier": "differenceBetweenTimezones",
+ "prototypeExpressions": [
+ "__timezone 以及 __timezone 之间的时间差"
+ ]
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings
new file mode 100644
index 000000000..b0e20604e
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..7a6219274
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..a1c37837a
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
@@ -0,0 +1,143 @@
+{
+ "fixtures": {
+ "decimalPlacesTypes": [
+ "小数"
+ ],
+ "multiplierTypes": [
+ "乘数"
+ ],
+ "divisionOperators": [
+ "除以",
+ "每"
+ ],
+ "reverseDivisionOperators": [
+ "除"
+ ],
+ "roundingConverters": [
+ "四舍五入",
+ "舍入"
+ ],
+ "multiplicationOperators": [
+ "乘",
+ "乘以"
+ ],
+ "tomorrowDateAliases": [
+ "明天",
+ "明日"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "laptimeTypes": [
+ "圈速",
+ "每圈耗时"
+ ],
+ "numberTypes": [
+ "数字"
+ ],
+ "roundingDownConverters": [
+ ],
+ "yesterdayDateAliases": [
+ "昨天",
+ "昨日"
+ ],
+ "subtractionOperators": [
+ "减",
+ "减去"
+ ],
+ "todayDateAliases": [
+ "今天",
+ "今日"
+ ],
+ "timestampTypes": [
+ "时间戳"
+ ],
+ "roundingUpConverters": [
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "dateTypes": [
+ "日期"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "monthOfYearDateAliases": [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月",
+ "1月",
+ "2月",
+ "3月",
+ "4月",
+ "5月",
+ "6月",
+ "7月",
+ "8月",
+ "9月",
+ "10月",
+ "11月",
+ "12月"
+ ],
+ "additionOperators": [
+ "加",
+ "加上"
+ ],
+ "timespanTypes": [
+ "周期"
+ ],
+ "nowDateAliases": [
+ "现在"
+ ],
+ "converterSymbols": [
+ "到",
+ "为",
+ "作为"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "星期天",
+ "周一",
+ "周二",
+ "周三",
+ "周四",
+ "周五",
+ "周六",
+ "周日",
+ "周天"
+ ],
+ "fractionTypes": [
+ "分之",
+ "分数"
+ ],
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "percentTypes": [
+ "百分之",
+ "百分比"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..8fcda5e55
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/UnitDescriptions.json
@@ -0,0 +1,1360 @@
+{
+ "energy" : [
+ {
+ "symbol" : "焦耳",
+ "aliases" : [
+ "焦"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "千焦耳",
+ "aliases" : [
+ "千焦"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "兆焦耳",
+ "aliases" : [
+ "兆焦"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "吉焦耳",
+ "aliases" : [
+ "吉焦"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "卡路里",
+ "aliases" : [
+ "卡"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "千卡路里",
+ "aliases" : [
+ "千卡"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "瓦特小时",
+ "aliases" : [
+ "瓦小时"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "瓦特分",
+ "aliases" : [
+ "瓦特分钟"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "瓦特秒",
+ "aliases" : [],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "千瓦小时",
+ "aliases" : [
+ "千瓦时"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "兆瓦时",
+ "aliases" : [
+ "千度"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "亿瓦时",
+ "aliases" : [
+ "吉瓦时",
+ "千兆瓦时",
+ "兆瓦时",
+ "百万千瓦小时",
+ "百万度"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "万亿瓦[特]时",
+ "aliases" : [
+ "太瓦时"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "兆升",
+ "aliases" : [],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "千升",
+ "aliases" : [],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "升",
+ "aliases" : [],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "毫升",
+ "aliases" : [],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "立方千米",
+ "aliases" : [],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "立方米",
+ "aliases" : [],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "立方厘米",
+ "aliases" : [],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "立方毫米",
+ "aliases" : [],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "立方英寸",
+ "aliases" : [],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "立方英尺",
+ "aliases" : [],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "立方码",
+ "aliases" : [],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "立方英里",
+ "aliases" : [],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "蒲式耳",
+ "aliases" : [],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "英亩尺",
+ "aliases" : [
+ "英亩英尺"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "品脱",
+ "aliases" : [],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "夸脱",
+ "aliases" : [],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "加仑",
+ "aliases" : [],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "汤匙",
+ "aliases" : [],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "茶匙",
+ "aliases" : [],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "液盎司",
+ "aliases" : [
+ "液盎司"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "字节",
+ "aliases" : [],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "比特",
+ "aliases" : [],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "尧",
+ "aliases" : [
+ "尧它",
+ "尧字节"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "泽",
+ "aliases" : [
+ "泽字节",
+ "泽它字节"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "艾",
+ "aliases" : [
+ "EB",
+ "艾字节",
+ "艾可萨字节"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "P",
+ "拍",
+ "拍字节",
+ "拍它字节",
+ "千兆兆",
+ "千兆兆字节",
+ "千万亿字节"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "T",
+ "太",
+ "太字节",
+ "万亿字节"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "G",
+ "吉",
+ "吉字节",
+ "十亿字节",
+ "千兆字节"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "M",
+ "兆",
+ "兆字节",
+ "百万字节"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "千字节"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "尧比特"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "泽比特"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "艾比特"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "拍比特"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "太比特"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "吉比特",
+ "千兆比特"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "兆比特"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "千比特"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "艾比特"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "开",
+ "开尔文"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "摄氏度"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "华氏度"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [
+ "字节每秒",
+ "字节/秒"
+ ],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [
+ "比特率",
+ "比特每秒",
+ "比特/秒"
+ ],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [
+ "YB每秒",
+ "YB/秒",
+ "尧每秒",
+ "尧/秒",
+ "尧它每秒",
+ "尧它/秒",
+ "尧字节每秒",
+ "尧字节/秒"
+ ],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [
+ "ZB/秒",
+ "ZB每秒",
+ "泽/秒",
+ "泽每秒",
+ "泽字节/秒",
+ "泽字节每秒",
+ "泽它字节/秒",
+ "泽它字节每秒"
+ ],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [
+ "EB/秒",
+ "EB每秒",
+ "艾/秒",
+ "艾每秒",
+ "艾字节/秒",
+ "艾字节每秒",
+ "艾可萨/秒",
+ "艾可萨每秒"
+ ],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [
+ "PB/秒",
+ "PB每秒",
+ "拍/秒",
+ "拍每秒",
+ "拍字节/秒",
+ "拍字节每秒",
+ "拍它字节/秒",
+ "拍它字节每秒",
+ "千兆兆/秒",
+ "千兆兆每秒",
+ "千兆兆字节/秒",
+ "千兆兆字节每秒",
+ "千万亿字节/秒",
+ "千万亿字节每秒"
+ ],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [
+ "TB/秒",
+ "TB每秒",
+ "太/秒",
+ "太每秒",
+ "太字节/秒",
+ "太字节每秒",
+ "万亿字节/秒",
+ "万亿字节每秒"
+ ],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "GB/秒",
+ "GB每秒",
+ "吉/秒",
+ "吉每秒",
+ "吉字节/秒",
+ "吉字节每秒",
+ "十亿字节/秒",
+ "十亿字节每秒",
+ "千兆字节/秒",
+ "千兆字节每秒"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "M/秒",
+ "M每秒",
+ "MB/秒",
+ "MB每秒",
+ "兆/秒",
+ "兆每秒",
+ "兆字节/秒",
+ "兆字节每秒",
+ "百万字节/秒",
+ "百万字节每秒"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "KB/秒",
+ "KB每秒",
+ "千字节/秒",
+ "千字节每秒"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [
+ "YB/秒",
+ "YB每秒"
+ ],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [
+ "ZB/秒",
+ "ZB每秒"
+ ],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [
+ "EB/秒",
+ "EB每秒",
+ "艾比特/秒",
+ "艾比特每秒"
+ ],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "拍比特/秒",
+ "拍比特每秒"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "太比特/秒",
+ "太比特每秒"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "吉比特/秒",
+ "吉比特每秒",
+ "千兆比特/秒",
+ "千兆比特每秒",
+ "千兆位/秒",
+ "千兆位每秒"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "兆比特/秒",
+ "兆比特每秒"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "千比特/秒",
+ "千比特每秒"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [
+ "YiB/秒",
+ "YiB每秒"
+ ],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [
+ "ZiB/秒",
+ "ZiB每秒"
+ ],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [
+ "EiB/秒",
+ "EiB每秒"
+ ],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [
+ "PiB/秒",
+ "PiB每秒"
+ ],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [
+ "TiB/秒",
+ "TiB每秒"
+ ],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [
+ "GiB/秒",
+ "GiB每秒"
+ ],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [
+ "MiB/秒",
+ "MiB每秒"
+ ],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [
+ "KiB/秒",
+ "KiB每秒"
+ ],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [
+ "Yib/秒",
+ "Yib每秒"
+ ],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [
+ "Zib/秒",
+ "Zib每秒"
+ ],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [
+ "Eib/秒",
+ "Eib每秒"
+ ],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [
+ "Pib/秒",
+ "Pib每秒"
+ ],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [
+ "Tib/秒",
+ "Tib每秒"
+ ],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [
+ "Gib/秒",
+ "Gib每秒"
+ ],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [
+ "Mib/秒",
+ "Mib每秒"
+ ],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [
+ "Kib/秒",
+ "Kib每秒"
+ ],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "米/秒",
+ "aliases" : [
+ "米每秒"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "千米/时",
+ "aliases" : [
+ "千米每小时",
+ "千米/小时"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "英里/时",
+ "aliases" : [
+ "英里每小时",
+ "英里/小时"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "节",
+ "aliases" : [],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "度"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "度"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "米"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "千米",
+ "公里"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "厘米"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "毫米"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "微米"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "纳米"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "英寸"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "英尺"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "码"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "英里"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "光年"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "秒差距"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "海里"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "英寻"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "浪"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "像素"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "点"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "平方公里",
+ "平方千米"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "平方米"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "平方厘米"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "平方毫米"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "平方微米"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "平方英寸"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "平方码"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "平方码"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "平方英里"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "英亩"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "公顷"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "ares",
+ "aliases" : [
+ "公亩"
+ ],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L\/100km",
+ "aliases" : [
+ "升/千米",
+ "千米每升"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "英里/加仑",
+ "英里每加仑"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "瓦特",
+ "瓦"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "毫瓦特",
+ "毫瓦"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "千瓦特",
+ "千瓦"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "兆瓦",
+ "兆瓦特"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "千兆瓦特",
+ "千兆瓦"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "太瓦特",
+ "太瓦"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "马力",
+ "匹"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "千克"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "克"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "毫克"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "毫微克"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "盎司"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "磅"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "英石"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "公吨"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "吨"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "克拉",
+ "开"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "金衡盎司"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "小时"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "秒"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "分",
+ "分钟"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "天"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "工作日"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "周",
+ "星期"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "月",
+ "个月"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "年"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "毫秒"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "微秒"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "毫微秒"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "美元"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "赫兹"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "千赫兹",
+ "千赫"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "兆赫兹",
+ "百万赫兹"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "十亿赫",
+ "吉赫",
+ "千兆赫"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "兆赫",
+ "兆赫兹"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "毫赫兹",
+ "毫赫"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "微赫兹"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "纳米赫兹"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Cities.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Cities.json
new file mode 100644
index 000000000..c714ed87c
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Cities.json
@@ -0,0 +1,3565 @@
+[
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "上海",
+ "identifier" : "shanghai",
+ "population" : "22,315,474"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊斯坦堡",
+ "identifier" : "istanbul",
+ "population" : "14,804,116"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "布宜諾斯艾利斯",
+ "identifier" : "buenos aires",
+ "population" : "13,076,300"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "孟買",
+ "identifier" : "mumbai",
+ "population" : "12,691,836"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "墨西哥城",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "北京",
+ "identifier" : "beijing",
+ "population" : "11,716,620"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "卡拉奇",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "天津",
+ "identifier" : "tianjin",
+ "population" : "11,090,314"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "廣州",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "新德里",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "莫斯科",
+ "identifier" : "moscow",
+ "population" : "10,381,222"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "深圳",
+ "identifier" : "shenzhen",
+ "population" : "10,358,381"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "達卡",
+ "identifier" : "dhaka",
+ "population" : "10,356,500"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "漢城",
+ "identifier" : "seoul",
+ "population" : "10,349,312"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "聖保羅",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "武漢市",
+ "identifier" : "wuhan",
+ "population" : "9,785,388"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "拉各斯",
+ "identifier" : "lagos",
+ "population" : "9,000,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "雅加達",
+ "identifier" : "jakarta",
+ "population" : "8,540,121"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "東京",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "紐約",
+ "identifier" : "new york",
+ "population" : "8,175,133"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "東莞市",
+ "identifier" : "dongguan",
+ "population" : "8,000,000"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "台北",
+ "identifier" : "taipei",
+ "population" : "7,871,900"
+ },
+ {
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "金夏沙",
+ "identifier" : "kinshasa",
+ "population" : "7,785,965"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "開羅",
+ "identifier" : "cairo",
+ "population" : "7,734,614"
+ },
+ {
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "波哥大",
+ "identifier" : "bogota",
+ "population" : "7,674,366"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "倫敦",
+ "identifier" : "london",
+ "population" : "7,556,900"
+ },
+ {
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "重慶市",
+ "identifier" : "chongqing",
+ "population" : "7,457,600"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "成都市",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "巴格達",
+ "identifier" : "baghdad",
+ "population" : "7,216,000"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南京",
+ "identifier" : "nanjing",
+ "population" : "7,165,292"
+ },
+ {
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "德黑蘭",
+ "identifier" : "tehran",
+ "population" : "7,153,309"
+ },
+ {
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南充",
+ "identifier" : "nanchong",
+ "population" : "7,150,000"
+ },
+ {
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "香港",
+ "identifier" : "hong kong",
+ "population" : "7,012,738"
+ },
+ {
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "西安",
+ "identifier" : "xi'an",
+ "population" : "6,501,190"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "里約熱內盧",
+ "identifier" : "rio de janeiro",
+ "population" : "6,023,699"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "曼谷",
+ "identifier" : "bangkok",
+ "population" : "5,104,476"
+ },
+ {
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "班加羅爾",
+ "identifier" : "bengaluru",
+ "population" : "5,104,047"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "聖彼得堡",
+ "identifier" : "saint petersburg",
+ "population" : "5,028,000"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "聖地亞哥",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "加爾各答",
+ "identifier" : "kolkata",
+ "population" : "4,631,392"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "悉尼",
+ "identifier" : "sydney",
+ "population" : "4,627,345"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "仰光",
+ "identifier" : "yangon",
+ "population" : "4,477,638"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "欽奈",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "墨爾本",
+ "identifier" : "melbourne",
+ "population" : "4,246,375"
+ },
+ {
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "利雅得",
+ "identifier" : "riyadh",
+ "population" : "4,205,961"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "洛杉磯",
+ "identifier" : "los angeles",
+ "population" : "3,971,883"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "吉大港市",
+ "identifier" : "chittagong",
+ "population" : "3,920,222"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "亞歷山德里亞",
+ "identifier" : "alexandria",
+ "population" : "3,811,516"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "艾哈邁達巴德",
+ "identifier" : "ahmedabad",
+ "population" : "3,719,710"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "釜山",
+ "identifier" : "busan",
+ "population" : "3,678,555"
+ },
+ {
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿比讓",
+ "identifier" : "abidjan",
+ "population" : "3,677,115"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "鹿野",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "海得拉巴",
+ "identifier" : "hyderabad",
+ "population" : "3,597,816"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "橫濱",
+ "identifier" : "yokohama",
+ "population" : "3,574,443"
+ },
+ {
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊巴丹島",
+ "identifier" : "ibadan",
+ "population" : "3,565,108"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "新加坡",
+ "identifier" : "singapore",
+ "population" : "3,547,809"
+ },
+ {
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "安卡拉",
+ "identifier" : "ankara",
+ "population" : "3,517,182"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "胡志明市",
+ "identifier" : "ho chi minh city",
+ "population" : "3,467,331"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "開普敦",
+ "identifier" : "cape town",
+ "population" : "3,433,441"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "柏林",
+ "identifier" : "berlin",
+ "population" : "3,426,354"
+ },
+ {
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "馬德里",
+ "identifier" : "madrid",
+ "population" : "3,255,944"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "平壤",
+ "identifier" : "pyongyang",
+ "population" : "3,222,000"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "卡薩布蘭卡",
+ "identifier" : "casablanca",
+ "population" : "3,144,909"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "中山",
+ "identifier" : "zhongshan",
+ "population" : "3,121,275"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "德班",
+ "identifier" : "durban",
+ "population" : "3,120,282"
+ },
+ {
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "喀布爾",
+ "identifier" : "kabul",
+ "population" : "3,043,532"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "烏魯木齊",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "加拉加斯",
+ "identifier" : "caracas",
+ "population" : "3,000,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "迪拜",
+ "identifier" : "dubai",
+ "population" : "2,956,587"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "吉達",
+ "identifier" : "jeddah",
+ "population" : "2,867,446"
+ },
+ {
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "基輔",
+ "identifier" : "kyiv",
+ "population" : "2,797,553"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "羅安達",
+ "identifier" : "luanda",
+ "population" : "2,776,168"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "奎松市",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "亞的斯亞貝巴(埃塞俄比亞首都",
+ "identifier" : "addis ababa",
+ "population" : "2,757,729"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "內羅畢",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "芝加哥",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "薩爾瓦多",
+ "identifier" : "salvador",
+ "population" : "2,711,840"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "達累斯薩拉姆",
+ "identifier" : "dar es salaam",
+ "population" : "2,698,652"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "多倫多",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "大阪",
+ "identifier" : "osaka",
+ "population" : "2,592,413"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "摩加迪沙",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊茲密爾",
+ "identifier" : "izmir",
+ "population" : "2,500,603"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "達喀爾",
+ "identifier" : "dakar",
+ "population" : "2,476,400"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "吉薩",
+ "identifier" : "giza",
+ "population" : "2,443,203"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "福塔雷薩",
+ "identifier" : "fortaleza",
+ "population" : "2,400,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "泗水",
+ "identifier" : "surabaya",
+ "population" : "2,374,658"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "貝洛奧里藏特",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "羅馬",
+ "identifier" : "rome",
+ "population" : "2,318,895"
+ },
+ {
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "馬什哈德",
+ "identifier" : "mashhad",
+ "population" : "2,307,177"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "布魯克林區",
+ "identifier" : "brooklyn",
+ "population" : "2,300,664"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "休斯頓",
+ "identifier" : "houston",
+ "population" : "2,296,224"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "皇后區",
+ "identifier" : "queens",
+ "population" : "2,272,771"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "巴西利亞",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "聖多明哥",
+ "identifier" : "santo domingo",
+ "population" : "2,201,941"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "名古屋",
+ "identifier" : "nagoya",
+ "population" : "2,191,279"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "布里斯班",
+ "identifier" : "brisbane",
+ "population" : "2,189,878"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "哈瓦那",
+ "identifier" : "havana",
+ "population" : "2,163,824"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "巴黎",
+ "identifier" : "paris",
+ "population" : "2,138,551"
+ },
+ {
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "約翰內斯堡",
+ "identifier" : "johannesburg",
+ "population" : "2,026,469"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "阿拉木圖",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "塔什幹",
+ "identifier" : "tashkent",
+ "population" : "1,978,028"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "阿爾及爾",
+ "identifier" : "algiers",
+ "population" : "1,977,663"
+ },
+ {
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "喀土穆",
+ "identifier" : "khartoum",
+ "population" : "1,974,647"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "阿克拉",
+ "identifier" : "accra",
+ "population" : "1,963,264"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "瓜亞基爾",
+ "identifier" : "guayaquil",
+ "population" : "1,952,029"
+ },
+ {
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "薩那",
+ "identifier" : "sanaa",
+ "population" : "1,937,451"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "貝魯特",
+ "identifier" : "beirut",
+ "population" : "1,916,100"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "珀斯",
+ "identifier" : "perth",
+ "population" : "1,896,548"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "札幌",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "布加勒斯特",
+ "identifier" : "bucharest",
+ "population" : "1,877,155"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "卡馬耶納",
+ "identifier" : "camayenne",
+ "population" : "1,871,242"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "科納克里",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "明斯克",
+ "identifier" : "minsk",
+ "population" : "1,742,124"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "布達佩斯",
+ "identifier" : "budapest",
+ "population" : "1,741,041"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢堡",
+ "identifier" : "hamburg",
+ "population" : "1,739,117"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "華沙",
+ "identifier" : "warsaw",
+ "population" : "1,702,139"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "索韋托",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "維也納",
+ "identifier" : "vienna",
+ "population" : "1,691,468"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "拉巴特",
+ "identifier" : "rabat",
+ "population" : "1,655,753"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴塞羅納",
+ "identifier" : "barcelona",
+ "population" : "1,621,537"
+ },
+ {
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "比勒陀利亞",
+ "identifier" : "pretoria",
+ "population" : "1,619,438"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "阿勒頗",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "馬尼拉",
+ "identifier" : "manila",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "蒙特利爾",
+ "identifier" : "montreal",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "卡杜納",
+ "identifier" : "kaduna",
+ "population" : "1,582,102"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "金邊",
+ "identifier" : "phnom penh",
+ "population" : "1,573,544"
+ },
+ {
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "大馬士革",
+ "identifier" : "damascus",
+ "population" : "1,569,394"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "費城",
+ "identifier" : "philadelphia",
+ "population" : "1,567,442"
+ },
+ {
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "鳳凰",
+ "identifier" : "phoenix",
+ "population" : "1,563,025"
+ },
+ {
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "伊斯法罕",
+ "identifier" : "isfahan",
+ "population" : "1,547,164"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "哈拉雷",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "科比",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "斯德哥爾摩",
+ "identifier" : "stockholm",
+ "population" : "1,515,017"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "曼哈頓",
+ "identifier" : "manhattan",
+ "population" : "1,487,536"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "亞松森",
+ "identifier" : "asuncion",
+ "population" : "1,482,200"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "累西腓",
+ "identifier" : "recife",
+ "population" : "1,478,098"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "聖安東尼奧",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "庫馬西",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "哥打巴魯",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "京都",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "吉隆坡",
+ "identifier" : "kuala lumpur",
+ "population" : "1,453,975"
+ },
+ {
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡拉伊",
+ "identifier" : "karaj",
+ "population" : "1,448,075"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "加德滿都",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "河內",
+ "identifier" : "hanoi",
+ "population" : "1,431,270"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "哈爾科夫",
+ "identifier" : "kharkiv",
+ "population" : "1,430,885"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "科爾多瓦",
+ "identifier" : "cordoba",
+ "population" : "1,428,214"
+ },
+ {
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "大不里士",
+ "identifier" : "tabriz",
+ "population" : "1,424,641"
+ },
+ {
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "新西伯利亞",
+ "identifier" : "novosibirsk",
+ "population" : "1,419,007"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "貝倫",
+ "identifier" : "belem",
+ "population" : "1,407,737"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "基多",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "聖地亞哥",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "福岡",
+ "identifier" : "fukuoka",
+ "population" : "1,392,289"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "塔那那利佛",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "布朗克斯",
+ "identifier" : "the bronx",
+ "population" : "1,385,108"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "盧本巴希",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "聖克魯斯-德拉塞拉",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "坎帕拉",
+ "identifier" : "kampala",
+ "population" : "1,353,189"
+ },
+ {
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "葉卡捷琳堡",
+ "identifier" : "yekaterinburg",
+ "population" : "1,349,772"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "杜阿拉",
+ "identifier" : "douala",
+ "population" : "1,338,082"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "沙迦",
+ "identifier" : "sharjah",
+ "population" : "1,324,473"
+ },
+ {
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥加",
+ "identifier" : "mecca",
+ "population" : "1,323,624"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "望加錫",
+ "identifier" : "makassar",
+ "population" : "1,321,717"
+ },
+ {
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "華雷斯",
+ "identifier" : "juarez",
+ "population" : "1,321,004"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "川崎",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "蒂華納",
+ "identifier" : "tijuana",
+ "population" : "1,300,983"
+ },
+ {
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "達拉斯",
+ "identifier" : "dallas",
+ "population" : "1,300,092"
+ },
+ {
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥地那",
+ "identifier" : "medina",
+ "population" : "1,300,000"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "雅溫得",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "巴馬科",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "布拉柴維爾",
+ "identifier" : "brazzaville",
+ "population" : "1,284,609"
+ },
+ {
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "下諾夫哥羅德",
+ "identifier" : "nizhniy novgorod",
+ "population" : "1,284,164"
+ },
+ {
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "安曼",
+ "identifier" : "amman",
+ "population" : "1,275,857"
+ },
+ {
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "貝爾格萊德",
+ "identifier" : "belgrade",
+ "population" : "1,273,651"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "蒙得維的亞",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "盧薩卡",
+ "identifier" : "lusaka",
+ "population" : "1,267,440"
+ },
+ {
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "慕尼黑",
+ "identifier" : "munich",
+ "population" : "1,260,391"
+ },
+ {
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "設拉子",
+ "identifier" : "shiraz",
+ "population" : "1,249,942"
+ },
+ {
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "米蘭",
+ "identifier" : "milan",
+ "population" : "1,236,837"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "太子港",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "阿德萊德",
+ "identifier" : "adelaide",
+ "population" : "1,225,235"
+ },
+ {
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "恩杜曼",
+ "identifier" : "omdurman",
+ "population" : "1,200,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "ita玉",
+ "identifier" : "saitama",
+ "population" : "1,193,350"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬普托",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "布拉格",
+ "identifier" : "prague",
+ "population" : "1,165,581"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "哥本哈根",
+ "identifier" : "copenhagen",
+ "population" : "1,153,615"
+ },
+ {
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "蘇菲亞",
+ "identifier" : "sofia",
+ "population" : "1,152,556"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "的黎波里",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "哈科特港",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "廣島",
+ "identifier" : "hiroshima",
+ "population" : "1,143,841"
+ },
+ {
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "蒙特雷",
+ "identifier" : "monterrey",
+ "population" : "1,135,512"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "薩馬拉",
+ "identifier" : "samara",
+ "population" : "1,134,730"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "鄂木斯克",
+ "identifier" : "omsk",
+ "population" : "1,129,281"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "貝寧市",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "巴庫",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "邁杜古里",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "喀山",
+ "identifier" : "kazan",
+ "population" : "1,104,738"
+ },
+ {
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "葉里溫",
+ "identifier" : "yerevan",
+ "population" : "1,093,485"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "瓦加杜古",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "羅斯托夫納多努",
+ "identifier" : "rostov-na-donu",
+ "population" : "1,074,482"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "車里雅賓斯克",
+ "identifier" : "chelyabinsk",
+ "population" : "1,062,919"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "第比利斯",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "烏法",
+ "identifier" : "ufa",
+ "population" : "1,033,338"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "聖荷西",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "都柏林",
+ "identifier" : "dublin",
+ "population" : "1,024,027"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "卡爾加里",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "布魯塞爾",
+ "identifier" : "brussels",
+ "population" : "1,019,022"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "伏爾加格勒",
+ "identifier" : "volgograd",
+ "population" : "1,011,417"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "敖德薩",
+ "identifier" : "odessa",
+ "population" : "1,001,558"
+ },
+ {
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "危地馬拉城",
+ "identifier" : "guatemala city",
+ "population" : "994,938"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "伯明翰",
+ "identifier" : "birmingham",
+ "population" : "984,333"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "燙髮",
+ "identifier" : "perm",
+ "population" : "982,419"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "扎里亞",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "伊麗莎白港",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "非斯",
+ "identifier" : "fes",
+ "population" : "964,891"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "科隆",
+ "identifier" : "cologne",
+ "population" : "963,395"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "那不勒斯",
+ "identifier" : "naples",
+ "population" : "959,470"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "馬塞約",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "蒙羅維亞",
+ "identifier" : "monrovia",
+ "population" : "939,524"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "金斯頓",
+ "identifier" : "kingston",
+ "population" : "937,700"
+ },
+ {
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧斯丁",
+ "identifier" : "austin",
+ "population" : "931,830"
+ },
+ {
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "克拉斯諾亞爾斯克",
+ "identifier" : "krasnoyarsk",
+ "population" : "927,200"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "特賣",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "庫姆",
+ "identifier" : "qom",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "比什凱克",
+ "identifier" : "bishkek",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿波波",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿壩",
+ "identifier" : "aba",
+ "population" : "897,560"
+ },
+ {
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "門多薩",
+ "identifier" : "mendoza",
+ "population" : "876,884"
+ },
+ {
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "姆布吉馬耶",
+ "identifier" : "mbuji-mayi",
+ "population" : "874,761"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "皮金",
+ "identifier" : "pikine",
+ "population" : "874,062"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "都靈",
+ "identifier" : "turin",
+ "population" : "870,456"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "舊金山",
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "利物浦",
+ "identifier" : "liverpool",
+ "population" : "864,122"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "薩拉托夫",
+ "identifier" : "saratov",
+ "population" : "863,725"
+ },
+ {
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "德古西加巴",
+ "identifier" : "tegucigalpa",
+ "population" : "850,848"
+ },
+ {
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "沃羅涅日",
+ "identifier" : "voronezh",
+ "population" : "848,752"
+ },
+ {
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "烏蘭巴托",
+ "identifier" : "ulan bator",
+ "population" : "844,818"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "阿瓦士",
+ "identifier" : "ahvaz",
+ "population" : "841,145"
+ },
+ {
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "馬拉喀什",
+ "identifier" : "marrakesh",
+ "population" : "839,296"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "登巴薩",
+ "identifier" : "denpasar",
+ "population" : "834,881"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "沃思堡",
+ "identifier" : "fort worth",
+ "population" : "833,319"
+ },
+ {
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "印第安納波利斯",
+ "identifier" : "indianapolis",
+ "population" : "829,718"
+ },
+ {
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "喬斯",
+ "identifier" : "jos",
+ "population" : "816,824"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴倫西亞",
+ "identifier" : "valencia",
+ "population" : "814,208"
+ },
+ {
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊洛林",
+ "identifier" : "ilorin",
+ "population" : "814,192"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "拉巴斯",
+ "identifier" : "la paz",
+ "population" : "215,178"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "渥太華",
+ "identifier" : "ottawa",
+ "population" : "812,129"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "弗里敦",
+ "identifier" : "freetown",
+ "population" : "802,639"
+ },
+ {
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "耶路撒冷",
+ "identifier" : "jerusalem",
+ "population" : "801,000"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "馬斯喀特",
+ "identifier" : "muscat",
+ "population" : "797,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "馬賽",
+ "identifier" : "marseille",
+ "population" : "794,811"
+ },
+ {
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "帕斯拉格德分行",
+ "identifier" : "pasragad branch",
+ "population" : "787,878"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "布默達斯",
+ "identifier" : "boumerdas",
+ "population" : "786,499"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "San Miguel de Tucuman",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "梅里達",
+ "identifier" : "merida",
+ "population" : "777,615"
+ },
+ {
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "尼亞美",
+ "identifier" : "niamey",
+ "population" : "774,235"
+ },
+ {
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡里茲",
+ "identifier" : "kahriz",
+ "population" : "766,706"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "克拉科夫",
+ "identifier" : "krakow",
+ "population" : "755,050"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "峴港市",
+ "identifier" : "da nang",
+ "population" : "752,493"
+ },
+ {
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "彼得馬里茨堡",
+ "identifier" : "pietermaritzburg",
+ "population" : "750,845"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "洛美",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "基加利",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "裡加",
+ "identifier" : "riga",
+ "population" : "742,572"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "阿姆斯特丹",
+ "identifier" : "amsterdam",
+ "population" : "741,636"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "大洋",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "諾丁漢",
+ "identifier" : "nottingham",
+ "population" : "729,977"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "大坎普市",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "阿什哈巴德",
+ "identifier" : "ashgabat",
+ "population" : "727,700"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "恩賈梅納",
+ "identifier" : "n'djamena",
+ "population" : "721,081"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "利沃夫",
+ "identifier" : "lviv",
+ "population" : "717,803"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "埃莫西約",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "埃德蒙頓",
+ "identifier" : "edmonton",
+ "population" : "712,391"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "布拉瓦約",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "薩格勒布",
+ "identifier" : "zagreb",
+ "population" : "698,966"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "阿加迪爾",
+ "identifier" : "agadir",
+ "population" : "698,310"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "薩拉熱窩",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "埃努古",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "丹吉爾",
+ "identifier" : "tangier",
+ "population" : "688,356"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "謝菲爾德",
+ "identifier" : "sheffield",
+ "population" : "685,368"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "西雅圖",
+ "identifier" : "seattle",
+ "population" : "684,451"
+ },
+ {
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "丹佛",
+ "identifier" : "denver",
+ "population" : "682,545"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "埃爾帕索",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "杜尚別",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "底特律",
+ "identifier" : "detroit",
+ "population" : "677,116"
+ },
+ {
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "庫里亞坎人",
+ "identifier" : "culiacan",
+ "population" : "675,773"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬托拉",
+ "identifier" : "matola",
+ "population" : "675,422"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "波斯頓",
+ "identifier" : "boston",
+ "population" : "667,137"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "雅典",
+ "identifier" : "athens",
+ "population" : "664,046"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "努瓦克肖特",
+ "identifier" : "nouakchott",
+ "population" : "661,400"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "黑角",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "孟菲斯",
+ "identifier" : "memphis",
+ "population" : "655,770"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "法蘭克福",
+ "identifier" : "frankfurt am main",
+ "population" : "650,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "克拉斯諾達爾",
+ "identifier" : "krasnodar",
+ "population" : "649,851"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴勒莫",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "科倫坡",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "利隆圭",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "奧蘭",
+ "identifier" : "oran",
+ "population" : "645,984"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "基希訥烏",
+ "identifier" : "chisinau",
+ "population" : "635,994"
+ },
+ {
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "特比薩",
+ "identifier" : "tebessa",
+ "population" : "634,332"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "波特蘭",
+ "identifier" : "portland",
+ "population" : "632,309"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "溫尼伯",
+ "identifier" : "winnipeg",
+ "population" : "632,063"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "俄克拉荷馬城",
+ "identifier" : "oklahoma city",
+ "population" : "631,346"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "坎昆",
+ "identifier" : "cancun",
+ "population" : "628,306"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "吉布地",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "巴爾的摩",
+ "identifier" : "baltimore",
+ "population" : "621,849"
+ },
+ {
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼沙",
+ "identifier" : "kermanshah",
+ "population" : "621,100"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "布里斯托爾",
+ "identifier" : "bristol",
+ "population" : "617,280"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "貝諾尼",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "阿布扎比",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "華盛頓州",
+ "identifier" : "washington",
+ "population" : "601,723"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "密爾沃基",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "溫哥華",
+ "identifier" : "vancouver",
+ "population" : "600,000"
+ },
+ {
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "巴瑙爾",
+ "identifier" : "barnaul",
+ "population" : "599,579"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "鹿特丹",
+ "identifier" : "rotterdam",
+ "population" : "598,199"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "拉什特",
+ "identifier" : "rasht",
+ "population" : "594,590"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿倍庫塔",
+ "identifier" : "abeokuta",
+ "population" : "593,100"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "埃森",
+ "identifier" : "essen",
+ "population" : "593,085"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "格拉斯哥",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "黃金海岸",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿布賈",
+ "identifier" : "abuja",
+ "population" : "590,400"
+ },
+ {
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "斯圖加特",
+ "identifier" : "stuttgart",
+ "population" : "589,793"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "多特蒙德",
+ "identifier" : "dortmund",
+ "population" : "588,462"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "海參div",
+ "identifier" : "vladivostok",
+ "population" : "587,022"
+ },
+ {
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "伊爾庫茨克",
+ "identifier" : "irkutsk",
+ "population" : "586,695"
+ },
+ {
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "布蘭太爾",
+ "identifier" : "blantyre",
+ "population" : "584,877"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "熱那亞",
+ "identifier" : "genoa",
+ "population" : "580,223"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "奧斯陸",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "利伯維爾",
+ "identifier" : "libreville",
+ "population" : "578,156"
+ },
+ {
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼",
+ "identifier" : "kerman",
+ "population" : "577,514"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜塞爾多夫",
+ "identifier" : "duesseldorf",
+ "population" : "573,057"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "古晉",
+ "identifier" : "kuching",
+ "population" : "570,407"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "阿爾伯克基",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "赫爾辛基",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "亞丁",
+ "identifier" : "aden",
+ "population" : "550,602"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "奧倫堡",
+ "identifier" : "orenburg",
+ "population" : "550,204"
+ },
+ {
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "普里什蒂納",
+ "identifier" : "pristina",
+ "population" : "550,000"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "不來梅",
+ "identifier" : "bremen",
+ "population" : "546,501"
+ },
+ {
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "維爾紐斯",
+ "identifier" : "vilnius",
+ "population" : "542,366"
+ },
+ {
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "納什維爾",
+ "identifier" : "nashville",
+ "population" : "530,852"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "魁北克",
+ "identifier" : "quebec",
+ "population" : "528,595"
+ },
+ {
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "聖薩爾瓦多",
+ "identifier" : "san salvador",
+ "population" : "525,990"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "澳門",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "秋明州",
+ "identifier" : "tyumen",
+ "population" : "519,119"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "里斯本",
+ "identifier" : "lisbon",
+ "population" : "517,802"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢諾威",
+ "identifier" : "hannover",
+ "population" : "515,140"
+ },
+ {
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "薩爾塔",
+ "identifier" : "salta",
+ "population" : "512,686"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "萊斯特",
+ "identifier" : "leicester",
+ "population" : "508,916"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "萊比錫",
+ "identifier" : "leipzig",
+ "population" : "504,971"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜伊斯堡",
+ "identifier" : "duisburg",
+ "population" : "504,358"
+ },
+ {
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "阿斯特拉罕",
+ "identifier" : "astrakhan",
+ "population" : "502,533"
+ },
+ {
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "紐倫堡",
+ "identifier" : "nuernberg",
+ "population" : "499,237"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "德累斯頓",
+ "identifier" : "dresden",
+ "population" : "486,854"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "托木斯克",
+ "identifier" : "tomsk",
+ "population" : "485,519"
+ },
+ {
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "亞茲德",
+ "identifier" : "yazd",
+ "population" : "477,905"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "堪薩斯城",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "斯科普里",
+ "identifier" : "skopje",
+ "population" : "474,889"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "海牙",
+ "identifier" : "the hague",
+ "population" : "474,292"
+ },
+ {
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里昂",
+ "identifier" : "lyon",
+ "population" : "472,317"
+ },
+ {
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "愛丁堡",
+ "identifier" : "edinburgh",
+ "population" : "464,990"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "安特衛普",
+ "identifier" : "antwerpen",
+ "population" : "459,805"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "坤甸",
+ "identifier" : "pontianak",
+ "population" : "455,173"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "利茲",
+ "identifier" : "leeds",
+ "population" : "455,123"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "加的夫",
+ "identifier" : "cardiff",
+ "population" : "447,287"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "聖胡安",
+ "identifier" : "san juan",
+ "population" : "418,140"
+ },
+ {
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧馬哈",
+ "identifier" : "omaha",
+ "population" : "443,885"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "家樂福",
+ "identifier" : "carrefour",
+ "population" : "442,156"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "邁阿密",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "加里寧格勒",
+ "identifier" : "kaliningrad",
+ "population" : "434,954"
+ },
+ {
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "圖盧茲",
+ "identifier" : "toulouse",
+ "population" : "433,055"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "特拉維夫",
+ "identifier" : "tel aviv",
+ "population" : "432,892"
+ },
+ {
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "東耶路撒冷",
+ "identifier" : "east jerusalem",
+ "population" : "428,304"
+ },
+ {
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "布拉迪斯拉發",
+ "identifier" : "bratislava",
+ "population" : "423,737"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "奧克蘭市",
+ "identifier" : "auckland",
+ "population" : "417,910"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "塞瓦斯托波爾",
+ "identifier" : "sevastopol",
+ "population" : "416,263"
+ },
+ {
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "明尼阿波利斯",
+ "identifier" : "minneapolis",
+ "population" : "410,939"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "加沙",
+ "identifier" : "gaza",
+ "population" : "410,000"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "庫爾斯克",
+ "identifier" : "kursk",
+ "population" : "409,431"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "巴拿馬",
+ "identifier" : "panama",
+ "population" : "408,168"
+ },
+ {
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "塔爾薩",
+ "identifier" : "tulsa",
+ "population" : "403,505"
+ },
+ {
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "特維爾",
+ "identifier" : "tver",
+ "population" : "400,212"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "曼徹斯特",
+ "identifier" : "manchester",
+ "population" : "395,515"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "塔林",
+ "identifier" : "tallinn",
+ "population" : "394,024"
+ },
+ {
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "坎大哈",
+ "identifier" : "kandahar",
+ "population" : "391,190"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "威奇托",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "新奧爾良",
+ "identifier" : "new orleans",
+ "population" : "389,617"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "惠靈頓",
+ "identifier" : "wellington",
+ "population" : "381,900"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "大加那利島拉斯帕爾馬斯",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "馬薩特蘭",
+ "identifier" : "mazatlan",
+ "population" : "381,583"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "地拉那",
+ "identifier" : "tirana",
+ "population" : "374,801"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "考納斯",
+ "identifier" : "kaunas",
+ "population" : "374,643"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "火奴魯魯",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "堪培拉",
+ "identifier" : "canberra",
+ "population" : "367,752"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "博洛尼亞",
+ "identifier" : "bologna",
+ "population" : "366,133"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "基督城",
+ "identifier" : "christchurch",
+ "population" : "363,926"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "哈利法克斯",
+ "identifier" : "halifax",
+ "population" : "359,111"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "安汶",
+ "identifier" : "ambon",
+ "population" : "355,596"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "佛羅倫斯",
+ "identifier" : "florence",
+ "population" : "349,296"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "多哈",
+ "identifier" : "doha",
+ "population" : "344,939"
+ },
+ {
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "蘇黎世",
+ "identifier" : "zurich",
+ "population" : "341,730"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "好啊",
+ "identifier" : "nice",
+ "population" : "338,620"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "辛菲羅波爾",
+ "identifier" : "simferopol",
+ "population" : "336,460"
+ },
+ {
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "特皮克",
+ "identifier" : "tepic",
+ "population" : "332,863"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "索契",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "斯摩棱斯克",
+ "identifier" : "smolensk",
+ "population" : "320,991"
+ },
+ {
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "撒馬爾罕",
+ "identifier" : "samarkand",
+ "population" : "319,366"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "摩爾曼斯克",
+ "identifier" : "murmansk",
+ "population" : "319,263"
+ },
+ {
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "弗拉季卡夫卡茲",
+ "identifier" : "vladikavkaz",
+ "population" : "317,370"
+ },
+ {
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "赤太",
+ "identifier" : "chita",
+ "population" : "308,500"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "新城堡",
+ "identifier" : "newcastle",
+ "population" : "308,308"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "韋略港",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "聖薩爾瓦多·德胡胡伊",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "匹茲堡",
+ "identifier" : "pittsburgh",
+ "population" : "304,391"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "布雷斯特",
+ "identifier" : "brest",
+ "population" : "144,899"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "錨地",
+ "identifier" : "anchorage",
+ "population" : "298,695"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "辛辛那提",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "臥龍崗市",
+ "identifier" : "wollongong",
+ "population" : "292,190"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "卡塔尼亞",
+ "identifier" : "catania",
+ "population" : "290,927"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "烏特勒支",
+ "identifier" : "utrecht",
+ "population" : "290,529"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "維多利亞州",
+ "identifier" : "victoria",
+ "population" : "289,625"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "莫爾茲比港",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "洛根市",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴里",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "南特",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "史特拉斯堡",
+ "identifier" : "strasbourg",
+ "population" : "274,845"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "貝爾法斯特",
+ "identifier" : "belfast",
+ "population" : "274,770"
+ },
+ {
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "盧布爾雅那",
+ "identifier" : "ljubljana",
+ "population" : "272,220"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "奧蘭多",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "彼得羅扎沃茨克",
+ "identifier" : "petrozavodsk",
+ "population" : "265,025"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "普利茅斯",
+ "identifier" : "plymouth",
+ "population" : "260,203"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "里約布蘭科",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "洛斯·莫奇斯",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "波爾圖",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "麥迪遜",
+ "identifier" : "madison",
+ "population" : "248,951"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "蒙彼利埃",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "奧胡斯",
+ "identifier" : "arhus",
+ "population" : "237,551"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "雅庫茨克",
+ "identifier" : "yakutsk",
+ "population" : "235,600"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "喬治敦",
+ "identifier" : "georgetown",
+ "population" : "235,017"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "波爾多",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "根特",
+ "identifier" : "gent",
+ "population" : "231,493"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "巴吞魯日",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里爾",
+ "identifier" : "lille",
+ "population" : "228,328"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "拿騷",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "吉朗",
+ "identifier" : "geelong",
+ "population" : "226,034"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "帕拉馬里博",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "聖克魯斯-德特內里費",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "格拉茨",
+ "identifier" : "graz",
+ "population" : "222,326"
+ },
+ {
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "墨西拿",
+ "identifier" : "messina",
+ "population" : "219,948"
+ },
+ {
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "維羅納",
+ "identifier" : "verona",
+ "population" : "219,103"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "霍巴特",
+ "identifier" : "hobart",
+ "population" : "216,656"
+ },
+ {
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "諾維薩德",
+ "identifier" : "novi sad",
+ "population" : "215,400"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "卑爾根",
+ "identifier" : "bergen",
+ "population" : "213,585"
+ },
+ {
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "得梅因",
+ "identifier" : "des moines",
+ "population" : "210,330"
+ },
+ {
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "科斯塔奈",
+ "identifier" : "kostanay",
+ "population" : "210,000"
+ },
+ {
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "林茲",
+ "identifier" : "linz",
+ "population" : "204,846"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕多瓦",
+ "identifier" : "padova",
+ "population" : "203,725"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "普斯科夫",
+ "identifier" : "pskov",
+ "population" : "201,990"
+ },
+ {
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "清邁",
+ "identifier" : "chiang mai",
+ "population" : "200,952"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "尼科西亞",
+ "identifier" : "nicosia",
+ "population" : "200,452"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "口服",
+ "identifier" : "oral",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "奧什",
+ "identifier" : "osh",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "薩斯卡通",
+ "identifier" : "saskatoon",
+ "population" : "198,958"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "小石頭",
+ "identifier" : "little rock",
+ "population" : "197,992"
+ },
+ {
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "萬象",
+ "identifier" : "vientiane",
+ "population" : "196,731"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "香港仔",
+ "identifier" : "aberdeen",
+ "population" : "196,670"
+ },
+ {
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "帕爾馬斯",
+ "identifier" : "palmas",
+ "population" : "196,272"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "湯斯維爾",
+ "identifier" : "townsville",
+ "population" : "196,219"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "鹽湖城",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "軟木",
+ "identifier" : "cork",
+ "population" : "190,384"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "塔拉哈西",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "聖塔倫",
+ "identifier" : "santarem",
+ "population" : "189,047"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "卡塔馬卡聖費爾南多·德爾瓦萊",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "的里雅斯特",
+ "identifier" : "trieste",
+ "population" : "187,056"
+ },
+ {
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "聖路易斯",
+ "identifier" : "san luis",
+ "population" : "183,982"
+ },
+ {
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "日內瓦",
+ "identifier" : "geneva",
+ "population" : "183,981"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "阿特勞",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "庫塔伊西",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "南薩哈林斯克",
+ "identifier" : "yuzhno-sakhalinsk",
+ "population" : "176,484"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "分裂",
+ "identifier" : "split",
+ "population" : "176,314"
+ },
+ {
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "里賈納",
+ "identifier" : "regina",
+ "population" : "176,183"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "圖爾庫",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "牛津",
+ "identifier" : "oxford",
+ "population" : "171,380"
+ },
+ {
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "傑克遜",
+ "identifier" : "jackson",
+ "population" : "170,674"
+ },
+ {
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "斯普林菲爾德",
+ "identifier" : "springfield",
+ "population" : "166,810"
+ },
+ {
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "巴塞爾",
+ "identifier" : "basel",
+ "population" : "164,488"
+ },
+ {
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "拉里奧哈",
+ "identifier" : "la rioja",
+ "population" : "162,620"
+ },
+ {
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "希伯倫",
+ "identifier" : "hebron",
+ "population" : "160,470"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "摩德納",
+ "identifier" : "modena",
+ "population" : "158,886"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "劍橋",
+ "identifier" : "cambridge",
+ "population" : "158,434"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "弗里斯科",
+ "identifier" : "frisco",
+ "population" : "154,407"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "帕薩迪納",
+ "identifier" : "pasadena",
+ "population" : "153,784"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "約克",
+ "identifier" : "york",
+ "population" : "153,717"
+ },
+ {
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "薩爾茨堡",
+ "identifier" : "salzburg",
+ "population" : "153,377"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "凱恩斯",
+ "identifier" : "cairns",
+ "population" : "153,075"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "漢密爾頓",
+ "identifier" : "hamilton",
+ "population" : "152,641"
+ },
+ {
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "拉古納",
+ "identifier" : "la laguna",
+ "population" : "150,661"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "帝力",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "第戎",
+ "identifier" : "dijon",
+ "population" : "149,782"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "烏普薩拉",
+ "identifier" : "uppsala",
+ "population" : "149,245"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "特隆赫姆",
+ "identifier" : "trondheim",
+ "population" : "147,139"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "麥納麥",
+ "identifier" : "manama",
+ "population" : "147,074"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕爾馬",
+ "identifier" : "parma",
+ "population" : "146,299"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "博伊西",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "歐登塞",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "亞眠",
+ "identifier" : "amiens",
+ "population" : "143,086"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "旅遊團",
+ "identifier" : "tours",
+ "population" : "141,621"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "波德戈里察",
+ "identifier" : "podgorica",
+ "population" : "136,473"
+ },
+ {
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "因斯布魯克",
+ "identifier" : "innsbruck",
+ "population" : "132,493"
+ },
+ {
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "圖文巴",
+ "identifier" : "toowoomba",
+ "population" : "131,258"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "達爾文",
+ "identifier" : "darwin",
+ "population" : "129,062"
+ },
+ {
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "伯爾尼",
+ "identifier" : "bern",
+ "population" : "121631"
+ }
+]
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..a4cdeb723
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/FunctionDescriptions.json
@@ -0,0 +1,229 @@
+{
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "100的10%",
+ "100 的 10%"
+ ],
+ "identifier": "reversedPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "100減少10%",
+ "100 減少 10%"
+ ],
+ "identifier": "reversedPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "100加上10%",
+ "100 加上 10%"
+ ],
+ "identifier": "reversedPercentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼的20%",
+ "30 是甚麼的 20%"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "甚麼的20%等於30",
+ "甚麼的 20% 等於 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼減少20%"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "減少20%之後是30",
+ "減少 20% 之後是 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼加上20%",
+ "30 是甚麼加上 20%"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20%加上甚麼是30",
+ "20% 加上甚麼是 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20的多少%",
+ "10 是 20 的多少%",
+ "10佔20的幾%",
+ "10 佔 20 的幾%"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20裡減少多少%",
+ "10 是 20 裡減少多少%"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20是10加上多少的%",
+ "20 是 10 加上多少的%",
+ "20為10增加%",
+ "20 為 10 增加%"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "20除以3的餘數",
+ "20 除以 3 的餘數"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "20的一半",
+ "20 的一半"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最小",
+ "2 和 30 哪個最小",
+ "2和30比較小的",
+ "2 和 30 比較小的"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最大",
+ "2和30比較大的",
+ "2 和 30 哪個最大",
+ "2 和 30 比較大的"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2 和 32 的中間數",
+ "2和32的中間數"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是幾分之8",
+ "相比 6 比 600 是幾分之 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是8分之幾",
+ "相比 6 比 600 是 8 分之幾"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "1到5之間的隨機數",
+ "1 到 5 之間的隨機數",
+ "1 到 5 中的隨機數",
+ "1到5中的隨機數"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit_expression 中的 __unit"
+ ],
+ "identifier": "unitInUnitExpression"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__datestamp 和 __datestamp 之間的 __unit",
+ "由 __datestamp 至 __datestamp 的 __unit",
+ "__datestamp 至 __datestamp 中的 __unit"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit 至 __datestamp",
+ "__unit 之前 __datestamp",
+ "__unit 直到 __datestamp",
+ "__unit 直到 __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp 至 __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp 至 __timestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitSinceDate",
+ "prototypeExpressions": [
+ "__unit 自從 __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan 由 __datestamp",
+ "__timespan 之後 __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "新時間標記"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone 的時間",
+ "時間於 __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "在 __timezone 與 __timezone 中的時差",
+ "__timezone 和 __timezone 之間的時差",
+ "在 __timezone 和 __timezone 中的時差",
+ "__timezone 和 __timezone 的時差"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings
new file mode 100644
index 000000000..51fe2d882
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.stringsdict b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..d6a220ff7
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..4d6ae1492
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/LocalizedFixtures.json
@@ -0,0 +1,132 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "位數"
+ ],
+ "multiplierTypes": [
+ "倍數"
+ ],
+ "divisionOperators": [
+ "÷",
+ "每"
+ ],
+ "roundingConverters": [
+ "數值簡化"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "tomorrowDateAliases": [
+ "明天"
+ ],
+ "laptimeTypes": [
+ "圈速"
+ ],
+ "roundingDownConverters": [
+ "下舍入"
+ ],
+ "numberTypes": [
+ "數目"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "dateTypes": [
+ "日期"
+ ],
+ "roundingUpConverters": [
+ "上舍入"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "todayDateAliases": [
+ "今天"
+ ],
+ "timestampTypes": [
+ "時間標記"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "additionOperators": [
+ "加"
+ ],
+ "timespanTypes": [
+ "時距"
+ ],
+ "yesterdayDateAliases": [
+ "昨天"
+ ],
+ "converterSymbols": [
+ "到",
+ "當成"
+ ],
+ "nowDateAliases": [
+ "現在"
+ ],
+ "monthOfYearDateAliases": [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月",
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+ ],
+ "fractionTypes": [
+ "分數"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "週一",
+ "週二",
+ "週二",
+ "週三",
+ "週四",
+ "週五",
+ "週六",
+ "週日"
+ ],
+ "percentTypes": [
+ "百分率"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/UnitDescriptions.json b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..026b38932
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/UnitDescriptions.json
@@ -0,0 +1,1588 @@
+{
+ "energy" : [
+ {
+ "symbol" : "J",
+ "aliases" : [
+ "焦耳",
+ "焦耳"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "kJ",
+ "aliases" : [
+ "千焦耳",
+ "千焦耳"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "mJ",
+ "aliases" : [
+ "百萬焦耳",
+ "百萬焦耳"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "gJ",
+ "aliases" : [
+ "吉焦耳",
+ "吉焦耳"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "cal",
+ "aliases" : [
+ "卡路里",
+ "卡路里"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "kCal",
+ "aliases" : [
+ "千卡路里",
+ "千卡路里"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "Wh",
+ "aliases" : [
+ "瓦時",
+ "watt hours"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "W m",
+ "aliases" : [
+ "瓦分",
+ "瓦分"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "W s",
+ "aliases" : [
+ "瓦秒",
+ "瓦秒"
+ ],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "kWh",
+ "aliases" : [
+ "千瓦時",
+ "千瓦時"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "MWh",
+ "aliases" : [
+ "百萬瓦時",
+ "百萬瓦時"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "GWh",
+ "aliases" : [
+ "吉瓦時",
+ "吉瓦時"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "TWh",
+ "aliases" : [
+ "兆瓦時",
+ "兆瓦時"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "ML",
+ "aliases" : [
+ "百萬升",
+ "百萬升",
+ "公升",
+ "公升",
+ "ML"
+ ],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "kL",
+ "aliases" : [
+ "千升",
+ "千升",
+ "千升",
+ "千升",
+ "kL"
+ ],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "L",
+ "aliases" : [
+ "升",
+ "升",
+ "升",
+ "升",
+ "L"
+ ],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "mL",
+ "aliases" : [
+ "毫升",
+ "毫升",
+ "毫升",
+ "毫升",
+ "mL"
+ ],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "km³",
+ "aliases" : [
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "公里^3",
+ "公里^3",
+ "公里³",
+ "公里³",
+ "公里³",
+ "公里³",
+ "km3",
+ "km^3"
+ ],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "m³",
+ "aliases" : [
+ "立方公尺",
+ "立方公尺",
+ "立方米",
+ "立方米",
+ "m3",
+ "m^3",
+ "米³",
+ "米³",
+ "米³",
+ "米³"
+ ],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "cm³",
+ "aliases" : [
+ "立方公分",
+ "立方公分",
+ "立方厘米",
+ "立方厘米",
+ "cm3",
+ "cm^3",
+ "厘米³"
+ ],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "mm³",
+ "aliases" : [
+ "立方公釐",
+ "立方公釐",
+ "立方毫米",
+ "立方毫米",
+ "mm3",
+ "mm^3"
+ ],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "in³",
+ "aliases" : [
+ "立方吋",
+ "立方吋",
+ "吋³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "ft³",
+ "aliases" : [
+ "立方尺",
+ "立方尺",
+ "cuft",
+ "尺³",
+ "ft3",
+ "ft^3"
+ ],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "yd³",
+ "aliases" : [
+ "立方碼",
+ "立方碼",
+ "yd³",
+ "碼³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "mi³",
+ "aliases" : [
+ "立方英里",
+ "立方英里",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "英里³",
+ "英里^3",
+ "英里^3"
+ ],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "bsh",
+ "aliases" : [
+ "蒲式耳",
+ "蒲式耳"
+ ],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "metric cup",
+ "aliases" : [
+ "公制杯",
+ "公制杯"
+ ],
+ "identifier" : "metricCups"
+ },
+ {
+ "symbol" : "cup",
+ "aliases" : [
+ "美制杯",
+ "美制杯"
+ ],
+ "identifier" : "cups"
+ },
+ {
+ "symbol" : "af",
+ "aliases" : [
+ "英畝英尺",
+ "英畝英尺"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "品脫",
+ "品脫"
+ ],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "qt",
+ "aliases" : [
+ "夸脫",
+ "夸脫"
+ ],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "gal",
+ "aliases" : [
+ "加侖",
+ "加侖",
+ "gal"
+ ],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "tbsp",
+ "aliases" : [
+ "湯匙",
+ "湯匙",
+ "tbsp"
+ ],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "tsp",
+ "aliases" : [
+ "茶匙",
+ "茶匙",
+ "tsp"
+ ],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "fl oz",
+ "aliases" : [
+ "液盎司",
+ "液盎司",
+ "floz"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "B",
+ "aliases" : [
+ "位元組",
+ "位元組"
+ ],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "bit",
+ "aliases" : [
+ "位元",
+ "位元"
+ ],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "YB",
+ "aliases" : [
+ "佑位元組",
+ "佑位元組"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "ZB",
+ "aliases" : [
+ "皆位元組",
+ "皆位元組"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "EB",
+ "aliases" : [
+ "艾位元組",
+ "艾位元組"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "拍位元組",
+ "拍位元組"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "兆位元組",
+ "兆位元組",
+ "TB",
+ "tb"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "吉位元組",
+ "吉位元組",
+ "GB",
+ "gb"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "百萬位元組",
+ "百萬位元組",
+ "MB",
+ "mb"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "千位元組",
+ "千位元組",
+ "KB",
+ "kb"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "佑位元",
+ "佑位元",
+ "Ybit"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "皆位元",
+ "皆位元",
+ "Zbit"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "艾位元",
+ "艾位元",
+ "Ebit"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "拍位元",
+ "拍位元",
+ "Pbit"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "兆位元",
+ "兆位元",
+ "Tbit"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "吉位元",
+ "吉位元",
+ "Gbit"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "百萬位元",
+ "百萬位元",
+ "Mbit"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "千位元",
+ "千位元",
+ "Kbit",
+ "Kb"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [
+ "二進位佑位元組",
+ "二進位佑位元組",
+ "YiB"
+ ],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [
+ "二進位皆位元組",
+ "二進位皆位元組",
+ "ZiB"
+ ],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [
+ "二進位艾位元組",
+ "二進位艾位元組",
+ "EiB"
+ ],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [
+ "二進位拍位元組",
+ "二進位拍位元組",
+ "PiB"
+ ],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [
+ "二進位兆位元組",
+ "二進位兆位元組",
+ "TiB"
+ ],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [
+ "二進位吉位元組",
+ "二進位吉位元組",
+ "GiB"
+ ],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [
+ "二進位百萬位元組",
+ "二進位百萬位元組",
+ "MiB"
+ ],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [
+ "二進位千位元組",
+ "二進位千位元組",
+ "KiB"
+ ],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [
+ "二進位佑位元",
+ "二進位佑位元",
+ "Yibit"
+ ],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [
+ "二進位皆位元",
+ "二進位皆位元",
+ "Zibit"
+ ],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "二進位艾位元",
+ "二進位艾位元",
+ "Eibit"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [
+ "二進位拍位元",
+ "二進位拍位元",
+ "Pibit"
+ ],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [
+ "二進位兆位元",
+ "二進位兆位元",
+ "Tibit"
+ ],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [
+ "二進位吉位元",
+ "二進位吉位元",
+ "Gibit"
+ ],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [
+ "二進位百萬位元",
+ "二進位百萬位元",
+ "Mibit"
+ ],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [
+ "二進位千位元",
+ "二進位千位元",
+ "Kibit"
+ ],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "克耳文"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "攝氏溫度",
+ "攝氏溫度",
+ "ºC",
+ "C",
+ "degC",
+ "攝氏"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "華氏溫標",
+ "華氏溫標",
+ "ºF",
+ "F",
+ "degF",
+ "華氏"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "gBps"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "mBps"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "kBps"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "Pbps"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "tbps"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "gbps"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "mbps"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "kbps"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "m/s",
+ "aliases" : [
+ "公尺每秒",
+ "公尺每秒",
+ "米每秒",
+ "米每秒"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "km/h",
+ "aliases" : [
+ "公里每小時",
+ "公里每小時",
+ "公里每小時",
+ "公里每小時"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "mph",
+ "aliases" : [
+ "英里每小時",
+ "英里每小時"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "kn",
+ "aliases" : [
+ "節",
+ "節"
+ ],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "度",
+ "度"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "弧度",
+ "弧度"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "公尺",
+ "公尺",
+ "米",
+ "米"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "公里",
+ "公里",
+ "公里",
+ "公里"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "公分",
+ "公分",
+ "厘米",
+ "厘米"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "公釐",
+ "公釐",
+ "毫米",
+ "毫米"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "微米",
+ "微米",
+ "微米",
+ "微米"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "奈米",
+ "奈米",
+ "奈米",
+ "奈米"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "吋",
+ "吋"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "尺",
+ "尺"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "碼",
+ "碼"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "哩",
+ "哩"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "光年",
+ "光年"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "秒差距",
+ "秒差距"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "海里",
+ "海里"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "噚",
+ "噚"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "化朗",
+ "化朗"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "像素",
+ "像素"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pts"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "公里²",
+ "公里²",
+ "公里²",
+ "公里²",
+ "km^2",
+ "km2"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "平方公尺",
+ "平方公尺",
+ "平方米",
+ "平方米",
+ "m^2",
+ "米^2",
+ "米^2",
+ "公尺^2",
+ "公尺^2",
+ "公尺²",
+ "公尺²",
+ "米²",
+ "米²",
+ "m2"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "平方公分",
+ "平方公分",
+ "平方厘米",
+ "平方厘米",
+ "厘米^2",
+ "厘米²",
+ "公分^2",
+ "公分²",
+ "cm^2",
+ "cm2"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "平方公釐",
+ "平方公釐",
+ "平方毫米",
+ "平方毫米",
+ "公釐^2",
+ "公釐²",
+ "毫米^2",
+ "毫米²",
+ "mm^2",
+ "mm2"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "微米^2",
+ "微米²",
+ "微米^2",
+ "微米²",
+ "µm^2",
+ "µm2"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "平方吋",
+ "平方吋",
+ "sqin",
+ "吋^2",
+ "in2",
+ "吋²"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "平方尺",
+ "平方尺",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "尺^2",
+ "尺²"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "平方碼",
+ "平方碼",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "碼^2",
+ "碼²",
+ "sqyd"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "平方哩",
+ "平方哩",
+ "mi^2",
+ "mi2",
+ "哩^2",
+ "哩^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "哩²"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "英畝",
+ "英畝",
+ "ac"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "公頃",
+ "公頃",
+ "ha"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "公畝",
+ "aliases" : [],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L/100km",
+ "aliases" : [
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "每加侖英里"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "瓦特",
+ "瓦特"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "毫瓦",
+ "毫瓦"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "千瓦",
+ "千瓦"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "百萬瓦",
+ "百萬瓦"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "吉瓦",
+ "吉瓦"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "兆瓦",
+ "兆瓦"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "馬力"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "公斤",
+ "公斤"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "克",
+ "克"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "微克",
+ "微克"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "奈克",
+ "奈克"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "盎司",
+ "盎司"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "lbs",
+ "磅",
+ "磅"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "石",
+ "石"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "公頓",
+ "公頓"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "短噸",
+ "短噸",
+ "噸",
+ "美噸",
+ "美噸"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "克拉",
+ "克拉"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "金衡盎司",
+ "金衡盎司"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "小時",
+ "小時",
+ "hrs",
+ "h"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "秒",
+ "秒",
+ "sec",
+ "secs"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "分",
+ "分",
+ "mins"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "日"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "平日",
+ "平日",
+ "工作日",
+ "平日",
+ "平日",
+ "工作日"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "週"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "月"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "年"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "毫秒",
+ "毫秒"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "微秒",
+ "微秒"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "奈秒",
+ "奈秒"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "美元"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "赫茲",
+ "hz"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "千赫茲"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "百萬赫茲"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "吉赫茲"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "兆赫茲"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "毫赫茲"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "微赫茲"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "奈赫茲"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/SoulverCore b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/SoulverCore
new file mode 100755
index 000000000..a7708ed3c
Binary files /dev/null and b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/SoulverCore differ
diff --git a/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/Current b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/Current
new file mode 120000
index 000000000..8c7e5a667
--- /dev/null
+++ b/SoulverCore.xcframework/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/Current
@@ -0,0 +1 @@
+A
\ No newline at end of file
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Cities.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Cities.json
index 30232aa1c..e00ce82fe 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Cities.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/Cities.json
@@ -137,6 +137,7 @@
"name": "New York",
"population": "8,175,133",
"elevation": 57,
+ "aliases" : ["NYC"],
"timezone_id": "America/New_York"
},
{
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
index 689b646c6..9b692f625 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
@@ -1,30 +1,30 @@
{
"HRK" : {
- "value" : 0.14265835247815795,
+ "value" : 0.14412143787652626,
"code" : "HRK"
},
"HUF" : {
- "value" : 0.0030631976547525739,
+ "value" : 0.0030946301890310292,
"code" : "HUF"
},
"CDF" : {
- "value" : 0.00058207205430146468,
+ "value" : 0.00055248607734808837,
"code" : "CDF"
},
"XMR" : {
- "value" : 53.095668070000002,
+ "value" : 64.327903320000004,
"code" : "XMR"
},
"ILS" : {
- "value" : 0.27922094606726111,
+ "value" : 0.28516806665176186,
"code" : "ILS"
},
"NGN" : {
- "value" : 0.0027247930862974888,
+ "value" : 0.0025641003024346053,
"code" : "NGN"
},
"GYD" : {
- "value" : 0.0048181377059410575,
+ "value" : 0.0047768526712590057,
"code" : "GYD"
},
"BYR" : {
@@ -32,127 +32,127 @@
"code" : "BYR"
},
"BHD" : {
- "value" : 2.6507620941020544,
+ "value" : 2.6442574660609552,
"code" : "BHD"
},
"SZL" : {
- "value" : 0.05555451545157182,
+ "value" : 0.053994601619730062,
"code" : "SZL"
},
"INR" : {
- "value" : 0.013104217539422919,
+ "value" : 0.013244324409660727,
"code" : "INR"
},
"SDG" : {
- "value" : 0.018074998882061322,
+ "value" : 0.018074998882061318,
"code" : "SDG"
},
"PEN" : {
- "value" : 0.29664444700877085,
+ "value" : 0.29420080205022653,
"code" : "PEN"
},
"EUR" : {
- "value" : 1.0866999999438067,
+ "value" : 1.0970493759983149,
"code" : "EUR"
},
"TRX" : {
- "value" : 0.01238234,
+ "value" : 0.016673670000000002,
"code" : "TRX"
},
"PGK" : {
- "value" : 0.29282242457553193,
+ "value" : 0.29151331851473961,
"code" : "PGK"
},
"QAR" : {
- "value" : 0.2746309646412633,
+ "value" : 0.27464695507160319,
"code" : "QAR"
},
"LRD" : {
- "value" : 0.0050504961738754095,
+ "value" : 0.005037687570425298,
"code" : "LRD"
},
"ISK" : {
- "value" : 0.006970493906347873,
+ "value" : 0.0068380563492221637,
"code" : "ISK"
},
"SYP" : {
- "value" : 0.0019437969915838415,
+ "value" : 0.0019438172890745005,
"code" : "SYP"
},
"TRY" : {
- "value" : 0.14838938729879855,
+ "value" : 0.14106155023258229,
"code" : "TRY"
},
"UAH" : {
- "value" : 0.036837961961857235,
+ "value" : 0.037260221624543427,
"code" : "UAH"
},
"SGD" : {
- "value" : 0.70204793590411074,
+ "value" : 0.70786236890388932,
"code" : "SGD"
},
"MMK" : {
- "value" : 0.00070590615244253447,
+ "value" : 0.00071677635648162202,
"code" : "MMK"
},
"NIO" : {
- "value" : 0.029222354855997057,
+ "value" : 0.029066619966297252,
"code" : "NIO"
},
"BIF" : {
- "value" : 0.00052631578947368431,
+ "value" : 0.00052465897166841555,
"code" : "BIF"
},
"AFN" : {
- "value" : 0.013088321524984212,
+ "value" : 0.01312267227578671,
"code" : "AFN"
},
"LKR" : {
- "value" : 0.0052662636044045977,
+ "value" : 0.0053614105399326433,
"code" : "LKR"
},
- "GTQ" : {
- "value" : 0.13029628332457743,
- "code" : "GTQ"
- },
"LTC" : {
- "value" : 42.46899655,
+ "value" : 48.425781479999998,
"code" : "LTC"
},
+ "GTQ" : {
+ "value" : 0.12977569698309138,
+ "code" : "GTQ"
+ },
"XRP" : {
- "value" : 0.18916911,
+ "value" : 0.22132149000000001,
"code" : "XRP"
},
"CHF" : {
- "value" : 1.0292669066198938,
+ "value" : 1.0298852089946053,
"code" : "CHF"
},
"THB" : {
- "value" : 0.030469648114414022,
+ "value" : 0.031230120076688683,
"code" : "THB"
},
"AMD" : {
- "value" : 0.0020359118439829123,
+ "value" : 0.0020656445178683755,
"code" : "AMD"
},
"AOA" : {
- "value" : 0.0017872812174986826,
+ "value" : 0.0018119058999499155,
"code" : "AOA"
},
"SEK" : {
- "value" : 0.099282810287759649,
+ "value" : 0.10233420221893298,
"code" : "SEK"
},
"DASH" : {
- "value" : 73.615964419999997,
+ "value" : 81.757761169999995,
"code" : "DASH"
},
"SAR" : {
- "value" : 0.26566457987139175,
+ "value" : 0.26622211123718209,
"code" : "SAR"
},
"KWD" : {
- "value" : 3.2150309125222236,
+ "value" : 3.2325844512687891,
"code" : "KWD"
},
"IRR" : {
@@ -160,11 +160,11 @@
"code" : "IRR"
},
"WST" : {
- "value" : 0.35569732860635295,
+ "value" : 0.35910253095463818,
"code" : "WST"
},
"BNB" : {
- "value" : 13.90897161,
+ "value" : 17.318957480000002,
"code" : "BNB"
},
"BMD" : {
@@ -172,39 +172,35 @@
"code" : "BMD"
},
"BGN" : {
- "value" : 0.55562940997107035,
+ "value" : 0.55386626345202683,
"code" : "BGN"
},
"PHP" : {
- "value" : 0.019780119769212831,
+ "value" : 0.019803925688620619,
"code" : "PHP"
},
"ZMW" : {
- "value" : 0.053777856795375369,
+ "value" : 0.053831642077718359,
"code" : "ZMW"
},
"XAF" : {
- "value" : 0.001665269217146816,
+ "value" : 0.0016528979714677413,
"code" : "XAF"
},
"BDT" : {
- "value" : 0.011841271544157466,
+ "value" : 0.011765465793025925,
"code" : "BDT"
},
"NOK" : {
- "value" : 0.096903061269759935,
+ "value" : 0.097875715263492688,
"code" : "NOK"
},
"BOB" : {
- "value" : 0.14587998453672166,
+ "value" : 0.14501839340792788,
"code" : "BOB"
},
- "TZS" : {
- "value" : 0.00043224483630430953,
- "code" : "TZS"
- },
"XAG" : {
- "value" : 15.388403299273667,
+ "value" : 15.446400988569662,
"code" : "XAG"
},
"VEF" : {
@@ -212,61 +208,65 @@
"code" : "VEF"
},
"VUV" : {
- "value" : 0.0081920105025506812,
+ "value" : 0.0083438816685386993,
"code" : "VUV"
},
- "BND" : {
- "value" : 0.70653602344569133,
- "code" : "BND"
+ "ANG" : {
+ "value" : 0.55704130851231537,
+ "code" : "ANG"
},
"XCD" : {
"value" : 0.37002090618119926,
"code" : "XCD"
},
"SCR" : {
- "value" : 0.059345870821130818,
+ "value" : 0.058247726649476597,
"code" : "SCR"
},
- "ANG" : {
- "value" : 0.56193476386939289,
- "code" : "ANG"
+ "BND" : {
+ "value" : 0.70758338339485771,
+ "code" : "BND"
+ },
+ "TZS" : {
+ "value" : 0.00043211409094515575,
+ "code" : "TZS"
},
"KYD" : {
- "value" : 1.2070326550614499,
+ "value" : 1.1996794456521218,
"code" : "KYD"
},
"DJF" : {
- "value" : 0.0056268162448480739,
+ "value" : 0.005626816244848073,
"code" : "DJF"
},
"CLF" : {
- "value" : 32.827785437594379,
+ "value" : 33.413525795241917,
"code" : "CLF"
},
"LSL" : {
- "value" : 0.055554481502246511,
+ "value" : 0.054376249498243164,
"code" : "LSL"
},
"MOP" : {
- "value" : 0.12594980320972998,
+ "value" : 0.12523737178354424,
"code" : "MOP"
},
"ALL" : {
- "value" : 0.0086392787764203293,
+ "value" : 0.008702918050999953,
"code" : "ALL"
},
"UZS" : {
- "value" : 0.00010416666303168415,
+ "value" : 9.8921749615314453e-05,
"code" : "UZS"
},
- "PLN" : {
- "value" : 0.23838459175899515,
- "code" : "PLN"
- },
"UYU" : {
- "value" : 0.023362455958558171,
+ "value" : 0.023180574659890551,
"code" : "UYU"
},
+ "PLN" : {
+ "value" : 0.23782626791129083,
+ "code" : "PLN"
+ },
"LTL" : {
"value" : 0.33866849096093798,
"code" : "LTL"
@@ -276,15 +276,15 @@
"code" : "LYD"
},
"JPY" : {
- "value" : 0.0091836389757456553,
+ "value" : 0.0093741762442625352,
"code" : "JPY"
},
"MNT" : {
- "value" : 0.00035900541415777884,
+ "value" : 0.00035789404376333664,
"code" : "MNT"
},
"FJD" : {
- "value" : 0.43907716517731693,
+ "value" : 0.44384476085644287,
"code" : "FJD"
},
"ZWL" : {
@@ -292,23 +292,23 @@
"code" : "ZWL"
},
"KPW" : {
- "value" : 0.0011111111111111111,
+ "value" : 0.0011111110901234572,
"code" : "KPW"
},
"PKR" : {
- "value" : 0.0060058723978897201,
+ "value" : 0.0062636871350912893,
"code" : "PKR"
},
"MRO" : {
- "value" : 0.0028011180393746832,
+ "value" : 0.0028011202127910186,
"code" : "MRO"
},
"GBP" : {
- "value" : 1.2410209558724148,
+ "value" : 1.2405993583620119,
"code" : "GBP"
},
"OMR" : {
- "value" : 2.5957507560124076,
+ "value" : 2.6079223465042105,
"code" : "OMR"
},
"LVL" : {
@@ -316,67 +316,67 @@
"code" : "LVL"
},
"SHP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "SHP"
},
"GEL" : {
- "value" : 0.31695319235255337,
+ "value" : 0.31052130005331652,
"code" : "GEL"
},
"TND" : {
- "value" : 0.34512463140689364,
+ "value" : 0.34334716793521997,
"code" : "TND"
},
"DKK" : {
- "value" : 0.14555902326681097,
+ "value" : 0.14532974155721398,
"code" : "DKK"
},
"NPR" : {
- "value" : 0.0082432684810122593,
+ "value" : 0.008268864442634298,
"code" : "NPR"
},
"KRW" : {
- "value" : 0.00082170753654092386,
+ "value" : 0.0008198039771301187,
"code" : "KRW"
},
"BSD" : {
- "value" : 1.0058884711098772,
+ "value" : 0.99995400211590268,
"code" : "BSD"
},
"CRC" : {
- "value" : 0.0017570047651023428,
+ "value" : 0.001757663699349515,
"code" : "CRC"
},
"EGP" : {
- "value" : 0.063386853389123893,
+ "value" : 0.0642526682205532,
"code" : "EGP"
},
"MAD" : {
- "value" : 0.097823390433498469,
+ "value" : 0.10178076646820435,
"code" : "MAD"
},
"AUD" : {
- "value" : 0.6229649163162958,
+ "value" : 0.6534230875286362,
"code" : "AUD"
},
"BTC" : {
- "value" : 6944.4444444444443,
+ "value" : 9735.1219465899994,
"code" : "BTC"
},
"SLL" : {
- "value" : 0.00010232805495666701,
+ "value" : 0.00010141987480919497,
"code" : "SLL"
},
"MWK" : {
- "value" : 0.0013605435790645778,
+ "value" : 0.00135592532907823,
"code" : "MWK"
},
"RSD" : {
- "value" : 0.0092932451731488654,
+ "value" : 0.0092204107659802758,
"code" : "RSD"
},
"NZD" : {
- "value" : 0.59945939984014385,
+ "value" : 0.61379969015391633,
"code" : "NZD"
},
"SRD" : {
@@ -384,31 +384,31 @@
"code" : "SRD"
},
"CLP" : {
- "value" : 0.0011897108155168308,
+ "value" : 0.0012109412240226831,
"code" : "CLP"
},
"RUB" : {
- "value" : 0.013467592018829803,
+ "value" : 0.013623293324899607,
"code" : "RUB"
},
- "HKD" : {
- "value" : 0.12897138584528597,
- "code" : "HKD"
- },
"NAD" : {
- "value" : 0.055554493847450925,
+ "value" : 0.053965442796981407,
"code" : "NAD"
},
+ "HKD" : {
+ "value" : 0.1287506678940897,
+ "code" : "HKD"
+ },
"GMD" : {
- "value" : 0.01960770626777586,
+ "value" : 0.019538733487572093,
"code" : "GMD"
},
"VND" : {
- "value" : 4.2314609118798262e-05,
+ "value" : 4.2734129612615116e-05,
"code" : "VND"
},
"LAK" : {
- "value" : 0.00011154489247862044,
+ "value" : 0.00011104941268670238,
"code" : "LAK"
},
"CUC" : {
@@ -416,31 +416,31 @@
"code" : "CUC"
},
"RON" : {
- "value" : 0.22484998965258446,
+ "value" : 0.22454733502731844,
"code" : "RON"
},
"MUR" : {
- "value" : 0.025406259426516191,
+ "value" : 0.025182333313917751,
"code" : "MUR"
},
"XAU" : {
- "value" : 1683.5016835016834,
+ "value" : 1703.5775127768316,
"code" : "XAU"
},
"GGP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "GGP"
},
"MXN" : {
- "value" : 0.041744615301807605,
+ "value" : 0.042242923507696914,
"code" : "MXN"
},
"BRL" : {
- "value" : 0.1942061619829083,
+ "value" : 0.17444688127354596,
"code" : "BRL"
},
"STD" : {
- "value" : 4.5345772756215923e-05,
+ "value" : 4.5348623160373496e-05,
"code" : "STD"
},
"AWG" : {
@@ -448,207 +448,207 @@
"code" : "AWG"
},
"MVR" : {
- "value" : 0.06489133491728756,
+ "value" : 0.064500561509638218,
"code" : "MVR"
},
"PAB" : {
- "value" : 1.0058196726258128,
+ "value" : 0.99986201904137229,
"code" : "PAB"
},
"TJS" : {
- "value" : 0.098278436964013977,
+ "value" : 0.097412120386184506,
"code" : "TJS"
},
"GNF" : {
- "value" : 0.00010593219940615134,
+ "value" : 0.00010582010184485331,
"code" : "GNF"
},
- "MGA" : {
- "value" : 0.00026666664199111336,
- "code" : "MGA"
- },
"XDR" : {
- "value" : 1.3702271562579644,
+ "value" : 1.3609015700721414,
"code" : "XDR"
},
+ "MGA" : {
+ "value" : 0.00026315787070637335,
+ "code" : "MGA"
+ },
"ETB" : {
- "value" : 0.030165555810018778,
+ "value" : 0.029670177993771397,
"code" : "ETB"
},
"ZAR" : {
- "value" : 0.055335746984228752,
+ "value" : 0.054493228235513627,
"code" : "ZAR"
},
"COP" : {
- "value" : 0.00026126714565643361,
+ "value" : 0.00025664057487488769,
"code" : "COP"
},
"IDR" : {
- "value" : 6.3021908333772976e-05,
+ "value" : 6.7689064865415524e-05,
"code" : "IDR"
},
"SVC" : {
- "value" : 0.11494949176806459,
+ "value" : 0.11426389314680591,
"code" : "SVC"
},
"CVE" : {
- "value" : 0.0098862689551164774,
+ "value" : 0.0098038869666734509,
"code" : "CVE"
},
"ETC" : {
- "value" : 5.2796897600000001,
+ "value" : 7.2231541899999998,
"code" : "ETC"
},
"TTD" : {
- "value" : 0.14887226283457553,
+ "value" : 0.14798210126888733,
"code" : "TTD"
},
- "GIP" : {
- "value" : 1.2450276707399821,
- "code" : "GIP"
- },
"DOGE" : {
- "value" : 0.00192362,
+ "value" : 0.0025989699999999999,
"code" : "DOGE"
},
"PYG" : {
- "value" : 0.00015526899341998326,
+ "value" : 0.00015310020011384212,
"code" : "PYG"
},
+ "GIP" : {
+ "value" : 1.24067939603727,
+ "code" : "GIP"
+ },
"MZN" : {
- "value" : 0.014918609215042903,
+ "value" : 0.014688520305931914,
"code" : "MZN"
},
"FKP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "FKP"
},
"KZT" : {
- "value" : 0.0023372595944447915,
+ "value" : 0.0023697191785614917,
"code" : "KZT"
},
+ "UGX" : {
+ "value" : 0.00026313554178804439,
+ "code" : "UGX"
+ },
"USD" : {
"value" : 1,
"code" : "USD"
},
- "UGX" : {
- "value" : 0.00026575637638229845,
- "code" : "UGX"
- },
"RWF" : {
- "value" : 0.0010695187165775397,
+ "value" : 0.0010666666666666667,
"code" : "RWF"
},
"GHS" : {
- "value" : 0.17122144240367509,
+ "value" : 0.1740631919011878,
"code" : "GHS"
},
"ARS" : {
- "value" : 0.015475326271333262,
+ "value" : 0.015043744274821046,
"code" : "ARS"
},
"JEP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "JEP"
},
"DOP" : {
- "value" : 0.018381039913215023,
+ "value" : 0.018168474923498455,
"code" : "DOP"
},
"LBP" : {
- "value" : 0.00066103993702922969,
+ "value" : 0.00066104206291359559,
"code" : "LBP"
},
"BZD" : {
- "value" : 0.50296750829896386,
+ "value" : 0.49606521074834409,
"code" : "BZD"
},
"ADA" : {
- "value" : 0.033353590000000002,
+ "value" : 0.052150099999999998,
"code" : "ADA"
},
"BTN" : {
- "value" : 0.013189215653172165,
+ "value" : 0.013230175012724121,
"code" : "BTN"
},
- "YER" : {
- "value" : 0.0039944020213208056,
- "code" : "YER"
- },
"MYR" : {
- "value" : 0.23054565512641181,
+ "value" : 0.23073165700631676,
"code" : "MYR"
},
+ "YER" : {
+ "value" : 0.0039940083962923187,
+ "code" : "YER"
+ },
"JMD" : {
- "value" : 0.0073790145990114339,
+ "value" : 0.0070011106561944977,
"code" : "JMD"
},
"TOP" : {
- "value" : 0.42687539165817184,
+ "value" : 0.43208676302201482,
"code" : "TOP"
},
"SOS" : {
- "value" : 0.0017241369262788262,
+ "value" : 0.0017152648717675355,
"code" : "SOS"
},
"TMT" : {
- "value" : 0.2857142857142857,
+ "value" : 0.28490028490028491,
"code" : "TMT"
},
"MDL" : {
- "value" : 0.055652381423836141,
+ "value" : 0.056081610408118772,
"code" : "MDL"
},
"XOF" : {
- "value" : 0.0016611286520021387,
+ "value" : 0.0016528916549421002,
"code" : "XOF"
},
"ETH" : {
- "value" : 157.96081169999999,
+ "value" : 214.27102477,
"code" : "ETH"
},
"TWD" : {
- "value" : 0.033287797845067801,
+ "value" : 0.033492940592432512,
"code" : "TWD"
},
"BBD" : {
- "value" : 0.49819628036693153,
+ "value" : 0.495227002153247,
"code" : "BBD"
},
"CAD" : {
- "value" : 0.7118899443255855,
+ "value" : 0.71339397182093811,
"code" : "CAD"
},
"CNY" : {
- "value" : 0.1416652544022039,
+ "value" : 0.14135866028177871,
"code" : "CNY"
},
- "JOD" : {
- "value" : 1.4103576667042761,
- "code" : "JOD"
- },
"XPF" : {
- "value" : 0.0091404670413039422,
+ "value" : 0.0090576756555039873,
"code" : "XPF"
},
+ "JOD" : {
+ "value" : 1.40943532383186,
+ "code" : "JOD"
+ },
"XLM" : {
- "value" : 0.048814800000000012,
+ "value" : 0.072964390000000004,
"code" : "XLM"
},
"IQD" : {
- "value" : 0.00083998320033599355,
+ "value" : 0.00084033613445378156,
"code" : "IQD"
},
"HNL" : {
- "value" : 0.040127784522143689,
+ "value" : 0.039951436631687987,
"code" : "HNL"
},
"AED" : {
- "value" : 0.27225389745066897,
+ "value" : 0.27224589249009706,
"code" : "AED"
},
"EOS" : {
- "value" : 2.4907822500000001,
+ "value" : 2.81651052,
"code" : "EOS"
},
"ERN" : {
@@ -656,31 +656,31 @@
"code" : "ERN"
},
"KES" : {
- "value" : 0.0094425314505227759,
+ "value" : 0.0094294801475732493,
"code" : "KES"
},
"KMF" : {
- "value" : 0.0022229613123993688,
+ "value" : 0.0022038548842307978,
"code" : "KMF"
},
- "DZD" : {
- "value" : 0.0078708926150271707,
- "code" : "DZD"
- },
"MKD" : {
- "value" : 0.017705324756024165,
+ "value" : 0.017597338268847067,
"code" : "MKD"
},
+ "DZD" : {
+ "value" : 0.007792045272406397,
+ "code" : "DZD"
+ },
"BSV" : {
- "value" : 185.82623583,
+ "value" : 215.74796007,
"code" : "BSV"
},
"BWP" : {
- "value" : 0.083788711012903277,
+ "value" : 0.082342892437373499,
"code" : "BWP"
},
"SBD" : {
- "value" : 0.12042531330451635,
+ "value" : 0.12094835118369733,
"code" : "SBD"
},
"AZN" : {
@@ -688,43 +688,43 @@
"code" : "AZN"
},
"BCH" : {
- "value" : 231.68666519000001,
+ "value" : 272.65756047000002,
"code" : "BCH"
},
"KGS" : {
- "value" : 0.01285284249801626,
+ "value" : 0.012673660677005915,
"code" : "KGS"
},
"BYN" : {
- "value" : 0.40139444429949644,
+ "value" : 0.4105353216380031,
"code" : "BYN"
},
"KHR" : {
- "value" : 0.0002457002245108652,
+ "value" : 0.0002433089816541478,
"code" : "KHR"
},
"NEO" : {
- "value" : 7.2695771100000002,
+ "value" : 11.38753322,
"code" : "NEO"
},
"ZMK" : {
- "value" : 0.00011109625392516102,
+ "value" : 0.00011109625392516104,
"code" : "ZMK"
},
"HTG" : {
- "value" : 0.010608878549240103,
+ "value" : 0.0093168086688059926,
"code" : "HTG"
},
"CZK" : {
- "value" : 0.040384258054976828,
+ "value" : 0.039788953026912773,
"code" : "CZK"
},
"BAM" : {
- "value" : 0.55849946830850616,
+ "value" : 0.55437320071248042,
"code" : "BAM"
},
"IMP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "IMP"
}
}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
index 6b767bdf9..ea5261e51 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
@@ -1,4 +1,90 @@
{
+ "financial": [
+ {
+ "prototypeExpressions": [
+ "present value of 1000 after __timespan at 10%",
+ "present value of 1000 over __timespan at 10%"
+ ],
+ "identifier": "presentValue"
+ },
+ {
+ "prototypeExpressions": [
+ "annual return on 500 invested 1000 returned after __timespan",
+ "yearly return on 500 invested 1000 returned after __timespan",
+ "annual return on 500 invested 1000 returned over __timespan",
+ "yearly return on 500 invested 1000 returned over __timespan"
+ ],
+ "identifier": "returnOnInvestmentAfter"
+ },
+ {
+ "identifier": "returnOnInvestment",
+ "prototypeExpressions": [
+ "500 invested 1000 returned"
+ ]
+ },
+ {
+ "identifier": "totalLoanRepayment",
+ "prototypeExpressions": [
+ "total repayment on 10000 for __timespan at 6%",
+ "total repayment on 10000 after __timespan at 6%",
+ "total repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "annual repayment on 10000 for __timespan at 6%",
+ "annual repayment on 10000 after __timespan at 6%",
+ "annual repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 after __timespan at 6%",
+ "yearly repayment on 10000 for __timespan at 6%"
+ ],
+ "identifier": "annualLoanRepayment"
+ },
+ {
+ "identifier": "monthlyLoanRepayment",
+ "prototypeExpressions": [
+ "monthly repayment on 10000 for __timespan at 6%",
+ "monthly repayment on 10000 after __timespan at 6%",
+ "monthly repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "total interest on 10000 for __timespan at 6%",
+ "total interest on 10000 after __timespan at 6%",
+ "total interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "totalInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "annualInterestOnLoanRepayment",
+ "prototypeExpressions": [
+ "annual interest on 10000 for __timespan at 6%",
+ "annual interest on 10000 after __timespan at 6%",
+ "annual interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 after __timespan at 6%",
+ "yearly interest on 10000 for __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "monthly interest on 10000 for __timespan at 6%",
+ "monthly interest on 10000 after __timespan at 6%",
+ "monthly interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "monthlyInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "compoundInterest",
+ "prototypeExpressions": [
+ "100 after __timespan at 10%",
+ "100 for __timespan at 10%",
+ "100 over __timespan at 10%"
+ ]
+ }
+ ],
"percentage": [
{
"prototypeExpressions": [
@@ -138,6 +224,12 @@
"__unit in __unit_expression"
],
"identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ],
+ "identifier": "unitInTimespan"
}
],
"datetime": [
@@ -183,6 +275,18 @@
],
"identifier": "calendarUnitExpressionAfterDate"
},
+ {
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan ago"
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
{
"prototypeExpressions": [
"new timestamp"
@@ -206,4 +310,4 @@
"identifier": "differenceBetweenTimezones"
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
index 364ca565a..e3332a1d4 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
@@ -1,13 +1,5 @@
{
"fixtures": {
- "dateIntervalPrepositions": [
- "between ",
- "until ",
- "before ",
- "to ",
- "from ",
- "after "
- ],
"decimalPlacesTypes": [
"dp",
"digit",
@@ -94,6 +86,10 @@
"november",
"december"
],
+ "colons": [
+ ":",
+ ":"
+ ],
"additionOperators": [
"plus"
],
@@ -140,4 +136,4 @@
"sun"
]
}
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/UnitDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/UnitDescriptions.json
index 5306a0a54..025cac593 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/UnitDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Base.lproj/UnitDescriptions.json
@@ -1579,7 +1579,8 @@
{
"symbol" : "USD",
"aliases" : [
- "usd"
+ "usd",
+ "US$"
],
"identifier" : "usd"
}
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc
index e2379a6c9..a0a475093 100644
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
index 8a3081687..d07f6ac21 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64-apple-ios.swiftinterface
@@ -304,6 +304,7 @@ public enum TokenSubType {
case subtractionOperator
case multiplicationOperator
case divisionOperator
+ case reverseDivisionOperator
case powerOperator
case modOperator
case lesserOf
@@ -432,7 +433,7 @@ public struct ExportOptions {
public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
- public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions, limitToChars: Swift.Int?) -> Swift.String
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
@objc deinit
}
@_hasMissingDesignatedInitializers public class LocaleProvider {
@@ -794,6 +795,10 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
public struct Timespan {
public let dateComponents: Foundation.DateComponents
}
@@ -906,6 +911,11 @@ extension UnitLength {
@objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
@objc required dynamic public init?(coder: Foundation.NSCoder)
}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
public struct UnitRate {
public let value: Foundation.Decimal
public let ofUnit: SoulverCore.CocoaUnit?
@@ -1478,8 +1488,12 @@ public class LineCollection {
public var quickAverage: SoulverCore.CalculationResult? {
get
}
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
public func clearStates()
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc
index e2379a6c9..a0a475093 100644
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
index 8a3081687..d07f6ac21 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/Modules/SoulverCore.swiftmodule/arm64.swiftinterface
@@ -304,6 +304,7 @@ public enum TokenSubType {
case subtractionOperator
case multiplicationOperator
case divisionOperator
+ case reverseDivisionOperator
case powerOperator
case modOperator
case lesserOf
@@ -432,7 +433,7 @@ public struct ExportOptions {
public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
- public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions, limitToChars: Swift.Int?) -> Swift.String
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
@objc deinit
}
@_hasMissingDesignatedInitializers public class LocaleProvider {
@@ -794,6 +795,10 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
public struct Timespan {
public let dateComponents: Foundation.DateComponents
}
@@ -906,6 +911,11 @@ extension UnitLength {
@objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
@objc required dynamic public init?(coder: Foundation.NSCoder)
}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
public struct UnitRate {
public let value: Foundation.Decimal
public let ofUnit: SoulverCore.CocoaUnit?
@@ -1478,8 +1488,12 @@ public class LineCollection {
public var quickAverage: SoulverCore.CalculationResult? {
get
}
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
public func clearStates()
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore
index 503d486b7..478198ac1 100755
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/SoulverCore differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/FunctionDescriptions.json
index 77e10f163..17cd6316d 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/FunctionDescriptions.json
@@ -80,36 +80,36 @@
{
"identifier": "remainder",
"prototypeExpressions": [
- "Rest von 20 durch 3",
- "Rest von 20 geteilt durch 3"
+ "rest von 20 durch 3",
+ "rest von 20 geteilt durch 3"
]
},
{
"identifier": "halfOf",
"prototypeExpressions": [
- "Hälfte von 20"
+ "hälfte von 20"
]
},
{
"identifier": "lesserOf",
"prototypeExpressions": [
- "kleinere Wert von 2 und 30",
- "kleinere Zahl von 2 und 30"
+ "kleinere wert von 2 und 30",
+ "kleinere zahl von 2 und 30"
]
},
{
"identifier": "greaterOf",
"prototypeExpressions": [
- "größere Wert von 2 und 30",
- "größere Zahl von 2 und 30",
- "Zahl von 2 und 30 ist größer",
- "welche der Zahlen von 2 und 30 ist größer"
+ "größere wert von 2 und 30",
+ "größere zahl von 2 und 30",
+ "zahl von 2 und 30 ist größer",
+ "welche der zahlen von 2 und 30 ist größer"
]
},
{
"identifier": "midpoint",
"prototypeExpressions": [
- "Mitte zwischen 2 und 32"
+ "mitte zwischen 2 und 32"
]
},
{
@@ -128,7 +128,7 @@
},
{
"prototypeExpressions": [
- "Zufallszahl zwischen 1 und 5",
+ "zufallszahl zwischen 1 und 5",
"zufällig zwischen 1 und 5"
],
"identifier": "makeRandomNumber"
@@ -186,7 +186,7 @@
{
"identifier": "generateTimestamp",
"prototypeExpressions": [
- "neuer Zeitstempel"
+ "neuer zeitstempel"
]
},
{
@@ -198,17 +198,17 @@
},
{
"prototypeExpressions": [
- "__timezone Zeit",
- "Zeit in __timezone"
+ "__timezone zeit",
+ "zeit in __timezone"
],
"identifier": "timeInTimezone"
},
{
"prototypeExpressions": [
- "Zeitdifferenz zwischen __timezone und __timezone",
- "Differenz zwischen __timezone und __timezone",
- "Zeitdifferenz zwischen __timezone & __timezone",
- "Differenz zwischen __timezone & __timezone"
+ "zeitdifferenz zwischen __timezone und __timezone",
+ "differenz zwischen __timezone und __timezone",
+ "zeitdifferenz zwischen __timezone & __timezone",
+ "differenz zwischen __timezone & __timezone"
],
"identifier": "differenceBetweenTimezones"
}
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/LocalizedFixtures.json
index d04ea7105..7cb8c512f 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/LocalizedFixtures.json
@@ -97,7 +97,6 @@
"π"
],
"additionOperators": [
- "und"
],
"timespanTypes": [
"Zeitdauer",
@@ -141,13 +140,6 @@
"Son",
"So"
],
- "dateIntervalPrepositions": [
- " zwischen ",
- " bis ",
- " vor ",
- " von ",
- "hier"
- ],
"percentTypes": [
"Prozent",
"Prozentrechnung"
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/UnitDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/UnitDescriptions.json
index f91743bfb..2d9c2a8bc 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/UnitDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/de.lproj/UnitDescriptions.json
@@ -1560,4 +1560,4 @@
"identifier": "nanohertz"
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
index 1a1282394..257145396 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
@@ -134,6 +134,12 @@
"__unit в __unit_expression"
],
"identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit в __timespan"
+ ],
+ "identifier": "unitInTimespan"
}
],
"datetime": [
@@ -165,6 +171,13 @@
],
"identifier": "intervalBetweenTimestamps"
},
+ {
+ "prototypeExpressions": [
+ "__timespan назад",
+ "__timespan тому назад",
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
{
"prototypeExpressions": [
"__unit с __datestamp"
@@ -183,6 +196,12 @@
],
"identifier": "calendarUnitExpressionAfterDate"
},
+ {
+ "prototypeExpressions": [
+ "__timespan до __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
{
"identifier": "timeInTimezone",
"prototypeExpressions": [
@@ -198,4 +217,4 @@
"identifier": "differenceBetweenTimezones"
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
index d8774c436..9a0e5c766 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
@@ -145,15 +145,6 @@
"Чт",
"Чтв"
],
- "dateIntervalPrepositions": [
- "с ",
- "по ",
- "до ",
- "и ",
- "между ",
- " ночи",
- " дня"
- ],
"percentTypes": [
"процент"
]
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
index 48d6dfca1..edf339b38 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
@@ -49,19 +49,6 @@
"什么的20%是30"
]
},
- {
- "identifier": "isPercentOffWhat",
- "prototypeExpressions": [
- "30是多少减20%",
- "30是多少减去20%",
- "30 是多少减 20%",
- "30 是多少减去 20%",
- "30是什么减20%",
- "30是什么减去20%",
- "30 是什么减 20%",
- "30 是什么减去 20%"
- ]
- },
{
"identifier": "isPercentOffWhatClassic",
"prototypeExpressions": [
@@ -164,6 +151,7 @@
"prototypeExpressions": [
"20 的一半为",
"20 的一半是",
+ "20 的一般",
"20的一半为",
"20的一半是"
]
@@ -227,7 +215,10 @@
"prototypeExpressions": [
"1 到 5 之间的任意数",
"1 与 5 之间的任意数",
- "1 和 5 之间的任意数"
+ "1 和 5 之间的任意数",
+ "1到5之间的任意数",
+ "1与5之间的任意数",
+ "1和5之间的任意数"
]
}
],
@@ -288,4 +279,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings
index 4e49cca45..59ce6e370 100644
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict
index 3967e063f..e15d8a2ee 100644
Binary files a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
index dbafbf71d..a1c37837a 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
@@ -1,23 +1,5 @@
{
"fixtures": {
- "dayOfWeekDateAliases": [
- "星期一",
- "星期二",
- "星期三",
- "星期四",
- "星期五",
- "星期六",
- "星期日",
- "星期天",
- "周一",
- "周二",
- "周三",
- "周四",
- "周五",
- "周六",
- "周日",
- "周天"
- ],
"decimalPlacesTypes": [
"小数"
],
@@ -25,14 +7,19 @@
"乘数"
],
"divisionOperators": [
- "÷",
+ "除以",
+ "每"
+ ],
+ "reverseDivisionOperators": [
+ "除"
],
"roundingConverters": [
- "四舍五入"
+ "四舍五入",
+ "舍入"
],
"multiplicationOperators": [
- "×",
- "x",
+ "乘",
+ "乘以"
],
"tomorrowDateAliases": [
"明天",
@@ -40,8 +27,7 @@
],
"lessThanOrEqualToOperators": [
"<=",
- "=<",
- "小于等于"
+ "=<"
],
"laptimeTypes": [
"圈速",
@@ -57,8 +43,8 @@
"昨日"
],
"subtractionOperators": [
- "−",
- "–",
+ "减",
+ "减去"
],
"todayDateAliases": [
"今天",
@@ -105,6 +91,8 @@
"12月"
],
"additionOperators": [
+ "加",
+ "加上"
],
"timespanTypes": [
"周期"
@@ -114,12 +102,30 @@
],
"converterSymbols": [
"到",
- "为"
+ "为",
+ "作为"
],
"greaterThanOrEqualToOperators": [
">=",
- "=>",
- "大于等于"
+ "=>"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "星期天",
+ "周一",
+ "周二",
+ "周三",
+ "周四",
+ "周五",
+ "周六",
+ "周日",
+ "周天"
],
"fractionTypes": [
"分之",
@@ -127,17 +133,7 @@
],
"isNotEqualToOperators": [
"!=",
- "=!",
- "不等于"
- ],
- "dateIntervalPrepositions": [
- "之间 ",
- "直到 ",
- " 之前",
- "到 ",
- "从 ",
- " 后",
- " 之后"
+ "=!"
],
"percentTypes": [
"百分之",
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
index bfdabd32a..8fcda5e55 100644
--- a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
@@ -1242,7 +1242,8 @@
{
"symbol" : "week",
"aliases" : [
- "星期"
+ "周",
+ "星期"
],
"identifier" : "weeks"
},
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Cities.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Cities.json
new file mode 100644
index 000000000..c714ed87c
--- /dev/null
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Cities.json
@@ -0,0 +1,3565 @@
+[
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "上海",
+ "identifier" : "shanghai",
+ "population" : "22,315,474"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊斯坦堡",
+ "identifier" : "istanbul",
+ "population" : "14,804,116"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "布宜諾斯艾利斯",
+ "identifier" : "buenos aires",
+ "population" : "13,076,300"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "孟買",
+ "identifier" : "mumbai",
+ "population" : "12,691,836"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "墨西哥城",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "北京",
+ "identifier" : "beijing",
+ "population" : "11,716,620"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "卡拉奇",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "天津",
+ "identifier" : "tianjin",
+ "population" : "11,090,314"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "廣州",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "新德里",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "莫斯科",
+ "identifier" : "moscow",
+ "population" : "10,381,222"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "深圳",
+ "identifier" : "shenzhen",
+ "population" : "10,358,381"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "達卡",
+ "identifier" : "dhaka",
+ "population" : "10,356,500"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "漢城",
+ "identifier" : "seoul",
+ "population" : "10,349,312"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "聖保羅",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "武漢市",
+ "identifier" : "wuhan",
+ "population" : "9,785,388"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "拉各斯",
+ "identifier" : "lagos",
+ "population" : "9,000,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "雅加達",
+ "identifier" : "jakarta",
+ "population" : "8,540,121"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "東京",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "紐約",
+ "identifier" : "new york",
+ "population" : "8,175,133"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "東莞市",
+ "identifier" : "dongguan",
+ "population" : "8,000,000"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "台北",
+ "identifier" : "taipei",
+ "population" : "7,871,900"
+ },
+ {
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "金夏沙",
+ "identifier" : "kinshasa",
+ "population" : "7,785,965"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "開羅",
+ "identifier" : "cairo",
+ "population" : "7,734,614"
+ },
+ {
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "波哥大",
+ "identifier" : "bogota",
+ "population" : "7,674,366"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "倫敦",
+ "identifier" : "london",
+ "population" : "7,556,900"
+ },
+ {
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "重慶市",
+ "identifier" : "chongqing",
+ "population" : "7,457,600"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "成都市",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "巴格達",
+ "identifier" : "baghdad",
+ "population" : "7,216,000"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南京",
+ "identifier" : "nanjing",
+ "population" : "7,165,292"
+ },
+ {
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "德黑蘭",
+ "identifier" : "tehran",
+ "population" : "7,153,309"
+ },
+ {
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南充",
+ "identifier" : "nanchong",
+ "population" : "7,150,000"
+ },
+ {
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "香港",
+ "identifier" : "hong kong",
+ "population" : "7,012,738"
+ },
+ {
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "西安",
+ "identifier" : "xi'an",
+ "population" : "6,501,190"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "里約熱內盧",
+ "identifier" : "rio de janeiro",
+ "population" : "6,023,699"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "曼谷",
+ "identifier" : "bangkok",
+ "population" : "5,104,476"
+ },
+ {
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "班加羅爾",
+ "identifier" : "bengaluru",
+ "population" : "5,104,047"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "聖彼得堡",
+ "identifier" : "saint petersburg",
+ "population" : "5,028,000"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "聖地亞哥",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "加爾各答",
+ "identifier" : "kolkata",
+ "population" : "4,631,392"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "悉尼",
+ "identifier" : "sydney",
+ "population" : "4,627,345"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "仰光",
+ "identifier" : "yangon",
+ "population" : "4,477,638"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "欽奈",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "墨爾本",
+ "identifier" : "melbourne",
+ "population" : "4,246,375"
+ },
+ {
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "利雅得",
+ "identifier" : "riyadh",
+ "population" : "4,205,961"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "洛杉磯",
+ "identifier" : "los angeles",
+ "population" : "3,971,883"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "吉大港市",
+ "identifier" : "chittagong",
+ "population" : "3,920,222"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "亞歷山德里亞",
+ "identifier" : "alexandria",
+ "population" : "3,811,516"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "艾哈邁達巴德",
+ "identifier" : "ahmedabad",
+ "population" : "3,719,710"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "釜山",
+ "identifier" : "busan",
+ "population" : "3,678,555"
+ },
+ {
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿比讓",
+ "identifier" : "abidjan",
+ "population" : "3,677,115"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "鹿野",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "海得拉巴",
+ "identifier" : "hyderabad",
+ "population" : "3,597,816"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "橫濱",
+ "identifier" : "yokohama",
+ "population" : "3,574,443"
+ },
+ {
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊巴丹島",
+ "identifier" : "ibadan",
+ "population" : "3,565,108"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "新加坡",
+ "identifier" : "singapore",
+ "population" : "3,547,809"
+ },
+ {
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "安卡拉",
+ "identifier" : "ankara",
+ "population" : "3,517,182"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "胡志明市",
+ "identifier" : "ho chi minh city",
+ "population" : "3,467,331"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "開普敦",
+ "identifier" : "cape town",
+ "population" : "3,433,441"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "柏林",
+ "identifier" : "berlin",
+ "population" : "3,426,354"
+ },
+ {
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "馬德里",
+ "identifier" : "madrid",
+ "population" : "3,255,944"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "平壤",
+ "identifier" : "pyongyang",
+ "population" : "3,222,000"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "卡薩布蘭卡",
+ "identifier" : "casablanca",
+ "population" : "3,144,909"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "中山",
+ "identifier" : "zhongshan",
+ "population" : "3,121,275"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "德班",
+ "identifier" : "durban",
+ "population" : "3,120,282"
+ },
+ {
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "喀布爾",
+ "identifier" : "kabul",
+ "population" : "3,043,532"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "烏魯木齊",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "加拉加斯",
+ "identifier" : "caracas",
+ "population" : "3,000,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "迪拜",
+ "identifier" : "dubai",
+ "population" : "2,956,587"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "吉達",
+ "identifier" : "jeddah",
+ "population" : "2,867,446"
+ },
+ {
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "基輔",
+ "identifier" : "kyiv",
+ "population" : "2,797,553"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "羅安達",
+ "identifier" : "luanda",
+ "population" : "2,776,168"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "奎松市",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "亞的斯亞貝巴(埃塞俄比亞首都",
+ "identifier" : "addis ababa",
+ "population" : "2,757,729"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "內羅畢",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "芝加哥",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "薩爾瓦多",
+ "identifier" : "salvador",
+ "population" : "2,711,840"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "達累斯薩拉姆",
+ "identifier" : "dar es salaam",
+ "population" : "2,698,652"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "多倫多",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "大阪",
+ "identifier" : "osaka",
+ "population" : "2,592,413"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "摩加迪沙",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊茲密爾",
+ "identifier" : "izmir",
+ "population" : "2,500,603"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "達喀爾",
+ "identifier" : "dakar",
+ "population" : "2,476,400"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "吉薩",
+ "identifier" : "giza",
+ "population" : "2,443,203"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "福塔雷薩",
+ "identifier" : "fortaleza",
+ "population" : "2,400,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "泗水",
+ "identifier" : "surabaya",
+ "population" : "2,374,658"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "貝洛奧里藏特",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "羅馬",
+ "identifier" : "rome",
+ "population" : "2,318,895"
+ },
+ {
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "馬什哈德",
+ "identifier" : "mashhad",
+ "population" : "2,307,177"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "布魯克林區",
+ "identifier" : "brooklyn",
+ "population" : "2,300,664"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "休斯頓",
+ "identifier" : "houston",
+ "population" : "2,296,224"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "皇后區",
+ "identifier" : "queens",
+ "population" : "2,272,771"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "巴西利亞",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "聖多明哥",
+ "identifier" : "santo domingo",
+ "population" : "2,201,941"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "名古屋",
+ "identifier" : "nagoya",
+ "population" : "2,191,279"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "布里斯班",
+ "identifier" : "brisbane",
+ "population" : "2,189,878"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "哈瓦那",
+ "identifier" : "havana",
+ "population" : "2,163,824"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "巴黎",
+ "identifier" : "paris",
+ "population" : "2,138,551"
+ },
+ {
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "約翰內斯堡",
+ "identifier" : "johannesburg",
+ "population" : "2,026,469"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "阿拉木圖",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "塔什幹",
+ "identifier" : "tashkent",
+ "population" : "1,978,028"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "阿爾及爾",
+ "identifier" : "algiers",
+ "population" : "1,977,663"
+ },
+ {
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "喀土穆",
+ "identifier" : "khartoum",
+ "population" : "1,974,647"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "阿克拉",
+ "identifier" : "accra",
+ "population" : "1,963,264"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "瓜亞基爾",
+ "identifier" : "guayaquil",
+ "population" : "1,952,029"
+ },
+ {
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "薩那",
+ "identifier" : "sanaa",
+ "population" : "1,937,451"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "貝魯特",
+ "identifier" : "beirut",
+ "population" : "1,916,100"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "珀斯",
+ "identifier" : "perth",
+ "population" : "1,896,548"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "札幌",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "布加勒斯特",
+ "identifier" : "bucharest",
+ "population" : "1,877,155"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "卡馬耶納",
+ "identifier" : "camayenne",
+ "population" : "1,871,242"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "科納克里",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "明斯克",
+ "identifier" : "minsk",
+ "population" : "1,742,124"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "布達佩斯",
+ "identifier" : "budapest",
+ "population" : "1,741,041"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢堡",
+ "identifier" : "hamburg",
+ "population" : "1,739,117"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "華沙",
+ "identifier" : "warsaw",
+ "population" : "1,702,139"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "索韋托",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "維也納",
+ "identifier" : "vienna",
+ "population" : "1,691,468"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "拉巴特",
+ "identifier" : "rabat",
+ "population" : "1,655,753"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴塞羅納",
+ "identifier" : "barcelona",
+ "population" : "1,621,537"
+ },
+ {
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "比勒陀利亞",
+ "identifier" : "pretoria",
+ "population" : "1,619,438"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "阿勒頗",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "馬尼拉",
+ "identifier" : "manila",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "蒙特利爾",
+ "identifier" : "montreal",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "卡杜納",
+ "identifier" : "kaduna",
+ "population" : "1,582,102"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "金邊",
+ "identifier" : "phnom penh",
+ "population" : "1,573,544"
+ },
+ {
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "大馬士革",
+ "identifier" : "damascus",
+ "population" : "1,569,394"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "費城",
+ "identifier" : "philadelphia",
+ "population" : "1,567,442"
+ },
+ {
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "鳳凰",
+ "identifier" : "phoenix",
+ "population" : "1,563,025"
+ },
+ {
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "伊斯法罕",
+ "identifier" : "isfahan",
+ "population" : "1,547,164"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "哈拉雷",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "科比",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "斯德哥爾摩",
+ "identifier" : "stockholm",
+ "population" : "1,515,017"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "曼哈頓",
+ "identifier" : "manhattan",
+ "population" : "1,487,536"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "亞松森",
+ "identifier" : "asuncion",
+ "population" : "1,482,200"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "累西腓",
+ "identifier" : "recife",
+ "population" : "1,478,098"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "聖安東尼奧",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "庫馬西",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "哥打巴魯",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "京都",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "吉隆坡",
+ "identifier" : "kuala lumpur",
+ "population" : "1,453,975"
+ },
+ {
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡拉伊",
+ "identifier" : "karaj",
+ "population" : "1,448,075"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "加德滿都",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "河內",
+ "identifier" : "hanoi",
+ "population" : "1,431,270"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "哈爾科夫",
+ "identifier" : "kharkiv",
+ "population" : "1,430,885"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "科爾多瓦",
+ "identifier" : "cordoba",
+ "population" : "1,428,214"
+ },
+ {
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "大不里士",
+ "identifier" : "tabriz",
+ "population" : "1,424,641"
+ },
+ {
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "新西伯利亞",
+ "identifier" : "novosibirsk",
+ "population" : "1,419,007"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "貝倫",
+ "identifier" : "belem",
+ "population" : "1,407,737"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "基多",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "聖地亞哥",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "福岡",
+ "identifier" : "fukuoka",
+ "population" : "1,392,289"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "塔那那利佛",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "布朗克斯",
+ "identifier" : "the bronx",
+ "population" : "1,385,108"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "盧本巴希",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "聖克魯斯-德拉塞拉",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "坎帕拉",
+ "identifier" : "kampala",
+ "population" : "1,353,189"
+ },
+ {
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "葉卡捷琳堡",
+ "identifier" : "yekaterinburg",
+ "population" : "1,349,772"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "杜阿拉",
+ "identifier" : "douala",
+ "population" : "1,338,082"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "沙迦",
+ "identifier" : "sharjah",
+ "population" : "1,324,473"
+ },
+ {
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥加",
+ "identifier" : "mecca",
+ "population" : "1,323,624"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "望加錫",
+ "identifier" : "makassar",
+ "population" : "1,321,717"
+ },
+ {
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "華雷斯",
+ "identifier" : "juarez",
+ "population" : "1,321,004"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "川崎",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "蒂華納",
+ "identifier" : "tijuana",
+ "population" : "1,300,983"
+ },
+ {
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "達拉斯",
+ "identifier" : "dallas",
+ "population" : "1,300,092"
+ },
+ {
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥地那",
+ "identifier" : "medina",
+ "population" : "1,300,000"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "雅溫得",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "巴馬科",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "布拉柴維爾",
+ "identifier" : "brazzaville",
+ "population" : "1,284,609"
+ },
+ {
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "下諾夫哥羅德",
+ "identifier" : "nizhniy novgorod",
+ "population" : "1,284,164"
+ },
+ {
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "安曼",
+ "identifier" : "amman",
+ "population" : "1,275,857"
+ },
+ {
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "貝爾格萊德",
+ "identifier" : "belgrade",
+ "population" : "1,273,651"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "蒙得維的亞",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "盧薩卡",
+ "identifier" : "lusaka",
+ "population" : "1,267,440"
+ },
+ {
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "慕尼黑",
+ "identifier" : "munich",
+ "population" : "1,260,391"
+ },
+ {
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "設拉子",
+ "identifier" : "shiraz",
+ "population" : "1,249,942"
+ },
+ {
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "米蘭",
+ "identifier" : "milan",
+ "population" : "1,236,837"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "太子港",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "阿德萊德",
+ "identifier" : "adelaide",
+ "population" : "1,225,235"
+ },
+ {
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "恩杜曼",
+ "identifier" : "omdurman",
+ "population" : "1,200,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "ita玉",
+ "identifier" : "saitama",
+ "population" : "1,193,350"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬普托",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "布拉格",
+ "identifier" : "prague",
+ "population" : "1,165,581"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "哥本哈根",
+ "identifier" : "copenhagen",
+ "population" : "1,153,615"
+ },
+ {
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "蘇菲亞",
+ "identifier" : "sofia",
+ "population" : "1,152,556"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "的黎波里",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "哈科特港",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "廣島",
+ "identifier" : "hiroshima",
+ "population" : "1,143,841"
+ },
+ {
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "蒙特雷",
+ "identifier" : "monterrey",
+ "population" : "1,135,512"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "薩馬拉",
+ "identifier" : "samara",
+ "population" : "1,134,730"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "鄂木斯克",
+ "identifier" : "omsk",
+ "population" : "1,129,281"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "貝寧市",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "巴庫",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "邁杜古里",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "喀山",
+ "identifier" : "kazan",
+ "population" : "1,104,738"
+ },
+ {
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "葉里溫",
+ "identifier" : "yerevan",
+ "population" : "1,093,485"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "瓦加杜古",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "羅斯托夫納多努",
+ "identifier" : "rostov-na-donu",
+ "population" : "1,074,482"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "車里雅賓斯克",
+ "identifier" : "chelyabinsk",
+ "population" : "1,062,919"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "第比利斯",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "烏法",
+ "identifier" : "ufa",
+ "population" : "1,033,338"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "聖荷西",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "都柏林",
+ "identifier" : "dublin",
+ "population" : "1,024,027"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "卡爾加里",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "布魯塞爾",
+ "identifier" : "brussels",
+ "population" : "1,019,022"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "伏爾加格勒",
+ "identifier" : "volgograd",
+ "population" : "1,011,417"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "敖德薩",
+ "identifier" : "odessa",
+ "population" : "1,001,558"
+ },
+ {
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "危地馬拉城",
+ "identifier" : "guatemala city",
+ "population" : "994,938"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "伯明翰",
+ "identifier" : "birmingham",
+ "population" : "984,333"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "燙髮",
+ "identifier" : "perm",
+ "population" : "982,419"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "扎里亞",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "伊麗莎白港",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "非斯",
+ "identifier" : "fes",
+ "population" : "964,891"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "科隆",
+ "identifier" : "cologne",
+ "population" : "963,395"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "那不勒斯",
+ "identifier" : "naples",
+ "population" : "959,470"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "馬塞約",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "蒙羅維亞",
+ "identifier" : "monrovia",
+ "population" : "939,524"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "金斯頓",
+ "identifier" : "kingston",
+ "population" : "937,700"
+ },
+ {
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧斯丁",
+ "identifier" : "austin",
+ "population" : "931,830"
+ },
+ {
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "克拉斯諾亞爾斯克",
+ "identifier" : "krasnoyarsk",
+ "population" : "927,200"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "特賣",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "庫姆",
+ "identifier" : "qom",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "比什凱克",
+ "identifier" : "bishkek",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿波波",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿壩",
+ "identifier" : "aba",
+ "population" : "897,560"
+ },
+ {
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "門多薩",
+ "identifier" : "mendoza",
+ "population" : "876,884"
+ },
+ {
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "姆布吉馬耶",
+ "identifier" : "mbuji-mayi",
+ "population" : "874,761"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "皮金",
+ "identifier" : "pikine",
+ "population" : "874,062"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "都靈",
+ "identifier" : "turin",
+ "population" : "870,456"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "舊金山",
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "利物浦",
+ "identifier" : "liverpool",
+ "population" : "864,122"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "薩拉托夫",
+ "identifier" : "saratov",
+ "population" : "863,725"
+ },
+ {
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "德古西加巴",
+ "identifier" : "tegucigalpa",
+ "population" : "850,848"
+ },
+ {
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "沃羅涅日",
+ "identifier" : "voronezh",
+ "population" : "848,752"
+ },
+ {
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "烏蘭巴托",
+ "identifier" : "ulan bator",
+ "population" : "844,818"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "阿瓦士",
+ "identifier" : "ahvaz",
+ "population" : "841,145"
+ },
+ {
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "馬拉喀什",
+ "identifier" : "marrakesh",
+ "population" : "839,296"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "登巴薩",
+ "identifier" : "denpasar",
+ "population" : "834,881"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "沃思堡",
+ "identifier" : "fort worth",
+ "population" : "833,319"
+ },
+ {
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "印第安納波利斯",
+ "identifier" : "indianapolis",
+ "population" : "829,718"
+ },
+ {
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "喬斯",
+ "identifier" : "jos",
+ "population" : "816,824"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴倫西亞",
+ "identifier" : "valencia",
+ "population" : "814,208"
+ },
+ {
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊洛林",
+ "identifier" : "ilorin",
+ "population" : "814,192"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "拉巴斯",
+ "identifier" : "la paz",
+ "population" : "215,178"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "渥太華",
+ "identifier" : "ottawa",
+ "population" : "812,129"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "弗里敦",
+ "identifier" : "freetown",
+ "population" : "802,639"
+ },
+ {
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "耶路撒冷",
+ "identifier" : "jerusalem",
+ "population" : "801,000"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "馬斯喀特",
+ "identifier" : "muscat",
+ "population" : "797,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "馬賽",
+ "identifier" : "marseille",
+ "population" : "794,811"
+ },
+ {
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "帕斯拉格德分行",
+ "identifier" : "pasragad branch",
+ "population" : "787,878"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "布默達斯",
+ "identifier" : "boumerdas",
+ "population" : "786,499"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "San Miguel de Tucuman",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "梅里達",
+ "identifier" : "merida",
+ "population" : "777,615"
+ },
+ {
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "尼亞美",
+ "identifier" : "niamey",
+ "population" : "774,235"
+ },
+ {
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡里茲",
+ "identifier" : "kahriz",
+ "population" : "766,706"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "克拉科夫",
+ "identifier" : "krakow",
+ "population" : "755,050"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "峴港市",
+ "identifier" : "da nang",
+ "population" : "752,493"
+ },
+ {
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "彼得馬里茨堡",
+ "identifier" : "pietermaritzburg",
+ "population" : "750,845"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "洛美",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "基加利",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "裡加",
+ "identifier" : "riga",
+ "population" : "742,572"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "阿姆斯特丹",
+ "identifier" : "amsterdam",
+ "population" : "741,636"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "大洋",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "諾丁漢",
+ "identifier" : "nottingham",
+ "population" : "729,977"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "大坎普市",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "阿什哈巴德",
+ "identifier" : "ashgabat",
+ "population" : "727,700"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "恩賈梅納",
+ "identifier" : "n'djamena",
+ "population" : "721,081"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "利沃夫",
+ "identifier" : "lviv",
+ "population" : "717,803"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "埃莫西約",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "埃德蒙頓",
+ "identifier" : "edmonton",
+ "population" : "712,391"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "布拉瓦約",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "薩格勒布",
+ "identifier" : "zagreb",
+ "population" : "698,966"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "阿加迪爾",
+ "identifier" : "agadir",
+ "population" : "698,310"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "薩拉熱窩",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "埃努古",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "丹吉爾",
+ "identifier" : "tangier",
+ "population" : "688,356"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "謝菲爾德",
+ "identifier" : "sheffield",
+ "population" : "685,368"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "西雅圖",
+ "identifier" : "seattle",
+ "population" : "684,451"
+ },
+ {
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "丹佛",
+ "identifier" : "denver",
+ "population" : "682,545"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "埃爾帕索",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "杜尚別",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "底特律",
+ "identifier" : "detroit",
+ "population" : "677,116"
+ },
+ {
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "庫里亞坎人",
+ "identifier" : "culiacan",
+ "population" : "675,773"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬托拉",
+ "identifier" : "matola",
+ "population" : "675,422"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "波斯頓",
+ "identifier" : "boston",
+ "population" : "667,137"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "雅典",
+ "identifier" : "athens",
+ "population" : "664,046"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "努瓦克肖特",
+ "identifier" : "nouakchott",
+ "population" : "661,400"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "黑角",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "孟菲斯",
+ "identifier" : "memphis",
+ "population" : "655,770"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "法蘭克福",
+ "identifier" : "frankfurt am main",
+ "population" : "650,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "克拉斯諾達爾",
+ "identifier" : "krasnodar",
+ "population" : "649,851"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴勒莫",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "科倫坡",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "利隆圭",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "奧蘭",
+ "identifier" : "oran",
+ "population" : "645,984"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "基希訥烏",
+ "identifier" : "chisinau",
+ "population" : "635,994"
+ },
+ {
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "特比薩",
+ "identifier" : "tebessa",
+ "population" : "634,332"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "波特蘭",
+ "identifier" : "portland",
+ "population" : "632,309"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "溫尼伯",
+ "identifier" : "winnipeg",
+ "population" : "632,063"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "俄克拉荷馬城",
+ "identifier" : "oklahoma city",
+ "population" : "631,346"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "坎昆",
+ "identifier" : "cancun",
+ "population" : "628,306"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "吉布地",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "巴爾的摩",
+ "identifier" : "baltimore",
+ "population" : "621,849"
+ },
+ {
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼沙",
+ "identifier" : "kermanshah",
+ "population" : "621,100"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "布里斯托爾",
+ "identifier" : "bristol",
+ "population" : "617,280"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "貝諾尼",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "阿布扎比",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "華盛頓州",
+ "identifier" : "washington",
+ "population" : "601,723"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "密爾沃基",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "溫哥華",
+ "identifier" : "vancouver",
+ "population" : "600,000"
+ },
+ {
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "巴瑙爾",
+ "identifier" : "barnaul",
+ "population" : "599,579"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "鹿特丹",
+ "identifier" : "rotterdam",
+ "population" : "598,199"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "拉什特",
+ "identifier" : "rasht",
+ "population" : "594,590"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿倍庫塔",
+ "identifier" : "abeokuta",
+ "population" : "593,100"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "埃森",
+ "identifier" : "essen",
+ "population" : "593,085"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "格拉斯哥",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "黃金海岸",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿布賈",
+ "identifier" : "abuja",
+ "population" : "590,400"
+ },
+ {
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "斯圖加特",
+ "identifier" : "stuttgart",
+ "population" : "589,793"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "多特蒙德",
+ "identifier" : "dortmund",
+ "population" : "588,462"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "海參div",
+ "identifier" : "vladivostok",
+ "population" : "587,022"
+ },
+ {
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "伊爾庫茨克",
+ "identifier" : "irkutsk",
+ "population" : "586,695"
+ },
+ {
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "布蘭太爾",
+ "identifier" : "blantyre",
+ "population" : "584,877"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "熱那亞",
+ "identifier" : "genoa",
+ "population" : "580,223"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "奧斯陸",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "利伯維爾",
+ "identifier" : "libreville",
+ "population" : "578,156"
+ },
+ {
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼",
+ "identifier" : "kerman",
+ "population" : "577,514"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜塞爾多夫",
+ "identifier" : "duesseldorf",
+ "population" : "573,057"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "古晉",
+ "identifier" : "kuching",
+ "population" : "570,407"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "阿爾伯克基",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "赫爾辛基",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "亞丁",
+ "identifier" : "aden",
+ "population" : "550,602"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "奧倫堡",
+ "identifier" : "orenburg",
+ "population" : "550,204"
+ },
+ {
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "普里什蒂納",
+ "identifier" : "pristina",
+ "population" : "550,000"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "不來梅",
+ "identifier" : "bremen",
+ "population" : "546,501"
+ },
+ {
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "維爾紐斯",
+ "identifier" : "vilnius",
+ "population" : "542,366"
+ },
+ {
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "納什維爾",
+ "identifier" : "nashville",
+ "population" : "530,852"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "魁北克",
+ "identifier" : "quebec",
+ "population" : "528,595"
+ },
+ {
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "聖薩爾瓦多",
+ "identifier" : "san salvador",
+ "population" : "525,990"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "澳門",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "秋明州",
+ "identifier" : "tyumen",
+ "population" : "519,119"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "里斯本",
+ "identifier" : "lisbon",
+ "population" : "517,802"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢諾威",
+ "identifier" : "hannover",
+ "population" : "515,140"
+ },
+ {
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "薩爾塔",
+ "identifier" : "salta",
+ "population" : "512,686"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "萊斯特",
+ "identifier" : "leicester",
+ "population" : "508,916"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "萊比錫",
+ "identifier" : "leipzig",
+ "population" : "504,971"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜伊斯堡",
+ "identifier" : "duisburg",
+ "population" : "504,358"
+ },
+ {
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "阿斯特拉罕",
+ "identifier" : "astrakhan",
+ "population" : "502,533"
+ },
+ {
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "紐倫堡",
+ "identifier" : "nuernberg",
+ "population" : "499,237"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "德累斯頓",
+ "identifier" : "dresden",
+ "population" : "486,854"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "托木斯克",
+ "identifier" : "tomsk",
+ "population" : "485,519"
+ },
+ {
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "亞茲德",
+ "identifier" : "yazd",
+ "population" : "477,905"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "堪薩斯城",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "斯科普里",
+ "identifier" : "skopje",
+ "population" : "474,889"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "海牙",
+ "identifier" : "the hague",
+ "population" : "474,292"
+ },
+ {
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里昂",
+ "identifier" : "lyon",
+ "population" : "472,317"
+ },
+ {
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "愛丁堡",
+ "identifier" : "edinburgh",
+ "population" : "464,990"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "安特衛普",
+ "identifier" : "antwerpen",
+ "population" : "459,805"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "坤甸",
+ "identifier" : "pontianak",
+ "population" : "455,173"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "利茲",
+ "identifier" : "leeds",
+ "population" : "455,123"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "加的夫",
+ "identifier" : "cardiff",
+ "population" : "447,287"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "聖胡安",
+ "identifier" : "san juan",
+ "population" : "418,140"
+ },
+ {
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧馬哈",
+ "identifier" : "omaha",
+ "population" : "443,885"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "家樂福",
+ "identifier" : "carrefour",
+ "population" : "442,156"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "邁阿密",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "加里寧格勒",
+ "identifier" : "kaliningrad",
+ "population" : "434,954"
+ },
+ {
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "圖盧茲",
+ "identifier" : "toulouse",
+ "population" : "433,055"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "特拉維夫",
+ "identifier" : "tel aviv",
+ "population" : "432,892"
+ },
+ {
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "東耶路撒冷",
+ "identifier" : "east jerusalem",
+ "population" : "428,304"
+ },
+ {
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "布拉迪斯拉發",
+ "identifier" : "bratislava",
+ "population" : "423,737"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "奧克蘭市",
+ "identifier" : "auckland",
+ "population" : "417,910"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "塞瓦斯托波爾",
+ "identifier" : "sevastopol",
+ "population" : "416,263"
+ },
+ {
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "明尼阿波利斯",
+ "identifier" : "minneapolis",
+ "population" : "410,939"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "加沙",
+ "identifier" : "gaza",
+ "population" : "410,000"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "庫爾斯克",
+ "identifier" : "kursk",
+ "population" : "409,431"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "巴拿馬",
+ "identifier" : "panama",
+ "population" : "408,168"
+ },
+ {
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "塔爾薩",
+ "identifier" : "tulsa",
+ "population" : "403,505"
+ },
+ {
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "特維爾",
+ "identifier" : "tver",
+ "population" : "400,212"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "曼徹斯特",
+ "identifier" : "manchester",
+ "population" : "395,515"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "塔林",
+ "identifier" : "tallinn",
+ "population" : "394,024"
+ },
+ {
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "坎大哈",
+ "identifier" : "kandahar",
+ "population" : "391,190"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "威奇托",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "新奧爾良",
+ "identifier" : "new orleans",
+ "population" : "389,617"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "惠靈頓",
+ "identifier" : "wellington",
+ "population" : "381,900"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "大加那利島拉斯帕爾馬斯",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "馬薩特蘭",
+ "identifier" : "mazatlan",
+ "population" : "381,583"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "地拉那",
+ "identifier" : "tirana",
+ "population" : "374,801"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "考納斯",
+ "identifier" : "kaunas",
+ "population" : "374,643"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "火奴魯魯",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "堪培拉",
+ "identifier" : "canberra",
+ "population" : "367,752"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "博洛尼亞",
+ "identifier" : "bologna",
+ "population" : "366,133"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "基督城",
+ "identifier" : "christchurch",
+ "population" : "363,926"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "哈利法克斯",
+ "identifier" : "halifax",
+ "population" : "359,111"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "安汶",
+ "identifier" : "ambon",
+ "population" : "355,596"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "佛羅倫斯",
+ "identifier" : "florence",
+ "population" : "349,296"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "多哈",
+ "identifier" : "doha",
+ "population" : "344,939"
+ },
+ {
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "蘇黎世",
+ "identifier" : "zurich",
+ "population" : "341,730"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "好啊",
+ "identifier" : "nice",
+ "population" : "338,620"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "辛菲羅波爾",
+ "identifier" : "simferopol",
+ "population" : "336,460"
+ },
+ {
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "特皮克",
+ "identifier" : "tepic",
+ "population" : "332,863"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "索契",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "斯摩棱斯克",
+ "identifier" : "smolensk",
+ "population" : "320,991"
+ },
+ {
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "撒馬爾罕",
+ "identifier" : "samarkand",
+ "population" : "319,366"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "摩爾曼斯克",
+ "identifier" : "murmansk",
+ "population" : "319,263"
+ },
+ {
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "弗拉季卡夫卡茲",
+ "identifier" : "vladikavkaz",
+ "population" : "317,370"
+ },
+ {
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "赤太",
+ "identifier" : "chita",
+ "population" : "308,500"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "新城堡",
+ "identifier" : "newcastle",
+ "population" : "308,308"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "韋略港",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "聖薩爾瓦多·德胡胡伊",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "匹茲堡",
+ "identifier" : "pittsburgh",
+ "population" : "304,391"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "布雷斯特",
+ "identifier" : "brest",
+ "population" : "144,899"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "錨地",
+ "identifier" : "anchorage",
+ "population" : "298,695"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "辛辛那提",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "臥龍崗市",
+ "identifier" : "wollongong",
+ "population" : "292,190"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "卡塔尼亞",
+ "identifier" : "catania",
+ "population" : "290,927"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "烏特勒支",
+ "identifier" : "utrecht",
+ "population" : "290,529"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "維多利亞州",
+ "identifier" : "victoria",
+ "population" : "289,625"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "莫爾茲比港",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "洛根市",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴里",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "南特",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "史特拉斯堡",
+ "identifier" : "strasbourg",
+ "population" : "274,845"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "貝爾法斯特",
+ "identifier" : "belfast",
+ "population" : "274,770"
+ },
+ {
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "盧布爾雅那",
+ "identifier" : "ljubljana",
+ "population" : "272,220"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "奧蘭多",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "彼得羅扎沃茨克",
+ "identifier" : "petrozavodsk",
+ "population" : "265,025"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "普利茅斯",
+ "identifier" : "plymouth",
+ "population" : "260,203"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "里約布蘭科",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "洛斯·莫奇斯",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "波爾圖",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "麥迪遜",
+ "identifier" : "madison",
+ "population" : "248,951"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "蒙彼利埃",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "奧胡斯",
+ "identifier" : "arhus",
+ "population" : "237,551"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "雅庫茨克",
+ "identifier" : "yakutsk",
+ "population" : "235,600"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "喬治敦",
+ "identifier" : "georgetown",
+ "population" : "235,017"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "波爾多",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "根特",
+ "identifier" : "gent",
+ "population" : "231,493"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "巴吞魯日",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里爾",
+ "identifier" : "lille",
+ "population" : "228,328"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "拿騷",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "吉朗",
+ "identifier" : "geelong",
+ "population" : "226,034"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "帕拉馬里博",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "聖克魯斯-德特內里費",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "格拉茨",
+ "identifier" : "graz",
+ "population" : "222,326"
+ },
+ {
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "墨西拿",
+ "identifier" : "messina",
+ "population" : "219,948"
+ },
+ {
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "維羅納",
+ "identifier" : "verona",
+ "population" : "219,103"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "霍巴特",
+ "identifier" : "hobart",
+ "population" : "216,656"
+ },
+ {
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "諾維薩德",
+ "identifier" : "novi sad",
+ "population" : "215,400"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "卑爾根",
+ "identifier" : "bergen",
+ "population" : "213,585"
+ },
+ {
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "得梅因",
+ "identifier" : "des moines",
+ "population" : "210,330"
+ },
+ {
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "科斯塔奈",
+ "identifier" : "kostanay",
+ "population" : "210,000"
+ },
+ {
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "林茲",
+ "identifier" : "linz",
+ "population" : "204,846"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕多瓦",
+ "identifier" : "padova",
+ "population" : "203,725"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "普斯科夫",
+ "identifier" : "pskov",
+ "population" : "201,990"
+ },
+ {
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "清邁",
+ "identifier" : "chiang mai",
+ "population" : "200,952"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "尼科西亞",
+ "identifier" : "nicosia",
+ "population" : "200,452"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "口服",
+ "identifier" : "oral",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "奧什",
+ "identifier" : "osh",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "薩斯卡通",
+ "identifier" : "saskatoon",
+ "population" : "198,958"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "小石頭",
+ "identifier" : "little rock",
+ "population" : "197,992"
+ },
+ {
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "萬象",
+ "identifier" : "vientiane",
+ "population" : "196,731"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "香港仔",
+ "identifier" : "aberdeen",
+ "population" : "196,670"
+ },
+ {
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "帕爾馬斯",
+ "identifier" : "palmas",
+ "population" : "196,272"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "湯斯維爾",
+ "identifier" : "townsville",
+ "population" : "196,219"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "鹽湖城",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "軟木",
+ "identifier" : "cork",
+ "population" : "190,384"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "塔拉哈西",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "聖塔倫",
+ "identifier" : "santarem",
+ "population" : "189,047"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "卡塔馬卡聖費爾南多·德爾瓦萊",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "的里雅斯特",
+ "identifier" : "trieste",
+ "population" : "187,056"
+ },
+ {
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "聖路易斯",
+ "identifier" : "san luis",
+ "population" : "183,982"
+ },
+ {
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "日內瓦",
+ "identifier" : "geneva",
+ "population" : "183,981"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "阿特勞",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "庫塔伊西",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "南薩哈林斯克",
+ "identifier" : "yuzhno-sakhalinsk",
+ "population" : "176,484"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "分裂",
+ "identifier" : "split",
+ "population" : "176,314"
+ },
+ {
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "里賈納",
+ "identifier" : "regina",
+ "population" : "176,183"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "圖爾庫",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "牛津",
+ "identifier" : "oxford",
+ "population" : "171,380"
+ },
+ {
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "傑克遜",
+ "identifier" : "jackson",
+ "population" : "170,674"
+ },
+ {
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "斯普林菲爾德",
+ "identifier" : "springfield",
+ "population" : "166,810"
+ },
+ {
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "巴塞爾",
+ "identifier" : "basel",
+ "population" : "164,488"
+ },
+ {
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "拉里奧哈",
+ "identifier" : "la rioja",
+ "population" : "162,620"
+ },
+ {
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "希伯倫",
+ "identifier" : "hebron",
+ "population" : "160,470"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "摩德納",
+ "identifier" : "modena",
+ "population" : "158,886"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "劍橋",
+ "identifier" : "cambridge",
+ "population" : "158,434"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "弗里斯科",
+ "identifier" : "frisco",
+ "population" : "154,407"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "帕薩迪納",
+ "identifier" : "pasadena",
+ "population" : "153,784"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "約克",
+ "identifier" : "york",
+ "population" : "153,717"
+ },
+ {
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "薩爾茨堡",
+ "identifier" : "salzburg",
+ "population" : "153,377"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "凱恩斯",
+ "identifier" : "cairns",
+ "population" : "153,075"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "漢密爾頓",
+ "identifier" : "hamilton",
+ "population" : "152,641"
+ },
+ {
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "拉古納",
+ "identifier" : "la laguna",
+ "population" : "150,661"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "帝力",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "第戎",
+ "identifier" : "dijon",
+ "population" : "149,782"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "烏普薩拉",
+ "identifier" : "uppsala",
+ "population" : "149,245"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "特隆赫姆",
+ "identifier" : "trondheim",
+ "population" : "147,139"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "麥納麥",
+ "identifier" : "manama",
+ "population" : "147,074"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕爾馬",
+ "identifier" : "parma",
+ "population" : "146,299"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "博伊西",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "歐登塞",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "亞眠",
+ "identifier" : "amiens",
+ "population" : "143,086"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "旅遊團",
+ "identifier" : "tours",
+ "population" : "141,621"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "波德戈里察",
+ "identifier" : "podgorica",
+ "population" : "136,473"
+ },
+ {
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "因斯布魯克",
+ "identifier" : "innsbruck",
+ "population" : "132,493"
+ },
+ {
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "圖文巴",
+ "identifier" : "toowoomba",
+ "population" : "131,258"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "達爾文",
+ "identifier" : "darwin",
+ "population" : "129,062"
+ },
+ {
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "伯爾尼",
+ "identifier" : "bern",
+ "population" : "121631"
+ }
+]
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..a4cdeb723
--- /dev/null
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json
@@ -0,0 +1,229 @@
+{
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "100的10%",
+ "100 的 10%"
+ ],
+ "identifier": "reversedPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "100減少10%",
+ "100 減少 10%"
+ ],
+ "identifier": "reversedPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "100加上10%",
+ "100 加上 10%"
+ ],
+ "identifier": "reversedPercentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼的20%",
+ "30 是甚麼的 20%"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "甚麼的20%等於30",
+ "甚麼的 20% 等於 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼減少20%"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "減少20%之後是30",
+ "減少 20% 之後是 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼加上20%",
+ "30 是甚麼加上 20%"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20%加上甚麼是30",
+ "20% 加上甚麼是 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20的多少%",
+ "10 是 20 的多少%",
+ "10佔20的幾%",
+ "10 佔 20 的幾%"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20裡減少多少%",
+ "10 是 20 裡減少多少%"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20是10加上多少的%",
+ "20 是 10 加上多少的%",
+ "20為10增加%",
+ "20 為 10 增加%"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "20除以3的餘數",
+ "20 除以 3 的餘數"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "20的一半",
+ "20 的一半"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最小",
+ "2 和 30 哪個最小",
+ "2和30比較小的",
+ "2 和 30 比較小的"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最大",
+ "2和30比較大的",
+ "2 和 30 哪個最大",
+ "2 和 30 比較大的"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2 和 32 的中間數",
+ "2和32的中間數"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是幾分之8",
+ "相比 6 比 600 是幾分之 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是8分之幾",
+ "相比 6 比 600 是 8 分之幾"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "1到5之間的隨機數",
+ "1 到 5 之間的隨機數",
+ "1 到 5 中的隨機數",
+ "1到5中的隨機數"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit_expression 中的 __unit"
+ ],
+ "identifier": "unitInUnitExpression"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__datestamp 和 __datestamp 之間的 __unit",
+ "由 __datestamp 至 __datestamp 的 __unit",
+ "__datestamp 至 __datestamp 中的 __unit"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit 至 __datestamp",
+ "__unit 之前 __datestamp",
+ "__unit 直到 __datestamp",
+ "__unit 直到 __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp 至 __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp 至 __timestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitSinceDate",
+ "prototypeExpressions": [
+ "__unit 自從 __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan 由 __datestamp",
+ "__timespan 之後 __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "新時間標記"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone 的時間",
+ "時間於 __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "在 __timezone 與 __timezone 中的時差",
+ "__timezone 和 __timezone 之間的時差",
+ "在 __timezone 和 __timezone 中的時差",
+ "__timezone 和 __timezone 的時差"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.strings b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.strings
new file mode 100644
index 000000000..57a077d31
Binary files /dev/null and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..0abc9d8a4
Binary files /dev/null and b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..4d6ae1492
--- /dev/null
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json
@@ -0,0 +1,132 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "位數"
+ ],
+ "multiplierTypes": [
+ "倍數"
+ ],
+ "divisionOperators": [
+ "÷",
+ "每"
+ ],
+ "roundingConverters": [
+ "數值簡化"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "tomorrowDateAliases": [
+ "明天"
+ ],
+ "laptimeTypes": [
+ "圈速"
+ ],
+ "roundingDownConverters": [
+ "下舍入"
+ ],
+ "numberTypes": [
+ "數目"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "dateTypes": [
+ "日期"
+ ],
+ "roundingUpConverters": [
+ "上舍入"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "todayDateAliases": [
+ "今天"
+ ],
+ "timestampTypes": [
+ "時間標記"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "additionOperators": [
+ "加"
+ ],
+ "timespanTypes": [
+ "時距"
+ ],
+ "yesterdayDateAliases": [
+ "昨天"
+ ],
+ "converterSymbols": [
+ "到",
+ "當成"
+ ],
+ "nowDateAliases": [
+ "現在"
+ ],
+ "monthOfYearDateAliases": [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月",
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+ ],
+ "fractionTypes": [
+ "分數"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "週一",
+ "週二",
+ "週二",
+ "週三",
+ "週四",
+ "週五",
+ "週六",
+ "週日"
+ ],
+ "percentTypes": [
+ "百分率"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..026b38932
--- /dev/null
+++ b/SoulverCore.xcframework/ios-arm64/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json
@@ -0,0 +1,1588 @@
+{
+ "energy" : [
+ {
+ "symbol" : "J",
+ "aliases" : [
+ "焦耳",
+ "焦耳"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "kJ",
+ "aliases" : [
+ "千焦耳",
+ "千焦耳"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "mJ",
+ "aliases" : [
+ "百萬焦耳",
+ "百萬焦耳"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "gJ",
+ "aliases" : [
+ "吉焦耳",
+ "吉焦耳"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "cal",
+ "aliases" : [
+ "卡路里",
+ "卡路里"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "kCal",
+ "aliases" : [
+ "千卡路里",
+ "千卡路里"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "Wh",
+ "aliases" : [
+ "瓦時",
+ "watt hours"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "W m",
+ "aliases" : [
+ "瓦分",
+ "瓦分"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "W s",
+ "aliases" : [
+ "瓦秒",
+ "瓦秒"
+ ],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "kWh",
+ "aliases" : [
+ "千瓦時",
+ "千瓦時"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "MWh",
+ "aliases" : [
+ "百萬瓦時",
+ "百萬瓦時"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "GWh",
+ "aliases" : [
+ "吉瓦時",
+ "吉瓦時"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "TWh",
+ "aliases" : [
+ "兆瓦時",
+ "兆瓦時"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "ML",
+ "aliases" : [
+ "百萬升",
+ "百萬升",
+ "公升",
+ "公升",
+ "ML"
+ ],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "kL",
+ "aliases" : [
+ "千升",
+ "千升",
+ "千升",
+ "千升",
+ "kL"
+ ],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "L",
+ "aliases" : [
+ "升",
+ "升",
+ "升",
+ "升",
+ "L"
+ ],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "mL",
+ "aliases" : [
+ "毫升",
+ "毫升",
+ "毫升",
+ "毫升",
+ "mL"
+ ],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "km³",
+ "aliases" : [
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "公里^3",
+ "公里^3",
+ "公里³",
+ "公里³",
+ "公里³",
+ "公里³",
+ "km3",
+ "km^3"
+ ],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "m³",
+ "aliases" : [
+ "立方公尺",
+ "立方公尺",
+ "立方米",
+ "立方米",
+ "m3",
+ "m^3",
+ "米³",
+ "米³",
+ "米³",
+ "米³"
+ ],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "cm³",
+ "aliases" : [
+ "立方公分",
+ "立方公分",
+ "立方厘米",
+ "立方厘米",
+ "cm3",
+ "cm^3",
+ "厘米³"
+ ],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "mm³",
+ "aliases" : [
+ "立方公釐",
+ "立方公釐",
+ "立方毫米",
+ "立方毫米",
+ "mm3",
+ "mm^3"
+ ],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "in³",
+ "aliases" : [
+ "立方吋",
+ "立方吋",
+ "吋³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "ft³",
+ "aliases" : [
+ "立方尺",
+ "立方尺",
+ "cuft",
+ "尺³",
+ "ft3",
+ "ft^3"
+ ],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "yd³",
+ "aliases" : [
+ "立方碼",
+ "立方碼",
+ "yd³",
+ "碼³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "mi³",
+ "aliases" : [
+ "立方英里",
+ "立方英里",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "英里³",
+ "英里^3",
+ "英里^3"
+ ],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "bsh",
+ "aliases" : [
+ "蒲式耳",
+ "蒲式耳"
+ ],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "metric cup",
+ "aliases" : [
+ "公制杯",
+ "公制杯"
+ ],
+ "identifier" : "metricCups"
+ },
+ {
+ "symbol" : "cup",
+ "aliases" : [
+ "美制杯",
+ "美制杯"
+ ],
+ "identifier" : "cups"
+ },
+ {
+ "symbol" : "af",
+ "aliases" : [
+ "英畝英尺",
+ "英畝英尺"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "品脫",
+ "品脫"
+ ],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "qt",
+ "aliases" : [
+ "夸脫",
+ "夸脫"
+ ],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "gal",
+ "aliases" : [
+ "加侖",
+ "加侖",
+ "gal"
+ ],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "tbsp",
+ "aliases" : [
+ "湯匙",
+ "湯匙",
+ "tbsp"
+ ],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "tsp",
+ "aliases" : [
+ "茶匙",
+ "茶匙",
+ "tsp"
+ ],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "fl oz",
+ "aliases" : [
+ "液盎司",
+ "液盎司",
+ "floz"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "B",
+ "aliases" : [
+ "位元組",
+ "位元組"
+ ],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "bit",
+ "aliases" : [
+ "位元",
+ "位元"
+ ],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "YB",
+ "aliases" : [
+ "佑位元組",
+ "佑位元組"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "ZB",
+ "aliases" : [
+ "皆位元組",
+ "皆位元組"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "EB",
+ "aliases" : [
+ "艾位元組",
+ "艾位元組"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "拍位元組",
+ "拍位元組"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "兆位元組",
+ "兆位元組",
+ "TB",
+ "tb"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "吉位元組",
+ "吉位元組",
+ "GB",
+ "gb"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "百萬位元組",
+ "百萬位元組",
+ "MB",
+ "mb"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "千位元組",
+ "千位元組",
+ "KB",
+ "kb"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "佑位元",
+ "佑位元",
+ "Ybit"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "皆位元",
+ "皆位元",
+ "Zbit"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "艾位元",
+ "艾位元",
+ "Ebit"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "拍位元",
+ "拍位元",
+ "Pbit"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "兆位元",
+ "兆位元",
+ "Tbit"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "吉位元",
+ "吉位元",
+ "Gbit"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "百萬位元",
+ "百萬位元",
+ "Mbit"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "千位元",
+ "千位元",
+ "Kbit",
+ "Kb"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [
+ "二進位佑位元組",
+ "二進位佑位元組",
+ "YiB"
+ ],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [
+ "二進位皆位元組",
+ "二進位皆位元組",
+ "ZiB"
+ ],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [
+ "二進位艾位元組",
+ "二進位艾位元組",
+ "EiB"
+ ],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [
+ "二進位拍位元組",
+ "二進位拍位元組",
+ "PiB"
+ ],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [
+ "二進位兆位元組",
+ "二進位兆位元組",
+ "TiB"
+ ],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [
+ "二進位吉位元組",
+ "二進位吉位元組",
+ "GiB"
+ ],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [
+ "二進位百萬位元組",
+ "二進位百萬位元組",
+ "MiB"
+ ],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [
+ "二進位千位元組",
+ "二進位千位元組",
+ "KiB"
+ ],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [
+ "二進位佑位元",
+ "二進位佑位元",
+ "Yibit"
+ ],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [
+ "二進位皆位元",
+ "二進位皆位元",
+ "Zibit"
+ ],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "二進位艾位元",
+ "二進位艾位元",
+ "Eibit"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [
+ "二進位拍位元",
+ "二進位拍位元",
+ "Pibit"
+ ],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [
+ "二進位兆位元",
+ "二進位兆位元",
+ "Tibit"
+ ],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [
+ "二進位吉位元",
+ "二進位吉位元",
+ "Gibit"
+ ],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [
+ "二進位百萬位元",
+ "二進位百萬位元",
+ "Mibit"
+ ],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [
+ "二進位千位元",
+ "二進位千位元",
+ "Kibit"
+ ],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "克耳文"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "攝氏溫度",
+ "攝氏溫度",
+ "ºC",
+ "C",
+ "degC",
+ "攝氏"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "華氏溫標",
+ "華氏溫標",
+ "ºF",
+ "F",
+ "degF",
+ "華氏"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "gBps"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "mBps"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "kBps"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "Pbps"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "tbps"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "gbps"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "mbps"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "kbps"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "m/s",
+ "aliases" : [
+ "公尺每秒",
+ "公尺每秒",
+ "米每秒",
+ "米每秒"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "km/h",
+ "aliases" : [
+ "公里每小時",
+ "公里每小時",
+ "公里每小時",
+ "公里每小時"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "mph",
+ "aliases" : [
+ "英里每小時",
+ "英里每小時"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "kn",
+ "aliases" : [
+ "節",
+ "節"
+ ],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "度",
+ "度"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "弧度",
+ "弧度"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "公尺",
+ "公尺",
+ "米",
+ "米"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "公里",
+ "公里",
+ "公里",
+ "公里"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "公分",
+ "公分",
+ "厘米",
+ "厘米"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "公釐",
+ "公釐",
+ "毫米",
+ "毫米"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "微米",
+ "微米",
+ "微米",
+ "微米"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "奈米",
+ "奈米",
+ "奈米",
+ "奈米"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "吋",
+ "吋"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "尺",
+ "尺"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "碼",
+ "碼"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "哩",
+ "哩"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "光年",
+ "光年"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "秒差距",
+ "秒差距"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "海里",
+ "海里"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "噚",
+ "噚"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "化朗",
+ "化朗"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "像素",
+ "像素"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pts"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "公里²",
+ "公里²",
+ "公里²",
+ "公里²",
+ "km^2",
+ "km2"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "平方公尺",
+ "平方公尺",
+ "平方米",
+ "平方米",
+ "m^2",
+ "米^2",
+ "米^2",
+ "公尺^2",
+ "公尺^2",
+ "公尺²",
+ "公尺²",
+ "米²",
+ "米²",
+ "m2"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "平方公分",
+ "平方公分",
+ "平方厘米",
+ "平方厘米",
+ "厘米^2",
+ "厘米²",
+ "公分^2",
+ "公分²",
+ "cm^2",
+ "cm2"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "平方公釐",
+ "平方公釐",
+ "平方毫米",
+ "平方毫米",
+ "公釐^2",
+ "公釐²",
+ "毫米^2",
+ "毫米²",
+ "mm^2",
+ "mm2"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "微米^2",
+ "微米²",
+ "微米^2",
+ "微米²",
+ "µm^2",
+ "µm2"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "平方吋",
+ "平方吋",
+ "sqin",
+ "吋^2",
+ "in2",
+ "吋²"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "平方尺",
+ "平方尺",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "尺^2",
+ "尺²"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "平方碼",
+ "平方碼",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "碼^2",
+ "碼²",
+ "sqyd"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "平方哩",
+ "平方哩",
+ "mi^2",
+ "mi2",
+ "哩^2",
+ "哩^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "哩²"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "英畝",
+ "英畝",
+ "ac"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "公頃",
+ "公頃",
+ "ha"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "公畝",
+ "aliases" : [],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L/100km",
+ "aliases" : [
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "每加侖英里"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "瓦特",
+ "瓦特"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "毫瓦",
+ "毫瓦"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "千瓦",
+ "千瓦"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "百萬瓦",
+ "百萬瓦"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "吉瓦",
+ "吉瓦"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "兆瓦",
+ "兆瓦"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "馬力"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "公斤",
+ "公斤"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "克",
+ "克"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "微克",
+ "微克"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "奈克",
+ "奈克"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "盎司",
+ "盎司"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "lbs",
+ "磅",
+ "磅"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "石",
+ "石"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "公頓",
+ "公頓"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "短噸",
+ "短噸",
+ "噸",
+ "美噸",
+ "美噸"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "克拉",
+ "克拉"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "金衡盎司",
+ "金衡盎司"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "小時",
+ "小時",
+ "hrs",
+ "h"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "秒",
+ "秒",
+ "sec",
+ "secs"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "分",
+ "分",
+ "mins"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "日"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "平日",
+ "平日",
+ "工作日",
+ "平日",
+ "平日",
+ "工作日"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "週"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "月"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "年"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "毫秒",
+ "毫秒"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "微秒",
+ "微秒"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "奈秒",
+ "奈秒"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "美元"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "赫茲",
+ "hz"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "千赫茲"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "百萬赫茲"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "吉赫茲"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "兆赫茲"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "毫赫茲"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "微赫茲"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "奈赫茲"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Cities.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Cities.json
index 30232aa1c..e00ce82fe 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Cities.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/Cities.json
@@ -137,6 +137,7 @@
"name": "New York",
"population": "8,175,133",
"elevation": 57,
+ "aliases" : ["NYC"],
"timezone_id": "America/New_York"
},
{
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
index 689b646c6..9b692f625 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/DefaultCurrencyRates.json
@@ -1,30 +1,30 @@
{
"HRK" : {
- "value" : 0.14265835247815795,
+ "value" : 0.14412143787652626,
"code" : "HRK"
},
"HUF" : {
- "value" : 0.0030631976547525739,
+ "value" : 0.0030946301890310292,
"code" : "HUF"
},
"CDF" : {
- "value" : 0.00058207205430146468,
+ "value" : 0.00055248607734808837,
"code" : "CDF"
},
"XMR" : {
- "value" : 53.095668070000002,
+ "value" : 64.327903320000004,
"code" : "XMR"
},
"ILS" : {
- "value" : 0.27922094606726111,
+ "value" : 0.28516806665176186,
"code" : "ILS"
},
"NGN" : {
- "value" : 0.0027247930862974888,
+ "value" : 0.0025641003024346053,
"code" : "NGN"
},
"GYD" : {
- "value" : 0.0048181377059410575,
+ "value" : 0.0047768526712590057,
"code" : "GYD"
},
"BYR" : {
@@ -32,127 +32,127 @@
"code" : "BYR"
},
"BHD" : {
- "value" : 2.6507620941020544,
+ "value" : 2.6442574660609552,
"code" : "BHD"
},
"SZL" : {
- "value" : 0.05555451545157182,
+ "value" : 0.053994601619730062,
"code" : "SZL"
},
"INR" : {
- "value" : 0.013104217539422919,
+ "value" : 0.013244324409660727,
"code" : "INR"
},
"SDG" : {
- "value" : 0.018074998882061322,
+ "value" : 0.018074998882061318,
"code" : "SDG"
},
"PEN" : {
- "value" : 0.29664444700877085,
+ "value" : 0.29420080205022653,
"code" : "PEN"
},
"EUR" : {
- "value" : 1.0866999999438067,
+ "value" : 1.0970493759983149,
"code" : "EUR"
},
"TRX" : {
- "value" : 0.01238234,
+ "value" : 0.016673670000000002,
"code" : "TRX"
},
"PGK" : {
- "value" : 0.29282242457553193,
+ "value" : 0.29151331851473961,
"code" : "PGK"
},
"QAR" : {
- "value" : 0.2746309646412633,
+ "value" : 0.27464695507160319,
"code" : "QAR"
},
"LRD" : {
- "value" : 0.0050504961738754095,
+ "value" : 0.005037687570425298,
"code" : "LRD"
},
"ISK" : {
- "value" : 0.006970493906347873,
+ "value" : 0.0068380563492221637,
"code" : "ISK"
},
"SYP" : {
- "value" : 0.0019437969915838415,
+ "value" : 0.0019438172890745005,
"code" : "SYP"
},
"TRY" : {
- "value" : 0.14838938729879855,
+ "value" : 0.14106155023258229,
"code" : "TRY"
},
"UAH" : {
- "value" : 0.036837961961857235,
+ "value" : 0.037260221624543427,
"code" : "UAH"
},
"SGD" : {
- "value" : 0.70204793590411074,
+ "value" : 0.70786236890388932,
"code" : "SGD"
},
"MMK" : {
- "value" : 0.00070590615244253447,
+ "value" : 0.00071677635648162202,
"code" : "MMK"
},
"NIO" : {
- "value" : 0.029222354855997057,
+ "value" : 0.029066619966297252,
"code" : "NIO"
},
"BIF" : {
- "value" : 0.00052631578947368431,
+ "value" : 0.00052465897166841555,
"code" : "BIF"
},
"AFN" : {
- "value" : 0.013088321524984212,
+ "value" : 0.01312267227578671,
"code" : "AFN"
},
"LKR" : {
- "value" : 0.0052662636044045977,
+ "value" : 0.0053614105399326433,
"code" : "LKR"
},
- "GTQ" : {
- "value" : 0.13029628332457743,
- "code" : "GTQ"
- },
"LTC" : {
- "value" : 42.46899655,
+ "value" : 48.425781479999998,
"code" : "LTC"
},
+ "GTQ" : {
+ "value" : 0.12977569698309138,
+ "code" : "GTQ"
+ },
"XRP" : {
- "value" : 0.18916911,
+ "value" : 0.22132149000000001,
"code" : "XRP"
},
"CHF" : {
- "value" : 1.0292669066198938,
+ "value" : 1.0298852089946053,
"code" : "CHF"
},
"THB" : {
- "value" : 0.030469648114414022,
+ "value" : 0.031230120076688683,
"code" : "THB"
},
"AMD" : {
- "value" : 0.0020359118439829123,
+ "value" : 0.0020656445178683755,
"code" : "AMD"
},
"AOA" : {
- "value" : 0.0017872812174986826,
+ "value" : 0.0018119058999499155,
"code" : "AOA"
},
"SEK" : {
- "value" : 0.099282810287759649,
+ "value" : 0.10233420221893298,
"code" : "SEK"
},
"DASH" : {
- "value" : 73.615964419999997,
+ "value" : 81.757761169999995,
"code" : "DASH"
},
"SAR" : {
- "value" : 0.26566457987139175,
+ "value" : 0.26622211123718209,
"code" : "SAR"
},
"KWD" : {
- "value" : 3.2150309125222236,
+ "value" : 3.2325844512687891,
"code" : "KWD"
},
"IRR" : {
@@ -160,11 +160,11 @@
"code" : "IRR"
},
"WST" : {
- "value" : 0.35569732860635295,
+ "value" : 0.35910253095463818,
"code" : "WST"
},
"BNB" : {
- "value" : 13.90897161,
+ "value" : 17.318957480000002,
"code" : "BNB"
},
"BMD" : {
@@ -172,39 +172,35 @@
"code" : "BMD"
},
"BGN" : {
- "value" : 0.55562940997107035,
+ "value" : 0.55386626345202683,
"code" : "BGN"
},
"PHP" : {
- "value" : 0.019780119769212831,
+ "value" : 0.019803925688620619,
"code" : "PHP"
},
"ZMW" : {
- "value" : 0.053777856795375369,
+ "value" : 0.053831642077718359,
"code" : "ZMW"
},
"XAF" : {
- "value" : 0.001665269217146816,
+ "value" : 0.0016528979714677413,
"code" : "XAF"
},
"BDT" : {
- "value" : 0.011841271544157466,
+ "value" : 0.011765465793025925,
"code" : "BDT"
},
"NOK" : {
- "value" : 0.096903061269759935,
+ "value" : 0.097875715263492688,
"code" : "NOK"
},
"BOB" : {
- "value" : 0.14587998453672166,
+ "value" : 0.14501839340792788,
"code" : "BOB"
},
- "TZS" : {
- "value" : 0.00043224483630430953,
- "code" : "TZS"
- },
"XAG" : {
- "value" : 15.388403299273667,
+ "value" : 15.446400988569662,
"code" : "XAG"
},
"VEF" : {
@@ -212,61 +208,65 @@
"code" : "VEF"
},
"VUV" : {
- "value" : 0.0081920105025506812,
+ "value" : 0.0083438816685386993,
"code" : "VUV"
},
- "BND" : {
- "value" : 0.70653602344569133,
- "code" : "BND"
+ "ANG" : {
+ "value" : 0.55704130851231537,
+ "code" : "ANG"
},
"XCD" : {
"value" : 0.37002090618119926,
"code" : "XCD"
},
"SCR" : {
- "value" : 0.059345870821130818,
+ "value" : 0.058247726649476597,
"code" : "SCR"
},
- "ANG" : {
- "value" : 0.56193476386939289,
- "code" : "ANG"
+ "BND" : {
+ "value" : 0.70758338339485771,
+ "code" : "BND"
+ },
+ "TZS" : {
+ "value" : 0.00043211409094515575,
+ "code" : "TZS"
},
"KYD" : {
- "value" : 1.2070326550614499,
+ "value" : 1.1996794456521218,
"code" : "KYD"
},
"DJF" : {
- "value" : 0.0056268162448480739,
+ "value" : 0.005626816244848073,
"code" : "DJF"
},
"CLF" : {
- "value" : 32.827785437594379,
+ "value" : 33.413525795241917,
"code" : "CLF"
},
"LSL" : {
- "value" : 0.055554481502246511,
+ "value" : 0.054376249498243164,
"code" : "LSL"
},
"MOP" : {
- "value" : 0.12594980320972998,
+ "value" : 0.12523737178354424,
"code" : "MOP"
},
"ALL" : {
- "value" : 0.0086392787764203293,
+ "value" : 0.008702918050999953,
"code" : "ALL"
},
"UZS" : {
- "value" : 0.00010416666303168415,
+ "value" : 9.8921749615314453e-05,
"code" : "UZS"
},
- "PLN" : {
- "value" : 0.23838459175899515,
- "code" : "PLN"
- },
"UYU" : {
- "value" : 0.023362455958558171,
+ "value" : 0.023180574659890551,
"code" : "UYU"
},
+ "PLN" : {
+ "value" : 0.23782626791129083,
+ "code" : "PLN"
+ },
"LTL" : {
"value" : 0.33866849096093798,
"code" : "LTL"
@@ -276,15 +276,15 @@
"code" : "LYD"
},
"JPY" : {
- "value" : 0.0091836389757456553,
+ "value" : 0.0093741762442625352,
"code" : "JPY"
},
"MNT" : {
- "value" : 0.00035900541415777884,
+ "value" : 0.00035789404376333664,
"code" : "MNT"
},
"FJD" : {
- "value" : 0.43907716517731693,
+ "value" : 0.44384476085644287,
"code" : "FJD"
},
"ZWL" : {
@@ -292,23 +292,23 @@
"code" : "ZWL"
},
"KPW" : {
- "value" : 0.0011111111111111111,
+ "value" : 0.0011111110901234572,
"code" : "KPW"
},
"PKR" : {
- "value" : 0.0060058723978897201,
+ "value" : 0.0062636871350912893,
"code" : "PKR"
},
"MRO" : {
- "value" : 0.0028011180393746832,
+ "value" : 0.0028011202127910186,
"code" : "MRO"
},
"GBP" : {
- "value" : 1.2410209558724148,
+ "value" : 1.2405993583620119,
"code" : "GBP"
},
"OMR" : {
- "value" : 2.5957507560124076,
+ "value" : 2.6079223465042105,
"code" : "OMR"
},
"LVL" : {
@@ -316,67 +316,67 @@
"code" : "LVL"
},
"SHP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "SHP"
},
"GEL" : {
- "value" : 0.31695319235255337,
+ "value" : 0.31052130005331652,
"code" : "GEL"
},
"TND" : {
- "value" : 0.34512463140689364,
+ "value" : 0.34334716793521997,
"code" : "TND"
},
"DKK" : {
- "value" : 0.14555902326681097,
+ "value" : 0.14532974155721398,
"code" : "DKK"
},
"NPR" : {
- "value" : 0.0082432684810122593,
+ "value" : 0.008268864442634298,
"code" : "NPR"
},
"KRW" : {
- "value" : 0.00082170753654092386,
+ "value" : 0.0008198039771301187,
"code" : "KRW"
},
"BSD" : {
- "value" : 1.0058884711098772,
+ "value" : 0.99995400211590268,
"code" : "BSD"
},
"CRC" : {
- "value" : 0.0017570047651023428,
+ "value" : 0.001757663699349515,
"code" : "CRC"
},
"EGP" : {
- "value" : 0.063386853389123893,
+ "value" : 0.0642526682205532,
"code" : "EGP"
},
"MAD" : {
- "value" : 0.097823390433498469,
+ "value" : 0.10178076646820435,
"code" : "MAD"
},
"AUD" : {
- "value" : 0.6229649163162958,
+ "value" : 0.6534230875286362,
"code" : "AUD"
},
"BTC" : {
- "value" : 6944.4444444444443,
+ "value" : 9735.1219465899994,
"code" : "BTC"
},
"SLL" : {
- "value" : 0.00010232805495666701,
+ "value" : 0.00010141987480919497,
"code" : "SLL"
},
"MWK" : {
- "value" : 0.0013605435790645778,
+ "value" : 0.00135592532907823,
"code" : "MWK"
},
"RSD" : {
- "value" : 0.0092932451731488654,
+ "value" : 0.0092204107659802758,
"code" : "RSD"
},
"NZD" : {
- "value" : 0.59945939984014385,
+ "value" : 0.61379969015391633,
"code" : "NZD"
},
"SRD" : {
@@ -384,31 +384,31 @@
"code" : "SRD"
},
"CLP" : {
- "value" : 0.0011897108155168308,
+ "value" : 0.0012109412240226831,
"code" : "CLP"
},
"RUB" : {
- "value" : 0.013467592018829803,
+ "value" : 0.013623293324899607,
"code" : "RUB"
},
- "HKD" : {
- "value" : 0.12897138584528597,
- "code" : "HKD"
- },
"NAD" : {
- "value" : 0.055554493847450925,
+ "value" : 0.053965442796981407,
"code" : "NAD"
},
+ "HKD" : {
+ "value" : 0.1287506678940897,
+ "code" : "HKD"
+ },
"GMD" : {
- "value" : 0.01960770626777586,
+ "value" : 0.019538733487572093,
"code" : "GMD"
},
"VND" : {
- "value" : 4.2314609118798262e-05,
+ "value" : 4.2734129612615116e-05,
"code" : "VND"
},
"LAK" : {
- "value" : 0.00011154489247862044,
+ "value" : 0.00011104941268670238,
"code" : "LAK"
},
"CUC" : {
@@ -416,31 +416,31 @@
"code" : "CUC"
},
"RON" : {
- "value" : 0.22484998965258446,
+ "value" : 0.22454733502731844,
"code" : "RON"
},
"MUR" : {
- "value" : 0.025406259426516191,
+ "value" : 0.025182333313917751,
"code" : "MUR"
},
"XAU" : {
- "value" : 1683.5016835016834,
+ "value" : 1703.5775127768316,
"code" : "XAU"
},
"GGP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "GGP"
},
"MXN" : {
- "value" : 0.041744615301807605,
+ "value" : 0.042242923507696914,
"code" : "MXN"
},
"BRL" : {
- "value" : 0.1942061619829083,
+ "value" : 0.17444688127354596,
"code" : "BRL"
},
"STD" : {
- "value" : 4.5345772756215923e-05,
+ "value" : 4.5348623160373496e-05,
"code" : "STD"
},
"AWG" : {
@@ -448,207 +448,207 @@
"code" : "AWG"
},
"MVR" : {
- "value" : 0.06489133491728756,
+ "value" : 0.064500561509638218,
"code" : "MVR"
},
"PAB" : {
- "value" : 1.0058196726258128,
+ "value" : 0.99986201904137229,
"code" : "PAB"
},
"TJS" : {
- "value" : 0.098278436964013977,
+ "value" : 0.097412120386184506,
"code" : "TJS"
},
"GNF" : {
- "value" : 0.00010593219940615134,
+ "value" : 0.00010582010184485331,
"code" : "GNF"
},
- "MGA" : {
- "value" : 0.00026666664199111336,
- "code" : "MGA"
- },
"XDR" : {
- "value" : 1.3702271562579644,
+ "value" : 1.3609015700721414,
"code" : "XDR"
},
+ "MGA" : {
+ "value" : 0.00026315787070637335,
+ "code" : "MGA"
+ },
"ETB" : {
- "value" : 0.030165555810018778,
+ "value" : 0.029670177993771397,
"code" : "ETB"
},
"ZAR" : {
- "value" : 0.055335746984228752,
+ "value" : 0.054493228235513627,
"code" : "ZAR"
},
"COP" : {
- "value" : 0.00026126714565643361,
+ "value" : 0.00025664057487488769,
"code" : "COP"
},
"IDR" : {
- "value" : 6.3021908333772976e-05,
+ "value" : 6.7689064865415524e-05,
"code" : "IDR"
},
"SVC" : {
- "value" : 0.11494949176806459,
+ "value" : 0.11426389314680591,
"code" : "SVC"
},
"CVE" : {
- "value" : 0.0098862689551164774,
+ "value" : 0.0098038869666734509,
"code" : "CVE"
},
"ETC" : {
- "value" : 5.2796897600000001,
+ "value" : 7.2231541899999998,
"code" : "ETC"
},
"TTD" : {
- "value" : 0.14887226283457553,
+ "value" : 0.14798210126888733,
"code" : "TTD"
},
- "GIP" : {
- "value" : 1.2450276707399821,
- "code" : "GIP"
- },
"DOGE" : {
- "value" : 0.00192362,
+ "value" : 0.0025989699999999999,
"code" : "DOGE"
},
"PYG" : {
- "value" : 0.00015526899341998326,
+ "value" : 0.00015310020011384212,
"code" : "PYG"
},
+ "GIP" : {
+ "value" : 1.24067939603727,
+ "code" : "GIP"
+ },
"MZN" : {
- "value" : 0.014918609215042903,
+ "value" : 0.014688520305931914,
"code" : "MZN"
},
"FKP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "FKP"
},
"KZT" : {
- "value" : 0.0023372595944447915,
+ "value" : 0.0023697191785614917,
"code" : "KZT"
},
+ "UGX" : {
+ "value" : 0.00026313554178804439,
+ "code" : "UGX"
+ },
"USD" : {
"value" : 1,
"code" : "USD"
},
- "UGX" : {
- "value" : 0.00026575637638229845,
- "code" : "UGX"
- },
"RWF" : {
- "value" : 0.0010695187165775397,
+ "value" : 0.0010666666666666667,
"code" : "RWF"
},
"GHS" : {
- "value" : 0.17122144240367509,
+ "value" : 0.1740631919011878,
"code" : "GHS"
},
"ARS" : {
- "value" : 0.015475326271333262,
+ "value" : 0.015043744274821046,
"code" : "ARS"
},
"JEP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "JEP"
},
"DOP" : {
- "value" : 0.018381039913215023,
+ "value" : 0.018168474923498455,
"code" : "DOP"
},
"LBP" : {
- "value" : 0.00066103993702922969,
+ "value" : 0.00066104206291359559,
"code" : "LBP"
},
"BZD" : {
- "value" : 0.50296750829896386,
+ "value" : 0.49606521074834409,
"code" : "BZD"
},
"ADA" : {
- "value" : 0.033353590000000002,
+ "value" : 0.052150099999999998,
"code" : "ADA"
},
"BTN" : {
- "value" : 0.013189215653172165,
+ "value" : 0.013230175012724121,
"code" : "BTN"
},
- "YER" : {
- "value" : 0.0039944020213208056,
- "code" : "YER"
- },
"MYR" : {
- "value" : 0.23054565512641181,
+ "value" : 0.23073165700631676,
"code" : "MYR"
},
+ "YER" : {
+ "value" : 0.0039940083962923187,
+ "code" : "YER"
+ },
"JMD" : {
- "value" : 0.0073790145990114339,
+ "value" : 0.0070011106561944977,
"code" : "JMD"
},
"TOP" : {
- "value" : 0.42687539165817184,
+ "value" : 0.43208676302201482,
"code" : "TOP"
},
"SOS" : {
- "value" : 0.0017241369262788262,
+ "value" : 0.0017152648717675355,
"code" : "SOS"
},
"TMT" : {
- "value" : 0.2857142857142857,
+ "value" : 0.28490028490028491,
"code" : "TMT"
},
"MDL" : {
- "value" : 0.055652381423836141,
+ "value" : 0.056081610408118772,
"code" : "MDL"
},
"XOF" : {
- "value" : 0.0016611286520021387,
+ "value" : 0.0016528916549421002,
"code" : "XOF"
},
"ETH" : {
- "value" : 157.96081169999999,
+ "value" : 214.27102477,
"code" : "ETH"
},
"TWD" : {
- "value" : 0.033287797845067801,
+ "value" : 0.033492940592432512,
"code" : "TWD"
},
"BBD" : {
- "value" : 0.49819628036693153,
+ "value" : 0.495227002153247,
"code" : "BBD"
},
"CAD" : {
- "value" : 0.7118899443255855,
+ "value" : 0.71339397182093811,
"code" : "CAD"
},
"CNY" : {
- "value" : 0.1416652544022039,
+ "value" : 0.14135866028177871,
"code" : "CNY"
},
- "JOD" : {
- "value" : 1.4103576667042761,
- "code" : "JOD"
- },
"XPF" : {
- "value" : 0.0091404670413039422,
+ "value" : 0.0090576756555039873,
"code" : "XPF"
},
+ "JOD" : {
+ "value" : 1.40943532383186,
+ "code" : "JOD"
+ },
"XLM" : {
- "value" : 0.048814800000000012,
+ "value" : 0.072964390000000004,
"code" : "XLM"
},
"IQD" : {
- "value" : 0.00083998320033599355,
+ "value" : 0.00084033613445378156,
"code" : "IQD"
},
"HNL" : {
- "value" : 0.040127784522143689,
+ "value" : 0.039951436631687987,
"code" : "HNL"
},
"AED" : {
- "value" : 0.27225389745066897,
+ "value" : 0.27224589249009706,
"code" : "AED"
},
"EOS" : {
- "value" : 2.4907822500000001,
+ "value" : 2.81651052,
"code" : "EOS"
},
"ERN" : {
@@ -656,31 +656,31 @@
"code" : "ERN"
},
"KES" : {
- "value" : 0.0094425314505227759,
+ "value" : 0.0094294801475732493,
"code" : "KES"
},
"KMF" : {
- "value" : 0.0022229613123993688,
+ "value" : 0.0022038548842307978,
"code" : "KMF"
},
- "DZD" : {
- "value" : 0.0078708926150271707,
- "code" : "DZD"
- },
"MKD" : {
- "value" : 0.017705324756024165,
+ "value" : 0.017597338268847067,
"code" : "MKD"
},
+ "DZD" : {
+ "value" : 0.007792045272406397,
+ "code" : "DZD"
+ },
"BSV" : {
- "value" : 185.82623583,
+ "value" : 215.74796007,
"code" : "BSV"
},
"BWP" : {
- "value" : 0.083788711012903277,
+ "value" : 0.082342892437373499,
"code" : "BWP"
},
"SBD" : {
- "value" : 0.12042531330451635,
+ "value" : 0.12094835118369733,
"code" : "SBD"
},
"AZN" : {
@@ -688,43 +688,43 @@
"code" : "AZN"
},
"BCH" : {
- "value" : 231.68666519000001,
+ "value" : 272.65756047000002,
"code" : "BCH"
},
"KGS" : {
- "value" : 0.01285284249801626,
+ "value" : 0.012673660677005915,
"code" : "KGS"
},
"BYN" : {
- "value" : 0.40139444429949644,
+ "value" : 0.4105353216380031,
"code" : "BYN"
},
"KHR" : {
- "value" : 0.0002457002245108652,
+ "value" : 0.0002433089816541478,
"code" : "KHR"
},
"NEO" : {
- "value" : 7.2695771100000002,
+ "value" : 11.38753322,
"code" : "NEO"
},
"ZMK" : {
- "value" : 0.00011109625392516102,
+ "value" : 0.00011109625392516104,
"code" : "ZMK"
},
"HTG" : {
- "value" : 0.010608878549240103,
+ "value" : 0.0093168086688059926,
"code" : "HTG"
},
"CZK" : {
- "value" : 0.040384258054976828,
+ "value" : 0.039788953026912773,
"code" : "CZK"
},
"BAM" : {
- "value" : 0.55849946830850616,
+ "value" : 0.55437320071248042,
"code" : "BAM"
},
"IMP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "IMP"
}
}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
index 6b767bdf9..ea5261e51 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/FunctionDescriptions.json
@@ -1,4 +1,90 @@
{
+ "financial": [
+ {
+ "prototypeExpressions": [
+ "present value of 1000 after __timespan at 10%",
+ "present value of 1000 over __timespan at 10%"
+ ],
+ "identifier": "presentValue"
+ },
+ {
+ "prototypeExpressions": [
+ "annual return on 500 invested 1000 returned after __timespan",
+ "yearly return on 500 invested 1000 returned after __timespan",
+ "annual return on 500 invested 1000 returned over __timespan",
+ "yearly return on 500 invested 1000 returned over __timespan"
+ ],
+ "identifier": "returnOnInvestmentAfter"
+ },
+ {
+ "identifier": "returnOnInvestment",
+ "prototypeExpressions": [
+ "500 invested 1000 returned"
+ ]
+ },
+ {
+ "identifier": "totalLoanRepayment",
+ "prototypeExpressions": [
+ "total repayment on 10000 for __timespan at 6%",
+ "total repayment on 10000 after __timespan at 6%",
+ "total repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "annual repayment on 10000 for __timespan at 6%",
+ "annual repayment on 10000 after __timespan at 6%",
+ "annual repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 after __timespan at 6%",
+ "yearly repayment on 10000 for __timespan at 6%"
+ ],
+ "identifier": "annualLoanRepayment"
+ },
+ {
+ "identifier": "monthlyLoanRepayment",
+ "prototypeExpressions": [
+ "monthly repayment on 10000 for __timespan at 6%",
+ "monthly repayment on 10000 after __timespan at 6%",
+ "monthly repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "total interest on 10000 for __timespan at 6%",
+ "total interest on 10000 after __timespan at 6%",
+ "total interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "totalInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "annualInterestOnLoanRepayment",
+ "prototypeExpressions": [
+ "annual interest on 10000 for __timespan at 6%",
+ "annual interest on 10000 after __timespan at 6%",
+ "annual interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 after __timespan at 6%",
+ "yearly interest on 10000 for __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "monthly interest on 10000 for __timespan at 6%",
+ "monthly interest on 10000 after __timespan at 6%",
+ "monthly interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "monthlyInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "compoundInterest",
+ "prototypeExpressions": [
+ "100 after __timespan at 10%",
+ "100 for __timespan at 10%",
+ "100 over __timespan at 10%"
+ ]
+ }
+ ],
"percentage": [
{
"prototypeExpressions": [
@@ -138,6 +224,12 @@
"__unit in __unit_expression"
],
"identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ],
+ "identifier": "unitInTimespan"
}
],
"datetime": [
@@ -183,6 +275,18 @@
],
"identifier": "calendarUnitExpressionAfterDate"
},
+ {
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan ago"
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
{
"prototypeExpressions": [
"new timestamp"
@@ -206,4 +310,4 @@
"identifier": "differenceBetweenTimezones"
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
index 364ca565a..e3332a1d4 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/LocalizedFixtures.json
@@ -1,13 +1,5 @@
{
"fixtures": {
- "dateIntervalPrepositions": [
- "between ",
- "until ",
- "before ",
- "to ",
- "from ",
- "after "
- ],
"decimalPlacesTypes": [
"dp",
"digit",
@@ -94,6 +86,10 @@
"november",
"december"
],
+ "colons": [
+ ":",
+ ":"
+ ],
"additionOperators": [
"plus"
],
@@ -140,4 +136,4 @@
"sun"
]
}
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/UnitDescriptions.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/UnitDescriptions.json
index 5306a0a54..025cac593 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/UnitDescriptions.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Base.lproj/UnitDescriptions.json
@@ -1579,7 +1579,8 @@
{
"symbol" : "USD",
"aliases" : [
- "usd"
+ "usd",
+ "US$"
],
"identifier" : "usd"
}
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
index 7b4e4c0fc..c04e46857 100644
Binary files a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc and b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
index d04c0080a..e7210ef2a 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
@@ -304,6 +304,7 @@ public enum TokenSubType {
case subtractionOperator
case multiplicationOperator
case divisionOperator
+ case reverseDivisionOperator
case powerOperator
case modOperator
case lesserOf
@@ -432,7 +433,7 @@ public struct ExportOptions {
public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
- public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions, limitToChars: Swift.Int?) -> Swift.String
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
@objc deinit
}
@_hasMissingDesignatedInitializers public class LocaleProvider {
@@ -794,6 +795,10 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
public struct Timespan {
public let dateComponents: Foundation.DateComponents
}
@@ -906,6 +911,11 @@ extension UnitLength {
@objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
@objc required dynamic public init?(coder: Foundation.NSCoder)
}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
public struct UnitRate {
public let value: Foundation.Decimal
public let ofUnit: SoulverCore.CocoaUnit?
@@ -1478,8 +1488,12 @@ public class LineCollection {
public var quickAverage: SoulverCore.CalculationResult? {
get
}
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
public func clearStates()
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
index 7b4e4c0fc..c04e46857 100644
Binary files a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc and b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
index d04c0080a..e7210ef2a 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
@@ -304,6 +304,7 @@ public enum TokenSubType {
case subtractionOperator
case multiplicationOperator
case divisionOperator
+ case reverseDivisionOperator
case powerOperator
case modOperator
case lesserOf
@@ -432,7 +433,7 @@ public struct ExportOptions {
public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
- public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions, limitToChars: Swift.Int?) -> Swift.String
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
@objc deinit
}
@_hasMissingDesignatedInitializers public class LocaleProvider {
@@ -794,6 +795,10 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
public struct Timespan {
public let dateComponents: Foundation.DateComponents
}
@@ -906,6 +911,11 @@ extension UnitLength {
@objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
@objc required dynamic public init?(coder: Foundation.NSCoder)
}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
public struct UnitRate {
public let value: Foundation.Decimal
public let ofUnit: SoulverCore.CocoaUnit?
@@ -1478,8 +1488,12 @@ public class LineCollection {
public var quickAverage: SoulverCore.CalculationResult? {
get
}
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
public func clearStates()
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/SoulverCore b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/SoulverCore
index 403cb8692..66776e031 100755
Binary files a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/SoulverCore and b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/SoulverCore differ
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources
index b23d66dcf..b1f069041 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/_CodeSignature/CodeResources
@@ -6,7 +6,7 @@
Base.lproj/Cities.json
- e6nW5hJHjD7j1mCRcX7nv2hEup8=
+ D+wxjw9nMpw75+T3tngLf/JRJjU=
Base.lproj/Countries.json
@@ -14,15 +14,15 @@
Base.lproj/DefaultCurrencyRates.json
- 9GVBrqRViGQy+9xP4k8os09CsLQ=
+ gfSsYxjI01/LDMK1S8ZIck1V+HM=
Base.lproj/FunctionDescriptions.json
- kQtov1jpcGBaopjC5Gh93XNaet4=
+ bZsiMXg7mwh7jSvlT3ZaomxJ1W8=
Base.lproj/LocalizedFixtures.json
- zZikjuMlPPxxPwHUCIjOBGwLXYI=
+ NWMiLnjTuUerTiivFSr0jwI3bh0=
Base.lproj/TimeZoneAbbrieviations.json
@@ -30,7 +30,7 @@
Base.lproj/UnitDescriptions.json
- BPpAXi5r3kKMvCQ24t/oGwJxSG0=
+ GsUHwlNlikAuPVJ6aemlQZAghUU=
Headers/DDDecimalFunctions.h
@@ -50,27 +50,27 @@
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
- WehrNfeR0l4hioAS/+j13MzTjMI=
+ Efjo59pJL/nwqOJDBHo7bZZfLuY=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
- v3ysiBTstlcNiIC8Mt6mirmI4AY=
+ RwVoVfICpG2TPZVnTWVm2xrUGQw=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
- IErfgjR/SxjkeGJ0+o1d/l/4cYY=
+ 5bWAxDx4i5hLNMujyyfdrFXCEr8=
Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
- WehrNfeR0l4hioAS/+j13MzTjMI=
+ Efjo59pJL/nwqOJDBHo7bZZfLuY=
Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
- v3ysiBTstlcNiIC8Mt6mirmI4AY=
+ RwVoVfICpG2TPZVnTWVm2xrUGQw=
Modules/SoulverCore.swiftmodule/x86_64.swiftmodule
- IErfgjR/SxjkeGJ0+o1d/l/4cYY=
+ 5bWAxDx4i5hLNMujyyfdrFXCEr8=
Modules/module.modulemap
@@ -89,7 +89,7 @@
hash
- oBVLZhcQvZA8cwGESkLK+jQhjic=
+ FFtsGMtVMhM9/WCV1zAmQJKlAqA=
optional
@@ -116,7 +116,7 @@
hash
- 9EIV6NGplh/9hdIAP+t/YfiwsrA=
+ WPkt6GEJUvbVdyraTRey4PDWsWc=
optional
@@ -125,7 +125,7 @@
hash
- /VbmlQ+TzvtHeR2oNY0/d0+4EZI=
+ hMxxzzhXjmjlk/UIQCyrIv20eWs=
optional
@@ -161,7 +161,7 @@
hash
- /d6Oz2He0ifmC1rmBlrteNG59JQ=
+ Yc6Xdp3ilb6s0DE6sxR+MxlYkbs=
optional
@@ -188,7 +188,7 @@
hash
- L2v4b8kJ+a6hXdbo69twF9Q5Xng=
+ d/bH9nNW3gXexhnIQF4vzbshGNI=
optional
@@ -215,7 +215,7 @@
hash
- GGbqRf3SZLOR6va3VwfXLOzJkl8=
+ AAOL8iQ0HsBa0Pn+t2azz3FE0J0=
optional
@@ -224,7 +224,7 @@
hash
- XPRQg+DsV2ecihs+c3dn8ipRNFY=
+ z+RhVhtikIG3oHSsApIQYJya/Jo=
optional
@@ -233,7 +233,7 @@
hash
- zmV6UqBSo6r1NOz798vd5O4zTBA=
+ l5F3x7fEQ9B7J7r+9Ye54ebjiFA=
optional
@@ -242,7 +242,7 @@
hash
- 3P5KFO9FDWNbQxLAMnoViWYg3RI=
+ 42FDLUhGyJDSbFKWLOKTTz8gDQ0=
optional
@@ -251,7 +251,61 @@
hash
- DSS5plh41IQk3+082lRug0lCUL0=
+ +UaCPhAYhzFJeTOtePE2Ne9B81Q=
+
+ optional
+
+
+ zh-Hant.lproj/Cities.json
+
+ hash
+
+ w6mEHSk1DxEOsfLTWyJf5Arw89U=
+
+ optional
+
+
+ zh-Hant.lproj/FunctionDescriptions.json
+
+ hash
+
+ +2zJc1PdbvBZH2IiWBQLt45qBx0=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.strings
+
+ hash
+
+ TCQCejIQ8wHLD/9/l3mEbXMa5ZI=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.stringsdict
+
+ hash
+
+ H5EMvVqbHpgKqmDNCcxsNA4+Lmk=
+
+ optional
+
+
+ zh-Hant.lproj/LocalizedFixtures.json
+
+ hash
+
+ MpFAMujwyD1Rt4zQpR3wcUjx5Uk=
+
+ optional
+
+
+ zh-Hant.lproj/UnitDescriptions.json
+
+ hash
+
+ vb6zAuF1o4wFVwYFsEtKR4C/8uY=
optional
@@ -263,7 +317,7 @@
hash2
- n+nin4iXpsY/IqsWNa9CDpoHzLv6BYaujXqe1nzKD3Q=
+ VtN8FaDIdYK7S8kgkLlfzf+BKaRfziShpz4zaeEjZ00=
Base.lproj/Countries.json
@@ -277,21 +331,21 @@
hash2
- EqUK+KSFI/xtIN0V8cygMi0eURUs0hkTjGw+1S3pw7Q=
+ MGpXKhSD1H4yfkaIV1zwrcECXztDgKUmxgmvNK7qiCA=
Base.lproj/FunctionDescriptions.json
hash2
- meax+W/WZy2sWpF32qnol8qDUHF/aQyDX6Wv229DYmA=
+ AJo8KngstAGzlyOFfpful2Xm5w8CCiGg9KaxyxC+wPs=
Base.lproj/LocalizedFixtures.json
hash2
- Ac7iGTQ0UcfqrI9FnPGG5f56IoqZUEuIRkRCS1qR6EU=
+ 7AdNHE+HXvkwO3sJk+nijmaU2oUm+s+kdLF2p4GMjww=
Base.lproj/TimeZoneAbbrieviations.json
@@ -305,7 +359,7 @@
hash2
- KGbZR2TKFQkzaD09kXM9K0oxYqXHdCh4leuSmpLcDWM=
+ Y2QVB5AYxgmg8zWXiMRgQZaMm9yNIxO/NUcUH/FdSFo=
Headers/DDDecimalFunctions.h
@@ -333,42 +387,42 @@
hash2
- a+zVy9/vIBBw8l+zXs/F/5cM8vo2BYmLRjg5TUFtW3M=
+ QHMiZ4hTPz3HgF2oMQUzhfwlit9/HoMcepwfDtYvmhU=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
hash2
- pYbRWY949QjmBNO8nLdZEReahogBHProAtteCfytTcE=
+ UfVRFHUhazoxGMJ0UDnqg5iIPmbQNuFUrInhFOSEVEw=
Modules/SoulverCore.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
hash2
- Nfsz6hNA/4zyq3dsFFUOhhhfH+iTkiw2Fz1VTmaBwMs=
+ Gm5u999aE5/tqnMOO4wdWjx3Z15sfC4qe53PuMrGvoE=
Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
hash2
- a+zVy9/vIBBw8l+zXs/F/5cM8vo2BYmLRjg5TUFtW3M=
+ QHMiZ4hTPz3HgF2oMQUzhfwlit9/HoMcepwfDtYvmhU=
Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
hash2
- pYbRWY949QjmBNO8nLdZEReahogBHProAtteCfytTcE=
+ UfVRFHUhazoxGMJ0UDnqg5iIPmbQNuFUrInhFOSEVEw=
Modules/SoulverCore.swiftmodule/x86_64.swiftmodule
hash2
- Nfsz6hNA/4zyq3dsFFUOhhhfH+iTkiw2Fz1VTmaBwMs=
+ Gm5u999aE5/tqnMOO4wdWjx3Z15sfC4qe53PuMrGvoE=
Modules/module.modulemap
@@ -391,7 +445,7 @@
hash2
- vsInqITRUZlwYRdX4Q8b8Mr8lefph8RT9l9k0t723f0=
+ W9+9K7tYx1xIbd53T+QBfzTbtIHhF4yOQ45omYfEHSk=
optional
@@ -418,7 +472,7 @@
hash2
- O2HOQzugFlyQT3bTMHxiamwctVioMGj7aZv6+Vu77k0=
+ JqxwJLB5cNNmlGVVL/CKvHYme8ZN6fu8ATbN5WEjOSk=
optional
@@ -427,7 +481,7 @@
hash2
- qwZWoTJ3oFtuwFExwwPWxP9D3eQRll4ZtGcFGw0cq/g=
+ omxfk0lbjRTtfSLEwRv9Ej2UZmCQx4NRI0m4eHShgCY=
optional
@@ -463,7 +517,7 @@
hash2
- mSpkR0bZBf/uobEb8QafZheFKC27/PvH2xnwov6bd2M=
+ I7swt5Nw8nDkVuG6L86+0NDYZ5+rNjHhPCJRZLrxTd8=
optional
@@ -490,7 +544,7 @@
hash2
- lWQOY/a9sjUEtFXxUBfUEYexaEu5UlrCtB+ppbFp7UM=
+ cd92/ijtDhKkz4Od87o3DGq5Bs1fdm2lPtE0T7oUqcM=
optional
@@ -517,7 +571,7 @@
hash2
- yhhs3apdoIdYvwb65wTyN2wt8uzsEUN2NiRa8Ugrbuk=
+ yxDBRkCbuYYx6Hk3QwFdKJ/xAB0aIRxItIbb2Lgi7Aw=
optional
@@ -526,7 +580,7 @@
hash2
- sGd/VrDZ28yZnyaS+dGQeantyffA1JbSp8irqyOGus4=
+ 642pgwKhwE/yRZrgL/LFM7vmtzY+cIHPJoJ/Gu41fgg=
optional
@@ -535,7 +589,7 @@
hash2
- kmHsztpgjvF0JW5f3HdMHm49z1M0CcG8OT1JDQHHE/E=
+ VMjKVuZCymRXjk35Ioj/2i3HwvGSR6VTCp98NgmHa6o=
optional
@@ -544,7 +598,7 @@
hash2
- ep1Z5QtLD9byss3f7i4WJ6W/HPQWAUYuvJEFcu0YNc0=
+ z9edktWAbtNftUV+i/xmih0GrVPoqKkw7bTxEMvqRWA=
optional
@@ -553,7 +607,61 @@
hash2
- Bk8iek8rkcDRjoMDBZbRTxHe5Sr+IUpuFUlhZ7qY4OI=
+ TubogqT8dkrsejJW93FX4UfMo22LziWBXa730UH5hrI=
+
+ optional
+
+
+ zh-Hant.lproj/Cities.json
+
+ hash2
+
+ lBUP7gqPieqCEeaHmDEVJTVc82hYAFDe1cHooiy/El8=
+
+ optional
+
+
+ zh-Hant.lproj/FunctionDescriptions.json
+
+ hash2
+
+ vrlVhJKG9pQ4Po4nrqchKWfOUAPu+ALtMvytjinihUI=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.strings
+
+ hash2
+
+ 3/vC+UXH+TUtmvvn8OqI0kEVV17MhsktOrdCyoY9ctU=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.stringsdict
+
+ hash2
+
+ Hcw/XrVcnGIz9UWovPcDpmoEUUEwuwP3SEYnMwiymBI=
+
+ optional
+
+
+ zh-Hant.lproj/LocalizedFixtures.json
+
+ hash2
+
+ 7WQGxDYdRY62qF+1IMU2Ie6pwxk8yHeaio2R5MXx65U=
+
+ optional
+
+
+ zh-Hant.lproj/UnitDescriptions.json
+
+ hash2
+
+ imP7PDmCUOpC0zgWpF90/NDIUZPSylzBCgFcBfp0WJA=
optional
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/FunctionDescriptions.json
index 77e10f163..17cd6316d 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/FunctionDescriptions.json
@@ -80,36 +80,36 @@
{
"identifier": "remainder",
"prototypeExpressions": [
- "Rest von 20 durch 3",
- "Rest von 20 geteilt durch 3"
+ "rest von 20 durch 3",
+ "rest von 20 geteilt durch 3"
]
},
{
"identifier": "halfOf",
"prototypeExpressions": [
- "Hälfte von 20"
+ "hälfte von 20"
]
},
{
"identifier": "lesserOf",
"prototypeExpressions": [
- "kleinere Wert von 2 und 30",
- "kleinere Zahl von 2 und 30"
+ "kleinere wert von 2 und 30",
+ "kleinere zahl von 2 und 30"
]
},
{
"identifier": "greaterOf",
"prototypeExpressions": [
- "größere Wert von 2 und 30",
- "größere Zahl von 2 und 30",
- "Zahl von 2 und 30 ist größer",
- "welche der Zahlen von 2 und 30 ist größer"
+ "größere wert von 2 und 30",
+ "größere zahl von 2 und 30",
+ "zahl von 2 und 30 ist größer",
+ "welche der zahlen von 2 und 30 ist größer"
]
},
{
"identifier": "midpoint",
"prototypeExpressions": [
- "Mitte zwischen 2 und 32"
+ "mitte zwischen 2 und 32"
]
},
{
@@ -128,7 +128,7 @@
},
{
"prototypeExpressions": [
- "Zufallszahl zwischen 1 und 5",
+ "zufallszahl zwischen 1 und 5",
"zufällig zwischen 1 und 5"
],
"identifier": "makeRandomNumber"
@@ -186,7 +186,7 @@
{
"identifier": "generateTimestamp",
"prototypeExpressions": [
- "neuer Zeitstempel"
+ "neuer zeitstempel"
]
},
{
@@ -198,17 +198,17 @@
},
{
"prototypeExpressions": [
- "__timezone Zeit",
- "Zeit in __timezone"
+ "__timezone zeit",
+ "zeit in __timezone"
],
"identifier": "timeInTimezone"
},
{
"prototypeExpressions": [
- "Zeitdifferenz zwischen __timezone und __timezone",
- "Differenz zwischen __timezone und __timezone",
- "Zeitdifferenz zwischen __timezone & __timezone",
- "Differenz zwischen __timezone & __timezone"
+ "zeitdifferenz zwischen __timezone und __timezone",
+ "differenz zwischen __timezone und __timezone",
+ "zeitdifferenz zwischen __timezone & __timezone",
+ "differenz zwischen __timezone & __timezone"
],
"identifier": "differenceBetweenTimezones"
}
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/LocalizedFixtures.json
index d04ea7105..7cb8c512f 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/LocalizedFixtures.json
@@ -97,7 +97,6 @@
"π"
],
"additionOperators": [
- "und"
],
"timespanTypes": [
"Zeitdauer",
@@ -141,13 +140,6 @@
"Son",
"So"
],
- "dateIntervalPrepositions": [
- " zwischen ",
- " bis ",
- " vor ",
- " von ",
- "hier"
- ],
"percentTypes": [
"Prozent",
"Prozentrechnung"
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/UnitDescriptions.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/UnitDescriptions.json
index f91743bfb..2d9c2a8bc 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/UnitDescriptions.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/de.lproj/UnitDescriptions.json
@@ -1560,4 +1560,4 @@
"identifier": "nanohertz"
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
index 1a1282394..257145396 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/FunctionDescriptions.json
@@ -134,6 +134,12 @@
"__unit в __unit_expression"
],
"identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit в __timespan"
+ ],
+ "identifier": "unitInTimespan"
}
],
"datetime": [
@@ -165,6 +171,13 @@
],
"identifier": "intervalBetweenTimestamps"
},
+ {
+ "prototypeExpressions": [
+ "__timespan назад",
+ "__timespan тому назад",
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
{
"prototypeExpressions": [
"__unit с __datestamp"
@@ -183,6 +196,12 @@
],
"identifier": "calendarUnitExpressionAfterDate"
},
+ {
+ "prototypeExpressions": [
+ "__timespan до __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
{
"identifier": "timeInTimezone",
"prototypeExpressions": [
@@ -198,4 +217,4 @@
"identifier": "differenceBetweenTimezones"
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
index d8774c436..9a0e5c766 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/ru.lproj/LocalizedFixtures.json
@@ -145,15 +145,6 @@
"Чт",
"Чтв"
],
- "dateIntervalPrepositions": [
- "с ",
- "по ",
- "до ",
- "и ",
- "между ",
- " ночи",
- " дня"
- ],
"percentTypes": [
"процент"
]
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
index 48d6dfca1..edf339b38 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/FunctionDescriptions.json
@@ -49,19 +49,6 @@
"什么的20%是30"
]
},
- {
- "identifier": "isPercentOffWhat",
- "prototypeExpressions": [
- "30是多少减20%",
- "30是多少减去20%",
- "30 是多少减 20%",
- "30 是多少减去 20%",
- "30是什么减20%",
- "30是什么减去20%",
- "30 是什么减 20%",
- "30 是什么减去 20%"
- ]
- },
{
"identifier": "isPercentOffWhatClassic",
"prototypeExpressions": [
@@ -164,6 +151,7 @@
"prototypeExpressions": [
"20 的一半为",
"20 的一半是",
+ "20 的一般",
"20的一半为",
"20的一半是"
]
@@ -227,7 +215,10 @@
"prototypeExpressions": [
"1 到 5 之间的任意数",
"1 与 5 之间的任意数",
- "1 和 5 之间的任意数"
+ "1 和 5 之间的任意数",
+ "1到5之间的任意数",
+ "1与5之间的任意数",
+ "1和5之间的任意数"
]
}
],
@@ -288,4 +279,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings
index 4e49cca45..59ce6e370 100644
Binary files a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings and b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict
index 3967e063f..e15d8a2ee 100644
Binary files a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict and b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
index dbafbf71d..a1c37837a 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/LocalizedFixtures.json
@@ -1,23 +1,5 @@
{
"fixtures": {
- "dayOfWeekDateAliases": [
- "星期一",
- "星期二",
- "星期三",
- "星期四",
- "星期五",
- "星期六",
- "星期日",
- "星期天",
- "周一",
- "周二",
- "周三",
- "周四",
- "周五",
- "周六",
- "周日",
- "周天"
- ],
"decimalPlacesTypes": [
"小数"
],
@@ -25,14 +7,19 @@
"乘数"
],
"divisionOperators": [
- "÷",
+ "除以",
+ "每"
+ ],
+ "reverseDivisionOperators": [
+ "除"
],
"roundingConverters": [
- "四舍五入"
+ "四舍五入",
+ "舍入"
],
"multiplicationOperators": [
- "×",
- "x",
+ "乘",
+ "乘以"
],
"tomorrowDateAliases": [
"明天",
@@ -40,8 +27,7 @@
],
"lessThanOrEqualToOperators": [
"<=",
- "=<",
- "小于等于"
+ "=<"
],
"laptimeTypes": [
"圈速",
@@ -57,8 +43,8 @@
"昨日"
],
"subtractionOperators": [
- "−",
- "–",
+ "减",
+ "减去"
],
"todayDateAliases": [
"今天",
@@ -105,6 +91,8 @@
"12月"
],
"additionOperators": [
+ "加",
+ "加上"
],
"timespanTypes": [
"周期"
@@ -114,12 +102,30 @@
],
"converterSymbols": [
"到",
- "为"
+ "为",
+ "作为"
],
"greaterThanOrEqualToOperators": [
">=",
- "=>",
- "大于等于"
+ "=>"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "星期天",
+ "周一",
+ "周二",
+ "周三",
+ "周四",
+ "周五",
+ "周六",
+ "周日",
+ "周天"
],
"fractionTypes": [
"分之",
@@ -127,17 +133,7 @@
],
"isNotEqualToOperators": [
"!=",
- "=!",
- "不等于"
- ],
- "dateIntervalPrepositions": [
- "之间 ",
- "直到 ",
- " 之前",
- "到 ",
- "从 ",
- " 后",
- " 之后"
+ "=!"
],
"percentTypes": [
"百分之",
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
index bfdabd32a..8fcda5e55 100644
--- a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hans.lproj/UnitDescriptions.json
@@ -1242,7 +1242,8 @@
{
"symbol" : "week",
"aliases" : [
- "星期"
+ "周",
+ "星期"
],
"identifier" : "weeks"
},
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Cities.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Cities.json
new file mode 100644
index 000000000..c714ed87c
--- /dev/null
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Cities.json
@@ -0,0 +1,3565 @@
+[
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "上海",
+ "identifier" : "shanghai",
+ "population" : "22,315,474"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊斯坦堡",
+ "identifier" : "istanbul",
+ "population" : "14,804,116"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "布宜諾斯艾利斯",
+ "identifier" : "buenos aires",
+ "population" : "13,076,300"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "孟買",
+ "identifier" : "mumbai",
+ "population" : "12,691,836"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "墨西哥城",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "北京",
+ "identifier" : "beijing",
+ "population" : "11,716,620"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "卡拉奇",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "天津",
+ "identifier" : "tianjin",
+ "population" : "11,090,314"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "廣州",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "新德里",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "莫斯科",
+ "identifier" : "moscow",
+ "population" : "10,381,222"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "深圳",
+ "identifier" : "shenzhen",
+ "population" : "10,358,381"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "達卡",
+ "identifier" : "dhaka",
+ "population" : "10,356,500"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "漢城",
+ "identifier" : "seoul",
+ "population" : "10,349,312"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "聖保羅",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "武漢市",
+ "identifier" : "wuhan",
+ "population" : "9,785,388"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "拉各斯",
+ "identifier" : "lagos",
+ "population" : "9,000,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "雅加達",
+ "identifier" : "jakarta",
+ "population" : "8,540,121"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "東京",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "紐約",
+ "identifier" : "new york",
+ "population" : "8,175,133"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "東莞市",
+ "identifier" : "dongguan",
+ "population" : "8,000,000"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "台北",
+ "identifier" : "taipei",
+ "population" : "7,871,900"
+ },
+ {
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "金夏沙",
+ "identifier" : "kinshasa",
+ "population" : "7,785,965"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "開羅",
+ "identifier" : "cairo",
+ "population" : "7,734,614"
+ },
+ {
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "波哥大",
+ "identifier" : "bogota",
+ "population" : "7,674,366"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "倫敦",
+ "identifier" : "london",
+ "population" : "7,556,900"
+ },
+ {
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "重慶市",
+ "identifier" : "chongqing",
+ "population" : "7,457,600"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "成都市",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "巴格達",
+ "identifier" : "baghdad",
+ "population" : "7,216,000"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南京",
+ "identifier" : "nanjing",
+ "population" : "7,165,292"
+ },
+ {
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "德黑蘭",
+ "identifier" : "tehran",
+ "population" : "7,153,309"
+ },
+ {
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南充",
+ "identifier" : "nanchong",
+ "population" : "7,150,000"
+ },
+ {
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "香港",
+ "identifier" : "hong kong",
+ "population" : "7,012,738"
+ },
+ {
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "西安",
+ "identifier" : "xi'an",
+ "population" : "6,501,190"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "里約熱內盧",
+ "identifier" : "rio de janeiro",
+ "population" : "6,023,699"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "曼谷",
+ "identifier" : "bangkok",
+ "population" : "5,104,476"
+ },
+ {
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "班加羅爾",
+ "identifier" : "bengaluru",
+ "population" : "5,104,047"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "聖彼得堡",
+ "identifier" : "saint petersburg",
+ "population" : "5,028,000"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "聖地亞哥",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "加爾各答",
+ "identifier" : "kolkata",
+ "population" : "4,631,392"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "悉尼",
+ "identifier" : "sydney",
+ "population" : "4,627,345"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "仰光",
+ "identifier" : "yangon",
+ "population" : "4,477,638"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "欽奈",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "墨爾本",
+ "identifier" : "melbourne",
+ "population" : "4,246,375"
+ },
+ {
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "利雅得",
+ "identifier" : "riyadh",
+ "population" : "4,205,961"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "洛杉磯",
+ "identifier" : "los angeles",
+ "population" : "3,971,883"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "吉大港市",
+ "identifier" : "chittagong",
+ "population" : "3,920,222"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "亞歷山德里亞",
+ "identifier" : "alexandria",
+ "population" : "3,811,516"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "艾哈邁達巴德",
+ "identifier" : "ahmedabad",
+ "population" : "3,719,710"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "釜山",
+ "identifier" : "busan",
+ "population" : "3,678,555"
+ },
+ {
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿比讓",
+ "identifier" : "abidjan",
+ "population" : "3,677,115"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "鹿野",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "海得拉巴",
+ "identifier" : "hyderabad",
+ "population" : "3,597,816"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "橫濱",
+ "identifier" : "yokohama",
+ "population" : "3,574,443"
+ },
+ {
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊巴丹島",
+ "identifier" : "ibadan",
+ "population" : "3,565,108"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "新加坡",
+ "identifier" : "singapore",
+ "population" : "3,547,809"
+ },
+ {
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "安卡拉",
+ "identifier" : "ankara",
+ "population" : "3,517,182"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "胡志明市",
+ "identifier" : "ho chi minh city",
+ "population" : "3,467,331"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "開普敦",
+ "identifier" : "cape town",
+ "population" : "3,433,441"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "柏林",
+ "identifier" : "berlin",
+ "population" : "3,426,354"
+ },
+ {
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "馬德里",
+ "identifier" : "madrid",
+ "population" : "3,255,944"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "平壤",
+ "identifier" : "pyongyang",
+ "population" : "3,222,000"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "卡薩布蘭卡",
+ "identifier" : "casablanca",
+ "population" : "3,144,909"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "中山",
+ "identifier" : "zhongshan",
+ "population" : "3,121,275"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "德班",
+ "identifier" : "durban",
+ "population" : "3,120,282"
+ },
+ {
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "喀布爾",
+ "identifier" : "kabul",
+ "population" : "3,043,532"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "烏魯木齊",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "加拉加斯",
+ "identifier" : "caracas",
+ "population" : "3,000,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "迪拜",
+ "identifier" : "dubai",
+ "population" : "2,956,587"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "吉達",
+ "identifier" : "jeddah",
+ "population" : "2,867,446"
+ },
+ {
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "基輔",
+ "identifier" : "kyiv",
+ "population" : "2,797,553"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "羅安達",
+ "identifier" : "luanda",
+ "population" : "2,776,168"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "奎松市",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "亞的斯亞貝巴(埃塞俄比亞首都",
+ "identifier" : "addis ababa",
+ "population" : "2,757,729"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "內羅畢",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "芝加哥",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "薩爾瓦多",
+ "identifier" : "salvador",
+ "population" : "2,711,840"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "達累斯薩拉姆",
+ "identifier" : "dar es salaam",
+ "population" : "2,698,652"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "多倫多",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "大阪",
+ "identifier" : "osaka",
+ "population" : "2,592,413"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "摩加迪沙",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊茲密爾",
+ "identifier" : "izmir",
+ "population" : "2,500,603"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "達喀爾",
+ "identifier" : "dakar",
+ "population" : "2,476,400"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "吉薩",
+ "identifier" : "giza",
+ "population" : "2,443,203"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "福塔雷薩",
+ "identifier" : "fortaleza",
+ "population" : "2,400,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "泗水",
+ "identifier" : "surabaya",
+ "population" : "2,374,658"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "貝洛奧里藏特",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "羅馬",
+ "identifier" : "rome",
+ "population" : "2,318,895"
+ },
+ {
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "馬什哈德",
+ "identifier" : "mashhad",
+ "population" : "2,307,177"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "布魯克林區",
+ "identifier" : "brooklyn",
+ "population" : "2,300,664"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "休斯頓",
+ "identifier" : "houston",
+ "population" : "2,296,224"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "皇后區",
+ "identifier" : "queens",
+ "population" : "2,272,771"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "巴西利亞",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "聖多明哥",
+ "identifier" : "santo domingo",
+ "population" : "2,201,941"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "名古屋",
+ "identifier" : "nagoya",
+ "population" : "2,191,279"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "布里斯班",
+ "identifier" : "brisbane",
+ "population" : "2,189,878"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "哈瓦那",
+ "identifier" : "havana",
+ "population" : "2,163,824"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "巴黎",
+ "identifier" : "paris",
+ "population" : "2,138,551"
+ },
+ {
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "約翰內斯堡",
+ "identifier" : "johannesburg",
+ "population" : "2,026,469"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "阿拉木圖",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "塔什幹",
+ "identifier" : "tashkent",
+ "population" : "1,978,028"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "阿爾及爾",
+ "identifier" : "algiers",
+ "population" : "1,977,663"
+ },
+ {
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "喀土穆",
+ "identifier" : "khartoum",
+ "population" : "1,974,647"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "阿克拉",
+ "identifier" : "accra",
+ "population" : "1,963,264"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "瓜亞基爾",
+ "identifier" : "guayaquil",
+ "population" : "1,952,029"
+ },
+ {
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "薩那",
+ "identifier" : "sanaa",
+ "population" : "1,937,451"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "貝魯特",
+ "identifier" : "beirut",
+ "population" : "1,916,100"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "珀斯",
+ "identifier" : "perth",
+ "population" : "1,896,548"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "札幌",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "布加勒斯特",
+ "identifier" : "bucharest",
+ "population" : "1,877,155"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "卡馬耶納",
+ "identifier" : "camayenne",
+ "population" : "1,871,242"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "科納克里",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "明斯克",
+ "identifier" : "minsk",
+ "population" : "1,742,124"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "布達佩斯",
+ "identifier" : "budapest",
+ "population" : "1,741,041"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢堡",
+ "identifier" : "hamburg",
+ "population" : "1,739,117"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "華沙",
+ "identifier" : "warsaw",
+ "population" : "1,702,139"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "索韋托",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "維也納",
+ "identifier" : "vienna",
+ "population" : "1,691,468"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "拉巴特",
+ "identifier" : "rabat",
+ "population" : "1,655,753"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴塞羅納",
+ "identifier" : "barcelona",
+ "population" : "1,621,537"
+ },
+ {
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "比勒陀利亞",
+ "identifier" : "pretoria",
+ "population" : "1,619,438"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "阿勒頗",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "馬尼拉",
+ "identifier" : "manila",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "蒙特利爾",
+ "identifier" : "montreal",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "卡杜納",
+ "identifier" : "kaduna",
+ "population" : "1,582,102"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "金邊",
+ "identifier" : "phnom penh",
+ "population" : "1,573,544"
+ },
+ {
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "大馬士革",
+ "identifier" : "damascus",
+ "population" : "1,569,394"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "費城",
+ "identifier" : "philadelphia",
+ "population" : "1,567,442"
+ },
+ {
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "鳳凰",
+ "identifier" : "phoenix",
+ "population" : "1,563,025"
+ },
+ {
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "伊斯法罕",
+ "identifier" : "isfahan",
+ "population" : "1,547,164"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "哈拉雷",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "科比",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "斯德哥爾摩",
+ "identifier" : "stockholm",
+ "population" : "1,515,017"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "曼哈頓",
+ "identifier" : "manhattan",
+ "population" : "1,487,536"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "亞松森",
+ "identifier" : "asuncion",
+ "population" : "1,482,200"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "累西腓",
+ "identifier" : "recife",
+ "population" : "1,478,098"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "聖安東尼奧",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "庫馬西",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "哥打巴魯",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "京都",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "吉隆坡",
+ "identifier" : "kuala lumpur",
+ "population" : "1,453,975"
+ },
+ {
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡拉伊",
+ "identifier" : "karaj",
+ "population" : "1,448,075"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "加德滿都",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "河內",
+ "identifier" : "hanoi",
+ "population" : "1,431,270"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "哈爾科夫",
+ "identifier" : "kharkiv",
+ "population" : "1,430,885"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "科爾多瓦",
+ "identifier" : "cordoba",
+ "population" : "1,428,214"
+ },
+ {
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "大不里士",
+ "identifier" : "tabriz",
+ "population" : "1,424,641"
+ },
+ {
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "新西伯利亞",
+ "identifier" : "novosibirsk",
+ "population" : "1,419,007"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "貝倫",
+ "identifier" : "belem",
+ "population" : "1,407,737"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "基多",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "聖地亞哥",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "福岡",
+ "identifier" : "fukuoka",
+ "population" : "1,392,289"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "塔那那利佛",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "布朗克斯",
+ "identifier" : "the bronx",
+ "population" : "1,385,108"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "盧本巴希",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "聖克魯斯-德拉塞拉",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "坎帕拉",
+ "identifier" : "kampala",
+ "population" : "1,353,189"
+ },
+ {
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "葉卡捷琳堡",
+ "identifier" : "yekaterinburg",
+ "population" : "1,349,772"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "杜阿拉",
+ "identifier" : "douala",
+ "population" : "1,338,082"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "沙迦",
+ "identifier" : "sharjah",
+ "population" : "1,324,473"
+ },
+ {
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥加",
+ "identifier" : "mecca",
+ "population" : "1,323,624"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "望加錫",
+ "identifier" : "makassar",
+ "population" : "1,321,717"
+ },
+ {
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "華雷斯",
+ "identifier" : "juarez",
+ "population" : "1,321,004"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "川崎",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "蒂華納",
+ "identifier" : "tijuana",
+ "population" : "1,300,983"
+ },
+ {
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "達拉斯",
+ "identifier" : "dallas",
+ "population" : "1,300,092"
+ },
+ {
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥地那",
+ "identifier" : "medina",
+ "population" : "1,300,000"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "雅溫得",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "巴馬科",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "布拉柴維爾",
+ "identifier" : "brazzaville",
+ "population" : "1,284,609"
+ },
+ {
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "下諾夫哥羅德",
+ "identifier" : "nizhniy novgorod",
+ "population" : "1,284,164"
+ },
+ {
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "安曼",
+ "identifier" : "amman",
+ "population" : "1,275,857"
+ },
+ {
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "貝爾格萊德",
+ "identifier" : "belgrade",
+ "population" : "1,273,651"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "蒙得維的亞",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "盧薩卡",
+ "identifier" : "lusaka",
+ "population" : "1,267,440"
+ },
+ {
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "慕尼黑",
+ "identifier" : "munich",
+ "population" : "1,260,391"
+ },
+ {
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "設拉子",
+ "identifier" : "shiraz",
+ "population" : "1,249,942"
+ },
+ {
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "米蘭",
+ "identifier" : "milan",
+ "population" : "1,236,837"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "太子港",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "阿德萊德",
+ "identifier" : "adelaide",
+ "population" : "1,225,235"
+ },
+ {
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "恩杜曼",
+ "identifier" : "omdurman",
+ "population" : "1,200,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "ita玉",
+ "identifier" : "saitama",
+ "population" : "1,193,350"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬普托",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "布拉格",
+ "identifier" : "prague",
+ "population" : "1,165,581"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "哥本哈根",
+ "identifier" : "copenhagen",
+ "population" : "1,153,615"
+ },
+ {
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "蘇菲亞",
+ "identifier" : "sofia",
+ "population" : "1,152,556"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "的黎波里",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "哈科特港",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "廣島",
+ "identifier" : "hiroshima",
+ "population" : "1,143,841"
+ },
+ {
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "蒙特雷",
+ "identifier" : "monterrey",
+ "population" : "1,135,512"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "薩馬拉",
+ "identifier" : "samara",
+ "population" : "1,134,730"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "鄂木斯克",
+ "identifier" : "omsk",
+ "population" : "1,129,281"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "貝寧市",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "巴庫",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "邁杜古里",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "喀山",
+ "identifier" : "kazan",
+ "population" : "1,104,738"
+ },
+ {
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "葉里溫",
+ "identifier" : "yerevan",
+ "population" : "1,093,485"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "瓦加杜古",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "羅斯托夫納多努",
+ "identifier" : "rostov-na-donu",
+ "population" : "1,074,482"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "車里雅賓斯克",
+ "identifier" : "chelyabinsk",
+ "population" : "1,062,919"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "第比利斯",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "烏法",
+ "identifier" : "ufa",
+ "population" : "1,033,338"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "聖荷西",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "都柏林",
+ "identifier" : "dublin",
+ "population" : "1,024,027"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "卡爾加里",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "布魯塞爾",
+ "identifier" : "brussels",
+ "population" : "1,019,022"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "伏爾加格勒",
+ "identifier" : "volgograd",
+ "population" : "1,011,417"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "敖德薩",
+ "identifier" : "odessa",
+ "population" : "1,001,558"
+ },
+ {
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "危地馬拉城",
+ "identifier" : "guatemala city",
+ "population" : "994,938"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "伯明翰",
+ "identifier" : "birmingham",
+ "population" : "984,333"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "燙髮",
+ "identifier" : "perm",
+ "population" : "982,419"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "扎里亞",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "伊麗莎白港",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "非斯",
+ "identifier" : "fes",
+ "population" : "964,891"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "科隆",
+ "identifier" : "cologne",
+ "population" : "963,395"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "那不勒斯",
+ "identifier" : "naples",
+ "population" : "959,470"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "馬塞約",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "蒙羅維亞",
+ "identifier" : "monrovia",
+ "population" : "939,524"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "金斯頓",
+ "identifier" : "kingston",
+ "population" : "937,700"
+ },
+ {
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧斯丁",
+ "identifier" : "austin",
+ "population" : "931,830"
+ },
+ {
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "克拉斯諾亞爾斯克",
+ "identifier" : "krasnoyarsk",
+ "population" : "927,200"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "特賣",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "庫姆",
+ "identifier" : "qom",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "比什凱克",
+ "identifier" : "bishkek",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿波波",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿壩",
+ "identifier" : "aba",
+ "population" : "897,560"
+ },
+ {
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "門多薩",
+ "identifier" : "mendoza",
+ "population" : "876,884"
+ },
+ {
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "姆布吉馬耶",
+ "identifier" : "mbuji-mayi",
+ "population" : "874,761"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "皮金",
+ "identifier" : "pikine",
+ "population" : "874,062"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "都靈",
+ "identifier" : "turin",
+ "population" : "870,456"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "舊金山",
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "利物浦",
+ "identifier" : "liverpool",
+ "population" : "864,122"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "薩拉托夫",
+ "identifier" : "saratov",
+ "population" : "863,725"
+ },
+ {
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "德古西加巴",
+ "identifier" : "tegucigalpa",
+ "population" : "850,848"
+ },
+ {
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "沃羅涅日",
+ "identifier" : "voronezh",
+ "population" : "848,752"
+ },
+ {
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "烏蘭巴托",
+ "identifier" : "ulan bator",
+ "population" : "844,818"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "阿瓦士",
+ "identifier" : "ahvaz",
+ "population" : "841,145"
+ },
+ {
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "馬拉喀什",
+ "identifier" : "marrakesh",
+ "population" : "839,296"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "登巴薩",
+ "identifier" : "denpasar",
+ "population" : "834,881"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "沃思堡",
+ "identifier" : "fort worth",
+ "population" : "833,319"
+ },
+ {
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "印第安納波利斯",
+ "identifier" : "indianapolis",
+ "population" : "829,718"
+ },
+ {
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "喬斯",
+ "identifier" : "jos",
+ "population" : "816,824"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴倫西亞",
+ "identifier" : "valencia",
+ "population" : "814,208"
+ },
+ {
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊洛林",
+ "identifier" : "ilorin",
+ "population" : "814,192"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "拉巴斯",
+ "identifier" : "la paz",
+ "population" : "215,178"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "渥太華",
+ "identifier" : "ottawa",
+ "population" : "812,129"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "弗里敦",
+ "identifier" : "freetown",
+ "population" : "802,639"
+ },
+ {
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "耶路撒冷",
+ "identifier" : "jerusalem",
+ "population" : "801,000"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "馬斯喀特",
+ "identifier" : "muscat",
+ "population" : "797,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "馬賽",
+ "identifier" : "marseille",
+ "population" : "794,811"
+ },
+ {
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "帕斯拉格德分行",
+ "identifier" : "pasragad branch",
+ "population" : "787,878"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "布默達斯",
+ "identifier" : "boumerdas",
+ "population" : "786,499"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "San Miguel de Tucuman",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "梅里達",
+ "identifier" : "merida",
+ "population" : "777,615"
+ },
+ {
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "尼亞美",
+ "identifier" : "niamey",
+ "population" : "774,235"
+ },
+ {
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡里茲",
+ "identifier" : "kahriz",
+ "population" : "766,706"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "克拉科夫",
+ "identifier" : "krakow",
+ "population" : "755,050"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "峴港市",
+ "identifier" : "da nang",
+ "population" : "752,493"
+ },
+ {
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "彼得馬里茨堡",
+ "identifier" : "pietermaritzburg",
+ "population" : "750,845"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "洛美",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "基加利",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "裡加",
+ "identifier" : "riga",
+ "population" : "742,572"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "阿姆斯特丹",
+ "identifier" : "amsterdam",
+ "population" : "741,636"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "大洋",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "諾丁漢",
+ "identifier" : "nottingham",
+ "population" : "729,977"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "大坎普市",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "阿什哈巴德",
+ "identifier" : "ashgabat",
+ "population" : "727,700"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "恩賈梅納",
+ "identifier" : "n'djamena",
+ "population" : "721,081"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "利沃夫",
+ "identifier" : "lviv",
+ "population" : "717,803"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "埃莫西約",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "埃德蒙頓",
+ "identifier" : "edmonton",
+ "population" : "712,391"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "布拉瓦約",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "薩格勒布",
+ "identifier" : "zagreb",
+ "population" : "698,966"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "阿加迪爾",
+ "identifier" : "agadir",
+ "population" : "698,310"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "薩拉熱窩",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "埃努古",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "丹吉爾",
+ "identifier" : "tangier",
+ "population" : "688,356"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "謝菲爾德",
+ "identifier" : "sheffield",
+ "population" : "685,368"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "西雅圖",
+ "identifier" : "seattle",
+ "population" : "684,451"
+ },
+ {
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "丹佛",
+ "identifier" : "denver",
+ "population" : "682,545"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "埃爾帕索",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "杜尚別",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "底特律",
+ "identifier" : "detroit",
+ "population" : "677,116"
+ },
+ {
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "庫里亞坎人",
+ "identifier" : "culiacan",
+ "population" : "675,773"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬托拉",
+ "identifier" : "matola",
+ "population" : "675,422"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "波斯頓",
+ "identifier" : "boston",
+ "population" : "667,137"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "雅典",
+ "identifier" : "athens",
+ "population" : "664,046"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "努瓦克肖特",
+ "identifier" : "nouakchott",
+ "population" : "661,400"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "黑角",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "孟菲斯",
+ "identifier" : "memphis",
+ "population" : "655,770"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "法蘭克福",
+ "identifier" : "frankfurt am main",
+ "population" : "650,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "克拉斯諾達爾",
+ "identifier" : "krasnodar",
+ "population" : "649,851"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴勒莫",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "科倫坡",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "利隆圭",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "奧蘭",
+ "identifier" : "oran",
+ "population" : "645,984"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "基希訥烏",
+ "identifier" : "chisinau",
+ "population" : "635,994"
+ },
+ {
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "特比薩",
+ "identifier" : "tebessa",
+ "population" : "634,332"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "波特蘭",
+ "identifier" : "portland",
+ "population" : "632,309"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "溫尼伯",
+ "identifier" : "winnipeg",
+ "population" : "632,063"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "俄克拉荷馬城",
+ "identifier" : "oklahoma city",
+ "population" : "631,346"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "坎昆",
+ "identifier" : "cancun",
+ "population" : "628,306"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "吉布地",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "巴爾的摩",
+ "identifier" : "baltimore",
+ "population" : "621,849"
+ },
+ {
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼沙",
+ "identifier" : "kermanshah",
+ "population" : "621,100"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "布里斯托爾",
+ "identifier" : "bristol",
+ "population" : "617,280"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "貝諾尼",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "阿布扎比",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "華盛頓州",
+ "identifier" : "washington",
+ "population" : "601,723"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "密爾沃基",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "溫哥華",
+ "identifier" : "vancouver",
+ "population" : "600,000"
+ },
+ {
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "巴瑙爾",
+ "identifier" : "barnaul",
+ "population" : "599,579"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "鹿特丹",
+ "identifier" : "rotterdam",
+ "population" : "598,199"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "拉什特",
+ "identifier" : "rasht",
+ "population" : "594,590"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿倍庫塔",
+ "identifier" : "abeokuta",
+ "population" : "593,100"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "埃森",
+ "identifier" : "essen",
+ "population" : "593,085"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "格拉斯哥",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "黃金海岸",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿布賈",
+ "identifier" : "abuja",
+ "population" : "590,400"
+ },
+ {
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "斯圖加特",
+ "identifier" : "stuttgart",
+ "population" : "589,793"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "多特蒙德",
+ "identifier" : "dortmund",
+ "population" : "588,462"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "海參div",
+ "identifier" : "vladivostok",
+ "population" : "587,022"
+ },
+ {
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "伊爾庫茨克",
+ "identifier" : "irkutsk",
+ "population" : "586,695"
+ },
+ {
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "布蘭太爾",
+ "identifier" : "blantyre",
+ "population" : "584,877"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "熱那亞",
+ "identifier" : "genoa",
+ "population" : "580,223"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "奧斯陸",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "利伯維爾",
+ "identifier" : "libreville",
+ "population" : "578,156"
+ },
+ {
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼",
+ "identifier" : "kerman",
+ "population" : "577,514"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜塞爾多夫",
+ "identifier" : "duesseldorf",
+ "population" : "573,057"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "古晉",
+ "identifier" : "kuching",
+ "population" : "570,407"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "阿爾伯克基",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "赫爾辛基",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "亞丁",
+ "identifier" : "aden",
+ "population" : "550,602"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "奧倫堡",
+ "identifier" : "orenburg",
+ "population" : "550,204"
+ },
+ {
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "普里什蒂納",
+ "identifier" : "pristina",
+ "population" : "550,000"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "不來梅",
+ "identifier" : "bremen",
+ "population" : "546,501"
+ },
+ {
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "維爾紐斯",
+ "identifier" : "vilnius",
+ "population" : "542,366"
+ },
+ {
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "納什維爾",
+ "identifier" : "nashville",
+ "population" : "530,852"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "魁北克",
+ "identifier" : "quebec",
+ "population" : "528,595"
+ },
+ {
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "聖薩爾瓦多",
+ "identifier" : "san salvador",
+ "population" : "525,990"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "澳門",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "秋明州",
+ "identifier" : "tyumen",
+ "population" : "519,119"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "里斯本",
+ "identifier" : "lisbon",
+ "population" : "517,802"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢諾威",
+ "identifier" : "hannover",
+ "population" : "515,140"
+ },
+ {
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "薩爾塔",
+ "identifier" : "salta",
+ "population" : "512,686"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "萊斯特",
+ "identifier" : "leicester",
+ "population" : "508,916"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "萊比錫",
+ "identifier" : "leipzig",
+ "population" : "504,971"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜伊斯堡",
+ "identifier" : "duisburg",
+ "population" : "504,358"
+ },
+ {
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "阿斯特拉罕",
+ "identifier" : "astrakhan",
+ "population" : "502,533"
+ },
+ {
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "紐倫堡",
+ "identifier" : "nuernberg",
+ "population" : "499,237"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "德累斯頓",
+ "identifier" : "dresden",
+ "population" : "486,854"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "托木斯克",
+ "identifier" : "tomsk",
+ "population" : "485,519"
+ },
+ {
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "亞茲德",
+ "identifier" : "yazd",
+ "population" : "477,905"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "堪薩斯城",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "斯科普里",
+ "identifier" : "skopje",
+ "population" : "474,889"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "海牙",
+ "identifier" : "the hague",
+ "population" : "474,292"
+ },
+ {
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里昂",
+ "identifier" : "lyon",
+ "population" : "472,317"
+ },
+ {
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "愛丁堡",
+ "identifier" : "edinburgh",
+ "population" : "464,990"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "安特衛普",
+ "identifier" : "antwerpen",
+ "population" : "459,805"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "坤甸",
+ "identifier" : "pontianak",
+ "population" : "455,173"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "利茲",
+ "identifier" : "leeds",
+ "population" : "455,123"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "加的夫",
+ "identifier" : "cardiff",
+ "population" : "447,287"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "聖胡安",
+ "identifier" : "san juan",
+ "population" : "418,140"
+ },
+ {
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧馬哈",
+ "identifier" : "omaha",
+ "population" : "443,885"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "家樂福",
+ "identifier" : "carrefour",
+ "population" : "442,156"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "邁阿密",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "加里寧格勒",
+ "identifier" : "kaliningrad",
+ "population" : "434,954"
+ },
+ {
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "圖盧茲",
+ "identifier" : "toulouse",
+ "population" : "433,055"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "特拉維夫",
+ "identifier" : "tel aviv",
+ "population" : "432,892"
+ },
+ {
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "東耶路撒冷",
+ "identifier" : "east jerusalem",
+ "population" : "428,304"
+ },
+ {
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "布拉迪斯拉發",
+ "identifier" : "bratislava",
+ "population" : "423,737"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "奧克蘭市",
+ "identifier" : "auckland",
+ "population" : "417,910"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "塞瓦斯托波爾",
+ "identifier" : "sevastopol",
+ "population" : "416,263"
+ },
+ {
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "明尼阿波利斯",
+ "identifier" : "minneapolis",
+ "population" : "410,939"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "加沙",
+ "identifier" : "gaza",
+ "population" : "410,000"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "庫爾斯克",
+ "identifier" : "kursk",
+ "population" : "409,431"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "巴拿馬",
+ "identifier" : "panama",
+ "population" : "408,168"
+ },
+ {
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "塔爾薩",
+ "identifier" : "tulsa",
+ "population" : "403,505"
+ },
+ {
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "特維爾",
+ "identifier" : "tver",
+ "population" : "400,212"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "曼徹斯特",
+ "identifier" : "manchester",
+ "population" : "395,515"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "塔林",
+ "identifier" : "tallinn",
+ "population" : "394,024"
+ },
+ {
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "坎大哈",
+ "identifier" : "kandahar",
+ "population" : "391,190"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "威奇托",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "新奧爾良",
+ "identifier" : "new orleans",
+ "population" : "389,617"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "惠靈頓",
+ "identifier" : "wellington",
+ "population" : "381,900"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "大加那利島拉斯帕爾馬斯",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "馬薩特蘭",
+ "identifier" : "mazatlan",
+ "population" : "381,583"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "地拉那",
+ "identifier" : "tirana",
+ "population" : "374,801"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "考納斯",
+ "identifier" : "kaunas",
+ "population" : "374,643"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "火奴魯魯",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "堪培拉",
+ "identifier" : "canberra",
+ "population" : "367,752"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "博洛尼亞",
+ "identifier" : "bologna",
+ "population" : "366,133"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "基督城",
+ "identifier" : "christchurch",
+ "population" : "363,926"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "哈利法克斯",
+ "identifier" : "halifax",
+ "population" : "359,111"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "安汶",
+ "identifier" : "ambon",
+ "population" : "355,596"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "佛羅倫斯",
+ "identifier" : "florence",
+ "population" : "349,296"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "多哈",
+ "identifier" : "doha",
+ "population" : "344,939"
+ },
+ {
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "蘇黎世",
+ "identifier" : "zurich",
+ "population" : "341,730"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "好啊",
+ "identifier" : "nice",
+ "population" : "338,620"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "辛菲羅波爾",
+ "identifier" : "simferopol",
+ "population" : "336,460"
+ },
+ {
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "特皮克",
+ "identifier" : "tepic",
+ "population" : "332,863"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "索契",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "斯摩棱斯克",
+ "identifier" : "smolensk",
+ "population" : "320,991"
+ },
+ {
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "撒馬爾罕",
+ "identifier" : "samarkand",
+ "population" : "319,366"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "摩爾曼斯克",
+ "identifier" : "murmansk",
+ "population" : "319,263"
+ },
+ {
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "弗拉季卡夫卡茲",
+ "identifier" : "vladikavkaz",
+ "population" : "317,370"
+ },
+ {
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "赤太",
+ "identifier" : "chita",
+ "population" : "308,500"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "新城堡",
+ "identifier" : "newcastle",
+ "population" : "308,308"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "韋略港",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "聖薩爾瓦多·德胡胡伊",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "匹茲堡",
+ "identifier" : "pittsburgh",
+ "population" : "304,391"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "布雷斯特",
+ "identifier" : "brest",
+ "population" : "144,899"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "錨地",
+ "identifier" : "anchorage",
+ "population" : "298,695"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "辛辛那提",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "臥龍崗市",
+ "identifier" : "wollongong",
+ "population" : "292,190"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "卡塔尼亞",
+ "identifier" : "catania",
+ "population" : "290,927"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "烏特勒支",
+ "identifier" : "utrecht",
+ "population" : "290,529"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "維多利亞州",
+ "identifier" : "victoria",
+ "population" : "289,625"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "莫爾茲比港",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "洛根市",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴里",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "南特",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "史特拉斯堡",
+ "identifier" : "strasbourg",
+ "population" : "274,845"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "貝爾法斯特",
+ "identifier" : "belfast",
+ "population" : "274,770"
+ },
+ {
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "盧布爾雅那",
+ "identifier" : "ljubljana",
+ "population" : "272,220"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "奧蘭多",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "彼得羅扎沃茨克",
+ "identifier" : "petrozavodsk",
+ "population" : "265,025"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "普利茅斯",
+ "identifier" : "plymouth",
+ "population" : "260,203"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "里約布蘭科",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "洛斯·莫奇斯",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "波爾圖",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "麥迪遜",
+ "identifier" : "madison",
+ "population" : "248,951"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "蒙彼利埃",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "奧胡斯",
+ "identifier" : "arhus",
+ "population" : "237,551"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "雅庫茨克",
+ "identifier" : "yakutsk",
+ "population" : "235,600"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "喬治敦",
+ "identifier" : "georgetown",
+ "population" : "235,017"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "波爾多",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "根特",
+ "identifier" : "gent",
+ "population" : "231,493"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "巴吞魯日",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里爾",
+ "identifier" : "lille",
+ "population" : "228,328"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "拿騷",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "吉朗",
+ "identifier" : "geelong",
+ "population" : "226,034"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "帕拉馬里博",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "聖克魯斯-德特內里費",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "格拉茨",
+ "identifier" : "graz",
+ "population" : "222,326"
+ },
+ {
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "墨西拿",
+ "identifier" : "messina",
+ "population" : "219,948"
+ },
+ {
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "維羅納",
+ "identifier" : "verona",
+ "population" : "219,103"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "霍巴特",
+ "identifier" : "hobart",
+ "population" : "216,656"
+ },
+ {
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "諾維薩德",
+ "identifier" : "novi sad",
+ "population" : "215,400"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "卑爾根",
+ "identifier" : "bergen",
+ "population" : "213,585"
+ },
+ {
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "得梅因",
+ "identifier" : "des moines",
+ "population" : "210,330"
+ },
+ {
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "科斯塔奈",
+ "identifier" : "kostanay",
+ "population" : "210,000"
+ },
+ {
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "林茲",
+ "identifier" : "linz",
+ "population" : "204,846"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕多瓦",
+ "identifier" : "padova",
+ "population" : "203,725"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "普斯科夫",
+ "identifier" : "pskov",
+ "population" : "201,990"
+ },
+ {
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "清邁",
+ "identifier" : "chiang mai",
+ "population" : "200,952"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "尼科西亞",
+ "identifier" : "nicosia",
+ "population" : "200,452"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "口服",
+ "identifier" : "oral",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "奧什",
+ "identifier" : "osh",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "薩斯卡通",
+ "identifier" : "saskatoon",
+ "population" : "198,958"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "小石頭",
+ "identifier" : "little rock",
+ "population" : "197,992"
+ },
+ {
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "萬象",
+ "identifier" : "vientiane",
+ "population" : "196,731"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "香港仔",
+ "identifier" : "aberdeen",
+ "population" : "196,670"
+ },
+ {
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "帕爾馬斯",
+ "identifier" : "palmas",
+ "population" : "196,272"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "湯斯維爾",
+ "identifier" : "townsville",
+ "population" : "196,219"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "鹽湖城",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "軟木",
+ "identifier" : "cork",
+ "population" : "190,384"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "塔拉哈西",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "聖塔倫",
+ "identifier" : "santarem",
+ "population" : "189,047"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "卡塔馬卡聖費爾南多·德爾瓦萊",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "的里雅斯特",
+ "identifier" : "trieste",
+ "population" : "187,056"
+ },
+ {
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "聖路易斯",
+ "identifier" : "san luis",
+ "population" : "183,982"
+ },
+ {
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "日內瓦",
+ "identifier" : "geneva",
+ "population" : "183,981"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "阿特勞",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "庫塔伊西",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "南薩哈林斯克",
+ "identifier" : "yuzhno-sakhalinsk",
+ "population" : "176,484"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "分裂",
+ "identifier" : "split",
+ "population" : "176,314"
+ },
+ {
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "里賈納",
+ "identifier" : "regina",
+ "population" : "176,183"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "圖爾庫",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "牛津",
+ "identifier" : "oxford",
+ "population" : "171,380"
+ },
+ {
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "傑克遜",
+ "identifier" : "jackson",
+ "population" : "170,674"
+ },
+ {
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "斯普林菲爾德",
+ "identifier" : "springfield",
+ "population" : "166,810"
+ },
+ {
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "巴塞爾",
+ "identifier" : "basel",
+ "population" : "164,488"
+ },
+ {
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "拉里奧哈",
+ "identifier" : "la rioja",
+ "population" : "162,620"
+ },
+ {
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "希伯倫",
+ "identifier" : "hebron",
+ "population" : "160,470"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "摩德納",
+ "identifier" : "modena",
+ "population" : "158,886"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "劍橋",
+ "identifier" : "cambridge",
+ "population" : "158,434"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "弗里斯科",
+ "identifier" : "frisco",
+ "population" : "154,407"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "帕薩迪納",
+ "identifier" : "pasadena",
+ "population" : "153,784"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "約克",
+ "identifier" : "york",
+ "population" : "153,717"
+ },
+ {
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "薩爾茨堡",
+ "identifier" : "salzburg",
+ "population" : "153,377"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "凱恩斯",
+ "identifier" : "cairns",
+ "population" : "153,075"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "漢密爾頓",
+ "identifier" : "hamilton",
+ "population" : "152,641"
+ },
+ {
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "拉古納",
+ "identifier" : "la laguna",
+ "population" : "150,661"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "帝力",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "第戎",
+ "identifier" : "dijon",
+ "population" : "149,782"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "烏普薩拉",
+ "identifier" : "uppsala",
+ "population" : "149,245"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "特隆赫姆",
+ "identifier" : "trondheim",
+ "population" : "147,139"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "麥納麥",
+ "identifier" : "manama",
+ "population" : "147,074"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕爾馬",
+ "identifier" : "parma",
+ "population" : "146,299"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "博伊西",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "歐登塞",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "亞眠",
+ "identifier" : "amiens",
+ "population" : "143,086"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "旅遊團",
+ "identifier" : "tours",
+ "population" : "141,621"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "波德戈里察",
+ "identifier" : "podgorica",
+ "population" : "136,473"
+ },
+ {
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "因斯布魯克",
+ "identifier" : "innsbruck",
+ "population" : "132,493"
+ },
+ {
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "圖文巴",
+ "identifier" : "toowoomba",
+ "population" : "131,258"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "達爾文",
+ "identifier" : "darwin",
+ "population" : "129,062"
+ },
+ {
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "伯爾尼",
+ "identifier" : "bern",
+ "population" : "121631"
+ }
+]
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..a4cdeb723
--- /dev/null
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/FunctionDescriptions.json
@@ -0,0 +1,229 @@
+{
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "100的10%",
+ "100 的 10%"
+ ],
+ "identifier": "reversedPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "100減少10%",
+ "100 減少 10%"
+ ],
+ "identifier": "reversedPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "100加上10%",
+ "100 加上 10%"
+ ],
+ "identifier": "reversedPercentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼的20%",
+ "30 是甚麼的 20%"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "甚麼的20%等於30",
+ "甚麼的 20% 等於 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼減少20%"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "減少20%之後是30",
+ "減少 20% 之後是 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼加上20%",
+ "30 是甚麼加上 20%"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20%加上甚麼是30",
+ "20% 加上甚麼是 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20的多少%",
+ "10 是 20 的多少%",
+ "10佔20的幾%",
+ "10 佔 20 的幾%"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20裡減少多少%",
+ "10 是 20 裡減少多少%"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20是10加上多少的%",
+ "20 是 10 加上多少的%",
+ "20為10增加%",
+ "20 為 10 增加%"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "20除以3的餘數",
+ "20 除以 3 的餘數"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "20的一半",
+ "20 的一半"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最小",
+ "2 和 30 哪個最小",
+ "2和30比較小的",
+ "2 和 30 比較小的"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最大",
+ "2和30比較大的",
+ "2 和 30 哪個最大",
+ "2 和 30 比較大的"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2 和 32 的中間數",
+ "2和32的中間數"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是幾分之8",
+ "相比 6 比 600 是幾分之 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是8分之幾",
+ "相比 6 比 600 是 8 分之幾"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "1到5之間的隨機數",
+ "1 到 5 之間的隨機數",
+ "1 到 5 中的隨機數",
+ "1到5中的隨機數"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit_expression 中的 __unit"
+ ],
+ "identifier": "unitInUnitExpression"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__datestamp 和 __datestamp 之間的 __unit",
+ "由 __datestamp 至 __datestamp 的 __unit",
+ "__datestamp 至 __datestamp 中的 __unit"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit 至 __datestamp",
+ "__unit 之前 __datestamp",
+ "__unit 直到 __datestamp",
+ "__unit 直到 __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp 至 __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp 至 __timestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitSinceDate",
+ "prototypeExpressions": [
+ "__unit 自從 __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan 由 __datestamp",
+ "__timespan 之後 __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "新時間標記"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone 的時間",
+ "時間於 __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "在 __timezone 與 __timezone 中的時差",
+ "__timezone 和 __timezone 之間的時差",
+ "在 __timezone 和 __timezone 中的時差",
+ "__timezone 和 __timezone 的時差"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.strings b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.strings
new file mode 100644
index 000000000..57a077d31
Binary files /dev/null and b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..0abc9d8a4
Binary files /dev/null and b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..4d6ae1492
--- /dev/null
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/LocalizedFixtures.json
@@ -0,0 +1,132 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "位數"
+ ],
+ "multiplierTypes": [
+ "倍數"
+ ],
+ "divisionOperators": [
+ "÷",
+ "每"
+ ],
+ "roundingConverters": [
+ "數值簡化"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "tomorrowDateAliases": [
+ "明天"
+ ],
+ "laptimeTypes": [
+ "圈速"
+ ],
+ "roundingDownConverters": [
+ "下舍入"
+ ],
+ "numberTypes": [
+ "數目"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "dateTypes": [
+ "日期"
+ ],
+ "roundingUpConverters": [
+ "上舍入"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "todayDateAliases": [
+ "今天"
+ ],
+ "timestampTypes": [
+ "時間標記"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "additionOperators": [
+ "加"
+ ],
+ "timespanTypes": [
+ "時距"
+ ],
+ "yesterdayDateAliases": [
+ "昨天"
+ ],
+ "converterSymbols": [
+ "到",
+ "當成"
+ ],
+ "nowDateAliases": [
+ "現在"
+ ],
+ "monthOfYearDateAliases": [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月",
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+ ],
+ "fractionTypes": [
+ "分數"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "週一",
+ "週二",
+ "週二",
+ "週三",
+ "週四",
+ "週五",
+ "週六",
+ "週日"
+ ],
+ "percentTypes": [
+ "百分率"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..026b38932
--- /dev/null
+++ b/SoulverCore.xcframework/ios-x86_64-simulator/SoulverCore.framework/zh-Hant.lproj/UnitDescriptions.json
@@ -0,0 +1,1588 @@
+{
+ "energy" : [
+ {
+ "symbol" : "J",
+ "aliases" : [
+ "焦耳",
+ "焦耳"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "kJ",
+ "aliases" : [
+ "千焦耳",
+ "千焦耳"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "mJ",
+ "aliases" : [
+ "百萬焦耳",
+ "百萬焦耳"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "gJ",
+ "aliases" : [
+ "吉焦耳",
+ "吉焦耳"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "cal",
+ "aliases" : [
+ "卡路里",
+ "卡路里"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "kCal",
+ "aliases" : [
+ "千卡路里",
+ "千卡路里"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "Wh",
+ "aliases" : [
+ "瓦時",
+ "watt hours"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "W m",
+ "aliases" : [
+ "瓦分",
+ "瓦分"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "W s",
+ "aliases" : [
+ "瓦秒",
+ "瓦秒"
+ ],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "kWh",
+ "aliases" : [
+ "千瓦時",
+ "千瓦時"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "MWh",
+ "aliases" : [
+ "百萬瓦時",
+ "百萬瓦時"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "GWh",
+ "aliases" : [
+ "吉瓦時",
+ "吉瓦時"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "TWh",
+ "aliases" : [
+ "兆瓦時",
+ "兆瓦時"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "ML",
+ "aliases" : [
+ "百萬升",
+ "百萬升",
+ "公升",
+ "公升",
+ "ML"
+ ],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "kL",
+ "aliases" : [
+ "千升",
+ "千升",
+ "千升",
+ "千升",
+ "kL"
+ ],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "L",
+ "aliases" : [
+ "升",
+ "升",
+ "升",
+ "升",
+ "L"
+ ],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "mL",
+ "aliases" : [
+ "毫升",
+ "毫升",
+ "毫升",
+ "毫升",
+ "mL"
+ ],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "km³",
+ "aliases" : [
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "公里^3",
+ "公里^3",
+ "公里³",
+ "公里³",
+ "公里³",
+ "公里³",
+ "km3",
+ "km^3"
+ ],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "m³",
+ "aliases" : [
+ "立方公尺",
+ "立方公尺",
+ "立方米",
+ "立方米",
+ "m3",
+ "m^3",
+ "米³",
+ "米³",
+ "米³",
+ "米³"
+ ],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "cm³",
+ "aliases" : [
+ "立方公分",
+ "立方公分",
+ "立方厘米",
+ "立方厘米",
+ "cm3",
+ "cm^3",
+ "厘米³"
+ ],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "mm³",
+ "aliases" : [
+ "立方公釐",
+ "立方公釐",
+ "立方毫米",
+ "立方毫米",
+ "mm3",
+ "mm^3"
+ ],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "in³",
+ "aliases" : [
+ "立方吋",
+ "立方吋",
+ "吋³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "ft³",
+ "aliases" : [
+ "立方尺",
+ "立方尺",
+ "cuft",
+ "尺³",
+ "ft3",
+ "ft^3"
+ ],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "yd³",
+ "aliases" : [
+ "立方碼",
+ "立方碼",
+ "yd³",
+ "碼³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "mi³",
+ "aliases" : [
+ "立方英里",
+ "立方英里",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "英里³",
+ "英里^3",
+ "英里^3"
+ ],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "bsh",
+ "aliases" : [
+ "蒲式耳",
+ "蒲式耳"
+ ],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "metric cup",
+ "aliases" : [
+ "公制杯",
+ "公制杯"
+ ],
+ "identifier" : "metricCups"
+ },
+ {
+ "symbol" : "cup",
+ "aliases" : [
+ "美制杯",
+ "美制杯"
+ ],
+ "identifier" : "cups"
+ },
+ {
+ "symbol" : "af",
+ "aliases" : [
+ "英畝英尺",
+ "英畝英尺"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "品脫",
+ "品脫"
+ ],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "qt",
+ "aliases" : [
+ "夸脫",
+ "夸脫"
+ ],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "gal",
+ "aliases" : [
+ "加侖",
+ "加侖",
+ "gal"
+ ],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "tbsp",
+ "aliases" : [
+ "湯匙",
+ "湯匙",
+ "tbsp"
+ ],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "tsp",
+ "aliases" : [
+ "茶匙",
+ "茶匙",
+ "tsp"
+ ],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "fl oz",
+ "aliases" : [
+ "液盎司",
+ "液盎司",
+ "floz"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "B",
+ "aliases" : [
+ "位元組",
+ "位元組"
+ ],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "bit",
+ "aliases" : [
+ "位元",
+ "位元"
+ ],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "YB",
+ "aliases" : [
+ "佑位元組",
+ "佑位元組"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "ZB",
+ "aliases" : [
+ "皆位元組",
+ "皆位元組"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "EB",
+ "aliases" : [
+ "艾位元組",
+ "艾位元組"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "拍位元組",
+ "拍位元組"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "兆位元組",
+ "兆位元組",
+ "TB",
+ "tb"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "吉位元組",
+ "吉位元組",
+ "GB",
+ "gb"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "百萬位元組",
+ "百萬位元組",
+ "MB",
+ "mb"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "千位元組",
+ "千位元組",
+ "KB",
+ "kb"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "佑位元",
+ "佑位元",
+ "Ybit"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "皆位元",
+ "皆位元",
+ "Zbit"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "艾位元",
+ "艾位元",
+ "Ebit"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "拍位元",
+ "拍位元",
+ "Pbit"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "兆位元",
+ "兆位元",
+ "Tbit"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "吉位元",
+ "吉位元",
+ "Gbit"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "百萬位元",
+ "百萬位元",
+ "Mbit"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "千位元",
+ "千位元",
+ "Kbit",
+ "Kb"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [
+ "二進位佑位元組",
+ "二進位佑位元組",
+ "YiB"
+ ],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [
+ "二進位皆位元組",
+ "二進位皆位元組",
+ "ZiB"
+ ],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [
+ "二進位艾位元組",
+ "二進位艾位元組",
+ "EiB"
+ ],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [
+ "二進位拍位元組",
+ "二進位拍位元組",
+ "PiB"
+ ],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [
+ "二進位兆位元組",
+ "二進位兆位元組",
+ "TiB"
+ ],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [
+ "二進位吉位元組",
+ "二進位吉位元組",
+ "GiB"
+ ],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [
+ "二進位百萬位元組",
+ "二進位百萬位元組",
+ "MiB"
+ ],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [
+ "二進位千位元組",
+ "二進位千位元組",
+ "KiB"
+ ],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [
+ "二進位佑位元",
+ "二進位佑位元",
+ "Yibit"
+ ],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [
+ "二進位皆位元",
+ "二進位皆位元",
+ "Zibit"
+ ],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "二進位艾位元",
+ "二進位艾位元",
+ "Eibit"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [
+ "二進位拍位元",
+ "二進位拍位元",
+ "Pibit"
+ ],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [
+ "二進位兆位元",
+ "二進位兆位元",
+ "Tibit"
+ ],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [
+ "二進位吉位元",
+ "二進位吉位元",
+ "Gibit"
+ ],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [
+ "二進位百萬位元",
+ "二進位百萬位元",
+ "Mibit"
+ ],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [
+ "二進位千位元",
+ "二進位千位元",
+ "Kibit"
+ ],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "克耳文"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "攝氏溫度",
+ "攝氏溫度",
+ "ºC",
+ "C",
+ "degC",
+ "攝氏"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "華氏溫標",
+ "華氏溫標",
+ "ºF",
+ "F",
+ "degF",
+ "華氏"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "gBps"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "mBps"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "kBps"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "Pbps"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "tbps"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "gbps"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "mbps"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "kbps"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "m/s",
+ "aliases" : [
+ "公尺每秒",
+ "公尺每秒",
+ "米每秒",
+ "米每秒"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "km/h",
+ "aliases" : [
+ "公里每小時",
+ "公里每小時",
+ "公里每小時",
+ "公里每小時"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "mph",
+ "aliases" : [
+ "英里每小時",
+ "英里每小時"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "kn",
+ "aliases" : [
+ "節",
+ "節"
+ ],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "度",
+ "度"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "弧度",
+ "弧度"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "公尺",
+ "公尺",
+ "米",
+ "米"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "公里",
+ "公里",
+ "公里",
+ "公里"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "公分",
+ "公分",
+ "厘米",
+ "厘米"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "公釐",
+ "公釐",
+ "毫米",
+ "毫米"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "微米",
+ "微米",
+ "微米",
+ "微米"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "奈米",
+ "奈米",
+ "奈米",
+ "奈米"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "吋",
+ "吋"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "尺",
+ "尺"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "碼",
+ "碼"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "哩",
+ "哩"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "光年",
+ "光年"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "秒差距",
+ "秒差距"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "海里",
+ "海里"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "噚",
+ "噚"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "化朗",
+ "化朗"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "像素",
+ "像素"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pts"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "公里²",
+ "公里²",
+ "公里²",
+ "公里²",
+ "km^2",
+ "km2"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "平方公尺",
+ "平方公尺",
+ "平方米",
+ "平方米",
+ "m^2",
+ "米^2",
+ "米^2",
+ "公尺^2",
+ "公尺^2",
+ "公尺²",
+ "公尺²",
+ "米²",
+ "米²",
+ "m2"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "平方公分",
+ "平方公分",
+ "平方厘米",
+ "平方厘米",
+ "厘米^2",
+ "厘米²",
+ "公分^2",
+ "公分²",
+ "cm^2",
+ "cm2"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "平方公釐",
+ "平方公釐",
+ "平方毫米",
+ "平方毫米",
+ "公釐^2",
+ "公釐²",
+ "毫米^2",
+ "毫米²",
+ "mm^2",
+ "mm2"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "微米^2",
+ "微米²",
+ "微米^2",
+ "微米²",
+ "µm^2",
+ "µm2"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "平方吋",
+ "平方吋",
+ "sqin",
+ "吋^2",
+ "in2",
+ "吋²"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "平方尺",
+ "平方尺",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "尺^2",
+ "尺²"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "平方碼",
+ "平方碼",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "碼^2",
+ "碼²",
+ "sqyd"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "平方哩",
+ "平方哩",
+ "mi^2",
+ "mi2",
+ "哩^2",
+ "哩^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "哩²"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "英畝",
+ "英畝",
+ "ac"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "公頃",
+ "公頃",
+ "ha"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "公畝",
+ "aliases" : [],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L/100km",
+ "aliases" : [
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "每加侖英里"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "瓦特",
+ "瓦特"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "毫瓦",
+ "毫瓦"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "千瓦",
+ "千瓦"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "百萬瓦",
+ "百萬瓦"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "吉瓦",
+ "吉瓦"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "兆瓦",
+ "兆瓦"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "馬力"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "公斤",
+ "公斤"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "克",
+ "克"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "微克",
+ "微克"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "奈克",
+ "奈克"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "盎司",
+ "盎司"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "lbs",
+ "磅",
+ "磅"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "石",
+ "石"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "公頓",
+ "公頓"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "短噸",
+ "短噸",
+ "噸",
+ "美噸",
+ "美噸"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "克拉",
+ "克拉"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "金衡盎司",
+ "金衡盎司"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "小時",
+ "小時",
+ "hrs",
+ "h"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "秒",
+ "秒",
+ "sec",
+ "secs"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "分",
+ "分",
+ "mins"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "日"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "平日",
+ "平日",
+ "工作日",
+ "平日",
+ "平日",
+ "工作日"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "週"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "月"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "年"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "毫秒",
+ "毫秒"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "微秒",
+ "微秒"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "奈秒",
+ "奈秒"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "美元"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "赫茲",
+ "hz"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "千赫茲"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "百萬赫茲"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "吉赫茲"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "兆赫茲"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "毫赫茲"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "微赫茲"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "奈赫茲"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc
index 13a2f2359..e1ce62e15 100644
Binary files a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc and b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftdoc differ
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface
index 55452f6a1..1a2e8feef 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64-apple-macos.swiftinterface
@@ -304,6 +304,7 @@ public enum TokenSubType {
case subtractionOperator
case multiplicationOperator
case divisionOperator
+ case reverseDivisionOperator
case powerOperator
case modOperator
case lesserOf
@@ -432,7 +433,7 @@ public struct ExportOptions {
public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
- public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions, limitToChars: Swift.Int?) -> Swift.String
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
@objc deinit
}
@_hasMissingDesignatedInitializers public class LocaleProvider {
@@ -794,6 +795,10 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
public struct Timespan {
public let dateComponents: Foundation.DateComponents
}
@@ -906,6 +911,11 @@ extension UnitLength {
@objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
@objc required dynamic public init?(coder: Foundation.NSCoder)
}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
public struct UnitRate {
public let value: Foundation.Decimal
public let ofUnit: SoulverCore.CocoaUnit?
@@ -1478,8 +1488,12 @@ public class LineCollection {
public var quickAverage: SoulverCore.CalculationResult? {
get
}
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
public func clearStates()
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc
index 13a2f2359..e1ce62e15 100644
Binary files a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc and b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftdoc differ
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
index 55452f6a1..1a2e8feef 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Modules/SoulverCore.swiftmodule/x86_64.swiftinterface
@@ -304,6 +304,7 @@ public enum TokenSubType {
case subtractionOperator
case multiplicationOperator
case divisionOperator
+ case reverseDivisionOperator
case powerOperator
case modOperator
case lesserOf
@@ -432,7 +433,7 @@ public struct ExportOptions {
public class func jsonDataFor(lineCollection: SoulverCore.LineCollection) -> Foundation.Data?
public class func csvDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
public class func textDataFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Foundation.Data?
- public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions, limitToChars: Swift.Int?) -> Swift.String
+ public class func textFor(lineCollection: SoulverCore.LineCollection, options: SoulverCore.ExportOptions) -> Swift.String
@objc deinit
}
@_hasMissingDesignatedInitializers public class LocaleProvider {
@@ -794,6 +795,10 @@ public struct TokenIndexPath : Swift.Equatable {
public init(tokenIndex: SoulverCore.TokenIndex, lineIndex: SoulverCore.LineIndex)
public static func == (a: SoulverCore.TokenIndexPath, b: SoulverCore.TokenIndexPath) -> Swift.Bool
}
+@_hasMissingDesignatedInitializers public class SharedParserFactory {
+ public static var usesSharedParser: Swift.Bool
+ @objc deinit
+}
public struct Timespan {
public let dateComponents: Foundation.DateComponents
}
@@ -906,6 +911,11 @@ extension UnitLength {
@objc override dynamic public init(symbol: Swift.String, converter: Foundation.UnitConverter)
@objc required dynamic public init?(coder: Foundation.NSCoder)
}
+extension _NSRange {
+ public static var zero: Foundation.NSRange {
+ get
+ }
+}
public struct UnitRate {
public let value: Foundation.Decimal
public let ofUnit: SoulverCore.CocoaUnit?
@@ -1478,8 +1488,12 @@ public class LineCollection {
public var quickAverage: SoulverCore.CalculationResult? {
get
}
+ public var quickCount: SoulverCore.CalculationResult? {
+ get
+ }
public func quickSumOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func quickAverageOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
+ public func quickCountOf(indexes: Foundation.IndexSet) -> SoulverCore.CalculationResult?
public func performChanges(performBlock: ((SoulverCore.LineCollection) -> Swift.Void)) -> SoulverCore.LineCollectionStateTicket
public func revertToStateWith(ticket: SoulverCore.LineCollectionStateTicket)
public func clearStates()
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Cities.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Cities.json
index 30232aa1c..e00ce82fe 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Cities.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/Cities.json
@@ -137,6 +137,7 @@
"name": "New York",
"population": "8,175,133",
"elevation": 57,
+ "aliases" : ["NYC"],
"timezone_id": "America/New_York"
},
{
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/DefaultCurrencyRates.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/DefaultCurrencyRates.json
index 689b646c6..9b692f625 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/DefaultCurrencyRates.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/DefaultCurrencyRates.json
@@ -1,30 +1,30 @@
{
"HRK" : {
- "value" : 0.14265835247815795,
+ "value" : 0.14412143787652626,
"code" : "HRK"
},
"HUF" : {
- "value" : 0.0030631976547525739,
+ "value" : 0.0030946301890310292,
"code" : "HUF"
},
"CDF" : {
- "value" : 0.00058207205430146468,
+ "value" : 0.00055248607734808837,
"code" : "CDF"
},
"XMR" : {
- "value" : 53.095668070000002,
+ "value" : 64.327903320000004,
"code" : "XMR"
},
"ILS" : {
- "value" : 0.27922094606726111,
+ "value" : 0.28516806665176186,
"code" : "ILS"
},
"NGN" : {
- "value" : 0.0027247930862974888,
+ "value" : 0.0025641003024346053,
"code" : "NGN"
},
"GYD" : {
- "value" : 0.0048181377059410575,
+ "value" : 0.0047768526712590057,
"code" : "GYD"
},
"BYR" : {
@@ -32,127 +32,127 @@
"code" : "BYR"
},
"BHD" : {
- "value" : 2.6507620941020544,
+ "value" : 2.6442574660609552,
"code" : "BHD"
},
"SZL" : {
- "value" : 0.05555451545157182,
+ "value" : 0.053994601619730062,
"code" : "SZL"
},
"INR" : {
- "value" : 0.013104217539422919,
+ "value" : 0.013244324409660727,
"code" : "INR"
},
"SDG" : {
- "value" : 0.018074998882061322,
+ "value" : 0.018074998882061318,
"code" : "SDG"
},
"PEN" : {
- "value" : 0.29664444700877085,
+ "value" : 0.29420080205022653,
"code" : "PEN"
},
"EUR" : {
- "value" : 1.0866999999438067,
+ "value" : 1.0970493759983149,
"code" : "EUR"
},
"TRX" : {
- "value" : 0.01238234,
+ "value" : 0.016673670000000002,
"code" : "TRX"
},
"PGK" : {
- "value" : 0.29282242457553193,
+ "value" : 0.29151331851473961,
"code" : "PGK"
},
"QAR" : {
- "value" : 0.2746309646412633,
+ "value" : 0.27464695507160319,
"code" : "QAR"
},
"LRD" : {
- "value" : 0.0050504961738754095,
+ "value" : 0.005037687570425298,
"code" : "LRD"
},
"ISK" : {
- "value" : 0.006970493906347873,
+ "value" : 0.0068380563492221637,
"code" : "ISK"
},
"SYP" : {
- "value" : 0.0019437969915838415,
+ "value" : 0.0019438172890745005,
"code" : "SYP"
},
"TRY" : {
- "value" : 0.14838938729879855,
+ "value" : 0.14106155023258229,
"code" : "TRY"
},
"UAH" : {
- "value" : 0.036837961961857235,
+ "value" : 0.037260221624543427,
"code" : "UAH"
},
"SGD" : {
- "value" : 0.70204793590411074,
+ "value" : 0.70786236890388932,
"code" : "SGD"
},
"MMK" : {
- "value" : 0.00070590615244253447,
+ "value" : 0.00071677635648162202,
"code" : "MMK"
},
"NIO" : {
- "value" : 0.029222354855997057,
+ "value" : 0.029066619966297252,
"code" : "NIO"
},
"BIF" : {
- "value" : 0.00052631578947368431,
+ "value" : 0.00052465897166841555,
"code" : "BIF"
},
"AFN" : {
- "value" : 0.013088321524984212,
+ "value" : 0.01312267227578671,
"code" : "AFN"
},
"LKR" : {
- "value" : 0.0052662636044045977,
+ "value" : 0.0053614105399326433,
"code" : "LKR"
},
- "GTQ" : {
- "value" : 0.13029628332457743,
- "code" : "GTQ"
- },
"LTC" : {
- "value" : 42.46899655,
+ "value" : 48.425781479999998,
"code" : "LTC"
},
+ "GTQ" : {
+ "value" : 0.12977569698309138,
+ "code" : "GTQ"
+ },
"XRP" : {
- "value" : 0.18916911,
+ "value" : 0.22132149000000001,
"code" : "XRP"
},
"CHF" : {
- "value" : 1.0292669066198938,
+ "value" : 1.0298852089946053,
"code" : "CHF"
},
"THB" : {
- "value" : 0.030469648114414022,
+ "value" : 0.031230120076688683,
"code" : "THB"
},
"AMD" : {
- "value" : 0.0020359118439829123,
+ "value" : 0.0020656445178683755,
"code" : "AMD"
},
"AOA" : {
- "value" : 0.0017872812174986826,
+ "value" : 0.0018119058999499155,
"code" : "AOA"
},
"SEK" : {
- "value" : 0.099282810287759649,
+ "value" : 0.10233420221893298,
"code" : "SEK"
},
"DASH" : {
- "value" : 73.615964419999997,
+ "value" : 81.757761169999995,
"code" : "DASH"
},
"SAR" : {
- "value" : 0.26566457987139175,
+ "value" : 0.26622211123718209,
"code" : "SAR"
},
"KWD" : {
- "value" : 3.2150309125222236,
+ "value" : 3.2325844512687891,
"code" : "KWD"
},
"IRR" : {
@@ -160,11 +160,11 @@
"code" : "IRR"
},
"WST" : {
- "value" : 0.35569732860635295,
+ "value" : 0.35910253095463818,
"code" : "WST"
},
"BNB" : {
- "value" : 13.90897161,
+ "value" : 17.318957480000002,
"code" : "BNB"
},
"BMD" : {
@@ -172,39 +172,35 @@
"code" : "BMD"
},
"BGN" : {
- "value" : 0.55562940997107035,
+ "value" : 0.55386626345202683,
"code" : "BGN"
},
"PHP" : {
- "value" : 0.019780119769212831,
+ "value" : 0.019803925688620619,
"code" : "PHP"
},
"ZMW" : {
- "value" : 0.053777856795375369,
+ "value" : 0.053831642077718359,
"code" : "ZMW"
},
"XAF" : {
- "value" : 0.001665269217146816,
+ "value" : 0.0016528979714677413,
"code" : "XAF"
},
"BDT" : {
- "value" : 0.011841271544157466,
+ "value" : 0.011765465793025925,
"code" : "BDT"
},
"NOK" : {
- "value" : 0.096903061269759935,
+ "value" : 0.097875715263492688,
"code" : "NOK"
},
"BOB" : {
- "value" : 0.14587998453672166,
+ "value" : 0.14501839340792788,
"code" : "BOB"
},
- "TZS" : {
- "value" : 0.00043224483630430953,
- "code" : "TZS"
- },
"XAG" : {
- "value" : 15.388403299273667,
+ "value" : 15.446400988569662,
"code" : "XAG"
},
"VEF" : {
@@ -212,61 +208,65 @@
"code" : "VEF"
},
"VUV" : {
- "value" : 0.0081920105025506812,
+ "value" : 0.0083438816685386993,
"code" : "VUV"
},
- "BND" : {
- "value" : 0.70653602344569133,
- "code" : "BND"
+ "ANG" : {
+ "value" : 0.55704130851231537,
+ "code" : "ANG"
},
"XCD" : {
"value" : 0.37002090618119926,
"code" : "XCD"
},
"SCR" : {
- "value" : 0.059345870821130818,
+ "value" : 0.058247726649476597,
"code" : "SCR"
},
- "ANG" : {
- "value" : 0.56193476386939289,
- "code" : "ANG"
+ "BND" : {
+ "value" : 0.70758338339485771,
+ "code" : "BND"
+ },
+ "TZS" : {
+ "value" : 0.00043211409094515575,
+ "code" : "TZS"
},
"KYD" : {
- "value" : 1.2070326550614499,
+ "value" : 1.1996794456521218,
"code" : "KYD"
},
"DJF" : {
- "value" : 0.0056268162448480739,
+ "value" : 0.005626816244848073,
"code" : "DJF"
},
"CLF" : {
- "value" : 32.827785437594379,
+ "value" : 33.413525795241917,
"code" : "CLF"
},
"LSL" : {
- "value" : 0.055554481502246511,
+ "value" : 0.054376249498243164,
"code" : "LSL"
},
"MOP" : {
- "value" : 0.12594980320972998,
+ "value" : 0.12523737178354424,
"code" : "MOP"
},
"ALL" : {
- "value" : 0.0086392787764203293,
+ "value" : 0.008702918050999953,
"code" : "ALL"
},
"UZS" : {
- "value" : 0.00010416666303168415,
+ "value" : 9.8921749615314453e-05,
"code" : "UZS"
},
- "PLN" : {
- "value" : 0.23838459175899515,
- "code" : "PLN"
- },
"UYU" : {
- "value" : 0.023362455958558171,
+ "value" : 0.023180574659890551,
"code" : "UYU"
},
+ "PLN" : {
+ "value" : 0.23782626791129083,
+ "code" : "PLN"
+ },
"LTL" : {
"value" : 0.33866849096093798,
"code" : "LTL"
@@ -276,15 +276,15 @@
"code" : "LYD"
},
"JPY" : {
- "value" : 0.0091836389757456553,
+ "value" : 0.0093741762442625352,
"code" : "JPY"
},
"MNT" : {
- "value" : 0.00035900541415777884,
+ "value" : 0.00035789404376333664,
"code" : "MNT"
},
"FJD" : {
- "value" : 0.43907716517731693,
+ "value" : 0.44384476085644287,
"code" : "FJD"
},
"ZWL" : {
@@ -292,23 +292,23 @@
"code" : "ZWL"
},
"KPW" : {
- "value" : 0.0011111111111111111,
+ "value" : 0.0011111110901234572,
"code" : "KPW"
},
"PKR" : {
- "value" : 0.0060058723978897201,
+ "value" : 0.0062636871350912893,
"code" : "PKR"
},
"MRO" : {
- "value" : 0.0028011180393746832,
+ "value" : 0.0028011202127910186,
"code" : "MRO"
},
"GBP" : {
- "value" : 1.2410209558724148,
+ "value" : 1.2405993583620119,
"code" : "GBP"
},
"OMR" : {
- "value" : 2.5957507560124076,
+ "value" : 2.6079223465042105,
"code" : "OMR"
},
"LVL" : {
@@ -316,67 +316,67 @@
"code" : "LVL"
},
"SHP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "SHP"
},
"GEL" : {
- "value" : 0.31695319235255337,
+ "value" : 0.31052130005331652,
"code" : "GEL"
},
"TND" : {
- "value" : 0.34512463140689364,
+ "value" : 0.34334716793521997,
"code" : "TND"
},
"DKK" : {
- "value" : 0.14555902326681097,
+ "value" : 0.14532974155721398,
"code" : "DKK"
},
"NPR" : {
- "value" : 0.0082432684810122593,
+ "value" : 0.008268864442634298,
"code" : "NPR"
},
"KRW" : {
- "value" : 0.00082170753654092386,
+ "value" : 0.0008198039771301187,
"code" : "KRW"
},
"BSD" : {
- "value" : 1.0058884711098772,
+ "value" : 0.99995400211590268,
"code" : "BSD"
},
"CRC" : {
- "value" : 0.0017570047651023428,
+ "value" : 0.001757663699349515,
"code" : "CRC"
},
"EGP" : {
- "value" : 0.063386853389123893,
+ "value" : 0.0642526682205532,
"code" : "EGP"
},
"MAD" : {
- "value" : 0.097823390433498469,
+ "value" : 0.10178076646820435,
"code" : "MAD"
},
"AUD" : {
- "value" : 0.6229649163162958,
+ "value" : 0.6534230875286362,
"code" : "AUD"
},
"BTC" : {
- "value" : 6944.4444444444443,
+ "value" : 9735.1219465899994,
"code" : "BTC"
},
"SLL" : {
- "value" : 0.00010232805495666701,
+ "value" : 0.00010141987480919497,
"code" : "SLL"
},
"MWK" : {
- "value" : 0.0013605435790645778,
+ "value" : 0.00135592532907823,
"code" : "MWK"
},
"RSD" : {
- "value" : 0.0092932451731488654,
+ "value" : 0.0092204107659802758,
"code" : "RSD"
},
"NZD" : {
- "value" : 0.59945939984014385,
+ "value" : 0.61379969015391633,
"code" : "NZD"
},
"SRD" : {
@@ -384,31 +384,31 @@
"code" : "SRD"
},
"CLP" : {
- "value" : 0.0011897108155168308,
+ "value" : 0.0012109412240226831,
"code" : "CLP"
},
"RUB" : {
- "value" : 0.013467592018829803,
+ "value" : 0.013623293324899607,
"code" : "RUB"
},
- "HKD" : {
- "value" : 0.12897138584528597,
- "code" : "HKD"
- },
"NAD" : {
- "value" : 0.055554493847450925,
+ "value" : 0.053965442796981407,
"code" : "NAD"
},
+ "HKD" : {
+ "value" : 0.1287506678940897,
+ "code" : "HKD"
+ },
"GMD" : {
- "value" : 0.01960770626777586,
+ "value" : 0.019538733487572093,
"code" : "GMD"
},
"VND" : {
- "value" : 4.2314609118798262e-05,
+ "value" : 4.2734129612615116e-05,
"code" : "VND"
},
"LAK" : {
- "value" : 0.00011154489247862044,
+ "value" : 0.00011104941268670238,
"code" : "LAK"
},
"CUC" : {
@@ -416,31 +416,31 @@
"code" : "CUC"
},
"RON" : {
- "value" : 0.22484998965258446,
+ "value" : 0.22454733502731844,
"code" : "RON"
},
"MUR" : {
- "value" : 0.025406259426516191,
+ "value" : 0.025182333313917751,
"code" : "MUR"
},
"XAU" : {
- "value" : 1683.5016835016834,
+ "value" : 1703.5775127768316,
"code" : "XAU"
},
"GGP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "GGP"
},
"MXN" : {
- "value" : 0.041744615301807605,
+ "value" : 0.042242923507696914,
"code" : "MXN"
},
"BRL" : {
- "value" : 0.1942061619829083,
+ "value" : 0.17444688127354596,
"code" : "BRL"
},
"STD" : {
- "value" : 4.5345772756215923e-05,
+ "value" : 4.5348623160373496e-05,
"code" : "STD"
},
"AWG" : {
@@ -448,207 +448,207 @@
"code" : "AWG"
},
"MVR" : {
- "value" : 0.06489133491728756,
+ "value" : 0.064500561509638218,
"code" : "MVR"
},
"PAB" : {
- "value" : 1.0058196726258128,
+ "value" : 0.99986201904137229,
"code" : "PAB"
},
"TJS" : {
- "value" : 0.098278436964013977,
+ "value" : 0.097412120386184506,
"code" : "TJS"
},
"GNF" : {
- "value" : 0.00010593219940615134,
+ "value" : 0.00010582010184485331,
"code" : "GNF"
},
- "MGA" : {
- "value" : 0.00026666664199111336,
- "code" : "MGA"
- },
"XDR" : {
- "value" : 1.3702271562579644,
+ "value" : 1.3609015700721414,
"code" : "XDR"
},
+ "MGA" : {
+ "value" : 0.00026315787070637335,
+ "code" : "MGA"
+ },
"ETB" : {
- "value" : 0.030165555810018778,
+ "value" : 0.029670177993771397,
"code" : "ETB"
},
"ZAR" : {
- "value" : 0.055335746984228752,
+ "value" : 0.054493228235513627,
"code" : "ZAR"
},
"COP" : {
- "value" : 0.00026126714565643361,
+ "value" : 0.00025664057487488769,
"code" : "COP"
},
"IDR" : {
- "value" : 6.3021908333772976e-05,
+ "value" : 6.7689064865415524e-05,
"code" : "IDR"
},
"SVC" : {
- "value" : 0.11494949176806459,
+ "value" : 0.11426389314680591,
"code" : "SVC"
},
"CVE" : {
- "value" : 0.0098862689551164774,
+ "value" : 0.0098038869666734509,
"code" : "CVE"
},
"ETC" : {
- "value" : 5.2796897600000001,
+ "value" : 7.2231541899999998,
"code" : "ETC"
},
"TTD" : {
- "value" : 0.14887226283457553,
+ "value" : 0.14798210126888733,
"code" : "TTD"
},
- "GIP" : {
- "value" : 1.2450276707399821,
- "code" : "GIP"
- },
"DOGE" : {
- "value" : 0.00192362,
+ "value" : 0.0025989699999999999,
"code" : "DOGE"
},
"PYG" : {
- "value" : 0.00015526899341998326,
+ "value" : 0.00015310020011384212,
"code" : "PYG"
},
+ "GIP" : {
+ "value" : 1.24067939603727,
+ "code" : "GIP"
+ },
"MZN" : {
- "value" : 0.014918609215042903,
+ "value" : 0.014688520305931914,
"code" : "MZN"
},
"FKP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "FKP"
},
"KZT" : {
- "value" : 0.0023372595944447915,
+ "value" : 0.0023697191785614917,
"code" : "KZT"
},
+ "UGX" : {
+ "value" : 0.00026313554178804439,
+ "code" : "UGX"
+ },
"USD" : {
"value" : 1,
"code" : "USD"
},
- "UGX" : {
- "value" : 0.00026575637638229845,
- "code" : "UGX"
- },
"RWF" : {
- "value" : 0.0010695187165775397,
+ "value" : 0.0010666666666666667,
"code" : "RWF"
},
"GHS" : {
- "value" : 0.17122144240367509,
+ "value" : 0.1740631919011878,
"code" : "GHS"
},
"ARS" : {
- "value" : 0.015475326271333262,
+ "value" : 0.015043744274821046,
"code" : "ARS"
},
"JEP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "JEP"
},
"DOP" : {
- "value" : 0.018381039913215023,
+ "value" : 0.018168474923498455,
"code" : "DOP"
},
"LBP" : {
- "value" : 0.00066103993702922969,
+ "value" : 0.00066104206291359559,
"code" : "LBP"
},
"BZD" : {
- "value" : 0.50296750829896386,
+ "value" : 0.49606521074834409,
"code" : "BZD"
},
"ADA" : {
- "value" : 0.033353590000000002,
+ "value" : 0.052150099999999998,
"code" : "ADA"
},
"BTN" : {
- "value" : 0.013189215653172165,
+ "value" : 0.013230175012724121,
"code" : "BTN"
},
- "YER" : {
- "value" : 0.0039944020213208056,
- "code" : "YER"
- },
"MYR" : {
- "value" : 0.23054565512641181,
+ "value" : 0.23073165700631676,
"code" : "MYR"
},
+ "YER" : {
+ "value" : 0.0039940083962923187,
+ "code" : "YER"
+ },
"JMD" : {
- "value" : 0.0073790145990114339,
+ "value" : 0.0070011106561944977,
"code" : "JMD"
},
"TOP" : {
- "value" : 0.42687539165817184,
+ "value" : 0.43208676302201482,
"code" : "TOP"
},
"SOS" : {
- "value" : 0.0017241369262788262,
+ "value" : 0.0017152648717675355,
"code" : "SOS"
},
"TMT" : {
- "value" : 0.2857142857142857,
+ "value" : 0.28490028490028491,
"code" : "TMT"
},
"MDL" : {
- "value" : 0.055652381423836141,
+ "value" : 0.056081610408118772,
"code" : "MDL"
},
"XOF" : {
- "value" : 0.0016611286520021387,
+ "value" : 0.0016528916549421002,
"code" : "XOF"
},
"ETH" : {
- "value" : 157.96081169999999,
+ "value" : 214.27102477,
"code" : "ETH"
},
"TWD" : {
- "value" : 0.033287797845067801,
+ "value" : 0.033492940592432512,
"code" : "TWD"
},
"BBD" : {
- "value" : 0.49819628036693153,
+ "value" : 0.495227002153247,
"code" : "BBD"
},
"CAD" : {
- "value" : 0.7118899443255855,
+ "value" : 0.71339397182093811,
"code" : "CAD"
},
"CNY" : {
- "value" : 0.1416652544022039,
+ "value" : 0.14135866028177871,
"code" : "CNY"
},
- "JOD" : {
- "value" : 1.4103576667042761,
- "code" : "JOD"
- },
"XPF" : {
- "value" : 0.0091404670413039422,
+ "value" : 0.0090576756555039873,
"code" : "XPF"
},
+ "JOD" : {
+ "value" : 1.40943532383186,
+ "code" : "JOD"
+ },
"XLM" : {
- "value" : 0.048814800000000012,
+ "value" : 0.072964390000000004,
"code" : "XLM"
},
"IQD" : {
- "value" : 0.00083998320033599355,
+ "value" : 0.00084033613445378156,
"code" : "IQD"
},
"HNL" : {
- "value" : 0.040127784522143689,
+ "value" : 0.039951436631687987,
"code" : "HNL"
},
"AED" : {
- "value" : 0.27225389745066897,
+ "value" : 0.27224589249009706,
"code" : "AED"
},
"EOS" : {
- "value" : 2.4907822500000001,
+ "value" : 2.81651052,
"code" : "EOS"
},
"ERN" : {
@@ -656,31 +656,31 @@
"code" : "ERN"
},
"KES" : {
- "value" : 0.0094425314505227759,
+ "value" : 0.0094294801475732493,
"code" : "KES"
},
"KMF" : {
- "value" : 0.0022229613123993688,
+ "value" : 0.0022038548842307978,
"code" : "KMF"
},
- "DZD" : {
- "value" : 0.0078708926150271707,
- "code" : "DZD"
- },
"MKD" : {
- "value" : 0.017705324756024165,
+ "value" : 0.017597338268847067,
"code" : "MKD"
},
+ "DZD" : {
+ "value" : 0.007792045272406397,
+ "code" : "DZD"
+ },
"BSV" : {
- "value" : 185.82623583,
+ "value" : 215.74796007,
"code" : "BSV"
},
"BWP" : {
- "value" : 0.083788711012903277,
+ "value" : 0.082342892437373499,
"code" : "BWP"
},
"SBD" : {
- "value" : 0.12042531330451635,
+ "value" : 0.12094835118369733,
"code" : "SBD"
},
"AZN" : {
@@ -688,43 +688,43 @@
"code" : "AZN"
},
"BCH" : {
- "value" : 231.68666519000001,
+ "value" : 272.65756047000002,
"code" : "BCH"
},
"KGS" : {
- "value" : 0.01285284249801626,
+ "value" : 0.012673660677005915,
"code" : "KGS"
},
"BYN" : {
- "value" : 0.40139444429949644,
+ "value" : 0.4105353216380031,
"code" : "BYN"
},
"KHR" : {
- "value" : 0.0002457002245108652,
+ "value" : 0.0002433089816541478,
"code" : "KHR"
},
"NEO" : {
- "value" : 7.2695771100000002,
+ "value" : 11.38753322,
"code" : "NEO"
},
"ZMK" : {
- "value" : 0.00011109625392516102,
+ "value" : 0.00011109625392516104,
"code" : "ZMK"
},
"HTG" : {
- "value" : 0.010608878549240103,
+ "value" : 0.0093168086688059926,
"code" : "HTG"
},
"CZK" : {
- "value" : 0.040384258054976828,
+ "value" : 0.039788953026912773,
"code" : "CZK"
},
"BAM" : {
- "value" : 0.55849946830850616,
+ "value" : 0.55437320071248042,
"code" : "BAM"
},
"IMP" : {
- "value" : 1.2450276707399821,
+ "value" : 1.24067939603727,
"code" : "IMP"
}
}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/FunctionDescriptions.json
index 6b767bdf9..ea5261e51 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/FunctionDescriptions.json
@@ -1,4 +1,90 @@
{
+ "financial": [
+ {
+ "prototypeExpressions": [
+ "present value of 1000 after __timespan at 10%",
+ "present value of 1000 over __timespan at 10%"
+ ],
+ "identifier": "presentValue"
+ },
+ {
+ "prototypeExpressions": [
+ "annual return on 500 invested 1000 returned after __timespan",
+ "yearly return on 500 invested 1000 returned after __timespan",
+ "annual return on 500 invested 1000 returned over __timespan",
+ "yearly return on 500 invested 1000 returned over __timespan"
+ ],
+ "identifier": "returnOnInvestmentAfter"
+ },
+ {
+ "identifier": "returnOnInvestment",
+ "prototypeExpressions": [
+ "500 invested 1000 returned"
+ ]
+ },
+ {
+ "identifier": "totalLoanRepayment",
+ "prototypeExpressions": [
+ "total repayment on 10000 for __timespan at 6%",
+ "total repayment on 10000 after __timespan at 6%",
+ "total repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "annual repayment on 10000 for __timespan at 6%",
+ "annual repayment on 10000 after __timespan at 6%",
+ "annual repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 over __timespan at 6%",
+ "yearly repayment on 10000 after __timespan at 6%",
+ "yearly repayment on 10000 for __timespan at 6%"
+ ],
+ "identifier": "annualLoanRepayment"
+ },
+ {
+ "identifier": "monthlyLoanRepayment",
+ "prototypeExpressions": [
+ "monthly repayment on 10000 for __timespan at 6%",
+ "monthly repayment on 10000 after __timespan at 6%",
+ "monthly repayment on 10000 over __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "total interest on 10000 for __timespan at 6%",
+ "total interest on 10000 after __timespan at 6%",
+ "total interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "totalInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "annualInterestOnLoanRepayment",
+ "prototypeExpressions": [
+ "annual interest on 10000 for __timespan at 6%",
+ "annual interest on 10000 after __timespan at 6%",
+ "annual interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 over __timespan at 6%",
+ "yearly interest on 10000 after __timespan at 6%",
+ "yearly interest on 10000 for __timespan at 6%"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "monthly interest on 10000 for __timespan at 6%",
+ "monthly interest on 10000 after __timespan at 6%",
+ "monthly interest on 10000 over __timespan at 6%"
+ ],
+ "identifier": "monthlyInterestOnLoanRepayment"
+ },
+ {
+ "identifier": "compoundInterest",
+ "prototypeExpressions": [
+ "100 after __timespan at 10%",
+ "100 for __timespan at 10%",
+ "100 over __timespan at 10%"
+ ]
+ }
+ ],
"percentage": [
{
"prototypeExpressions": [
@@ -138,6 +224,12 @@
"__unit in __unit_expression"
],
"identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit in __timespan"
+ ],
+ "identifier": "unitInTimespan"
}
],
"datetime": [
@@ -183,6 +275,18 @@
],
"identifier": "calendarUnitExpressionAfterDate"
},
+ {
+ "prototypeExpressions": [
+ "__timespan before __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan ago"
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
{
"prototypeExpressions": [
"new timestamp"
@@ -206,4 +310,4 @@
"identifier": "differenceBetweenTimezones"
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/LocalizedFixtures.json
index 364ca565a..e3332a1d4 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/LocalizedFixtures.json
@@ -1,13 +1,5 @@
{
"fixtures": {
- "dateIntervalPrepositions": [
- "between ",
- "until ",
- "before ",
- "to ",
- "from ",
- "after "
- ],
"decimalPlacesTypes": [
"dp",
"digit",
@@ -94,6 +86,10 @@
"november",
"december"
],
+ "colons": [
+ ":",
+ ":"
+ ],
"additionOperators": [
"plus"
],
@@ -140,4 +136,4 @@
"sun"
]
}
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/UnitDescriptions.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/UnitDescriptions.json
index 5306a0a54..025cac593 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/UnitDescriptions.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/Base.lproj/UnitDescriptions.json
@@ -1579,7 +1579,8 @@
{
"symbol" : "USD",
"aliases" : [
- "usd"
+ "usd",
+ "US$"
],
"identifier" : "usd"
}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/FunctionDescriptions.json
index 77e10f163..17cd6316d 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/FunctionDescriptions.json
@@ -80,36 +80,36 @@
{
"identifier": "remainder",
"prototypeExpressions": [
- "Rest von 20 durch 3",
- "Rest von 20 geteilt durch 3"
+ "rest von 20 durch 3",
+ "rest von 20 geteilt durch 3"
]
},
{
"identifier": "halfOf",
"prototypeExpressions": [
- "Hälfte von 20"
+ "hälfte von 20"
]
},
{
"identifier": "lesserOf",
"prototypeExpressions": [
- "kleinere Wert von 2 und 30",
- "kleinere Zahl von 2 und 30"
+ "kleinere wert von 2 und 30",
+ "kleinere zahl von 2 und 30"
]
},
{
"identifier": "greaterOf",
"prototypeExpressions": [
- "größere Wert von 2 und 30",
- "größere Zahl von 2 und 30",
- "Zahl von 2 und 30 ist größer",
- "welche der Zahlen von 2 und 30 ist größer"
+ "größere wert von 2 und 30",
+ "größere zahl von 2 und 30",
+ "zahl von 2 und 30 ist größer",
+ "welche der zahlen von 2 und 30 ist größer"
]
},
{
"identifier": "midpoint",
"prototypeExpressions": [
- "Mitte zwischen 2 und 32"
+ "mitte zwischen 2 und 32"
]
},
{
@@ -128,7 +128,7 @@
},
{
"prototypeExpressions": [
- "Zufallszahl zwischen 1 und 5",
+ "zufallszahl zwischen 1 und 5",
"zufällig zwischen 1 und 5"
],
"identifier": "makeRandomNumber"
@@ -186,7 +186,7 @@
{
"identifier": "generateTimestamp",
"prototypeExpressions": [
- "neuer Zeitstempel"
+ "neuer zeitstempel"
]
},
{
@@ -198,17 +198,17 @@
},
{
"prototypeExpressions": [
- "__timezone Zeit",
- "Zeit in __timezone"
+ "__timezone zeit",
+ "zeit in __timezone"
],
"identifier": "timeInTimezone"
},
{
"prototypeExpressions": [
- "Zeitdifferenz zwischen __timezone und __timezone",
- "Differenz zwischen __timezone und __timezone",
- "Zeitdifferenz zwischen __timezone & __timezone",
- "Differenz zwischen __timezone & __timezone"
+ "zeitdifferenz zwischen __timezone und __timezone",
+ "differenz zwischen __timezone und __timezone",
+ "zeitdifferenz zwischen __timezone & __timezone",
+ "differenz zwischen __timezone & __timezone"
],
"identifier": "differenceBetweenTimezones"
}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/LocalizedFixtures.json
index d04ea7105..7cb8c512f 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/LocalizedFixtures.json
@@ -97,7 +97,6 @@
"π"
],
"additionOperators": [
- "und"
],
"timespanTypes": [
"Zeitdauer",
@@ -141,13 +140,6 @@
"Son",
"So"
],
- "dateIntervalPrepositions": [
- " zwischen ",
- " bis ",
- " vor ",
- " von ",
- "hier"
- ],
"percentTypes": [
"Prozent",
"Prozentrechnung"
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/UnitDescriptions.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/UnitDescriptions.json
index f91743bfb..2d9c2a8bc 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/UnitDescriptions.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/de.lproj/UnitDescriptions.json
@@ -1560,4 +1560,4 @@
"identifier": "nanohertz"
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/FunctionDescriptions.json
index 1a1282394..257145396 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/FunctionDescriptions.json
@@ -134,6 +134,12 @@
"__unit в __unit_expression"
],
"identifier": "unitInUnitExpression"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit в __timespan"
+ ],
+ "identifier": "unitInTimespan"
}
],
"datetime": [
@@ -165,6 +171,13 @@
],
"identifier": "intervalBetweenTimestamps"
},
+ {
+ "prototypeExpressions": [
+ "__timespan назад",
+ "__timespan тому назад",
+ ],
+ "identifier": "calendarUnitExpressionAgo"
+ },
{
"prototypeExpressions": [
"__unit с __datestamp"
@@ -183,6 +196,12 @@
],
"identifier": "calendarUnitExpressionAfterDate"
},
+ {
+ "prototypeExpressions": [
+ "__timespan до __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionBeforeDate"
+ },
{
"identifier": "timeInTimezone",
"prototypeExpressions": [
@@ -198,4 +217,4 @@
"identifier": "differenceBetweenTimezones"
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/LocalizedFixtures.json
index d8774c436..9a0e5c766 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/ru.lproj/LocalizedFixtures.json
@@ -145,15 +145,6 @@
"Чт",
"Чтв"
],
- "dateIntervalPrepositions": [
- "с ",
- "по ",
- "до ",
- "и ",
- "между ",
- " ночи",
- " дня"
- ],
"percentTypes": [
"процент"
]
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
index 48d6dfca1..edf339b38 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/FunctionDescriptions.json
@@ -49,19 +49,6 @@
"什么的20%是30"
]
},
- {
- "identifier": "isPercentOffWhat",
- "prototypeExpressions": [
- "30是多少减20%",
- "30是多少减去20%",
- "30 是多少减 20%",
- "30 是多少减去 20%",
- "30是什么减20%",
- "30是什么减去20%",
- "30 是什么减 20%",
- "30 是什么减去 20%"
- ]
- },
{
"identifier": "isPercentOffWhatClassic",
"prototypeExpressions": [
@@ -164,6 +151,7 @@
"prototypeExpressions": [
"20 的一半为",
"20 的一半是",
+ "20 的一般",
"20的一半为",
"20的一半是"
]
@@ -227,7 +215,10 @@
"prototypeExpressions": [
"1 到 5 之间的任意数",
"1 与 5 之间的任意数",
- "1 和 5 之间的任意数"
+ "1 和 5 之间的任意数",
+ "1到5之间的任意数",
+ "1与5之间的任意数",
+ "1和5之间的任意数"
]
}
],
@@ -288,4 +279,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings
index 2d93e247c..b0e20604e 100644
Binary files a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings and b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.stringsdict b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.stringsdict
index bbe889fa1..7a6219274 100644
Binary files a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.stringsdict and b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
index dbafbf71d..a1c37837a 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/LocalizedFixtures.json
@@ -1,23 +1,5 @@
{
"fixtures": {
- "dayOfWeekDateAliases": [
- "星期一",
- "星期二",
- "星期三",
- "星期四",
- "星期五",
- "星期六",
- "星期日",
- "星期天",
- "周一",
- "周二",
- "周三",
- "周四",
- "周五",
- "周六",
- "周日",
- "周天"
- ],
"decimalPlacesTypes": [
"小数"
],
@@ -25,14 +7,19 @@
"乘数"
],
"divisionOperators": [
- "÷",
+ "除以",
+ "每"
+ ],
+ "reverseDivisionOperators": [
+ "除"
],
"roundingConverters": [
- "四舍五入"
+ "四舍五入",
+ "舍入"
],
"multiplicationOperators": [
- "×",
- "x",
+ "乘",
+ "乘以"
],
"tomorrowDateAliases": [
"明天",
@@ -40,8 +27,7 @@
],
"lessThanOrEqualToOperators": [
"<=",
- "=<",
- "小于等于"
+ "=<"
],
"laptimeTypes": [
"圈速",
@@ -57,8 +43,8 @@
"昨日"
],
"subtractionOperators": [
- "−",
- "–",
+ "减",
+ "减去"
],
"todayDateAliases": [
"今天",
@@ -105,6 +91,8 @@
"12月"
],
"additionOperators": [
+ "加",
+ "加上"
],
"timespanTypes": [
"周期"
@@ -114,12 +102,30 @@
],
"converterSymbols": [
"到",
- "为"
+ "为",
+ "作为"
],
"greaterThanOrEqualToOperators": [
">=",
- "=>",
- "大于等于"
+ "=>"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "星期天",
+ "周一",
+ "周二",
+ "周三",
+ "周四",
+ "周五",
+ "周六",
+ "周日",
+ "周天"
],
"fractionTypes": [
"分之",
@@ -127,17 +133,7 @@
],
"isNotEqualToOperators": [
"!=",
- "=!",
- "不等于"
- ],
- "dateIntervalPrepositions": [
- "之间 ",
- "直到 ",
- " 之前",
- "到 ",
- "从 ",
- " 后",
- " 之后"
+ "=!"
],
"percentTypes": [
"百分之",
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/UnitDescriptions.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/UnitDescriptions.json
index bfdabd32a..8fcda5e55 100644
--- a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/UnitDescriptions.json
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hans.lproj/UnitDescriptions.json
@@ -1242,7 +1242,8 @@
{
"symbol" : "week",
"aliases" : [
- "星期"
+ "周",
+ "星期"
],
"identifier" : "weeks"
},
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Cities.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Cities.json
new file mode 100644
index 000000000..c714ed87c
--- /dev/null
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Cities.json
@@ -0,0 +1,3565 @@
+[
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "上海",
+ "identifier" : "shanghai",
+ "population" : "22,315,474"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊斯坦堡",
+ "identifier" : "istanbul",
+ "population" : "14,804,116"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "America/Argentina/Buenos_Aires",
+ "name" : "布宜諾斯艾利斯",
+ "identifier" : "buenos aires",
+ "population" : "13,076,300"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "孟買",
+ "identifier" : "mumbai",
+ "population" : "12,691,836"
+ },
+ {
+ "elevation" : 2240,
+ "timezone_id" : "America/Mexico_City",
+ "name" : "墨西哥城",
+ "identifier" : "mexico city",
+ "population" : "12,294,193"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "北京",
+ "identifier" : "beijing",
+ "population" : "11,716,620"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Karachi",
+ "name" : "卡拉奇",
+ "identifier" : "karachi",
+ "population" : "11,624,219"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "天津",
+ "identifier" : "tianjin",
+ "population" : "11,090,314"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "廣州",
+ "identifier" : "guangzhou",
+ "population" : "11,071,424"
+ },
+ {
+ "elevation" : 227,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "新德里",
+ "identifier" : "delhi",
+ "population" : "10,927,986"
+ },
+ {
+ "elevation" : 144,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "莫斯科",
+ "identifier" : "moscow",
+ "population" : "10,381,222"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "深圳",
+ "identifier" : "shenzhen",
+ "population" : "10,358,381"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "達卡",
+ "identifier" : "dhaka",
+ "population" : "10,356,500"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "漢城",
+ "identifier" : "seoul",
+ "population" : "10,349,312"
+ },
+ {
+ "elevation" : 769,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "聖保羅",
+ "identifier" : "sao paulo",
+ "population" : "10,021,295"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "武漢市",
+ "identifier" : "wuhan",
+ "population" : "9,785,388"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "拉各斯",
+ "identifier" : "lagos",
+ "population" : "9,000,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "雅加達",
+ "identifier" : "jakarta",
+ "population" : "8,540,121"
+ },
+ {
+ "elevation" : 44,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "東京",
+ "identifier" : "tokyo",
+ "population" : "8,336,599"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "America/New_York",
+ "name" : "紐約",
+ "identifier" : "new york",
+ "population" : "8,175,133"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "東莞市",
+ "identifier" : "dongguan",
+ "population" : "8,000,000"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Taipei",
+ "name" : "台北",
+ "identifier" : "taipei",
+ "population" : "7,871,900"
+ },
+ {
+ "elevation" : 281,
+ "timezone_id" : "Africa/Kinshasa",
+ "name" : "金夏沙",
+ "identifier" : "kinshasa",
+ "population" : "7,785,965"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "開羅",
+ "identifier" : "cairo",
+ "population" : "7,734,614"
+ },
+ {
+ "elevation" : 2582,
+ "timezone_id" : "America/Bogota",
+ "name" : "波哥大",
+ "identifier" : "bogota",
+ "population" : "7,674,366"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Europe/London",
+ "name" : "倫敦",
+ "identifier" : "london",
+ "population" : "7,556,900"
+ },
+ {
+ "elevation" : 225,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "重慶市",
+ "identifier" : "chongqing",
+ "population" : "7,457,600"
+ },
+ {
+ "elevation" : 499,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "成都市",
+ "identifier" : "chengdu",
+ "population" : "7,415,590"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "Asia/Baghdad",
+ "name" : "巴格達",
+ "identifier" : "baghdad",
+ "population" : "7,216,000"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南京",
+ "identifier" : "nanjing",
+ "population" : "7,165,292"
+ },
+ {
+ "elevation" : 1178,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "德黑蘭",
+ "identifier" : "tehran",
+ "population" : "7,153,309"
+ },
+ {
+ "elevation" : 287,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "南充",
+ "identifier" : "nanchong",
+ "population" : "7,150,000"
+ },
+ {
+ "elevation" : 60,
+ "timezone_id" : "Asia/Hong_Kong",
+ "name" : "香港",
+ "identifier" : "hong kong",
+ "population" : "7,012,738"
+ },
+ {
+ "elevation" : 416,
+ "timezone_id" : "Asia/Shanghai",
+ "name" : "西安",
+ "identifier" : "xi'an",
+ "population" : "6,501,190"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "里約熱內盧",
+ "identifier" : "rio de janeiro",
+ "population" : "6,023,699"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "曼谷",
+ "identifier" : "bangkok",
+ "population" : "5,104,476"
+ },
+ {
+ "elevation" : 914,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "班加羅爾",
+ "identifier" : "bengaluru",
+ "population" : "5,104,047"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "聖彼得堡",
+ "identifier" : "saint petersburg",
+ "population" : "5,028,000"
+ },
+ {
+ "elevation" : 556,
+ "timezone_id" : "America/Santiago",
+ "name" : "聖地亞哥",
+ "identifier" : "santiago",
+ "population" : "4,837,295"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "加爾各答",
+ "identifier" : "kolkata",
+ "population" : "4,631,392"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "悉尼",
+ "identifier" : "sydney",
+ "population" : "4,627,345"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Asia/Yangon",
+ "name" : "仰光",
+ "identifier" : "yangon",
+ "population" : "4,477,638"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "欽奈",
+ "identifier" : "chennai",
+ "population" : "4,328,063"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "墨爾本",
+ "identifier" : "melbourne",
+ "population" : "4,246,375"
+ },
+ {
+ "elevation" : 612,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "利雅得",
+ "identifier" : "riyadh",
+ "population" : "4,205,961"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "洛杉磯",
+ "identifier" : "los angeles",
+ "population" : "3,971,883"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Dhaka",
+ "name" : "吉大港市",
+ "identifier" : "chittagong",
+ "population" : "3,920,222"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "亞歷山德里亞",
+ "identifier" : "alexandria",
+ "population" : "3,811,516"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "艾哈邁達巴德",
+ "identifier" : "ahmedabad",
+ "population" : "3,719,710"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Seoul",
+ "name" : "釜山",
+ "identifier" : "busan",
+ "population" : "3,678,555"
+ },
+ {
+ "elevation" : 76,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿比讓",
+ "identifier" : "abidjan",
+ "population" : "3,677,115"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "鹿野",
+ "identifier" : "kano",
+ "population" : "3,626,068"
+ },
+ {
+ "elevation" : 515,
+ "timezone_id" : "Asia/Kolkata",
+ "name" : "海得拉巴",
+ "identifier" : "hyderabad",
+ "population" : "3,597,816"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "橫濱",
+ "identifier" : "yokohama",
+ "population" : "3,574,443"
+ },
+ {
+ "elevation" : 181,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊巴丹島",
+ "identifier" : "ibadan",
+ "population" : "3,565,108"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Singapore",
+ "name" : "新加坡",
+ "identifier" : "singapore",
+ "population" : "3,547,809"
+ },
+ {
+ "elevation" : 874,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "安卡拉",
+ "identifier" : "ankara",
+ "population" : "3,517,182"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "胡志明市",
+ "identifier" : "ho chi minh city",
+ "population" : "3,467,331"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "開普敦",
+ "identifier" : "cape town",
+ "population" : "3,433,441"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "柏林",
+ "identifier" : "berlin",
+ "population" : "3,426,354"
+ },
+ {
+ "elevation" : 665,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "馬德里",
+ "identifier" : "madrid",
+ "population" : "3,255,944"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Asia/Pyongyang",
+ "name" : "平壤",
+ "identifier" : "pyongyang",
+ "population" : "3,222,000"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "卡薩布蘭卡",
+ "identifier" : "casablanca",
+ "population" : "3,144,909"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "中山",
+ "identifier" : "zhongshan",
+ "population" : "3,121,275"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "德班",
+ "identifier" : "durban",
+ "population" : "3,120,282"
+ },
+ {
+ "elevation" : 1798,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "喀布爾",
+ "identifier" : "kabul",
+ "population" : "3,043,532"
+ },
+ {
+ "elevation" : 862,
+ "timezone_id" : "Asia/Urumqi",
+ "name" : "烏魯木齊",
+ "identifier" : "urumqi",
+ "population" : "3,029,372"
+ },
+ {
+ "elevation" : 887,
+ "timezone_id" : "America/Caracas",
+ "name" : "加拉加斯",
+ "identifier" : "caracas",
+ "population" : "3,000,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "迪拜",
+ "identifier" : "dubai",
+ "population" : "2,956,587"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "吉達",
+ "identifier" : "jeddah",
+ "population" : "2,867,446"
+ },
+ {
+ "elevation" : 187,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "基輔",
+ "identifier" : "kyiv",
+ "population" : "2,797,553"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Africa/Luanda",
+ "name" : "羅安達",
+ "identifier" : "luanda",
+ "population" : "2,776,168"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Asia/Manila",
+ "name" : "奎松市",
+ "identifier" : "quezon city",
+ "population" : "2,761,720"
+ },
+ {
+ "elevation" : 2405,
+ "timezone_id" : "Africa/Addis_Ababa",
+ "name" : "亞的斯亞貝巴(埃塞俄比亞首都",
+ "identifier" : "addis ababa",
+ "population" : "2,757,729"
+ },
+ {
+ "elevation" : 1684,
+ "timezone_id" : "Africa/Nairobi",
+ "name" : "內羅畢",
+ "identifier" : "nairobi",
+ "population" : "2,750,547"
+ },
+ {
+ "elevation" : 180,
+ "timezone_id" : "America/Chicago",
+ "name" : "芝加哥",
+ "identifier" : "chicago",
+ "population" : "2,720,546"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Bahia",
+ "name" : "薩爾瓦多",
+ "identifier" : "salvador",
+ "population" : "2,711,840"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Africa/Dar_es_Salaam",
+ "name" : "達累斯薩拉姆",
+ "identifier" : "dar es salaam",
+ "population" : "2,698,652"
+ },
+ {
+ "elevation" : 175,
+ "timezone_id" : "America/Toronto",
+ "name" : "多倫多",
+ "identifier" : "toronto",
+ "population" : "2,600,000"
+ },
+ {
+ "elevation" : 24,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "大阪",
+ "identifier" : "osaka",
+ "population" : "2,592,413"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Mogadishu",
+ "name" : "摩加迪沙",
+ "identifier" : "mogadishu",
+ "population" : "2,587,183"
+ },
+ {
+ "elevation" : 122,
+ "timezone_id" : "Europe/Istanbul",
+ "name" : "伊茲密爾",
+ "identifier" : "izmir",
+ "population" : "2,500,603"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "達喀爾",
+ "identifier" : "dakar",
+ "population" : "2,476,400"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Africa/Cairo",
+ "name" : "吉薩",
+ "identifier" : "giza",
+ "population" : "2,443,203"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Fortaleza",
+ "name" : "福塔雷薩",
+ "identifier" : "fortaleza",
+ "population" : "2,400,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Jakarta",
+ "name" : "泗水",
+ "identifier" : "surabaya",
+ "population" : "2,374,658"
+ },
+ {
+ "elevation" : 872,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "貝洛奧里藏特",
+ "identifier" : "belo horizonte",
+ "population" : "2,373,224"
+ },
+ {
+ "elevation" : 52,
+ "timezone_id" : "Europe/Rome",
+ "name" : "羅馬",
+ "identifier" : "rome",
+ "population" : "2,318,895"
+ },
+ {
+ "elevation" : 1003,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "馬什哈德",
+ "identifier" : "mashhad",
+ "population" : "2,307,177"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/New_York",
+ "name" : "布魯克林區",
+ "identifier" : "brooklyn",
+ "population" : "2,300,664"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "America/Chicago",
+ "name" : "休斯頓",
+ "identifier" : "houston",
+ "population" : "2,296,224"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "America/New_York",
+ "name" : "皇后區",
+ "identifier" : "queens",
+ "population" : "2,272,771"
+ },
+ {
+ "elevation" : 1136,
+ "timezone_id" : "America/Sao_Paulo",
+ "name" : "巴西利亞",
+ "identifier" : "brasilia",
+ "population" : "2,207,718"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "America/Santo_Domingo",
+ "name" : "聖多明哥",
+ "identifier" : "santo domingo",
+ "population" : "2,201,941"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "名古屋",
+ "identifier" : "nagoya",
+ "population" : "2,191,279"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "布里斯班",
+ "identifier" : "brisbane",
+ "population" : "2,189,878"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Havana",
+ "name" : "哈瓦那",
+ "identifier" : "havana",
+ "population" : "2,163,824"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Europe/Paris",
+ "name" : "巴黎",
+ "identifier" : "paris",
+ "population" : "2,138,551"
+ },
+ {
+ "elevation" : 1767,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "約翰內斯堡",
+ "identifier" : "johannesburg",
+ "population" : "2,026,469"
+ },
+ {
+ "elevation" : 787,
+ "timezone_id" : "Asia/Almaty",
+ "name" : "阿拉木圖",
+ "identifier" : "almaty",
+ "population" : "2,000,900"
+ },
+ {
+ "elevation" : 424,
+ "timezone_id" : "Asia/Tashkent",
+ "name" : "塔什幹",
+ "identifier" : "tashkent",
+ "population" : "1,978,028"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "阿爾及爾",
+ "identifier" : "algiers",
+ "population" : "1,977,663"
+ },
+ {
+ "elevation" : 381,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "喀土穆",
+ "identifier" : "khartoum",
+ "population" : "1,974,647"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Africa/Accra",
+ "name" : "阿克拉",
+ "identifier" : "accra",
+ "population" : "1,963,264"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "瓜亞基爾",
+ "identifier" : "guayaquil",
+ "population" : "1,952,029"
+ },
+ {
+ "elevation" : 2253,
+ "timezone_id" : "Asia/Aden",
+ "name" : "薩那",
+ "identifier" : "sanaa",
+ "population" : "1,937,451"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "貝魯特",
+ "identifier" : "beirut",
+ "population" : "1,916,100"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Australia/Perth",
+ "name" : "珀斯",
+ "identifier" : "perth",
+ "population" : "1,896,548"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "札幌",
+ "identifier" : "sapporo",
+ "population" : "1,883,027"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Bucharest",
+ "name" : "布加勒斯特",
+ "identifier" : "bucharest",
+ "population" : "1,877,155"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "卡馬耶納",
+ "identifier" : "camayenne",
+ "population" : "1,871,242"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Africa/Conakry",
+ "name" : "科納克里",
+ "identifier" : "conakry",
+ "population" : "1,767,200"
+ },
+ {
+ "elevation" : 222,
+ "timezone_id" : "Europe/Minsk",
+ "name" : "明斯克",
+ "identifier" : "minsk",
+ "population" : "1,742,124"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/Budapest",
+ "name" : "布達佩斯",
+ "identifier" : "budapest",
+ "population" : "1,741,041"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢堡",
+ "identifier" : "hamburg",
+ "population" : "1,739,117"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "華沙",
+ "identifier" : "warsaw",
+ "population" : "1,702,139"
+ },
+ {
+ "elevation" : 1632,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "索韋托",
+ "identifier" : "soweto",
+ "population" : "1,695,047"
+ },
+ {
+ "elevation" : 193,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "維也納",
+ "identifier" : "vienna",
+ "population" : "1,691,468"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "拉巴特",
+ "identifier" : "rabat",
+ "population" : "1,655,753"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴塞羅納",
+ "identifier" : "barcelona",
+ "population" : "1,621,537"
+ },
+ {
+ "elevation" : 1332,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "比勒陀利亞",
+ "identifier" : "pretoria",
+ "population" : "1,619,438"
+ },
+ {
+ "elevation" : 401,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "阿勒頗",
+ "identifier" : "aleppo",
+ "population" : "1,602,264"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Manila",
+ "name" : "馬尼拉",
+ "identifier" : "manila",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Toronto",
+ "name" : "蒙特利爾",
+ "identifier" : "montreal",
+ "population" : "1,600,000"
+ },
+ {
+ "elevation" : 626,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "卡杜納",
+ "identifier" : "kaduna",
+ "population" : "1,582,102"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Asia/Phnom_Penh",
+ "name" : "金邊",
+ "identifier" : "phnom penh",
+ "population" : "1,573,544"
+ },
+ {
+ "elevation" : 701,
+ "timezone_id" : "Asia/Damascus",
+ "name" : "大馬士革",
+ "identifier" : "damascus",
+ "population" : "1,569,394"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "America/New_York",
+ "name" : "費城",
+ "identifier" : "philadelphia",
+ "population" : "1,567,442"
+ },
+ {
+ "elevation" : 366,
+ "timezone_id" : "America/Phoenix",
+ "name" : "鳳凰",
+ "identifier" : "phoenix",
+ "population" : "1,563,025"
+ },
+ {
+ "elevation" : 1578,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "伊斯法罕",
+ "identifier" : "isfahan",
+ "population" : "1,547,164"
+ },
+ {
+ "elevation" : 1494,
+ "timezone_id" : "Africa/Harare",
+ "name" : "哈拉雷",
+ "identifier" : "harare",
+ "population" : "1,542,813"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "科比",
+ "identifier" : "kobe",
+ "population" : "1,528,478"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "斯德哥爾摩",
+ "identifier" : "stockholm",
+ "population" : "1,515,017"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "曼哈頓",
+ "identifier" : "manhattan",
+ "population" : "1,487,536"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "America/Asuncion",
+ "name" : "亞松森",
+ "identifier" : "asuncion",
+ "population" : "1,482,200"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "America/Recife",
+ "name" : "累西腓",
+ "identifier" : "recife",
+ "population" : "1,478,098"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "America/Chicago",
+ "name" : "聖安東尼奧",
+ "identifier" : "san antonio",
+ "population" : "1,469,845"
+ },
+ {
+ "elevation" : 270,
+ "timezone_id" : "Africa/Accra",
+ "name" : "庫馬西",
+ "identifier" : "kumasi",
+ "population" : "1,468,609"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "哥打巴魯",
+ "identifier" : "kota bharu",
+ "population" : "1,459,994"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "京都",
+ "identifier" : "kyoto",
+ "population" : "1,459,640"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Asia/Kuala_Lumpur",
+ "name" : "吉隆坡",
+ "identifier" : "kuala lumpur",
+ "population" : "1,453,975"
+ },
+ {
+ "elevation" : 1341,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡拉伊",
+ "identifier" : "karaj",
+ "population" : "1,448,075"
+ },
+ {
+ "elevation" : 1296,
+ "timezone_id" : "Asia/Kathmandu",
+ "name" : "加德滿都",
+ "identifier" : "kathmandu",
+ "population" : "1,442,271"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "河內",
+ "identifier" : "hanoi",
+ "population" : "1,431,270"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "哈爾科夫",
+ "identifier" : "kharkiv",
+ "population" : "1,430,885"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Argentina/Cordoba",
+ "name" : "科爾多瓦",
+ "identifier" : "cordoba",
+ "population" : "1,428,214"
+ },
+ {
+ "elevation" : 1396,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "大不里士",
+ "identifier" : "tabriz",
+ "population" : "1,424,641"
+ },
+ {
+ "elevation" : 164,
+ "timezone_id" : "Asia/Novosibirsk",
+ "name" : "新西伯利亞",
+ "identifier" : "novosibirsk",
+ "population" : "1,419,007"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Belem",
+ "name" : "貝倫",
+ "identifier" : "belem",
+ "population" : "1,407,737"
+ },
+ {
+ "elevation" : 2854,
+ "timezone_id" : "America/Guayaquil",
+ "name" : "基多",
+ "identifier" : "quito",
+ "population" : "1,399,814"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "聖地亞哥",
+ "identifier" : "san diego",
+ "population" : "1,394,928"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "福岡",
+ "identifier" : "fukuoka",
+ "population" : "1,392,289"
+ },
+ {
+ "elevation" : 1274,
+ "timezone_id" : "Indian/Antananarivo",
+ "name" : "塔那那利佛",
+ "identifier" : "antananarivo",
+ "population" : "1,391,433"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "America/New_York",
+ "name" : "布朗克斯",
+ "identifier" : "the bronx",
+ "population" : "1,385,108"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "盧本巴希",
+ "identifier" : "lubumbashi",
+ "population" : "1,373,770"
+ },
+ {
+ "elevation" : 433,
+ "timezone_id" : "America/La_Paz",
+ "name" : "聖克魯斯-德拉塞拉",
+ "identifier" : "santa cruz de la sierra",
+ "population" : "1,364,389"
+ },
+ {
+ "elevation" : 1223,
+ "timezone_id" : "Africa/Kampala",
+ "name" : "坎帕拉",
+ "identifier" : "kampala",
+ "population" : "1,353,189"
+ },
+ {
+ "elevation" : 255,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "葉卡捷琳堡",
+ "identifier" : "yekaterinburg",
+ "population" : "1,349,772"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Africa/Douala",
+ "name" : "杜阿拉",
+ "identifier" : "douala",
+ "population" : "1,338,082"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "沙迦",
+ "identifier" : "sharjah",
+ "population" : "1,324,473"
+ },
+ {
+ "elevation" : 333,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥加",
+ "identifier" : "mecca",
+ "population" : "1,323,624"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "望加錫",
+ "identifier" : "makassar",
+ "population" : "1,321,717"
+ },
+ {
+ "elevation" : 1124,
+ "timezone_id" : "America/Ojinaga",
+ "name" : "華雷斯",
+ "identifier" : "juarez",
+ "population" : "1,321,004"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "川崎",
+ "identifier" : "kawasaki",
+ "population" : "1,306,785"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "America/Tijuana",
+ "name" : "蒂華納",
+ "identifier" : "tijuana",
+ "population" : "1,300,983"
+ },
+ {
+ "elevation" : 139,
+ "timezone_id" : "America/Chicago",
+ "name" : "達拉斯",
+ "identifier" : "dallas",
+ "population" : "1,300,092"
+ },
+ {
+ "elevation" : 603,
+ "timezone_id" : "Asia/Riyadh",
+ "name" : "麥地那",
+ "identifier" : "medina",
+ "population" : "1,300,000"
+ },
+ {
+ "elevation" : 726,
+ "timezone_id" : "Africa/Douala",
+ "name" : "雅溫得",
+ "identifier" : "yaounde",
+ "population" : "1,299,369"
+ },
+ {
+ "elevation" : 338,
+ "timezone_id" : "Africa/Bamako",
+ "name" : "巴馬科",
+ "identifier" : "bamako",
+ "population" : "1,297,281"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "布拉柴維爾",
+ "identifier" : "brazzaville",
+ "population" : "1,284,609"
+ },
+ {
+ "elevation" : 141,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "下諾夫哥羅德",
+ "identifier" : "nizhniy novgorod",
+ "population" : "1,284,164"
+ },
+ {
+ "elevation" : 757,
+ "timezone_id" : "Asia/Amman",
+ "name" : "安曼",
+ "identifier" : "amman",
+ "population" : "1,275,857"
+ },
+ {
+ "elevation" : 120,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "貝爾格萊德",
+ "identifier" : "belgrade",
+ "population" : "1,273,651"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "America/Montevideo",
+ "name" : "蒙得維的亞",
+ "identifier" : "montevideo",
+ "population" : "1,270,737"
+ },
+ {
+ "elevation" : 1277,
+ "timezone_id" : "Africa/Lusaka",
+ "name" : "盧薩卡",
+ "identifier" : "lusaka",
+ "population" : "1,267,440"
+ },
+ {
+ "elevation" : 524,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "慕尼黑",
+ "identifier" : "munich",
+ "population" : "1,260,391"
+ },
+ {
+ "elevation" : 1545,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "設拉子",
+ "identifier" : "shiraz",
+ "population" : "1,249,942"
+ },
+ {
+ "elevation" : 127,
+ "timezone_id" : "Europe/Rome",
+ "name" : "米蘭",
+ "identifier" : "milan",
+ "population" : "1,236,837"
+ },
+ {
+ "elevation" : 53,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "太子港",
+ "identifier" : "port-au-prince",
+ "population" : "1,234,742"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Australia/Adelaide",
+ "name" : "阿德萊德",
+ "identifier" : "adelaide",
+ "population" : "1,225,235"
+ },
+ {
+ "elevation" : 391,
+ "timezone_id" : "Africa/Khartoum",
+ "name" : "恩杜曼",
+ "identifier" : "omdurman",
+ "population" : "1,200,000"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "ita玉",
+ "identifier" : "saitama",
+ "population" : "1,193,350"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬普托",
+ "identifier" : "maputo",
+ "population" : "1,191,613"
+ },
+ {
+ "elevation" : 202,
+ "timezone_id" : "Europe/Prague",
+ "name" : "布拉格",
+ "identifier" : "prague",
+ "population" : "1,165,581"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "哥本哈根",
+ "identifier" : "copenhagen",
+ "population" : "1,153,615"
+ },
+ {
+ "elevation" : 562,
+ "timezone_id" : "Europe/Sofia",
+ "name" : "蘇菲亞",
+ "identifier" : "sofia",
+ "population" : "1,152,556"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Asia/Beirut",
+ "name" : "的黎波里",
+ "identifier" : "tripoli",
+ "population" : "229,398"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "哈科特港",
+ "identifier" : "port harcourt",
+ "population" : "1,148,665"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Tokyo",
+ "name" : "廣島",
+ "identifier" : "hiroshima",
+ "population" : "1,143,841"
+ },
+ {
+ "elevation" : 543,
+ "timezone_id" : "America/Monterrey",
+ "name" : "蒙特雷",
+ "identifier" : "monterrey",
+ "population" : "1,135,512"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Europe/Samara",
+ "name" : "薩馬拉",
+ "identifier" : "samara",
+ "population" : "1,134,730"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "Asia/Omsk",
+ "name" : "鄂木斯克",
+ "identifier" : "omsk",
+ "population" : "1,129,281"
+ },
+ {
+ "elevation" : 88,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "貝寧市",
+ "identifier" : "benin city",
+ "population" : "1,125,058"
+ },
+ {
+ "elevation" : -23,
+ "timezone_id" : "Asia/Baku",
+ "name" : "巴庫",
+ "identifier" : "baku",
+ "population" : "1,116,513"
+ },
+ {
+ "elevation" : 325,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "邁杜古里",
+ "identifier" : "maiduguri",
+ "population" : "1,112,449"
+ },
+ {
+ "elevation" : 61,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "喀山",
+ "identifier" : "kazan",
+ "population" : "1,104,738"
+ },
+ {
+ "elevation" : 994,
+ "timezone_id" : "Asia/Yerevan",
+ "name" : "葉里溫",
+ "identifier" : "yerevan",
+ "population" : "1,093,485"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ouagadougou",
+ "name" : "瓦加杜古",
+ "identifier" : "ouagadougou",
+ "population" : "1,086,505"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "羅斯托夫納多努",
+ "identifier" : "rostov-na-donu",
+ "population" : "1,074,482"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "車里雅賓斯克",
+ "identifier" : "chelyabinsk",
+ "population" : "1,062,919"
+ },
+ {
+ "elevation" : 491,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "第比利斯",
+ "identifier" : "tbilisi",
+ "population" : "1,049,498"
+ },
+ {
+ "elevation" : 158,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "烏法",
+ "identifier" : "ufa",
+ "population" : "1,033,338"
+ },
+ {
+ "elevation" : 1161,
+ "timezone_id" : "America/Costa_Rica",
+ "name" : "聖荷西",
+ "identifier" : "san jose",
+ "population" : "335,007"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "都柏林",
+ "identifier" : "dublin",
+ "population" : "1,024,027"
+ },
+ {
+ "elevation" : 1042,
+ "timezone_id" : "America/Edmonton",
+ "name" : "卡爾加里",
+ "identifier" : "calgary",
+ "population" : "1,019,942"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "布魯塞爾",
+ "identifier" : "brussels",
+ "population" : "1,019,022"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/Volgograd",
+ "name" : "伏爾加格勒",
+ "identifier" : "volgograd",
+ "population" : "1,011,417"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "敖德薩",
+ "identifier" : "odessa",
+ "population" : "1,001,558"
+ },
+ {
+ "elevation" : 1508,
+ "timezone_id" : "America/Guatemala",
+ "name" : "危地馬拉城",
+ "identifier" : "guatemala city",
+ "population" : "994,938"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Europe/London",
+ "name" : "伯明翰",
+ "identifier" : "birmingham",
+ "population" : "984,333"
+ },
+ {
+ "elevation" : 149,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "燙髮",
+ "identifier" : "perm",
+ "population" : "982,419"
+ },
+ {
+ "elevation" : 644,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "扎里亞",
+ "identifier" : "zaria",
+ "population" : "975,153"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "伊麗莎白港",
+ "identifier" : "port elizabeth",
+ "population" : "967,677"
+ },
+ {
+ "elevation" : 406,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "非斯",
+ "identifier" : "fes",
+ "population" : "964,891"
+ },
+ {
+ "elevation" : 58,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "科隆",
+ "identifier" : "cologne",
+ "population" : "963,395"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Rome",
+ "name" : "那不勒斯",
+ "identifier" : "naples",
+ "population" : "959,470"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Maceio",
+ "name" : "馬塞約",
+ "identifier" : "maceio",
+ "population" : "954,991"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "Africa/Monrovia",
+ "name" : "蒙羅維亞",
+ "identifier" : "monrovia",
+ "population" : "939,524"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "America/Jamaica",
+ "name" : "金斯頓",
+ "identifier" : "kingston",
+ "population" : "937,700"
+ },
+ {
+ "elevation" : 165,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧斯丁",
+ "identifier" : "austin",
+ "population" : "931,830"
+ },
+ {
+ "elevation" : 140,
+ "timezone_id" : "Asia/Krasnoyarsk",
+ "name" : "克拉斯諾亞爾斯克",
+ "identifier" : "krasnoyarsk",
+ "population" : "927,200"
+ },
+ {
+ "elevation" : 34,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "特賣",
+ "identifier" : "sale",
+ "population" : "903,485"
+ },
+ {
+ "elevation" : 935,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "庫姆",
+ "identifier" : "qom",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "比什凱克",
+ "identifier" : "bishkek",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "Africa/Abidjan",
+ "name" : "阿波波",
+ "identifier" : "abobo",
+ "population" : "900,000"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿壩",
+ "identifier" : "aba",
+ "population" : "897,560"
+ },
+ {
+ "elevation" : 746,
+ "timezone_id" : "America/Argentina/Mendoza",
+ "name" : "門多薩",
+ "identifier" : "mendoza",
+ "population" : "876,884"
+ },
+ {
+ "elevation" : 621,
+ "timezone_id" : "Africa/Lubumbashi",
+ "name" : "姆布吉馬耶",
+ "identifier" : "mbuji-mayi",
+ "population" : "874,761"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Africa/Dakar",
+ "name" : "皮金",
+ "identifier" : "pikine",
+ "population" : "874,062"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "Europe/Rome",
+ "name" : "都靈",
+ "identifier" : "turin",
+ "population" : "870,456"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "舊金山",
+ "identifier" : "san francisco",
+ "population" : "864,816"
+ },
+ {
+ "elevation" : 30,
+ "timezone_id" : "Europe/London",
+ "name" : "利物浦",
+ "identifier" : "liverpool",
+ "population" : "864,122"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/Saratov",
+ "name" : "薩拉托夫",
+ "identifier" : "saratov",
+ "population" : "863,725"
+ },
+ {
+ "elevation" : 944,
+ "timezone_id" : "America/Tegucigalpa",
+ "name" : "德古西加巴",
+ "identifier" : "tegucigalpa",
+ "population" : "850,848"
+ },
+ {
+ "elevation" : 156,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "沃羅涅日",
+ "identifier" : "voronezh",
+ "population" : "848,752"
+ },
+ {
+ "elevation" : 1284,
+ "timezone_id" : "Asia/Ulaanbaatar",
+ "name" : "烏蘭巴托",
+ "identifier" : "ulan bator",
+ "population" : "844,818"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "阿瓦士",
+ "identifier" : "ahvaz",
+ "population" : "841,145"
+ },
+ {
+ "elevation" : 457,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "馬拉喀什",
+ "identifier" : "marrakesh",
+ "population" : "839,296"
+ },
+ {
+ "elevation" : 33,
+ "timezone_id" : "Asia/Makassar",
+ "name" : "登巴薩",
+ "identifier" : "denpasar",
+ "population" : "834,881"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "沃思堡",
+ "identifier" : "fort worth",
+ "population" : "833,319"
+ },
+ {
+ "elevation" : 248,
+ "timezone_id" : "America/Indiana/Indianapolis",
+ "name" : "印第安納波利斯",
+ "identifier" : "indianapolis",
+ "population" : "829,718"
+ },
+ {
+ "elevation" : 1186,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "喬斯",
+ "identifier" : "jos",
+ "population" : "816,824"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Europe/Madrid",
+ "name" : "巴倫西亞",
+ "identifier" : "valencia",
+ "population" : "814,208"
+ },
+ {
+ "elevation" : 320,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "伊洛林",
+ "identifier" : "ilorin",
+ "population" : "814,192"
+ },
+ {
+ "elevation" : 47,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "拉巴斯",
+ "identifier" : "la paz",
+ "population" : "215,178"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/Toronto",
+ "name" : "渥太華",
+ "identifier" : "ottawa",
+ "population" : "812,129"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Africa/Freetown",
+ "name" : "弗里敦",
+ "identifier" : "freetown",
+ "population" : "802,639"
+ },
+ {
+ "elevation" : 786,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "耶路撒冷",
+ "identifier" : "jerusalem",
+ "population" : "801,000"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Asia/Muscat",
+ "name" : "馬斯喀特",
+ "identifier" : "muscat",
+ "population" : "797,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "馬賽",
+ "identifier" : "marseille",
+ "population" : "794,811"
+ },
+ {
+ "elevation" : 2010,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "帕斯拉格德分行",
+ "identifier" : "pasragad branch",
+ "population" : "787,878"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "布默達斯",
+ "identifier" : "boumerdas",
+ "population" : "786,499"
+ },
+ {
+ "elevation" : 452,
+ "timezone_id" : "America/Argentina/Tucuman",
+ "name" : "San Miguel de Tucuman",
+ "identifier" : "san miguel de tucuman",
+ "population" : "781,023"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Merida",
+ "name" : "梅里達",
+ "identifier" : "merida",
+ "population" : "777,615"
+ },
+ {
+ "elevation" : 206,
+ "timezone_id" : "Africa/Niamey",
+ "name" : "尼亞美",
+ "identifier" : "niamey",
+ "population" : "774,235"
+ },
+ {
+ "elevation" : 1302,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "卡里茲",
+ "identifier" : "kahriz",
+ "population" : "766,706"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Warsaw",
+ "name" : "克拉科夫",
+ "identifier" : "krakow",
+ "population" : "755,050"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Ho_Chi_Minh",
+ "name" : "峴港市",
+ "identifier" : "da nang",
+ "population" : "752,493"
+ },
+ {
+ "elevation" : 636,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "彼得馬里茨堡",
+ "identifier" : "pietermaritzburg",
+ "population" : "750,845"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lome",
+ "name" : "洛美",
+ "identifier" : "lome",
+ "population" : "749,700"
+ },
+ {
+ "elevation" : 1542,
+ "timezone_id" : "Africa/Kigali",
+ "name" : "基加利",
+ "identifier" : "kigali",
+ "population" : "745,261"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Europe/Riga",
+ "name" : "裡加",
+ "identifier" : "riga",
+ "population" : "742,572"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "阿姆斯特丹",
+ "identifier" : "amsterdam",
+ "population" : "741,636"
+ },
+ {
+ "elevation" : 298,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "大洋",
+ "identifier" : "oyo",
+ "population" : "736,072"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/London",
+ "name" : "諾丁漢",
+ "identifier" : "nottingham",
+ "population" : "729,977"
+ },
+ {
+ "elevation" : 592,
+ "timezone_id" : "America/Campo_Grande",
+ "name" : "大坎普市",
+ "identifier" : "campo grande",
+ "population" : "729,151"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Asia/Ashgabat",
+ "name" : "阿什哈巴德",
+ "identifier" : "ashgabat",
+ "population" : "727,700"
+ },
+ {
+ "elevation" : 299,
+ "timezone_id" : "Africa/Ndjamena",
+ "name" : "恩賈梅納",
+ "identifier" : "n'djamena",
+ "population" : "721,081"
+ },
+ {
+ "elevation" : 284,
+ "timezone_id" : "Europe/Kiev",
+ "name" : "利沃夫",
+ "identifier" : "lviv",
+ "population" : "717,803"
+ },
+ {
+ "elevation" : 212,
+ "timezone_id" : "America/Hermosillo",
+ "name" : "埃莫西約",
+ "identifier" : "hermosillo",
+ "population" : "715,061"
+ },
+ {
+ "elevation" : 610,
+ "timezone_id" : "America/Edmonton",
+ "name" : "埃德蒙頓",
+ "identifier" : "edmonton",
+ "population" : "712,391"
+ },
+ {
+ "elevation" : 1348,
+ "timezone_id" : "Africa/Harare",
+ "name" : "布拉瓦約",
+ "identifier" : "bulawayo",
+ "population" : "699,385"
+ },
+ {
+ "elevation" : 135,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "薩格勒布",
+ "identifier" : "zagreb",
+ "population" : "698,966"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "阿加迪爾",
+ "identifier" : "agadir",
+ "population" : "698,310"
+ },
+ {
+ "elevation" : 509,
+ "timezone_id" : "Europe/Sarajevo",
+ "name" : "薩拉熱窩",
+ "identifier" : "sarajevo",
+ "population" : "696,731"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "埃努古",
+ "identifier" : "enugu",
+ "population" : "688,862"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Africa/Casablanca",
+ "name" : "丹吉爾",
+ "identifier" : "tangier",
+ "population" : "688,356"
+ },
+ {
+ "elevation" : 75,
+ "timezone_id" : "Europe/London",
+ "name" : "謝菲爾德",
+ "identifier" : "sheffield",
+ "population" : "685,368"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "西雅圖",
+ "identifier" : "seattle",
+ "population" : "684,451"
+ },
+ {
+ "elevation" : 1636,
+ "timezone_id" : "America/Denver",
+ "name" : "丹佛",
+ "identifier" : "denver",
+ "population" : "682,545"
+ },
+ {
+ "elevation" : 1137,
+ "timezone_id" : "America/Denver",
+ "name" : "埃爾帕索",
+ "identifier" : "el paso",
+ "population" : "681,124"
+ },
+ {
+ "elevation" : 767,
+ "timezone_id" : "Asia/Dushanbe",
+ "name" : "杜尚別",
+ "identifier" : "dushanbe",
+ "population" : "679,400"
+ },
+ {
+ "elevation" : 192,
+ "timezone_id" : "America/Detroit",
+ "name" : "底特律",
+ "identifier" : "detroit",
+ "population" : "677,116"
+ },
+ {
+ "elevation" : 95,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "庫里亞坎人",
+ "identifier" : "culiacan",
+ "population" : "675,773"
+ },
+ {
+ "elevation" : 42,
+ "timezone_id" : "Africa/Maputo",
+ "name" : "馬托拉",
+ "identifier" : "matola",
+ "population" : "675,422"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "America/New_York",
+ "name" : "波斯頓",
+ "identifier" : "boston",
+ "population" : "667,137"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Europe/Athens",
+ "name" : "雅典",
+ "identifier" : "athens",
+ "population" : "664,046"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Africa/Nouakchott",
+ "name" : "努瓦克肖特",
+ "identifier" : "nouakchott",
+ "population" : "661,400"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Africa/Brazzaville",
+ "name" : "黑角",
+ "identifier" : "pointe-noire",
+ "population" : "659,084"
+ },
+ {
+ "elevation" : 84,
+ "timezone_id" : "America/Chicago",
+ "name" : "孟菲斯",
+ "identifier" : "memphis",
+ "population" : "655,770"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "法蘭克福",
+ "identifier" : "frankfurt am main",
+ "population" : "650,000"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "克拉斯諾達爾",
+ "identifier" : "krasnodar",
+ "population" : "649,851"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴勒莫",
+ "identifier" : "palermo",
+ "population" : "648,260"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Asia/Colombo",
+ "name" : "科倫坡",
+ "identifier" : "colombo",
+ "population" : "648,034"
+ },
+ {
+ "elevation" : 1056,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "利隆圭",
+ "identifier" : "lilongwe",
+ "population" : "646,750"
+ },
+ {
+ "elevation" : 118,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "奧蘭",
+ "identifier" : "oran",
+ "population" : "645,984"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Europe/Chisinau",
+ "name" : "基希訥烏",
+ "identifier" : "chisinau",
+ "population" : "635,994"
+ },
+ {
+ "elevation" : 867,
+ "timezone_id" : "Africa/Algiers",
+ "name" : "特比薩",
+ "identifier" : "tebessa",
+ "population" : "634,332"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "America/Los_Angeles",
+ "name" : "波特蘭",
+ "identifier" : "portland",
+ "population" : "632,309"
+ },
+ {
+ "elevation" : 245,
+ "timezone_id" : "America/Winnipeg",
+ "name" : "溫尼伯",
+ "identifier" : "winnipeg",
+ "population" : "632,063"
+ },
+ {
+ "elevation" : 395,
+ "timezone_id" : "America/Chicago",
+ "name" : "俄克拉荷馬城",
+ "identifier" : "oklahoma city",
+ "population" : "631,346"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Cancun",
+ "name" : "坎昆",
+ "identifier" : "cancun",
+ "population" : "628,306"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "Africa/Djibouti",
+ "name" : "吉布地",
+ "identifier" : "djibouti",
+ "population" : "623,891"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "America/New_York",
+ "name" : "巴爾的摩",
+ "identifier" : "baltimore",
+ "population" : "621,849"
+ },
+ {
+ "elevation" : 1392,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼沙",
+ "identifier" : "kermanshah",
+ "population" : "621,100"
+ },
+ {
+ "elevation" : 21,
+ "timezone_id" : "Europe/London",
+ "name" : "布里斯托爾",
+ "identifier" : "bristol",
+ "population" : "617,280"
+ },
+ {
+ "elevation" : 1641,
+ "timezone_id" : "Africa/Johannesburg",
+ "name" : "貝諾尼",
+ "identifier" : "benoni",
+ "population" : "605,344"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Asia/Dubai",
+ "name" : "阿布扎比",
+ "identifier" : "abu dhabi",
+ "population" : "603,492"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/New_York",
+ "name" : "華盛頓州",
+ "identifier" : "washington",
+ "population" : "601,723"
+ },
+ {
+ "elevation" : 203,
+ "timezone_id" : "America/Chicago",
+ "name" : "密爾沃基",
+ "identifier" : "milwaukee",
+ "population" : "600,155"
+ },
+ {
+ "elevation" : 70,
+ "timezone_id" : "America/Vancouver",
+ "name" : "溫哥華",
+ "identifier" : "vancouver",
+ "population" : "600,000"
+ },
+ {
+ "elevation" : 189,
+ "timezone_id" : "Asia/Barnaul",
+ "name" : "巴瑙爾",
+ "identifier" : "barnaul",
+ "population" : "599,579"
+ },
+ {
+ "elevation" : 9,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "鹿特丹",
+ "identifier" : "rotterdam",
+ "population" : "598,199"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "拉什特",
+ "identifier" : "rasht",
+ "population" : "594,590"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿倍庫塔",
+ "identifier" : "abeokuta",
+ "population" : "593,100"
+ },
+ {
+ "elevation" : 83,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "埃森",
+ "identifier" : "essen",
+ "population" : "593,085"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/London",
+ "name" : "格拉斯哥",
+ "identifier" : "glasgow",
+ "population" : "591,620"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "黃金海岸",
+ "identifier" : "gold coast",
+ "population" : "591,473"
+ },
+ {
+ "elevation" : 476,
+ "timezone_id" : "Africa/Lagos",
+ "name" : "阿布賈",
+ "identifier" : "abuja",
+ "population" : "590,400"
+ },
+ {
+ "elevation" : 252,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "斯圖加特",
+ "identifier" : "stuttgart",
+ "population" : "589,793"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "多特蒙德",
+ "identifier" : "dortmund",
+ "population" : "588,462"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Asia/Vladivostok",
+ "name" : "海參div",
+ "identifier" : "vladivostok",
+ "population" : "587,022"
+ },
+ {
+ "elevation" : 428,
+ "timezone_id" : "Asia/Irkutsk",
+ "name" : "伊爾庫茨克",
+ "identifier" : "irkutsk",
+ "population" : "586,695"
+ },
+ {
+ "elevation" : 1041,
+ "timezone_id" : "Africa/Blantyre",
+ "name" : "布蘭太爾",
+ "identifier" : "blantyre",
+ "population" : "584,877"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Rome",
+ "name" : "熱那亞",
+ "identifier" : "genoa",
+ "population" : "580,223"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "奧斯陸",
+ "identifier" : "oslo",
+ "population" : "580,000"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Africa/Libreville",
+ "name" : "利伯維爾",
+ "identifier" : "libreville",
+ "population" : "578,156"
+ },
+ {
+ "elevation" : 1760,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "克爾曼",
+ "identifier" : "kerman",
+ "population" : "577,514"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜塞爾多夫",
+ "identifier" : "duesseldorf",
+ "population" : "573,057"
+ },
+ {
+ "elevation" : 8,
+ "timezone_id" : "Asia/Kuching",
+ "name" : "古晉",
+ "identifier" : "kuching",
+ "population" : "570,407"
+ },
+ {
+ "elevation" : 1513,
+ "timezone_id" : "America/Denver",
+ "name" : "阿爾伯克基",
+ "identifier" : "albuquerque",
+ "population" : "559,121"
+ },
+ {
+ "elevation" : 26,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "赫爾辛基",
+ "identifier" : "helsinki",
+ "population" : "558,457"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "Asia/Aden",
+ "name" : "亞丁",
+ "identifier" : "aden",
+ "population" : "550,602"
+ },
+ {
+ "elevation" : 107,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "奧倫堡",
+ "identifier" : "orenburg",
+ "population" : "550,204"
+ },
+ {
+ "elevation" : 597,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "普里什蒂納",
+ "identifier" : "pristina",
+ "population" : "550,000"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "不來梅",
+ "identifier" : "bremen",
+ "population" : "546,501"
+ },
+ {
+ "elevation" : 98,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "維爾紐斯",
+ "identifier" : "vilnius",
+ "population" : "542,366"
+ },
+ {
+ "elevation" : 171,
+ "timezone_id" : "America/Chicago",
+ "name" : "納什維爾",
+ "identifier" : "nashville",
+ "population" : "530,852"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/Toronto",
+ "name" : "魁北克",
+ "identifier" : "quebec",
+ "population" : "528,595"
+ },
+ {
+ "elevation" : 653,
+ "timezone_id" : "America/El_Salvador",
+ "name" : "聖薩爾瓦多",
+ "identifier" : "san salvador",
+ "population" : "525,990"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Asia/Macau",
+ "name" : "澳門",
+ "identifier" : "macau",
+ "population" : "520,400"
+ },
+ {
+ "elevation" : 81,
+ "timezone_id" : "Asia/Yekaterinburg",
+ "name" : "秋明州",
+ "identifier" : "tyumen",
+ "population" : "519,119"
+ },
+ {
+ "elevation" : 45,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "里斯本",
+ "identifier" : "lisbon",
+ "population" : "517,802"
+ },
+ {
+ "elevation" : 57,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "漢諾威",
+ "identifier" : "hannover",
+ "population" : "515,140"
+ },
+ {
+ "elevation" : 1183,
+ "timezone_id" : "America/Argentina/Salta",
+ "name" : "薩爾塔",
+ "identifier" : "salta",
+ "population" : "512,686"
+ },
+ {
+ "elevation" : 65,
+ "timezone_id" : "Europe/London",
+ "name" : "萊斯特",
+ "identifier" : "leicester",
+ "population" : "508,916"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "萊比錫",
+ "identifier" : "leipzig",
+ "population" : "504,971"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "杜伊斯堡",
+ "identifier" : "duisburg",
+ "population" : "504,358"
+ },
+ {
+ "elevation" : -12,
+ "timezone_id" : "Europe/Astrakhan",
+ "name" : "阿斯特拉罕",
+ "identifier" : "astrakhan",
+ "population" : "502,533"
+ },
+ {
+ "elevation" : 300,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "紐倫堡",
+ "identifier" : "nuernberg",
+ "population" : "499,237"
+ },
+ {
+ "elevation" : 116,
+ "timezone_id" : "Europe/Berlin",
+ "name" : "德累斯頓",
+ "identifier" : "dresden",
+ "population" : "486,854"
+ },
+ {
+ "elevation" : 117,
+ "timezone_id" : "Asia/Tomsk",
+ "name" : "托木斯克",
+ "identifier" : "tomsk",
+ "population" : "485,519"
+ },
+ {
+ "elevation" : 1216,
+ "timezone_id" : "Asia/Tehran",
+ "name" : "亞茲德",
+ "identifier" : "yazd",
+ "population" : "477,905"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "堪薩斯城",
+ "identifier" : "kansas city",
+ "population" : "151,306"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Skopje",
+ "name" : "斯科普里",
+ "identifier" : "skopje",
+ "population" : "474,889"
+ },
+ {
+ "elevation" : 4,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "海牙",
+ "identifier" : "the hague",
+ "population" : "474,292"
+ },
+ {
+ "elevation" : 173,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里昂",
+ "identifier" : "lyon",
+ "population" : "472,317"
+ },
+ {
+ "elevation" : 66,
+ "timezone_id" : "Europe/London",
+ "name" : "愛丁堡",
+ "identifier" : "edinburgh",
+ "population" : "464,990"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "安特衛普",
+ "identifier" : "antwerpen",
+ "population" : "459,805"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Asia/Pontianak",
+ "name" : "坤甸",
+ "identifier" : "pontianak",
+ "population" : "455,173"
+ },
+ {
+ "elevation" : 50,
+ "timezone_id" : "Europe/London",
+ "name" : "利茲",
+ "identifier" : "leeds",
+ "population" : "455,123"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "加的夫",
+ "identifier" : "cardiff",
+ "population" : "447,287"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "America/Puerto_Rico",
+ "name" : "聖胡安",
+ "identifier" : "san juan",
+ "population" : "418,140"
+ },
+ {
+ "elevation" : 315,
+ "timezone_id" : "America/Chicago",
+ "name" : "奧馬哈",
+ "identifier" : "omaha",
+ "population" : "443,885"
+ },
+ {
+ "elevation" : 32,
+ "timezone_id" : "America/Port-au-Prince",
+ "name" : "家樂福",
+ "identifier" : "carrefour",
+ "population" : "442,156"
+ },
+ {
+ "elevation" : 25,
+ "timezone_id" : "America/New_York",
+ "name" : "邁阿密",
+ "identifier" : "miami",
+ "population" : "441,003"
+ },
+ {
+ "elevation" : 2,
+ "timezone_id" : "Europe/Kaliningrad",
+ "name" : "加里寧格勒",
+ "identifier" : "kaliningrad",
+ "population" : "434,954"
+ },
+ {
+ "elevation" : 150,
+ "timezone_id" : "Europe/Paris",
+ "name" : "圖盧茲",
+ "identifier" : "toulouse",
+ "population" : "433,055"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Asia/Jerusalem",
+ "name" : "特拉維夫",
+ "identifier" : "tel aviv",
+ "population" : "432,892"
+ },
+ {
+ "elevation" : 759,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "東耶路撒冷",
+ "identifier" : "east jerusalem",
+ "population" : "428,304"
+ },
+ {
+ "elevation" : 157,
+ "timezone_id" : "Europe/Bratislava",
+ "name" : "布拉迪斯拉發",
+ "identifier" : "bratislava",
+ "population" : "423,737"
+ },
+ {
+ "elevation" : 43,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "奧克蘭市",
+ "identifier" : "auckland",
+ "population" : "417,910"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Europe/Zaporozhye",
+ "name" : "塞瓦斯托波爾",
+ "identifier" : "sevastopol",
+ "population" : "416,263"
+ },
+ {
+ "elevation" : 262,
+ "timezone_id" : "America/Chicago",
+ "name" : "明尼阿波利斯",
+ "identifier" : "minneapolis",
+ "population" : "410,939"
+ },
+ {
+ "elevation" : 38,
+ "timezone_id" : "Asia/Gaza",
+ "name" : "加沙",
+ "identifier" : "gaza",
+ "population" : "410,000"
+ },
+ {
+ "elevation" : 219,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "庫爾斯克",
+ "identifier" : "kursk",
+ "population" : "409,431"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "America/Panama",
+ "name" : "巴拿馬",
+ "identifier" : "panama",
+ "population" : "408,168"
+ },
+ {
+ "elevation" : 226,
+ "timezone_id" : "America/Chicago",
+ "name" : "塔爾薩",
+ "identifier" : "tulsa",
+ "population" : "403,505"
+ },
+ {
+ "elevation" : 132,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "特維爾",
+ "identifier" : "tver",
+ "population" : "400,212"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/London",
+ "name" : "曼徹斯特",
+ "identifier" : "manchester",
+ "population" : "395,515"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Tallinn",
+ "name" : "塔林",
+ "identifier" : "tallinn",
+ "population" : "394,024"
+ },
+ {
+ "elevation" : 1007,
+ "timezone_id" : "Asia/Kabul",
+ "name" : "坎大哈",
+ "identifier" : "kandahar",
+ "population" : "391,190"
+ },
+ {
+ "elevation" : 402,
+ "timezone_id" : "America/Chicago",
+ "name" : "威奇托",
+ "identifier" : "wichita",
+ "population" : "389,965"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "America/Chicago",
+ "name" : "新奧爾良",
+ "identifier" : "new orleans",
+ "population" : "389,617"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "惠靈頓",
+ "identifier" : "wellington",
+ "population" : "381,900"
+ },
+ {
+ "elevation" : 23,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "大加那利島拉斯帕爾馬斯",
+ "identifier" : "las palmas de gran canaria",
+ "population" : "381,847"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "馬薩特蘭",
+ "identifier" : "mazatlan",
+ "population" : "381,583"
+ },
+ {
+ "elevation" : 113,
+ "timezone_id" : "Europe/Tirane",
+ "name" : "地拉那",
+ "identifier" : "tirana",
+ "population" : "374,801"
+ },
+ {
+ "elevation" : 74,
+ "timezone_id" : "Europe/Vilnius",
+ "name" : "考納斯",
+ "identifier" : "kaunas",
+ "population" : "374,643"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Pacific/Honolulu",
+ "name" : "火奴魯魯",
+ "identifier" : "honolulu",
+ "population" : "371,657"
+ },
+ {
+ "elevation" : 571,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "堪培拉",
+ "identifier" : "canberra",
+ "population" : "367,752"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "Europe/Rome",
+ "name" : "博洛尼亞",
+ "identifier" : "bologna",
+ "population" : "366,133"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "基督城",
+ "identifier" : "christchurch",
+ "population" : "363,926"
+ },
+ {
+ "elevation" : 6,
+ "timezone_id" : "America/Halifax",
+ "name" : "哈利法克斯",
+ "identifier" : "halifax",
+ "population" : "359,111"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Jayapura",
+ "name" : "安汶",
+ "identifier" : "ambon",
+ "population" : "355,596"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Rome",
+ "name" : "佛羅倫斯",
+ "identifier" : "florence",
+ "population" : "349,296"
+ },
+ {
+ "elevation" : 11,
+ "timezone_id" : "Asia/Qatar",
+ "name" : "多哈",
+ "identifier" : "doha",
+ "population" : "344,939"
+ },
+ {
+ "elevation" : 429,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "蘇黎世",
+ "identifier" : "zurich",
+ "population" : "341,730"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Paris",
+ "name" : "好啊",
+ "identifier" : "nice",
+ "population" : "338,620"
+ },
+ {
+ "elevation" : 247,
+ "timezone_id" : "Europe/Simferopol",
+ "name" : "辛菲羅波爾",
+ "identifier" : "simferopol",
+ "population" : "336,460"
+ },
+ {
+ "elevation" : 932,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "特皮克",
+ "identifier" : "tepic",
+ "population" : "332,863"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "索契",
+ "identifier" : "sochi",
+ "population" : "327,608"
+ },
+ {
+ "elevation" : 250,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "斯摩棱斯克",
+ "identifier" : "smolensk",
+ "population" : "320,991"
+ },
+ {
+ "elevation" : 719,
+ "timezone_id" : "Asia/Samarkand",
+ "name" : "撒馬爾罕",
+ "identifier" : "samarkand",
+ "population" : "319,366"
+ },
+ {
+ "elevation" : 96,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "摩爾曼斯克",
+ "identifier" : "murmansk",
+ "population" : "319,263"
+ },
+ {
+ "elevation" : 671,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "弗拉季卡夫卡茲",
+ "identifier" : "vladikavkaz",
+ "population" : "317,370"
+ },
+ {
+ "elevation" : 668,
+ "timezone_id" : "Asia/Chita",
+ "name" : "赤太",
+ "identifier" : "chita",
+ "population" : "308,500"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "新城堡",
+ "identifier" : "newcastle",
+ "population" : "308,308"
+ },
+ {
+ "elevation" : 90,
+ "timezone_id" : "America/Porto_Velho",
+ "name" : "韋略港",
+ "identifier" : "porto velho",
+ "population" : "306,180"
+ },
+ {
+ "elevation" : 1260,
+ "timezone_id" : "America/Argentina/Jujuy",
+ "name" : "聖薩爾瓦多·德胡胡伊",
+ "identifier" : "san salvador de jujuy",
+ "population" : "305,891"
+ },
+ {
+ "elevation" : 239,
+ "timezone_id" : "America/New_York",
+ "name" : "匹茲堡",
+ "identifier" : "pittsburgh",
+ "population" : "304,391"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "布雷斯特",
+ "identifier" : "brest",
+ "population" : "144,899"
+ },
+ {
+ "elevation" : 16,
+ "timezone_id" : "America/Anchorage",
+ "name" : "錨地",
+ "identifier" : "anchorage",
+ "population" : "298,695"
+ },
+ {
+ "elevation" : 267,
+ "timezone_id" : "America/New_York",
+ "name" : "辛辛那提",
+ "identifier" : "cincinnati",
+ "population" : "296,943"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Sydney",
+ "name" : "臥龍崗市",
+ "identifier" : "wollongong",
+ "population" : "292,190"
+ },
+ {
+ "elevation" : 40,
+ "timezone_id" : "Europe/Rome",
+ "name" : "卡塔尼亞",
+ "identifier" : "catania",
+ "population" : "290,927"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/Amsterdam",
+ "name" : "烏特勒支",
+ "identifier" : "utrecht",
+ "population" : "290,529"
+ },
+ {
+ "elevation" : 41,
+ "timezone_id" : "America/Vancouver",
+ "name" : "維多利亞州",
+ "identifier" : "victoria",
+ "population" : "289,625"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Pacific/Port_Moresby",
+ "name" : "莫爾茲比港",
+ "identifier" : "port moresby",
+ "population" : "283,733"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "洛根市",
+ "identifier" : "logan city",
+ "population" : "282,673"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Europe/Rome",
+ "name" : "巴里",
+ "identifier" : "bari",
+ "population" : "277,387"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Paris",
+ "name" : "南特",
+ "identifier" : "nantes",
+ "population" : "277,269"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Europe/Paris",
+ "name" : "史特拉斯堡",
+ "identifier" : "strasbourg",
+ "population" : "274,845"
+ },
+ {
+ "elevation" : 7,
+ "timezone_id" : "Europe/London",
+ "name" : "貝爾法斯特",
+ "identifier" : "belfast",
+ "population" : "274,770"
+ },
+ {
+ "elevation" : 295,
+ "timezone_id" : "Europe/Ljubljana",
+ "name" : "盧布爾雅那",
+ "identifier" : "ljubljana",
+ "population" : "272,220"
+ },
+ {
+ "elevation" : 54,
+ "timezone_id" : "America/New_York",
+ "name" : "奧蘭多",
+ "identifier" : "orlando",
+ "population" : "270,934"
+ },
+ {
+ "elevation" : 73,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "彼得羅扎沃茨克",
+ "identifier" : "petrozavodsk",
+ "population" : "265,025"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "Europe/London",
+ "name" : "普利茅斯",
+ "identifier" : "plymouth",
+ "population" : "260,203"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "America/Rio_Branco",
+ "name" : "里約布蘭科",
+ "identifier" : "rio branco",
+ "population" : "257,642"
+ },
+ {
+ "elevation" : 14,
+ "timezone_id" : "America/Mazatlan",
+ "name" : "洛斯·莫奇斯",
+ "identifier" : "los mochis",
+ "population" : "256,613"
+ },
+ {
+ "elevation" : 97,
+ "timezone_id" : "Europe/Lisbon",
+ "name" : "波爾圖",
+ "identifier" : "porto",
+ "population" : "249,633"
+ },
+ {
+ "elevation" : 272,
+ "timezone_id" : "America/Chicago",
+ "name" : "麥迪遜",
+ "identifier" : "madison",
+ "population" : "248,951"
+ },
+ {
+ "elevation" : 56,
+ "timezone_id" : "Europe/Paris",
+ "name" : "蒙彼利埃",
+ "identifier" : "montpellier",
+ "population" : "248,252"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "奧胡斯",
+ "identifier" : "arhus",
+ "population" : "237,551"
+ },
+ {
+ "elevation" : 126,
+ "timezone_id" : "Asia/Yakutsk",
+ "name" : "雅庫茨克",
+ "identifier" : "yakutsk",
+ "population" : "235,600"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "America/Guyana",
+ "name" : "喬治敦",
+ "identifier" : "georgetown",
+ "population" : "235,017"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Paris",
+ "name" : "波爾多",
+ "identifier" : "bordeaux",
+ "population" : "231,844"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Brussels",
+ "name" : "根特",
+ "identifier" : "gent",
+ "population" : "231,493"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "America/Chicago",
+ "name" : "巴吞魯日",
+ "identifier" : "baton rouge",
+ "population" : "228,590"
+ },
+ {
+ "elevation" : 27,
+ "timezone_id" : "Europe/Paris",
+ "name" : "里爾",
+ "identifier" : "lille",
+ "population" : "228,328"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Nassau",
+ "name" : "拿騷",
+ "identifier" : "nassau",
+ "population" : "227,940"
+ },
+ {
+ "elevation" : -9999,
+ "timezone_id" : "Australia/Melbourne",
+ "name" : "吉朗",
+ "identifier" : "geelong",
+ "population" : "226,034"
+ },
+ {
+ "elevation" : 5,
+ "timezone_id" : "America/Paramaribo",
+ "name" : "帕拉馬里博",
+ "identifier" : "paramaribo",
+ "population" : "223,757"
+ },
+ {
+ "elevation" : 55,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "聖克魯斯-德特內里費",
+ "identifier" : "santa cruz de tenerife",
+ "population" : "222,417"
+ },
+ {
+ "elevation" : 363,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "格拉茨",
+ "identifier" : "graz",
+ "population" : "222,326"
+ },
+ {
+ "elevation" : 29,
+ "timezone_id" : "Europe/Rome",
+ "name" : "墨西拿",
+ "identifier" : "messina",
+ "population" : "219,948"
+ },
+ {
+ "elevation" : 62,
+ "timezone_id" : "Europe/Rome",
+ "name" : "維羅納",
+ "identifier" : "verona",
+ "population" : "219,103"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Hobart",
+ "name" : "霍巴特",
+ "identifier" : "hobart",
+ "population" : "216,656"
+ },
+ {
+ "elevation" : 79,
+ "timezone_id" : "Europe/Belgrade",
+ "name" : "諾維薩德",
+ "identifier" : "novi sad",
+ "population" : "215,400"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "卑爾根",
+ "identifier" : "bergen",
+ "population" : "213,585"
+ },
+ {
+ "elevation" : 264,
+ "timezone_id" : "America/Chicago",
+ "name" : "得梅因",
+ "identifier" : "des moines",
+ "population" : "210,330"
+ },
+ {
+ "elevation" : 167,
+ "timezone_id" : "Asia/Qostanay",
+ "name" : "科斯塔奈",
+ "identifier" : "kostanay",
+ "population" : "210,000"
+ },
+ {
+ "elevation" : 268,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "林茲",
+ "identifier" : "linz",
+ "population" : "204,846"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕多瓦",
+ "identifier" : "padova",
+ "population" : "203,725"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "Europe/Moscow",
+ "name" : "普斯科夫",
+ "identifier" : "pskov",
+ "population" : "201,990"
+ },
+ {
+ "elevation" : 313,
+ "timezone_id" : "Asia/Bangkok",
+ "name" : "清邁",
+ "identifier" : "chiang mai",
+ "population" : "200,952"
+ },
+ {
+ "elevation" : 147,
+ "timezone_id" : "Asia/Nicosia",
+ "name" : "尼科西亞",
+ "identifier" : "nicosia",
+ "population" : "200,452"
+ },
+ {
+ "elevation" : 35,
+ "timezone_id" : "Asia/Oral",
+ "name" : "口服",
+ "identifier" : "oral",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 988,
+ "timezone_id" : "Asia/Bishkek",
+ "name" : "奧什",
+ "identifier" : "osh",
+ "population" : "200,000"
+ },
+ {
+ "elevation" : 484,
+ "timezone_id" : "America/Regina",
+ "name" : "薩斯卡通",
+ "identifier" : "saskatoon",
+ "population" : "198,958"
+ },
+ {
+ "elevation" : 105,
+ "timezone_id" : "America/Chicago",
+ "name" : "小石頭",
+ "identifier" : "little rock",
+ "population" : "197,992"
+ },
+ {
+ "elevation" : 174,
+ "timezone_id" : "Asia/Vientiane",
+ "name" : "萬象",
+ "identifier" : "vientiane",
+ "population" : "196,731"
+ },
+ {
+ "elevation" : 13,
+ "timezone_id" : "Europe/London",
+ "name" : "香港仔",
+ "identifier" : "aberdeen",
+ "population" : "196,670"
+ },
+ {
+ "elevation" : 271,
+ "timezone_id" : "America/Araguaina",
+ "name" : "帕爾馬斯",
+ "identifier" : "palmas",
+ "population" : "196,272"
+ },
+ {
+ "elevation" : 15,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "湯斯維爾",
+ "identifier" : "townsville",
+ "population" : "196,219"
+ },
+ {
+ "elevation" : 1311,
+ "timezone_id" : "America/Denver",
+ "name" : "鹽湖城",
+ "identifier" : "salt lake city",
+ "population" : "192,672"
+ },
+ {
+ "elevation" : 10,
+ "timezone_id" : "Europe/Dublin",
+ "name" : "軟木",
+ "identifier" : "cork",
+ "population" : "190,384"
+ },
+ {
+ "elevation" : 71,
+ "timezone_id" : "America/New_York",
+ "name" : "塔拉哈西",
+ "identifier" : "tallahassee",
+ "population" : "189,907"
+ },
+ {
+ "elevation" : 51,
+ "timezone_id" : "America/Santarem",
+ "name" : "聖塔倫",
+ "identifier" : "santarem",
+ "population" : "189,047"
+ },
+ {
+ "elevation" : 545,
+ "timezone_id" : "America/Argentina/Catamarca",
+ "name" : "卡塔馬卡聖費爾南多·德爾瓦萊",
+ "identifier" : "san fernando del valle de catamarca",
+ "population" : "188,812"
+ },
+ {
+ "elevation" : 19,
+ "timezone_id" : "Europe/Rome",
+ "name" : "的里雅斯特",
+ "identifier" : "trieste",
+ "population" : "187,056"
+ },
+ {
+ "elevation" : 729,
+ "timezone_id" : "America/Argentina/San_Luis",
+ "name" : "聖路易斯",
+ "identifier" : "san luis",
+ "population" : "183,982"
+ },
+ {
+ "elevation" : 400,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "日內瓦",
+ "identifier" : "geneva",
+ "population" : "183,981"
+ },
+ {
+ "elevation" : -25,
+ "timezone_id" : "Asia/Atyrau",
+ "name" : "阿特勞",
+ "identifier" : "atyrau",
+ "population" : "180,000"
+ },
+ {
+ "elevation" : 153,
+ "timezone_id" : "Asia/Tbilisi",
+ "name" : "庫塔伊西",
+ "identifier" : "kutaisi",
+ "population" : "178,338"
+ },
+ {
+ "elevation" : 48,
+ "timezone_id" : "Asia/Sakhalin",
+ "name" : "南薩哈林斯克",
+ "identifier" : "yuzhno-sakhalinsk",
+ "population" : "176,484"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/Zagreb",
+ "name" : "分裂",
+ "identifier" : "split",
+ "population" : "176,314"
+ },
+ {
+ "elevation" : 577,
+ "timezone_id" : "America/Regina",
+ "name" : "里賈納",
+ "identifier" : "regina",
+ "population" : "176,183"
+ },
+ {
+ "elevation" : 22,
+ "timezone_id" : "Europe/Helsinki",
+ "name" : "圖爾庫",
+ "identifier" : "turku",
+ "population" : "175,945"
+ },
+ {
+ "elevation" : 72,
+ "timezone_id" : "Europe/London",
+ "name" : "牛津",
+ "identifier" : "oxford",
+ "population" : "171,380"
+ },
+ {
+ "elevation" : 100,
+ "timezone_id" : "America/Chicago",
+ "name" : "傑克遜",
+ "identifier" : "jackson",
+ "population" : "170,674"
+ },
+ {
+ "elevation" : 399,
+ "timezone_id" : "America/Chicago",
+ "name" : "斯普林菲爾德",
+ "identifier" : "springfield",
+ "population" : "166,810"
+ },
+ {
+ "elevation" : 279,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "巴塞爾",
+ "identifier" : "basel",
+ "population" : "164,488"
+ },
+ {
+ "elevation" : 502,
+ "timezone_id" : "America/Argentina/La_Rioja",
+ "name" : "拉里奧哈",
+ "identifier" : "la rioja",
+ "population" : "162,620"
+ },
+ {
+ "elevation" : 903,
+ "timezone_id" : "Asia/Hebron",
+ "name" : "希伯倫",
+ "identifier" : "hebron",
+ "population" : "160,470"
+ },
+ {
+ "elevation" : 46,
+ "timezone_id" : "Europe/Rome",
+ "name" : "摩德納",
+ "identifier" : "modena",
+ "population" : "158,886"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Europe/London",
+ "name" : "劍橋",
+ "identifier" : "cambridge",
+ "population" : "158,434"
+ },
+ {
+ "elevation" : 216,
+ "timezone_id" : "America/Chicago",
+ "name" : "弗里斯科",
+ "identifier" : "frisco",
+ "population" : "154,407"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "America/Chicago",
+ "name" : "帕薩迪納",
+ "identifier" : "pasadena",
+ "population" : "153,784"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/London",
+ "name" : "約克",
+ "identifier" : "york",
+ "population" : "153,717"
+ },
+ {
+ "elevation" : 435,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "薩爾茨堡",
+ "identifier" : "salzburg",
+ "population" : "153,377"
+ },
+ {
+ "elevation" : 1,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "凱恩斯",
+ "identifier" : "cairns",
+ "population" : "153,075"
+ },
+ {
+ "elevation" : 39,
+ "timezone_id" : "Pacific/Auckland",
+ "name" : "漢密爾頓",
+ "identifier" : "hamilton",
+ "population" : "152,641"
+ },
+ {
+ "elevation" : 558,
+ "timezone_id" : "Atlantic/Canary",
+ "name" : "拉古納",
+ "identifier" : "la laguna",
+ "population" : "150,661"
+ },
+ {
+ "elevation" : 3,
+ "timezone_id" : "Asia/Dili",
+ "name" : "帝力",
+ "identifier" : "dili",
+ "population" : "150,000"
+ },
+ {
+ "elevation" : 242,
+ "timezone_id" : "Europe/Paris",
+ "name" : "第戎",
+ "identifier" : "dijon",
+ "population" : "149,782"
+ },
+ {
+ "elevation" : 20,
+ "timezone_id" : "Europe/Stockholm",
+ "name" : "烏普薩拉",
+ "identifier" : "uppsala",
+ "population" : "149,245"
+ },
+ {
+ "elevation" : 18,
+ "timezone_id" : "Europe/Oslo",
+ "name" : "特隆赫姆",
+ "identifier" : "trondheim",
+ "population" : "147,139"
+ },
+ {
+ "elevation" : 12,
+ "timezone_id" : "Asia/Bahrain",
+ "name" : "麥納麥",
+ "identifier" : "manama",
+ "population" : "147,074"
+ },
+ {
+ "elevation" : 64,
+ "timezone_id" : "Europe/Rome",
+ "name" : "帕爾馬",
+ "identifier" : "parma",
+ "population" : "146,299"
+ },
+ {
+ "elevation" : 834,
+ "timezone_id" : "America/Boise",
+ "name" : "博伊西",
+ "identifier" : "boise",
+ "population" : "145,987"
+ },
+ {
+ "elevation" : 17,
+ "timezone_id" : "Europe/Copenhagen",
+ "name" : "歐登塞",
+ "identifier" : "odense",
+ "population" : "145,931"
+ },
+ {
+ "elevation" : 28,
+ "timezone_id" : "Europe/Paris",
+ "name" : "亞眠",
+ "identifier" : "amiens",
+ "population" : "143,086"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Paris",
+ "name" : "旅遊團",
+ "identifier" : "tours",
+ "population" : "141,621"
+ },
+ {
+ "elevation" : 49,
+ "timezone_id" : "Europe/Podgorica",
+ "name" : "波德戈里察",
+ "identifier" : "podgorica",
+ "population" : "136,473"
+ },
+ {
+ "elevation" : 587,
+ "timezone_id" : "Europe/Vienna",
+ "name" : "因斯布魯克",
+ "identifier" : "innsbruck",
+ "population" : "132,493"
+ },
+ {
+ "elevation" : 599,
+ "timezone_id" : "Australia/Brisbane",
+ "name" : "圖文巴",
+ "identifier" : "toowoomba",
+ "population" : "131,258"
+ },
+ {
+ "elevation" : 31,
+ "timezone_id" : "Australia/Darwin",
+ "name" : "達爾文",
+ "identifier" : "darwin",
+ "population" : "129,062"
+ },
+ {
+ "elevation" : 549,
+ "timezone_id" : "Europe/Zurich",
+ "name" : "伯爾尼",
+ "identifier" : "bern",
+ "population" : "121631"
+ }
+]
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/FunctionDescriptions.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/FunctionDescriptions.json
new file mode 100644
index 000000000..a4cdeb723
--- /dev/null
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/FunctionDescriptions.json
@@ -0,0 +1,229 @@
+{
+ "percentage": [
+ {
+ "prototypeExpressions": [
+ "100的10%",
+ "100 的 10%"
+ ],
+ "identifier": "reversedPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "100減少10%",
+ "100 減少 10%"
+ ],
+ "identifier": "reversedPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "100加上10%",
+ "100 加上 10%"
+ ],
+ "identifier": "reversedPercentOn"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼的20%",
+ "30 是甚麼的 20%"
+ ],
+ "identifier": "isPercentOfWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "甚麼的20%等於30",
+ "甚麼的 20% 等於 30"
+ ],
+ "identifier": "isPercentOfWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼減少20%"
+ ],
+ "identifier": "isPercentOffWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "減少20%之後是30",
+ "減少 20% 之後是 30"
+ ],
+ "identifier": "isPercentOffWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "30是甚麼加上20%",
+ "30 是甚麼加上 20%"
+ ],
+ "identifier": "isPercentOnWhat"
+ },
+ {
+ "prototypeExpressions": [
+ "20%加上甚麼是30",
+ "20% 加上甚麼是 30"
+ ],
+ "identifier": "isPercentOnWhatClassic"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20的多少%",
+ "10 是 20 的多少%",
+ "10佔20的幾%",
+ "10 佔 20 的幾%"
+ ],
+ "identifier": "isWhatPercentOf"
+ },
+ {
+ "prototypeExpressions": [
+ "10是20裡減少多少%",
+ "10 是 20 裡減少多少%"
+ ],
+ "identifier": "isWhatPercentOff"
+ },
+ {
+ "prototypeExpressions": [
+ "20是10加上多少的%",
+ "20 是 10 加上多少的%",
+ "20為10增加%",
+ "20 為 10 增加%"
+ ],
+ "identifier": "isWhatPercentOn"
+ }
+ ],
+ "general": [
+ {
+ "prototypeExpressions": [
+ "20除以3的餘數",
+ "20 除以 3 的餘數"
+ ],
+ "identifier": "remainder"
+ },
+ {
+ "prototypeExpressions": [
+ "20的一半",
+ "20 的一半"
+ ],
+ "identifier": "halfOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最小",
+ "2 和 30 哪個最小",
+ "2和30比較小的",
+ "2 和 30 比較小的"
+ ],
+ "identifier": "lesserOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2和30哪個最大",
+ "2和30比較大的",
+ "2 和 30 哪個最大",
+ "2 和 30 比較大的"
+ ],
+ "identifier": "greaterOf"
+ },
+ {
+ "prototypeExpressions": [
+ "2 和 32 的中間數",
+ "2和32的中間數"
+ ],
+ "identifier": "midpoint"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是幾分之8",
+ "相比 6 比 600 是幾分之 8"
+ ],
+ "identifier": "proportionsFindNumerator"
+ },
+ {
+ "prototypeExpressions": [
+ "相比6比600是8分之幾",
+ "相比 6 比 600 是 8 分之幾"
+ ],
+ "identifier": "proportionsFindDenominator"
+ },
+ {
+ "prototypeExpressions": [
+ "1到5之間的隨機數",
+ "1 到 5 之間的隨機數",
+ "1 到 5 中的隨機數",
+ "1到5中的隨機數"
+ ],
+ "identifier": "makeRandomNumber"
+ }
+ ],
+ "unitRelated": [
+ {
+ "prototypeExpressions": [
+ "__unit_expression 中的 __unit"
+ ],
+ "identifier": "unitInUnitExpression"
+ }
+ ],
+ "datetime": [
+ {
+ "prototypeExpressions": [
+ "__datestamp 和 __datestamp 之間的 __unit",
+ "由 __datestamp 至 __datestamp 的 __unit",
+ "__datestamp 至 __datestamp 中的 __unit"
+ ],
+ "identifier": "calendarUnitBetweenDates"
+ },
+ {
+ "prototypeExpressions": [
+ "__unit 至 __datestamp",
+ "__unit 之前 __datestamp",
+ "__unit 直到 __datestamp",
+ "__unit 直到 __datestamp"
+ ],
+ "identifier": "calendarUnitToDate"
+ },
+ {
+ "prototypeExpressions": [
+ "__datestamp 至 __datestamp"
+ ],
+ "identifier": "intervalBetweenDates"
+ },
+ {
+ "identifier": "intervalBetweenTimestamps",
+ "prototypeExpressions": [
+ "__timestamp 至 __timestamp"
+ ]
+ },
+ {
+ "identifier": "calendarUnitSinceDate",
+ "prototypeExpressions": [
+ "__unit 自從 __datestamp"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "__timespan 由 __datestamp",
+ "__timespan 之後 __datestamp"
+ ],
+ "identifier": "calendarUnitExpressionAfterDate"
+ },
+ {
+ "prototypeExpressions": [
+ "新時間標記"
+ ],
+ "identifier": "generateTimestamp"
+ },
+ {
+ "identifier": "timeInTimezone",
+ "prototypeExpressions": [
+ "__timezone 的時間",
+ "時間於 __timezone"
+ ]
+ },
+ {
+ "prototypeExpressions": [
+ "在 __timezone 與 __timezone 中的時差",
+ "__timezone 和 __timezone 之間的時差",
+ "在 __timezone 和 __timezone 中的時差",
+ "__timezone 和 __timezone 的時差"
+ ],
+ "identifier": "differenceBetweenTimezones"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings
new file mode 100644
index 000000000..51fe2d882
Binary files /dev/null and b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings differ
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.stringsdict b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.stringsdict
new file mode 100644
index 000000000..d6a220ff7
Binary files /dev/null and b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.stringsdict differ
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/LocalizedFixtures.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/LocalizedFixtures.json
new file mode 100644
index 000000000..4d6ae1492
--- /dev/null
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/LocalizedFixtures.json
@@ -0,0 +1,132 @@
+{
+ "fixtures": {
+ "isNotEqualToOperators": [
+ "!=",
+ "=!"
+ ],
+ "decimalPlacesTypes": [
+ "位數"
+ ],
+ "multiplierTypes": [
+ "倍數"
+ ],
+ "divisionOperators": [
+ "÷",
+ "每"
+ ],
+ "roundingConverters": [
+ "數值簡化"
+ ],
+ "lessThanOrEqualToOperators": [
+ "<=",
+ "=<"
+ ],
+ "multiplicationOperators": [
+ "×",
+ "x"
+ ],
+ "tomorrowDateAliases": [
+ "明天"
+ ],
+ "laptimeTypes": [
+ "圈速"
+ ],
+ "roundingDownConverters": [
+ "下舍入"
+ ],
+ "numberTypes": [
+ "數目"
+ ],
+ "greaterThanOrEqualToOperators": [
+ ">=",
+ "=>"
+ ],
+ "subtractionOperators": [
+ "−",
+ "–"
+ ],
+ "dateTypes": [
+ "日期"
+ ],
+ "roundingUpConverters": [
+ "上舍入"
+ ],
+ "iso8601Types": [
+ "iso8601"
+ ],
+ "todayDateAliases": [
+ "今天"
+ ],
+ "timestampTypes": [
+ "時間標記"
+ ],
+ "piAliases": [
+ "π"
+ ],
+ "additionOperators": [
+ "加"
+ ],
+ "timespanTypes": [
+ "時距"
+ ],
+ "yesterdayDateAliases": [
+ "昨天"
+ ],
+ "converterSymbols": [
+ "到",
+ "當成"
+ ],
+ "nowDateAliases": [
+ "現在"
+ ],
+ "monthOfYearDateAliases": [
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月",
+ "一月",
+ "二月",
+ "三月",
+ "四月",
+ "五月",
+ "六月",
+ "七月",
+ "八月",
+ "九月",
+ "十月",
+ "十一月",
+ "十二月"
+ ],
+ "fractionTypes": [
+ "分數"
+ ],
+ "dayOfWeekDateAliases": [
+ "星期一",
+ "星期二",
+ "星期三",
+ "星期四",
+ "星期五",
+ "星期六",
+ "星期日",
+ "週一",
+ "週二",
+ "週二",
+ "週三",
+ "週四",
+ "週五",
+ "週六",
+ "週日"
+ ],
+ "percentTypes": [
+ "百分率"
+ ]
+ }
+}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/UnitDescriptions.json b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/UnitDescriptions.json
new file mode 100644
index 000000000..026b38932
--- /dev/null
+++ b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/Resources/zh-Hant.lproj/UnitDescriptions.json
@@ -0,0 +1,1588 @@
+{
+ "energy" : [
+ {
+ "symbol" : "J",
+ "aliases" : [
+ "焦耳",
+ "焦耳"
+ ],
+ "identifier" : "joules"
+ },
+ {
+ "symbol" : "kJ",
+ "aliases" : [
+ "千焦耳",
+ "千焦耳"
+ ],
+ "identifier" : "kilojoules"
+ },
+ {
+ "symbol" : "mJ",
+ "aliases" : [
+ "百萬焦耳",
+ "百萬焦耳"
+ ],
+ "identifier" : "megajoules"
+ },
+ {
+ "symbol" : "gJ",
+ "aliases" : [
+ "吉焦耳",
+ "吉焦耳"
+ ],
+ "identifier" : "gigajoules"
+ },
+ {
+ "symbol" : "cal",
+ "aliases" : [
+ "卡路里",
+ "卡路里"
+ ],
+ "identifier" : "calories"
+ },
+ {
+ "symbol" : "kCal",
+ "aliases" : [
+ "千卡路里",
+ "千卡路里"
+ ],
+ "identifier" : "kilocalories"
+ },
+ {
+ "symbol" : "Wh",
+ "aliases" : [
+ "瓦時",
+ "watt hours"
+ ],
+ "identifier" : "wattHours"
+ },
+ {
+ "symbol" : "W m",
+ "aliases" : [
+ "瓦分",
+ "瓦分"
+ ],
+ "identifier" : "wattMinutes"
+ },
+ {
+ "symbol" : "W s",
+ "aliases" : [
+ "瓦秒",
+ "瓦秒"
+ ],
+ "identifier" : "wattSeconds"
+ },
+ {
+ "symbol" : "kWh",
+ "aliases" : [
+ "千瓦時",
+ "千瓦時"
+ ],
+ "identifier" : "kilowattHours"
+ },
+ {
+ "symbol" : "MWh",
+ "aliases" : [
+ "百萬瓦時",
+ "百萬瓦時"
+ ],
+ "identifier" : "megawattHours"
+ },
+ {
+ "symbol" : "GWh",
+ "aliases" : [
+ "吉瓦時",
+ "吉瓦時"
+ ],
+ "identifier" : "gigawattHours"
+ },
+ {
+ "symbol" : "TWh",
+ "aliases" : [
+ "兆瓦時",
+ "兆瓦時"
+ ],
+ "identifier" : "terawattHours"
+ }
+ ],
+ "volume" : [
+ {
+ "symbol" : "ML",
+ "aliases" : [
+ "百萬升",
+ "百萬升",
+ "公升",
+ "公升",
+ "ML"
+ ],
+ "identifier" : "megaliters"
+ },
+ {
+ "symbol" : "kL",
+ "aliases" : [
+ "千升",
+ "千升",
+ "千升",
+ "千升",
+ "kL"
+ ],
+ "identifier" : "kiloliters"
+ },
+ {
+ "symbol" : "L",
+ "aliases" : [
+ "升",
+ "升",
+ "升",
+ "升",
+ "L"
+ ],
+ "identifier" : "liters"
+ },
+ {
+ "symbol" : "mL",
+ "aliases" : [
+ "毫升",
+ "毫升",
+ "毫升",
+ "毫升",
+ "mL"
+ ],
+ "identifier" : "milliliters"
+ },
+ {
+ "symbol" : "km³",
+ "aliases" : [
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "立方公里",
+ "公里^3",
+ "公里^3",
+ "公里³",
+ "公里³",
+ "公里³",
+ "公里³",
+ "km3",
+ "km^3"
+ ],
+ "identifier" : "cubicKilometers"
+ },
+ {
+ "symbol" : "m³",
+ "aliases" : [
+ "立方公尺",
+ "立方公尺",
+ "立方米",
+ "立方米",
+ "m3",
+ "m^3",
+ "米³",
+ "米³",
+ "米³",
+ "米³"
+ ],
+ "identifier" : "cubicMeters"
+ },
+ {
+ "symbol" : "cm³",
+ "aliases" : [
+ "立方公分",
+ "立方公分",
+ "立方厘米",
+ "立方厘米",
+ "cm3",
+ "cm^3",
+ "厘米³"
+ ],
+ "identifier" : "cubicCentimeters"
+ },
+ {
+ "symbol" : "mm³",
+ "aliases" : [
+ "立方公釐",
+ "立方公釐",
+ "立方毫米",
+ "立方毫米",
+ "mm3",
+ "mm^3"
+ ],
+ "identifier" : "cubicMillimeters"
+ },
+ {
+ "symbol" : "in³",
+ "aliases" : [
+ "立方吋",
+ "立方吋",
+ "吋³",
+ "in3",
+ "in^3",
+ "cuin"
+ ],
+ "identifier" : "cubicInches"
+ },
+ {
+ "symbol" : "ft³",
+ "aliases" : [
+ "立方尺",
+ "立方尺",
+ "cuft",
+ "尺³",
+ "ft3",
+ "ft^3"
+ ],
+ "identifier" : "cubicFeet"
+ },
+ {
+ "symbol" : "yd³",
+ "aliases" : [
+ "立方碼",
+ "立方碼",
+ "yd³",
+ "碼³",
+ "cuyd",
+ "yd3",
+ "yd^3"
+ ],
+ "identifier" : "cubicYards"
+ },
+ {
+ "symbol" : "mi³",
+ "aliases" : [
+ "立方英里",
+ "立方英里",
+ "mi³",
+ "mi3",
+ "mi^3",
+ "英里³",
+ "英里^3",
+ "英里^3"
+ ],
+ "identifier" : "cubicMiles"
+ },
+ {
+ "symbol" : "bsh",
+ "aliases" : [
+ "蒲式耳",
+ "蒲式耳"
+ ],
+ "identifier" : "bushels"
+ },
+ {
+ "symbol" : "metric cup",
+ "aliases" : [
+ "公制杯",
+ "公制杯"
+ ],
+ "identifier" : "metricCups"
+ },
+ {
+ "symbol" : "cup",
+ "aliases" : [
+ "美制杯",
+ "美制杯"
+ ],
+ "identifier" : "cups"
+ },
+ {
+ "symbol" : "af",
+ "aliases" : [
+ "英畝英尺",
+ "英畝英尺"
+ ],
+ "identifier" : "acreFeet"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "品脫",
+ "品脫"
+ ],
+ "identifier" : "pints"
+ },
+ {
+ "symbol" : "qt",
+ "aliases" : [
+ "夸脫",
+ "夸脫"
+ ],
+ "identifier" : "quarts"
+ },
+ {
+ "symbol" : "gal",
+ "aliases" : [
+ "加侖",
+ "加侖",
+ "gal"
+ ],
+ "identifier" : "gallons"
+ },
+ {
+ "symbol" : "tbsp",
+ "aliases" : [
+ "湯匙",
+ "湯匙",
+ "tbsp"
+ ],
+ "identifier" : "tablespoons"
+ },
+ {
+ "symbol" : "tsp",
+ "aliases" : [
+ "茶匙",
+ "茶匙",
+ "tsp"
+ ],
+ "identifier" : "teaspoons"
+ },
+ {
+ "symbol" : "fl oz",
+ "aliases" : [
+ "液盎司",
+ "液盎司",
+ "floz"
+ ],
+ "identifier" : "fluidOunces"
+ }
+ ],
+ "dataStorage" : [
+ {
+ "symbol" : "B",
+ "aliases" : [
+ "位元組",
+ "位元組"
+ ],
+ "identifier" : "bytes"
+ },
+ {
+ "symbol" : "bit",
+ "aliases" : [
+ "位元",
+ "位元"
+ ],
+ "identifier" : "bits"
+ },
+ {
+ "symbol" : "YB",
+ "aliases" : [
+ "佑位元組",
+ "佑位元組"
+ ],
+ "identifier" : "yottabytes"
+ },
+ {
+ "symbol" : "ZB",
+ "aliases" : [
+ "皆位元組",
+ "皆位元組"
+ ],
+ "identifier" : "zettabytes"
+ },
+ {
+ "symbol" : "EB",
+ "aliases" : [
+ "艾位元組",
+ "艾位元組"
+ ],
+ "identifier" : "exabytes"
+ },
+ {
+ "symbol" : "PB",
+ "aliases" : [
+ "拍位元組",
+ "拍位元組"
+ ],
+ "identifier" : "petabytes"
+ },
+ {
+ "symbol" : "TB",
+ "aliases" : [
+ "兆位元組",
+ "兆位元組",
+ "TB",
+ "tb"
+ ],
+ "identifier" : "terabytes"
+ },
+ {
+ "symbol" : "GB",
+ "aliases" : [
+ "吉位元組",
+ "吉位元組",
+ "GB",
+ "gb"
+ ],
+ "identifier" : "gigabytes"
+ },
+ {
+ "symbol" : "MB",
+ "aliases" : [
+ "百萬位元組",
+ "百萬位元組",
+ "MB",
+ "mb"
+ ],
+ "identifier" : "megabytes"
+ },
+ {
+ "symbol" : "kB",
+ "aliases" : [
+ "千位元組",
+ "千位元組",
+ "KB",
+ "kb"
+ ],
+ "identifier" : "kilobytes"
+ },
+ {
+ "symbol" : "Yb",
+ "aliases" : [
+ "佑位元",
+ "佑位元",
+ "Ybit"
+ ],
+ "identifier" : "yottabits"
+ },
+ {
+ "symbol" : "Zb",
+ "aliases" : [
+ "皆位元",
+ "皆位元",
+ "Zbit"
+ ],
+ "identifier" : "zettabits"
+ },
+ {
+ "symbol" : "Eb",
+ "aliases" : [
+ "艾位元",
+ "艾位元",
+ "Ebit"
+ ],
+ "identifier" : "exabits"
+ },
+ {
+ "symbol" : "Pb",
+ "aliases" : [
+ "拍位元",
+ "拍位元",
+ "Pbit"
+ ],
+ "identifier" : "petabits"
+ },
+ {
+ "symbol" : "Tb",
+ "aliases" : [
+ "兆位元",
+ "兆位元",
+ "Tbit"
+ ],
+ "identifier" : "terabits"
+ },
+ {
+ "symbol" : "Gb",
+ "aliases" : [
+ "吉位元",
+ "吉位元",
+ "Gbit"
+ ],
+ "identifier" : "gigabits"
+ },
+ {
+ "symbol" : "Mb",
+ "aliases" : [
+ "百萬位元",
+ "百萬位元",
+ "Mbit"
+ ],
+ "identifier" : "megabits"
+ },
+ {
+ "symbol" : "kb",
+ "aliases" : [
+ "千位元",
+ "千位元",
+ "Kbit",
+ "Kb"
+ ],
+ "identifier" : "kilobits"
+ },
+ {
+ "symbol" : "YiB",
+ "aliases" : [
+ "二進位佑位元組",
+ "二進位佑位元組",
+ "YiB"
+ ],
+ "identifier" : "yobibytes"
+ },
+ {
+ "symbol" : "ZiB",
+ "aliases" : [
+ "二進位皆位元組",
+ "二進位皆位元組",
+ "ZiB"
+ ],
+ "identifier" : "zebibytes"
+ },
+ {
+ "symbol" : "EiB",
+ "aliases" : [
+ "二進位艾位元組",
+ "二進位艾位元組",
+ "EiB"
+ ],
+ "identifier" : "exbibytes"
+ },
+ {
+ "symbol" : "PiB",
+ "aliases" : [
+ "二進位拍位元組",
+ "二進位拍位元組",
+ "PiB"
+ ],
+ "identifier" : "pebibytes"
+ },
+ {
+ "symbol" : "TiB",
+ "aliases" : [
+ "二進位兆位元組",
+ "二進位兆位元組",
+ "TiB"
+ ],
+ "identifier" : "tebibytes"
+ },
+ {
+ "symbol" : "GiB",
+ "aliases" : [
+ "二進位吉位元組",
+ "二進位吉位元組",
+ "GiB"
+ ],
+ "identifier" : "gibibytes"
+ },
+ {
+ "symbol" : "MiB",
+ "aliases" : [
+ "二進位百萬位元組",
+ "二進位百萬位元組",
+ "MiB"
+ ],
+ "identifier" : "mebibytes"
+ },
+ {
+ "symbol" : "KiB",
+ "aliases" : [
+ "二進位千位元組",
+ "二進位千位元組",
+ "KiB"
+ ],
+ "identifier" : "kibibytes"
+ },
+ {
+ "symbol" : "Yib",
+ "aliases" : [
+ "二進位佑位元",
+ "二進位佑位元",
+ "Yibit"
+ ],
+ "identifier" : "yobibits"
+ },
+ {
+ "symbol" : "Zib",
+ "aliases" : [
+ "二進位皆位元",
+ "二進位皆位元",
+ "Zibit"
+ ],
+ "identifier" : "zebibits"
+ },
+ {
+ "symbol" : "Eib",
+ "aliases" : [
+ "二進位艾位元",
+ "二進位艾位元",
+ "Eibit"
+ ],
+ "identifier" : "exbibits"
+ },
+ {
+ "symbol" : "Pib",
+ "aliases" : [
+ "二進位拍位元",
+ "二進位拍位元",
+ "Pibit"
+ ],
+ "identifier" : "pebibits"
+ },
+ {
+ "symbol" : "Tib",
+ "aliases" : [
+ "二進位兆位元",
+ "二進位兆位元",
+ "Tibit"
+ ],
+ "identifier" : "tebibits"
+ },
+ {
+ "symbol" : "Gib",
+ "aliases" : [
+ "二進位吉位元",
+ "二進位吉位元",
+ "Gibit"
+ ],
+ "identifier" : "gibibits"
+ },
+ {
+ "symbol" : "Mib",
+ "aliases" : [
+ "二進位百萬位元",
+ "二進位百萬位元",
+ "Mibit"
+ ],
+ "identifier" : "mebibits"
+ },
+ {
+ "symbol" : "Kib",
+ "aliases" : [
+ "二進位千位元",
+ "二進位千位元",
+ "Kibit"
+ ],
+ "identifier" : "kibibits"
+ }
+ ],
+ "temperature" : [
+ {
+ "symbol" : "K",
+ "aliases" : [
+ "克耳文"
+ ],
+ "identifier" : "kelvin"
+ },
+ {
+ "symbol" : "°C",
+ "aliases" : [
+ "攝氏溫度",
+ "攝氏溫度",
+ "ºC",
+ "C",
+ "degC",
+ "攝氏"
+ ],
+ "identifier" : "celsius"
+ },
+ {
+ "symbol" : "°F",
+ "aliases" : [
+ "華氏溫標",
+ "華氏溫標",
+ "ºF",
+ "F",
+ "degF",
+ "華氏"
+ ],
+ "identifier" : "fahrenheit"
+ }
+ ],
+ "dataTransfer" : [
+ {
+ "symbol" : "Bps",
+ "aliases" : [],
+ "identifier" : "bytesPerSecond"
+ },
+ {
+ "symbol" : "bps",
+ "aliases" : [],
+ "identifier" : "bitsPerSecond"
+ },
+ {
+ "symbol" : "YBps",
+ "aliases" : [],
+ "identifier" : "yottabytesPerSecond"
+ },
+ {
+ "symbol" : "ZBps",
+ "aliases" : [],
+ "identifier" : "zettabytesPerSecond"
+ },
+ {
+ "symbol" : "EBps",
+ "aliases" : [],
+ "identifier" : "exabytesPerSecond"
+ },
+ {
+ "symbol" : "PBps",
+ "aliases" : [],
+ "identifier" : "petabytesPerSecond"
+ },
+ {
+ "symbol" : "TBps",
+ "aliases" : [],
+ "identifier" : "terabytesPerSecond"
+ },
+ {
+ "symbol" : "GBps",
+ "aliases" : [
+ "gBps"
+ ],
+ "identifier" : "gigabytesPerSecond"
+ },
+ {
+ "symbol" : "MBps",
+ "aliases" : [
+ "mBps"
+ ],
+ "identifier" : "megabytesPerSecond"
+ },
+ {
+ "symbol" : "KBps",
+ "aliases" : [
+ "kBps"
+ ],
+ "identifier" : "kilobytesPerSecond"
+ },
+ {
+ "symbol" : "Ybps",
+ "aliases" : [],
+ "identifier" : "yottabitsPerSecond"
+ },
+ {
+ "symbol" : "Zbps",
+ "aliases" : [],
+ "identifier" : "zettabitsPerSecond"
+ },
+ {
+ "symbol" : "Ebps",
+ "aliases" : [],
+ "identifier" : "exabitsPerSecond"
+ },
+ {
+ "symbol" : "Pbps",
+ "aliases" : [
+ "Pbps"
+ ],
+ "identifier" : "petabitsPerSecond"
+ },
+ {
+ "symbol" : "Tbps",
+ "aliases" : [
+ "tbps"
+ ],
+ "identifier" : "terabitsPerSecond"
+ },
+ {
+ "symbol" : "Gbps",
+ "aliases" : [
+ "gbps"
+ ],
+ "identifier" : "gigabitsPerSecond"
+ },
+ {
+ "symbol" : "Mbps",
+ "aliases" : [
+ "mbps"
+ ],
+ "identifier" : "megabitsPerSecond"
+ },
+ {
+ "symbol" : "Kbps",
+ "aliases" : [
+ "kbps"
+ ],
+ "identifier" : "kilobitsPerSecond"
+ },
+ {
+ "symbol" : "YiBps",
+ "aliases" : [],
+ "identifier" : "yobibytesPerSecond"
+ },
+ {
+ "symbol" : "ZiBps",
+ "aliases" : [],
+ "identifier" : "zebibytesPerSecond"
+ },
+ {
+ "symbol" : "EiBps",
+ "aliases" : [],
+ "identifier" : "exbibytesPerSecond"
+ },
+ {
+ "symbol" : "PiBps",
+ "aliases" : [],
+ "identifier" : "pebibytesPerSecond"
+ },
+ {
+ "symbol" : "TiBps",
+ "aliases" : [],
+ "identifier" : "tebibytesPerSecond"
+ },
+ {
+ "symbol" : "GiBps",
+ "aliases" : [],
+ "identifier" : "gibibytesPerSecond"
+ },
+ {
+ "symbol" : "MiBps",
+ "aliases" : [],
+ "identifier" : "mebibytesPerSecond"
+ },
+ {
+ "symbol" : "KiBps",
+ "aliases" : [],
+ "identifier" : "kibibytesPerSecond"
+ },
+ {
+ "symbol" : "Yibps",
+ "aliases" : [],
+ "identifier" : "yobibitsPerSecond"
+ },
+ {
+ "symbol" : "Zibps",
+ "aliases" : [],
+ "identifier" : "zebibitsPerSecond"
+ },
+ {
+ "symbol" : "Eibps",
+ "aliases" : [],
+ "identifier" : "exbibitsPerSecond"
+ },
+ {
+ "symbol" : "Pibps",
+ "aliases" : [],
+ "identifier" : "pebibitsPerSecond"
+ },
+ {
+ "symbol" : "Tibps",
+ "aliases" : [],
+ "identifier" : "tebibitsPerSecond"
+ },
+ {
+ "symbol" : "Gibps",
+ "aliases" : [],
+ "identifier" : "gibibitsPerSecond"
+ },
+ {
+ "symbol" : "Mibps",
+ "aliases" : [],
+ "identifier" : "mebibitsPerSecond"
+ },
+ {
+ "symbol" : "Kibps",
+ "aliases" : [],
+ "identifier" : "kibibitsPerSecond"
+ }
+ ],
+ "speed" : [
+ {
+ "symbol" : "m/s",
+ "aliases" : [
+ "公尺每秒",
+ "公尺每秒",
+ "米每秒",
+ "米每秒"
+ ],
+ "identifier" : "metersPerSecond"
+ },
+ {
+ "symbol" : "km/h",
+ "aliases" : [
+ "公里每小時",
+ "公里每小時",
+ "公里每小時",
+ "公里每小時"
+ ],
+ "identifier" : "kilometersPerHour"
+ },
+ {
+ "symbol" : "mph",
+ "aliases" : [
+ "英里每小時",
+ "英里每小時"
+ ],
+ "identifier" : "milesPerHour"
+ },
+ {
+ "symbol" : "kn",
+ "aliases" : [
+ "節",
+ "節"
+ ],
+ "identifier" : "knots"
+ }
+ ],
+ "angle" : [
+ {
+ "symbol" : "°",
+ "aliases" : [
+ "度",
+ "度"
+ ],
+ "identifier" : "degrees"
+ },
+ {
+ "symbol" : "rad",
+ "aliases" : [
+ "弧度",
+ "弧度"
+ ],
+ "identifier" : "radians"
+ }
+ ],
+ "length" : [
+ {
+ "symbol" : "m",
+ "aliases" : [
+ "公尺",
+ "公尺",
+ "米",
+ "米"
+ ],
+ "identifier" : "meters"
+ },
+ {
+ "symbol" : "km",
+ "aliases" : [
+ "公里",
+ "公里",
+ "公里",
+ "公里"
+ ],
+ "identifier" : "kilometers"
+ },
+ {
+ "symbol" : "cm",
+ "aliases" : [
+ "公分",
+ "公分",
+ "厘米",
+ "厘米"
+ ],
+ "identifier" : "centimeters"
+ },
+ {
+ "symbol" : "mm",
+ "aliases" : [
+ "公釐",
+ "公釐",
+ "毫米",
+ "毫米"
+ ],
+ "identifier" : "millimeters"
+ },
+ {
+ "symbol" : "µm",
+ "aliases" : [
+ "微米",
+ "微米",
+ "微米",
+ "微米"
+ ],
+ "identifier" : "micrometers"
+ },
+ {
+ "symbol" : "nm",
+ "aliases" : [
+ "奈米",
+ "奈米",
+ "奈米",
+ "奈米"
+ ],
+ "identifier" : "nanometers"
+ },
+ {
+ "symbol" : "in",
+ "aliases" : [
+ "吋",
+ "吋"
+ ],
+ "identifier" : "inches"
+ },
+ {
+ "symbol" : "ft",
+ "aliases" : [
+ "尺",
+ "尺"
+ ],
+ "identifier" : "feet"
+ },
+ {
+ "symbol" : "yd",
+ "aliases" : [
+ "碼",
+ "碼"
+ ],
+ "identifier" : "yards"
+ },
+ {
+ "symbol" : "mi",
+ "aliases" : [
+ "哩",
+ "哩"
+ ],
+ "identifier" : "miles"
+ },
+ {
+ "symbol" : "ly",
+ "aliases" : [
+ "光年",
+ "光年"
+ ],
+ "identifier" : "lightyears"
+ },
+ {
+ "symbol" : "pc",
+ "aliases" : [
+ "秒差距",
+ "秒差距"
+ ],
+ "identifier" : "parsecs"
+ },
+ {
+ "symbol" : "NM",
+ "aliases" : [
+ "海里",
+ "海里"
+ ],
+ "identifier" : "nauticalMiles"
+ },
+ {
+ "symbol" : "ftm",
+ "aliases" : [
+ "噚",
+ "噚"
+ ],
+ "identifier" : "fathoms"
+ },
+ {
+ "symbol" : "fur",
+ "aliases" : [
+ "化朗",
+ "化朗"
+ ],
+ "identifier" : "furlongs"
+ },
+ {
+ "symbol" : "px",
+ "aliases" : [
+ "像素",
+ "像素"
+ ],
+ "identifier" : "pixel"
+ },
+ {
+ "symbol" : "em",
+ "aliases" : [],
+ "identifier" : "em"
+ },
+ {
+ "symbol" : "pt",
+ "aliases" : [
+ "pts"
+ ],
+ "identifier" : "point"
+ }
+ ],
+ "area" : [
+ {
+ "symbol" : "km²",
+ "aliases" : [
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "平方公里",
+ "公里²",
+ "公里²",
+ "公里²",
+ "公里²",
+ "km^2",
+ "km2"
+ ],
+ "identifier" : "squareKilometers"
+ },
+ {
+ "symbol" : "m²",
+ "aliases" : [
+ "平方公尺",
+ "平方公尺",
+ "平方米",
+ "平方米",
+ "m^2",
+ "米^2",
+ "米^2",
+ "公尺^2",
+ "公尺^2",
+ "公尺²",
+ "公尺²",
+ "米²",
+ "米²",
+ "m2"
+ ],
+ "identifier" : "squareMeters"
+ },
+ {
+ "symbol" : "cm²",
+ "aliases" : [
+ "平方公分",
+ "平方公分",
+ "平方厘米",
+ "平方厘米",
+ "厘米^2",
+ "厘米²",
+ "公分^2",
+ "公分²",
+ "cm^2",
+ "cm2"
+ ],
+ "identifier" : "squareCentimeters"
+ },
+ {
+ "symbol" : "mm²",
+ "aliases" : [
+ "平方公釐",
+ "平方公釐",
+ "平方毫米",
+ "平方毫米",
+ "公釐^2",
+ "公釐²",
+ "毫米^2",
+ "毫米²",
+ "mm^2",
+ "mm2"
+ ],
+ "identifier" : "squareMillimeters"
+ },
+ {
+ "symbol" : "µm²",
+ "aliases" : [
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "平方微米",
+ "微米^2",
+ "微米²",
+ "微米^2",
+ "微米²",
+ "µm^2",
+ "µm2"
+ ],
+ "identifier" : "squareMicrometers"
+ },
+ {
+ "symbol" : "in²",
+ "aliases" : [
+ "平方吋",
+ "平方吋",
+ "sqin",
+ "吋^2",
+ "in2",
+ "吋²"
+ ],
+ "identifier" : "squareInches"
+ },
+ {
+ "symbol" : "ft²",
+ "aliases" : [
+ "平方尺",
+ "平方尺",
+ "sqft",
+ "sqfeet",
+ "ft^2",
+ "ft2",
+ "尺^2",
+ "尺²"
+ ],
+ "identifier" : "squareFeet"
+ },
+ {
+ "symbol" : "yd²",
+ "aliases" : [
+ "平方碼",
+ "平方碼",
+ "sqyard",
+ "yd2",
+ "yd^2",
+ "碼^2",
+ "碼²",
+ "sqyd"
+ ],
+ "identifier" : "squareYards"
+ },
+ {
+ "symbol" : "mi²",
+ "aliases" : [
+ "平方哩",
+ "平方哩",
+ "mi^2",
+ "mi2",
+ "哩^2",
+ "哩^2",
+ "sqmile",
+ "sqmiles",
+ "sqmi",
+ "哩²"
+ ],
+ "identifier" : "squareMiles"
+ },
+ {
+ "symbol" : "ac",
+ "aliases" : [
+ "英畝",
+ "英畝",
+ "ac"
+ ],
+ "identifier" : "acres"
+ },
+ {
+ "symbol" : "ha",
+ "aliases" : [
+ "公頃",
+ "公頃",
+ "ha"
+ ],
+ "identifier" : "hectares"
+ },
+ {
+ "symbol" : "公畝",
+ "aliases" : [],
+ "identifier" : "ares"
+ }
+ ],
+ "fuelEfficiency" : [
+ {
+ "symbol" : "L/100km",
+ "aliases" : [
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里",
+ "升每百公里"
+ ],
+ "identifier" : "litersPer100Kilometers"
+ },
+ {
+ "symbol" : "mpg",
+ "aliases" : [
+ "每加侖英里"
+ ],
+ "identifier" : "milesPerGallon"
+ }
+ ],
+ "power" : [
+ {
+ "symbol" : "W",
+ "aliases" : [
+ "瓦特",
+ "瓦特"
+ ],
+ "identifier" : "watts"
+ },
+ {
+ "symbol" : "mW",
+ "aliases" : [
+ "毫瓦",
+ "毫瓦"
+ ],
+ "identifier" : "milliwatts"
+ },
+ {
+ "symbol" : "kW",
+ "aliases" : [
+ "千瓦",
+ "千瓦"
+ ],
+ "identifier" : "kilowatts"
+ },
+ {
+ "symbol" : "MW",
+ "aliases" : [
+ "百萬瓦",
+ "百萬瓦"
+ ],
+ "identifier" : "megawatts"
+ },
+ {
+ "symbol" : "GW",
+ "aliases" : [
+ "吉瓦",
+ "吉瓦"
+ ],
+ "identifier" : "gigawatts"
+ },
+ {
+ "symbol" : "TW",
+ "aliases" : [
+ "兆瓦",
+ "兆瓦"
+ ],
+ "identifier" : "terawatts"
+ },
+ {
+ "symbol" : "hp",
+ "aliases" : [
+ "馬力"
+ ],
+ "identifier" : "horsepower"
+ }
+ ],
+ "mass" : [
+ {
+ "symbol" : "kg",
+ "aliases" : [
+ "公斤",
+ "公斤"
+ ],
+ "identifier" : "kilograms"
+ },
+ {
+ "symbol" : "g",
+ "aliases" : [
+ "克",
+ "克"
+ ],
+ "identifier" : "grams"
+ },
+ {
+ "symbol" : "mg",
+ "aliases" : [
+ "微克",
+ "微克"
+ ],
+ "identifier" : "milligrams"
+ },
+ {
+ "symbol" : "ng",
+ "aliases" : [
+ "奈克",
+ "奈克"
+ ],
+ "identifier" : "nanograms"
+ },
+ {
+ "symbol" : "oz",
+ "aliases" : [
+ "盎司",
+ "盎司"
+ ],
+ "identifier" : "ounces"
+ },
+ {
+ "symbol" : "lb",
+ "aliases" : [
+ "lbs",
+ "磅",
+ "磅"
+ ],
+ "identifier" : "pounds"
+ },
+ {
+ "symbol" : "st",
+ "aliases" : [
+ "石",
+ "石"
+ ],
+ "identifier" : "stones"
+ },
+ {
+ "symbol" : "t",
+ "aliases" : [
+ "公頓",
+ "公頓"
+ ],
+ "identifier" : "metricTons"
+ },
+ {
+ "symbol" : "ton",
+ "aliases" : [
+ "短噸",
+ "短噸",
+ "噸",
+ "美噸",
+ "美噸"
+ ],
+ "identifier" : "shortTons"
+ },
+ {
+ "symbol" : "ct",
+ "aliases" : [
+ "克拉",
+ "克拉"
+ ],
+ "identifier" : "carats"
+ },
+ {
+ "symbol" : "oz t",
+ "aliases" : [
+ "金衡盎司",
+ "金衡盎司"
+ ],
+ "identifier" : "ouncesTroy"
+ }
+ ],
+ "duration" : [
+ {
+ "symbol" : "hr",
+ "aliases" : [
+ "小時",
+ "小時",
+ "hrs",
+ "h"
+ ],
+ "identifier" : "hours"
+ },
+ {
+ "symbol" : "s",
+ "aliases" : [
+ "秒",
+ "秒",
+ "sec",
+ "secs"
+ ],
+ "identifier" : "seconds"
+ },
+ {
+ "symbol" : "min",
+ "aliases" : [
+ "分",
+ "分",
+ "mins"
+ ],
+ "identifier" : "minutes"
+ },
+ {
+ "symbol" : "day",
+ "aliases" : [
+ "日"
+ ],
+ "identifier" : "days"
+ },
+ {
+ "symbol" : "workday",
+ "aliases" : [
+ "平日",
+ "平日",
+ "工作日",
+ "平日",
+ "平日",
+ "工作日"
+ ],
+ "identifier" : "weekdays"
+ },
+ {
+ "symbol" : "week",
+ "aliases" : [
+ "週"
+ ],
+ "identifier" : "weeks"
+ },
+ {
+ "symbol" : "month",
+ "aliases" : [
+ "月"
+ ],
+ "identifier" : "months"
+ },
+ {
+ "symbol" : "year",
+ "aliases" : [
+ "年"
+ ],
+ "identifier" : "years"
+ },
+ {
+ "symbol" : "ms",
+ "aliases" : [
+ "毫秒",
+ "毫秒"
+ ],
+ "identifier" : "milliseconds"
+ },
+ {
+ "symbol" : "µs",
+ "aliases" : [
+ "微秒",
+ "微秒"
+ ],
+ "identifier" : "microseconds"
+ },
+ {
+ "symbol" : "ns",
+ "aliases" : [
+ "奈秒",
+ "奈秒"
+ ],
+ "identifier" : "nanoseconds"
+ }
+ ],
+ "currency" : [
+ {
+ "symbol" : "USD",
+ "aliases" : [
+ "美元"
+ ],
+ "identifier" : "usd"
+ }
+ ],
+ "frequency" : [
+ {
+ "symbol" : "Hz",
+ "aliases" : [
+ "赫茲",
+ "hz"
+ ],
+ "identifier" : "hertz"
+ },
+ {
+ "symbol" : "kHz",
+ "aliases" : [
+ "千赫茲"
+ ],
+ "identifier" : "kilohertz"
+ },
+ {
+ "symbol" : "MHz",
+ "aliases" : [
+ "百萬赫茲"
+ ],
+ "identifier" : "megahertz"
+ },
+ {
+ "symbol" : "GHz",
+ "aliases" : [
+ "吉赫茲"
+ ],
+ "identifier" : "gigahertz"
+ },
+ {
+ "symbol" : "THz",
+ "aliases" : [
+ "兆赫茲"
+ ],
+ "identifier" : "terahertz"
+ },
+ {
+ "symbol" : "mHz",
+ "aliases" : [
+ "毫赫茲"
+ ],
+ "identifier" : "millihertz"
+ },
+ {
+ "symbol" : "µHz",
+ "aliases" : [
+ "微赫茲"
+ ],
+ "identifier" : "microhertz"
+ },
+ {
+ "symbol" : "nHz",
+ "aliases" : [
+ "奈赫茲"
+ ],
+ "identifier" : "nanohertz"
+ }
+ ]
+}
diff --git a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/SoulverCore b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/SoulverCore
index 2cc86b5b0..dbe155ca6 100755
Binary files a/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/SoulverCore and b/SoulverCore.xcframework/macos-x86_64/SoulverCore.framework/Versions/A/SoulverCore differ