run_loop 2.5.2 → 2.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 97c80ed1fe2a58b0cef94fbf675a51c4ab2b0dfb
4
- data.tar.gz: df8beb6453052671e4e9ae30fc817f2be0b09f5e
3
+ metadata.gz: df4249f36fc6ecabe9284a3065e9a46e03db5a5c
4
+ data.tar.gz: 05ffd2992c349738d98fd054dac29423b969eab0
5
5
  SHA512:
6
- metadata.gz: 826f9c54a689d3cbaf3533cff4c5cea1adf53aea150959f9a42833ac5c013e8c774dd69860e38c85410cffb6027a9e761fafaebe701eda9375fde4db07bb81a1
7
- data.tar.gz: 5efee01177d4bff8325a9d36cb4a3e7235b9c01bd2f49fc4f6baa9971cf3e56814e844b77f719fdf044a47e1072be09b5473fd00856a44dbadc60fe4a404475a
6
+ metadata.gz: fc3f2c96a9815ffe86ffc18afdc03aa3dc986d224b6c8255f54d4e409ce9164659508e648b7a327111f33d30904127634282c86a2469143b8598dd11384a3549
7
+ data.tar.gz: 5a2c62019f91ffc015d7fae3fc256e918070598d0513a48f387f92ac7045efa604e70a772e304dc6e535bd7444cf18b193bce493ba5d9fb7624c2a706fbd0b4f
@@ -825,11 +825,6 @@ $ xcrun instruments -s templates
825
825
  # https://github.com/calabash/run_loop/issues/167
826
826
  simctl.ensure_accessibility(device)
827
827
 
828
- # @todo fix software_keyboard_enabled? so we don't have to quit the sim
829
- # SimControl#software_keyboard_enabled? is always false during Core#prepare_simulator
830
- # https://github.com/calabash/run_loop/issues/168
831
- simctl.ensure_software_keyboard(device)
832
-
833
828
  # Launches the simulator if the app is not installed.
834
829
  core_sim.install
835
830
 
@@ -55,6 +55,10 @@ class RunLoop::CoreSimulator
55
55
  "CoreSimulator",
56
56
  "Devices")
57
57
 
58
+ # @!visibility private
59
+ PREFERENCES_PLIST = File.join(RunLoop::Environment.user_home_directory,
60
+ "Library", "Preferences",
61
+ "com.apple.iphonesimulator.plist")
58
62
 
59
63
  # @!visibility private
60
64
  MANAGED_PROCESSES =
@@ -114,7 +118,11 @@ class RunLoop::CoreSimulator
114
118
  # appear to influence the behavior of DeviceAgent.
115
119
  ["MobileSMSSpotlightImporter", false],
116
120
  ["UserEventAgent", false],
117
- ["mobileassetd", false]
121
+ ["mobileassetd", false],
122
+ ["pkd", false],
123
+ ["KeychainSyncingOverIDSProxy", false],
124
+ ["CloudKeychainProxy", false],
125
+ ["aslmanager", false]
118
126
  ]
119
127
 
120
128
  # @!visibility private
@@ -194,6 +202,32 @@ class RunLoop::CoreSimulator
194
202
  in_state
195
203
  end
196
204
 
205
+ # @!visibility private
206
+ #
207
+ # Per-user CoreSimulator preferences located in ~/Library/Preferences
208
+ def self.simulator_preferences_plist(pbuddy)
209
+ if !File.exist?(PREFERENCES_PLIST)
210
+ pbuddy.create_plist(PREFERENCES_PLIST)
211
+ end
212
+
213
+ PREFERENCES_PLIST
214
+ end
215
+
216
+ # @!visibility private
217
+ def self.hardware_keyboard_connected?(pbuddy)
218
+ plist = self.simulator_preferences_plist(pbuddy)
219
+ pbuddy.plist_read("ConnectHardwareKeyboard", plist)
220
+ end
221
+
222
+ # @!visibility private
223
+ #
224
+ # Connect the hardware keyboard so users can use the host machine keyboard
225
+ # to type text during testing.
226
+ def self.ensure_hardware_keyboard_connected(pbuddy)
227
+ plist = self.simulator_preferences_plist(pbuddy)
228
+ pbuddy.plist_set("ConnectHardwareKeyboard", "bool", true, plist)
229
+ end
230
+
197
231
  # @!visibility private
198
232
  # Erase a simulator. This is the same as touching the Simulator
199
233
  # "Reset Content & Settings" menu item.
@@ -362,6 +396,8 @@ class RunLoop::CoreSimulator
362
396
  end
363
397
 
364
398
  RunLoop::CoreSimulator.quit_simulator
399
+ RunLoop::CoreSimulator.ensure_hardware_keyboard_connected(pbuddy)
400
+ device.simulator_ensure_software_keyboard_will_show
365
401
 
366
402
  args = ['open', '-g', '-a', sim_app_path, '--args',
367
403
  '-CurrentDeviceUDID', device.udid, "LAUNCHED_BY_RUN_LOOP"]
@@ -517,16 +553,20 @@ Could not launch #{app.bundle_identifier} on #{device} after trying #{tries} tim
517
553
  # macOS is looking more like iOS. Process names like 'mobileassetd' are
518
554
  # found in both operating systems.
519
555
 
520
- killed = false
556
+ args = ["ps", "-o", "uid=", pid.to_s]
557
+ uid = RunLoop::Shell.run_shell_command(args)[:out].strip
558
+ if uid != "0"
559
+ killed = false
521
560
 
522
- if send_term_first
523
- term = RunLoop::ProcessTerminator.new(pid, 'TERM', process_name, term_options)
524
- killed = term.kill_process
525
- end
561
+ if send_term_first
562
+ term = RunLoop::ProcessTerminator.new(pid, 'TERM', process_name, term_options)
563
+ killed = term.kill_process
564
+ end
526
565
 
527
- if !killed
528
- term = RunLoop::ProcessTerminator.new(pid, 'KILL', process_name, kill_options)
529
- term.kill_process
566
+ if !killed
567
+ term = RunLoop::ProcessTerminator.new(pid, 'KILL', process_name, kill_options)
568
+ term.kill_process
569
+ end
530
570
  end
531
571
  end
532
572
  end
@@ -747,8 +787,15 @@ Command had no output.
747
787
  return true
748
788
  end
749
789
 
750
- # No device was passed to initializer.
751
- return true if device.nil?
790
+ if !RunLoop::CoreSimulator.hardware_keyboard_connected?(pbuddy)
791
+ RunLoop.log_debug("Simulator relaunch required: hardware keyboard not connected.")
792
+ return true
793
+ end
794
+
795
+ if !device.simulator_software_keyboard_will_show?
796
+ RunLoop.log_debug("Simulator relaunch required: software keyboard is minimized")
797
+ return true
798
+ end
752
799
 
753
800
  # Simulator is running, run_loop launched it, but it is not Booted.
754
801
  device.update_simulator_state
@@ -1088,8 +1135,17 @@ Command had no output.
1088
1135
  # @!visibility private
1089
1136
  def self.system_applications_dir(xcode=RunLoop::Xcode.new)
1090
1137
  base_dir = xcode.developer_dir
1091
- sim_apps_dir = "Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/Applications"
1092
- File.expand_path(File.join(base_dir, sim_apps_dir))
1138
+
1139
+ if xcode.version_gte_90?
1140
+ apps_dir = File.join("Platforms", "iPhoneOS.platform", "Developer",
1141
+ "Library", "CoreSimulator", "Profiles", "Runtimes",
1142
+ "iOS.simruntime", "Contents", "Resources",
1143
+ "RuntimeRoot", "Applications")
1144
+ else
1145
+ apps_dir = File.join("Platforms", "iPhoneSimulator.platform", "Developer",
1146
+ "SDKs", "iPhoneSimulator.sdk", "Applications")
1147
+ end
1148
+ File.expand_path(File.join(base_dir, apps_dir))
1093
1149
  end
1094
1150
 
1095
1151
  # @!visibility private
@@ -1098,7 +1154,19 @@ Command had no output.
1098
1154
 
1099
1155
  return false if !File.exist?(apps_dir)
1100
1156
 
1101
- black_list = ["Fitness.app", "Photo Booth.app", "ScreenSharingViewService.app"]
1157
+ if xcode.version_gte_90?
1158
+ black_list = [
1159
+ "AirMusic.app", "AirPodcasts.app", "AppStore.app", "Calculator.app",
1160
+ "CheckerBoard.app", "CTCarrierSpaceAuth.app", "Diagnostics.app",
1161
+ "DiagnosticsService.app", "FaceTime.app", "Feedback Assistant iOS.app",
1162
+ "FindMyFriends.app", "iBooks.app", "Magnifier.app", "MobileMail.app",
1163
+ "MobileNotes.app", "Music.app", "Podcasts.app", "PreBoard.app",
1164
+ "SoftwareUpdateUIService.app", "StoreDemoViewService.app", "TV.app",
1165
+ "Videos.app"
1166
+ ]
1167
+ else
1168
+ black_list = ["Fitness.app", "Photo Booth.app", "ScreenSharingViewService.app"]
1169
+ end
1102
1170
 
1103
1171
  Dir.glob("#{apps_dir}/*.app").detect do |app_dir|
1104
1172
  basename = File.basename(app_dir)
@@ -291,10 +291,21 @@ version: #{version}
291
291
 
292
292
  # @!visibility private
293
293
  def simulator_preferences_plist_path
294
- @simulator_preferences_plist_path ||= lambda {
295
- return nil if physical_device?
296
- File.join(simulator_root_dir, 'data/Library/Preferences/com.apple.Preferences.plist')
297
- }.call
294
+ return nil if physical_device?
295
+
296
+
297
+ directory = File.join(simulator_root_dir, "data", "Library", "Preferences")
298
+
299
+ if !File.exist?(directory)
300
+ FileUtils.mkdir_p(directory)
301
+ end
302
+
303
+ plist = File.join(directory, "com.apple.Preferences.plist")
304
+
305
+ if !File.exist?(plist)
306
+ pbuddy.create_plist(plist)
307
+ end
308
+ plist
298
309
  end
299
310
 
300
311
  # @!visibility private
@@ -532,6 +543,16 @@ failed with this output:
532
543
  running_apps
533
544
  end
534
545
 
546
+ def simulator_software_keyboard_will_show?
547
+ plist = simulator_preferences_plist_path
548
+ pbuddy.plist_read("AutomaticMinimizationEnabled", plist).to_i == 0
549
+ end
550
+
551
+ def simulator_ensure_software_keyboard_will_show
552
+ plist = simulator_preferences_plist_path
553
+ pbuddy.plist_set("AutomaticMinimizationEnabled", "integer", 0, plist)
554
+ end
555
+
535
556
  =begin
536
557
  PRIVATE METHODS
537
558
  =end
@@ -614,7 +635,9 @@ failed with this output:
614
635
  def simulator_required_child_processes
615
636
  @simulator_required_child_processes ||= begin
616
637
  required = ["backboardd", "installd", "SimulatorBridge", "SpringBoard"]
617
- if xcode.version_gte_8? && version.major > 8
638
+ if xcode.version_gte_90?
639
+ required << "filecoordinationd"
640
+ elsif xcode.version_gte_8? && version.major > 8
618
641
  required << "medialibraryd"
619
642
  end
620
643
 
@@ -45,6 +45,10 @@ module RunLoop
45
45
  # printf("\"%s\",", [langCode cStringUsingEncoding:NSUTF8StringEncoding]);
46
46
  # }
47
47
  LANGUAGE_CODES = {
48
+ RunLoop::Version.new("11.0") => [
49
+ "af","af-NA","af-ZA","agq","agq-CM","ak","ak-GH","am","am-ET","ar","ar-001","ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","as","as-IN","asa","asa-TZ","ast","ast-ES","az","az-Cyrl","az-Cyrl-AZ","az-AZ","bas","bas-CM","be","be-BY","bem","bem-ZM","bez","bez-TZ","bg","bg-BG","bm","bm-ML","bn","bn-BD","bn-IN","bo","bo-CN","bo-IN","br","br-FR","brx","brx-IN","bs","bs-Cyrl","bs-Cyrl-BA","bs-BA","ca","ca-AD","ca-ES","ca-FR","ca-IT","ce","ce-RU","cgg","cgg-UG","chr","chr-US","ckb","ckb-IQ","ckb-IR","cs","cs-CZ","cy","cy-GB","da","da-DK","da-GL","dav","dav-KE","de","de-AT","de-BE","de-CH","de-DE","de-IT","de-LI","de-LU","dje","dje-NE","dsb","dsb-DE","dua","dua-CM","dyo","dyo-SN","dz","dz-BT","ebu","ebu-KE","ee","ee-GH","ee-TG","el","el-CY","el-GR","en","en-001","en-150","en-AD","en-AG","en-AI","en-AL","en-AR","en-AS","en-AT","en-AU","en-BA","en-BB","en-BD","en-BE","en-BG","en-BI","en-BM","en-BR","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CH","en-CK","en-CM","en-CN","en-CX","en-CY","en-CZ","en-DE","en-DG","en-DK","en-DM","en-EE","en-ER","en-ES","en-FI","en-FJ","en-FK","en-FM","en-FR","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GR","en-GU","en-GY","en-HK","en-HR","en-HU","en-ID","en-IE","en-IL","en-IM","en-IN","en-IO","en-IS","en-IT","en-JE","en-JM","en-JP","en-KE","en-KI","en-KN","en-KR","en-KY","en-LC","en-LR","en-LS","en-LT","en-LU","en-LV","en-ME","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MV","en-MW","en-MY","en-NA","en-NF","en-NG","en-NL","en-NO","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PL","en-PN","en-PR","en-PT","en-PW","en-RO","en-RU","en-RW","en-SA","en-SB","en-SC","en-SD","en-SE","en-SG","en-SH","en-SI","en-SK","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TH","en-TK","en-TO","en-TR","en-TT","en-TV","en-TW","en-TZ","en-UG","en-UM","en-US","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","eo","es","es-419","es-AG","es-AI","es-AR","es-AW","es-BB","es-BL","es-BM","es-BO","es-BQ","es-BR","es-BS","es-BZ","es-CL","es-CO","es-CR","es-CU","es-CW","es-DM","es-DO","es-EA","es-EC","es-ES","es-FK","es-GD","es-GF","es-GL","es-GP","es-GQ","es-GT","es-GY","es-HN","es-HT","es-IC","es-KN","es-KY","es-LC","es-MF","es-MQ","es-MS","es-MX","es-NI","es-PA","es-PE","es-PH","es-PM","es-PR","es-PY","es-SR","es-SV","es-SX","es-TC","es-TT","es-US","es-UY","es-VC","es-VE","es-VG","es-VI","et","et-EE","eu","eu-ES","ewo","ewo-CM","fa","fa-AF","fa-IR","ff","ff-CM","ff-GN","ff-MR","ff-SN","fi","fi-FI","fil","fil-PH","fo","fo-DK","fo-FO","fr","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-FR","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","fur","fur-IT","fy","fy-NL","ga","ga-IE","gd","gd-GB","gl","gl-ES","gsw","gsw-CH","gsw-FR","gsw-LI","gu","gu-IN","guz","guz-KE","gv","gv-IM","ha","ha-GH","ha-NE","ha-NG","haw","haw-US","he","he-IL","hi","hi-IN","hr","hr-BA","hr-HR","hsb","hsb-DE","hu","hu-HU","hy","hy-AM","id","id-ID","ig","ig-NG","ii","ii-CN","is","is-IS","it","it-CH","it-IT","it-SM","it-VA","iu","iu-CA","ja","ja-JP","jgo","jgo-CM","jmc","jmc-TZ","ka","ka-GE","kab","kab-DZ","kam","kam-KE","kde","kde-TZ","kea","kea-CV","khq","khq-ML","ki","ki-KE","kk","kk-KZ","kkj","kkj-CM","kl","kl-GL","kln","kln-KE","km","km-KH","kn","kn-IN","ko","ko-KP","ko-KR","kok","kok-IN","ks","ks-IN","ksb","ksb-TZ","ksf","ksf-CM","ksh","ksh-DE","kw","kw-GB","ky","ky-KG","lag","lag-TZ","lb","lb-LU","lg","lg-UG","lkt","lkt-US","ln","ln-AO","ln-CD","ln-CF","ln-CG","lo","lo-LA","lrc","lrc-IQ","lrc-IR","lt","lt-LT","lu","lu-CD","luo","luo-KE","luy","luy-KE","lv","lv-LV","mas","mas-KE","mas-TZ","mer","mer-KE","mfe","mfe-MU","mg","mg-MG","mgh","mgh-MZ","mgo","mgo-CM","mk","mk-MK","ml","ml-IN","mn","mn-MN","mr","mr-IN","ms","ms-Arab","ms-Arab-BN","ms-Arab-MY","ms-BN","ms-MY","ms-SG","mt","mt-MT","mua","mua-CM","my","my-MM","mzn","mzn-IR","naq","naq-NA","nb","nb-NO","nb-SJ","nd","nd-ZW","nds","nds-DE","nds-NL","ne","ne-IN","ne-NP","nl","nl-AW","nl-BE","nl-BQ","nl-CW","nl-NL","nl-SR","nl-SX","nmg","nmg-CM","nn","nn-NO","nnh","nnh-CM","nus","nus-SS","nyn","nyn-UG","om","om-ET","om-KE","or","or-IN","os","os-GE","os-RU","pa","pa-Arab","pa-Arab-PK","pa-IN","pl","pl-PL","ps","ps-AF","pt","pt-AO","pt-BR","pt-CH","pt-CV","pt-FR","pt-GQ","pt-GW","pt-LU","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","qu","qu-BO","qu-EC","qu-PE","rm","rm-CH","rn","rn-BI","ro","ro-MD","ro-RO","rof","rof-TZ","ru","ru-BY","ru-KG","ru-KZ","ru-MD","ru-RU","ru-UA","rw","rw-RW","rwk","rwk-TZ","sah","sah-RU","saq","saq-KE","sbp","sbp-TZ","se","se-FI","se-NO","se-SE","seh","seh-MZ","ses","ses-ML","sg","sg-CF","shi","shi-MA","shi-Tfng","shi-Tfng-MA","si","si-LK","sk","sk-SK","sl","sl-SI","smn","smn-FI","sn","sn-ZW","so","so-DJ","so-ET","so-KE","so-SO","sq","sq-AL","sq-MK","sq-XK","sr","sr-BA","sr-ME","sr-RS","sr-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-RS","sr-Latn-XK","sv","sv-AX","sv-FI","sv-SE","sw","sw-CD","sw-KE","sw-TZ","sw-UG","ta","ta-IN","ta-LK","ta-MY","ta-SG","te","te-IN","teo","teo-KE","teo-UG","tg","tg-TJ","th","th-TH","ti","ti-ER","ti-ET","tk","tk-TM","to","to-TO","tr","tr-CY","tr-TR","twq","twq-NE","tzm","tzm-MA","ug","ug-CN","uk","uk-UA","ur","ur-IN","ur-PK","uz","uz-Arab","uz-Arab-AF","uz-UZ","uz-Latn","uz-Latn-UZ","vai","vai-Latn","vai-Latn-LR","vai-LR","vi","vi-VN","vun","vun-TZ","wae","wae-CH","xog","xog-UG","yav","yav-CM","yi","yi-001","yo","yo-BJ","yo-NG","yue","yue-Hans","yue-Hans-CN","yue-Hant","yue-Hant-HK","zgh","zgh-MA","zh","zh-Hans","zh-Hans-CN","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zh-Hant-TW","zu","zu-ZA"
50
+ ],
51
+
48
52
  RunLoop::Version.new("10.0") => [
49
53
  "af","af-NA","af-ZA","agq","agq-CM","ak","ak-GH","am","am-ET","ar","ar-001","ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","ars","as","as-IN","asa","asa-TZ","ast","ast-ES","az","az-Cyrl","az-Cyrl-AZ","az-AZ","bas","bas-CM","be","be-BY","bem","bem-ZM","bez","bez-TZ","bg","bg-BG","bm","bm-ML","bn","bn-BD","bn-IN","bo","bo-CN","bo-IN","br","br-FR","brx","brx-IN","bs","bs-Cyrl","bs-Cyrl-BA","bs-BA","ca","ca-AD","ca-ES","ca-FR","ca-IT","ce","ce-RU","cgg","cgg-UG","chr","chr-US","ckb","ckb-IQ","ckb-IR","cs","cs-CZ","cy","cy-GB","da","da-DK","da-GL","dav","dav-KE","de","de-AT","de-BE","de-CH","de-DE","de-LI","de-LU","dje","dje-NE","dsb","dsb-DE","dua","dua-CM","dyo","dyo-SN","dz","dz-BT","ebu","ebu-KE","ee","ee-GH","ee-TG","el","el-CY","el-GR","en","en-001","en-150","en-AD","en-AG","en-AI","en-AL","en-AS","en-AT","en-AU","en-BA","en-BB","en-BE","en-BI","en-BM","en-BR","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CH","en-CK","en-CM","en-CN","en-CX","en-CY","en-CZ","en-DE","en-DG","en-DK","en-DM","en-EE","en-ER","en-ES","en-FI","en-FJ","en-FK","en-FM","en-FR","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GR","en-GU","en-GY","en-HK","en-HR","en-HU","en-IE","en-IL","en-IM","en-IN","en-IO","en-IS","en-IT","en-JE","en-JM","en-JP","en-KE","en-KI","en-KN","en-KR","en-KY","en-LC","en-LR","en-LS","en-LT","en-LU","en-LV","en-ME","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MV","en-MW","en-MY","en-NA","en-NF","en-NG","en-NL","en-NO","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PL","en-PN","en-PR","en-PT","en-PW","en-RO","en-RU","en-RW","en-SB","en-SC","en-SD","en-SE","en-SG","en-SH","en-SI","en-SK","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TK","en-TO","en-TR","en-TT","en-TV","en-TW","en-TZ","en-UG","en-UM","en-US","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","eo","es","es-419","es-AR","es-BO","es-CL","es-CO","es-CR","es-CU","es-DO","es-EA","es-EC","es-ES","es-GQ","es-GT","es-HN","es-IC","es-MX","es-NI","es-PA","es-PE","es-PH","es-PR","es-PY","es-SV","es-US","es-UY","es-VE","et","et-EE","eu","eu-ES","ewo","ewo-CM","fa","fa-AF","fa-IR","ff","ff-CM","ff-GN","ff-MR","ff-SN","fi","fi-FI","fil","fil-PH","fo","fo-DK","fo-FO","fr","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-FR","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","fur","fur-IT","fy","fy-NL","ga","ga-IE","gd","gd-GB","gl","gl-ES","gsw","gsw-CH","gsw-FR","gsw-LI","gu","gu-IN","guz","guz-KE","gv","gv-IM","ha","ha-GH","ha-NE","ha-NG","haw","haw-US","he","he-IL","hi","hi-IN","hr","hr-BA","hr-HR","hsb","hsb-DE","hu","hu-HU","hy","hy-AM","id","id-ID","ig","ig-NG","ii","ii-CN","is","is-IS","it","it-CH","it-IT","it-SM","iu","iu-CA","ja","ja-JP","jgo","jgo-CM","jmc","jmc-TZ","ka","ka-GE","kab","kab-DZ","kam","kam-KE","kde","kde-TZ","kea","kea-CV","khq","khq-ML","ki","ki-KE","kk","kk-KZ","kkj","kkj-CM","kl","kl-GL","kln","kln-KE","km","km-KH","kn","kn-IN","ko","ko-KP","ko-KR","kok","kok-IN","ks","ks-IN","ksb","ksb-TZ","ksf","ksf-CM","ksh","ksh-DE","kw","kw-GB","ky","ky-KG","lag","lag-TZ","lb","lb-LU","lg","lg-UG","lkt","lkt-US","ln","ln-AO","ln-CD","ln-CF","ln-CG","lo","lo-LA","lrc","lrc-IQ","lrc-IR","lt","lt-LT","lu","lu-CD","luo","luo-KE","luy","luy-KE","lv","lv-LV","mas","mas-KE","mas-TZ","mer","mer-KE","mfe","mfe-MU","mg","mg-MG","mgh","mgh-MZ","mgo","mgo-CM","mk","mk-MK","ml","ml-IN","mn","mn-MN","mr","mr-IN","ms","ms-Arab","ms-Arab-BN","ms-Arab-MY","ms-BN","ms-MY","ms-SG","mt","mt-MT","mua","mua-CM","my","my-MM","mzn","mzn-IR","naq","naq-NA","nb","nb-NO","nb-SJ","nd","nd-ZW","ne","ne-IN","ne-NP","nl","nl-AW","nl-BE","nl-BQ","nl-CW","nl-NL","nl-SR","nl-SX","nmg","nmg-CM","nn","nn-NO","nnh","nnh-CM","nus","nus-SS","nyn","nyn-UG","om","om-ET","om-KE","or","or-IN","os","os-GE","os-RU","pa","pa-Arab","pa-Arab-PK","pa-IN","pl","pl-PL","ps","ps-AF","pt","pt-AO","pt-BR","pt-CV","pt-GW","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","qu","qu-BO","qu-EC","qu-PE","rm","rm-CH","rn","rn-BI","ro","ro-MD","ro-RO","rof","rof-TZ","ru","ru-BY","ru-KG","ru-KZ","ru-MD","ru-RU","ru-UA","rw","rw-RW","rwk","rwk-TZ","sah","sah-RU","saq","saq-KE","sbp","sbp-TZ","se","se-FI","se-NO","se-SE","seh","seh-MZ","ses","ses-ML","sg","sg-CF","shi","shi-MA","shi-Tfng","shi-Tfng-MA","si","si-LK","sk","sk-SK","sl","sl-SI","smn","smn-FI","sn","sn-ZW","so","so-DJ","so-ET","so-KE","so-SO","sq","sq-AL","sq-MK","sq-XK","sr","sr-BA","sr-ME","sr-RS","sr-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-RS","sr-Latn-XK","sv","sv-AX","sv-FI","sv-SE","sw","sw-CD","sw-KE","sw-TZ","sw-UG","ta","ta-IN","ta-LK","ta-MY","ta-SG","te","te-IN","teo","teo-KE","teo-UG","tg","tg-TJ","th","th-TH","ti","ti-ER","ti-ET","tk","tk-TM","to","to-TO","tr","tr-CY","tr-TR","twq","twq-NE","tzm","tzm-MA","ug","ug-CN","uk","uk-UA","ur","ur-IN","ur-PK","uz","uz-Arab","uz-Arab-AF","uz-UZ","uz-Latn","uz-Latn-UZ","vai","vai-Latn","vai-Latn-LR","vai-LR","vi","vi-VN","vun","vun-TZ","wae","wae-CH","xog","xog-UG","yav","yav-CM","yi","yi-001","yo","yo-BJ","yo-NG","yue","yue-HK","zgh","zgh-MA","zh","zh-Hans","zh-Hans-CN","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zh-Hant-TW","zu","zu-ZA"
50
54
  ],
@@ -21,7 +21,7 @@ module RunLoop
21
21
  to_s
22
22
  end
23
23
 
24
- # @!visiblity private
24
+ # @!visibility private
25
25
  # Returns a locale instance given a device and locale code
26
26
  #
27
27
  # Only codes supported by Apple are allowed.
@@ -84,6 +84,9 @@ module RunLoop
84
84
  # value:localeId] cStringUsingEncoding:NSUTF8StringEncoding]);
85
85
  # }
86
86
  LOCALES = {
87
+ RunLoop::Version.new("11.0") => {
88
+ "af" => "Afrikaans","af_NA" => "Afrikaans (Namibia)","af_ZA" => "Afrikaans (South Africa)","agq" => "Aghem","agq_CM" => "Aghem (Cameroon)","ak" => "Akan","ak_GH" => "Akan (Ghana)","am" => "Amharic","am_ET" => "Amharic (Ethiopia)","ar" => "Arabic","ar_001" => "Arabic (World)","ar_AE" => "Arabic (United Arab Emirates)","ar_BH" => "Arabic (Bahrain)","ar_DJ" => "Arabic (Djibouti)","ar_DZ" => "Arabic (Algeria)","ar_EG" => "Arabic (Egypt)","ar_EH" => "Arabic (Western Sahara)","ar_ER" => "Arabic (Eritrea)","ar_IL" => "Arabic (Israel)","ar_IQ" => "Arabic (Iraq)","ar_JO" => "Arabic (Jordan)","ar_KM" => "Arabic (Comoros)","ar_KW" => "Arabic (Kuwait)","ar_LB" => "Arabic (Lebanon)","ar_LY" => "Arabic (Libya)","ar_MA" => "Arabic (Morocco)","ar_MR" => "Arabic (Mauritania)","ar_OM" => "Arabic (Oman)","ar_PS" => "Arabic (Palestinian Territories)","ar_QA" => "Arabic (Qatar)","ar_SA" => "Arabic (Saudi Arabia)","ar_SD" => "Arabic (Sudan)","ar_SO" => "Arabic (Somalia)","ar_SS" => "Arabic (South Sudan)","ar_SY" => "Arabic (Syria)","ar_TD" => "Arabic (Chad)","ar_TN" => "Arabic (Tunisia)","ar_YE" => "Arabic (Yemen)","as" => "Assamese","as_IN" => "Assamese (India)","asa" => "Asu","asa_TZ" => "Asu (Tanzania)","ast" => "Asturian","ast_ES" => "Asturian (Spain)","az" => "Azerbaijani","az_Cyrl" => "Azerbaijani (Cyrillic)","az_Cyrl_AZ" => "Azerbaijani (Cyrillic, Azerbaijan)","az_Latn" => "Azerbaijani (Latin)","az_Latn_AZ" => "Azerbaijani (Latin, Azerbaijan)","bas" => "Basaa","bas_CM" => "Basaa (Cameroon)","be" => "Belarusian","be_BY" => "Belarusian (Belarus)","bem" => "Bemba","bem_ZM" => "Bemba (Zambia)","bez" => "Bena","bez_TZ" => "Bena (Tanzania)","bg" => "Bulgarian","bg_BG" => "Bulgarian (Bulgaria)","bm" => "Bambara","bm_ML" => "Bambara (Mali)","bn" => "Bangla","bn_BD" => "Bangla (Bangladesh)","bn_IN" => "Bangla (India)","bo" => "Tibetan","bo_CN" => "Tibetan (China)","bo_IN" => "Tibetan (India)","br" => "Breton","br_FR" => "Breton (France)","brx" => "Bodo","brx_IN" => "Bodo (India)","bs" => "Bosnian","bs_Cyrl" => "Bosnian (Cyrillic)","bs_Cyrl_BA" => "Bosnian (Cyrillic, Bosnia & Herzegovina)","bs_Latn" => "Bosnian (Latin)","bs_Latn_BA" => "Bosnian (Latin, Bosnia & Herzegovina)","ca" => "Catalan","ca_AD" => "Catalan (Andorra)","ca_ES" => "Catalan (Spain)","ca_FR" => "Catalan (France)","ca_IT" => "Catalan (Italy)","ce" => "Chechen","ce_RU" => "Chechen (Russia)","cgg" => "Chiga","cgg_UG" => "Chiga (Uganda)","chr" => "Cherokee","chr_US" => "Cherokee (United States)","ckb" => "Central Kurdish","ckb_IQ" => "Central Kurdish (Iraq)","ckb_IR" => "Central Kurdish (Iran)","cs" => "Czech","cs_CZ" => "Czech (Czechia)","cy" => "Welsh","cy_GB" => "Welsh (United Kingdom)","da" => "Danish","da_DK" => "Danish (Denmark)","da_GL" => "Danish (Greenland)","dav" => "Taita","dav_KE" => "Taita (Kenya)","de" => "German","de_AT" => "German (Austria)","de_BE" => "German (Belgium)","de_CH" => "German (Switzerland)","de_DE" => "German (Germany)","de_IT" => "German (Italy)","de_LI" => "German (Liechtenstein)","de_LU" => "German (Luxembourg)","dje" => "Zarma","dje_NE" => "Zarma (Niger)","dsb" => "Lower Sorbian","dsb_DE" => "Lower Sorbian (Germany)","dua" => "Duala","dua_CM" => "Duala (Cameroon)","dyo" => "Jola-Fonyi","dyo_SN" => "Jola-Fonyi (Senegal)","dz" => "Dzongkha","dz_BT" => "Dzongkha (Bhutan)","ebu" => "Embu","ebu_KE" => "Embu (Kenya)","ee" => "Ewe","ee_GH" => "Ewe (Ghana)","ee_TG" => "Ewe (Togo)","el" => "Greek","el_CY" => "Greek (Cyprus)","el_GR" => "Greek (Greece)","en" => "English","en_001" => "English (World)","en_150" => "English (Europe)","en_AD" => "English (Andorra)","en_AG" => "English (Antigua & Barbuda)","en_AI" => "English (Anguilla)","en_AL" => "English (Albania)","en_AR" => "English (Argentina)","en_AS" => "English (American Samoa)","en_AT" => "English (Austria)","en_AU" => "English (Australia)","en_BA" => "English (Bosnia & Herzegovina)","en_BB" => "English (Barbados)","en_BD" => "English (Bangladesh)","en_BE" => "English (Belgium)","en_BG" => "English (Bulgaria)","en_BI" => "English (Burundi)","en_BM" => "English (Bermuda)","en_BR" => "English (Brazil)","en_BS" => "English (Bahamas)","en_BW" => "English (Botswana)","en_BZ" => "English (Belize)","en_CA" => "English (Canada)","en_CC" => "English (Cocos [Keeling] Islands)","en_CH" => "English (Switzerland)","en_CK" => "English (Cook Islands)","en_CM" => "English (Cameroon)","en_CN" => "English (China)","en_CX" => "English (Christmas Island)","en_CY" => "English (Cyprus)","en_CZ" => "English (Czechia)","en_DE" => "English (Germany)","en_DG" => "English (Diego Garcia)","en_DK" => "English (Denmark)","en_DM" => "English (Dominica)","en_EE" => "English (Estonia)","en_ER" => "English (Eritrea)","en_ES" => "English (Spain)","en_FI" => "English (Finland)","en_FJ" => "English (Fiji)","en_FK" => "English (Falkland Islands)","en_FM" => "English (Micronesia)","en_FR" => "English (France)","en_GB" => "English (United Kingdom)","en_GD" => "English (Grenada)","en_GG" => "English (Guernsey)","en_GH" => "English (Ghana)","en_GI" => "English (Gibraltar)","en_GM" => "English (Gambia)","en_GR" => "English (Greece)","en_GU" => "English (Guam)","en_GY" => "English (Guyana)","en_HK" => "English (Hong Kong [China])","en_HR" => "English (Croatia)","en_HU" => "English (Hungary)","en_ID" => "English (Indonesia)","en_IE" => "English (Ireland)","en_IL" => "English (Israel)","en_IM" => "English (Isle of Man)","en_IN" => "English (India)","en_IO" => "English (British Indian Ocean Territory)","en_IS" => "English (Iceland)","en_IT" => "English (Italy)","en_JE" => "English (Jersey)","en_JM" => "English (Jamaica)","en_JP" => "English (Japan)","en_KE" => "English (Kenya)","en_KI" => "English (Kiribati)","en_KN" => "English (St. Kitts & Nevis)","en_KR" => "English (South Korea)","en_KY" => "English (Cayman Islands)","en_LC" => "English (St. Lucia)","en_LR" => "English (Liberia)","en_LS" => "English (Lesotho)","en_LT" => "English (Lithuania)","en_LU" => "English (Luxembourg)","en_LV" => "English (Latvia)","en_ME" => "English (Montenegro)","en_MG" => "English (Madagascar)","en_MH" => "English (Marshall Islands)","en_MO" => "English (Macau [China])","en_MP" => "English (Northern Mariana Islands)","en_MS" => "English (Montserrat)","en_MT" => "English (Malta)","en_MU" => "English (Mauritius)","en_MV" => "English (Maldives)","en_MW" => "English (Malawi)","en_MY" => "English (Malaysia)","en_NA" => "English (Namibia)","en_NF" => "English (Norfolk Island)","en_NG" => "English (Nigeria)","en_NL" => "English (Netherlands)","en_NO" => "English (Norway)","en_NR" => "English (Nauru)","en_NU" => "English (Niue)","en_NZ" => "English (New Zealand)","en_PG" => "English (Papua New Guinea)","en_PH" => "English (Philippines)","en_PK" => "English (Pakistan)","en_PL" => "English (Poland)","en_PN" => "English (Pitcairn Islands)","en_PR" => "English (Puerto Rico)","en_PT" => "English (Portugal)","en_PW" => "English (Palau)","en_RO" => "English (Romania)","en_RU" => "English (Russia)","en_RW" => "English (Rwanda)","en_SA" => "English (Saudi Arabia)","en_SB" => "English (Solomon Islands)","en_SC" => "English (Seychelles)","en_SD" => "English (Sudan)","en_SE" => "English (Sweden)","en_SG" => "English (Singapore)","en_SH" => "English (St. Helena)","en_SI" => "English (Slovenia)","en_SK" => "English (Slovakia)","en_SL" => "English (Sierra Leone)","en_SS" => "English (South Sudan)","en_SX" => "English (Sint Maarten)","en_SZ" => "English (Swaziland)","en_TC" => "English (Turks & Caicos Islands)","en_TH" => "English (Thailand)","en_TK" => "English (Tokelau)","en_TO" => "English (Tonga)","en_TR" => "English (Turkey)","en_TT" => "English (Trinidad & Tobago)","en_TV" => "English (Tuvalu)","en_TW" => "English (Taiwan)","en_TZ" => "English (Tanzania)","en_UG" => "English (Uganda)","en_UM" => "English (U.S. Outlying Islands)","en_US" => "English (United States)","en_US_POSIX" => "English (United States, Computer)","en_VC" => "English (St. Vincent & Grenadines)","en_VG" => "English (British Virgin Islands)","en_VI" => "English (U.S. Virgin Islands)","en_VU" => "English (Vanuatu)","en_WS" => "English (Samoa)","en_ZA" => "English (South Africa)","en_ZM" => "English (Zambia)","en_ZW" => "English (Zimbabwe)","eo" => "Esperanto","es" => "Spanish","es_419" => "Spanish (Latin America)","es_AG" => "Spanish (Antigua & Barbuda)","es_AI" => "Spanish (Anguilla)","es_AR" => "Spanish (Argentina)","es_AW" => "Spanish (Aruba)","es_BB" => "Spanish (Barbados)","es_BL" => "Spanish (St. Barthélemy)","es_BM" => "Spanish (Bermuda)","es_BO" => "Spanish (Bolivia)","es_BQ" => "Spanish (Caribbean Netherlands)","es_BR" => "Spanish (Brazil)","es_BS" => "Spanish (Bahamas)","es_BZ" => "Spanish (Belize)","es_CL" => "Spanish (Chile)","es_CO" => "Spanish (Colombia)","es_CR" => "Spanish (Costa Rica)","es_CU" => "Spanish (Cuba)","es_CW" => "Spanish (Curaçao)","es_DM" => "Spanish (Dominica)","es_DO" => "Spanish (Dominican Republic)","es_EA" => "Spanish (Ceuta & Melilla)","es_EC" => "Spanish (Ecuador)","es_ES" => "Spanish (Spain)","es_FK" => "Spanish (Falkland Islands)","es_GD" => "Spanish (Grenada)","es_GF" => "Spanish (French Guiana)","es_GL" => "Spanish (Greenland)","es_GP" => "Spanish (Guadeloupe)","es_GQ" => "Spanish (Equatorial Guinea)","es_GT" => "Spanish (Guatemala)","es_GY" => "Spanish (Guyana)","es_HN" => "Spanish (Honduras)","es_HT" => "Spanish (Haiti)","es_IC" => "Spanish (Canary Islands)","es_KN" => "Spanish (St. Kitts & Nevis)","es_KY" => "Spanish (Cayman Islands)","es_LC" => "Spanish (St. Lucia)","es_MF" => "Spanish (St. Martin)","es_MQ" => "Spanish (Martinique)","es_MS" => "Spanish (Montserrat)","es_MX" => "Spanish (Mexico)","es_NI" => "Spanish (Nicaragua)","es_PA" => "Spanish (Panama)","es_PE" => "Spanish (Peru)","es_PH" => "Spanish (Philippines)","es_PM" => "Spanish (St. Pierre & Miquelon)","es_PR" => "Spanish (Puerto Rico)","es_PY" => "Spanish (Paraguay)","es_SR" => "Spanish (Suriname)","es_SV" => "Spanish (El Salvador)","es_SX" => "Spanish (Sint Maarten)","es_TC" => "Spanish (Turks & Caicos Islands)","es_TT" => "Spanish (Trinidad & Tobago)","es_US" => "Spanish (United States)","es_UY" => "Spanish (Uruguay)","es_VC" => "Spanish (St. Vincent & Grenadines)","es_VE" => "Spanish (Venezuela)","es_VG" => "Spanish (British Virgin Islands)","es_VI" => "Spanish (U.S. Virgin Islands)","et" => "Estonian","et_EE" => "Estonian (Estonia)","eu" => "Basque","eu_ES" => "Basque (Spain)","ewo" => "Ewondo","ewo_CM" => "Ewondo (Cameroon)","fa" => "Persian","fa_AF" => "Persian (Afghanistan)","fa_IR" => "Persian (Iran)","ff" => "Fulah","ff_CM" => "Fulah (Cameroon)","ff_GN" => "Fulah (Guinea)","ff_MR" => "Fulah (Mauritania)","ff_SN" => "Fulah (Senegal)","fi" => "Finnish","fi_FI" => "Finnish (Finland)","fil" => "Filipino","fil_PH" => "Filipino (Philippines)","fo" => "Faroese","fo_DK" => "Faroese (Denmark)","fo_FO" => "Faroese (Faroe Islands)","fr" => "French","fr_BE" => "French (Belgium)","fr_BF" => "French (Burkina Faso)","fr_BI" => "French (Burundi)","fr_BJ" => "French (Benin)","fr_BL" => "French (St. Barthélemy)","fr_CA" => "French (Canada)","fr_CD" => "French (Congo - Kinshasa)","fr_CF" => "French (Central African Republic)","fr_CG" => "French (Congo - Brazzaville)","fr_CH" => "French (Switzerland)","fr_CI" => "French (Côte d’Ivoire)","fr_CM" => "French (Cameroon)","fr_DJ" => "French (Djibouti)","fr_DZ" => "French (Algeria)","fr_FR" => "French (France)","fr_GA" => "French (Gabon)","fr_GF" => "French (French Guiana)","fr_GN" => "French (Guinea)","fr_GP" => "French (Guadeloupe)","fr_GQ" => "French (Equatorial Guinea)","fr_HT" => "French (Haiti)","fr_KM" => "French (Comoros)","fr_LU" => "French (Luxembourg)","fr_MA" => "French (Morocco)","fr_MC" => "French (Monaco)","fr_MF" => "French (St. Martin)","fr_MG" => "French (Madagascar)","fr_ML" => "French (Mali)","fr_MQ" => "French (Martinique)","fr_MR" => "French (Mauritania)","fr_MU" => "French (Mauritius)","fr_NC" => "French (New Caledonia)","fr_NE" => "French (Niger)","fr_PF" => "French (French Polynesia)","fr_PM" => "French (St. Pierre & Miquelon)","fr_RE" => "French (Réunion)","fr_RW" => "French (Rwanda)","fr_SC" => "French (Seychelles)","fr_SN" => "French (Senegal)","fr_SY" => "French (Syria)","fr_TD" => "French (Chad)","fr_TG" => "French (Togo)","fr_TN" => "French (Tunisia)","fr_VU" => "French (Vanuatu)","fr_WF" => "French (Wallis & Futuna)","fr_YT" => "French (Mayotte)","fur" => "Friulian","fur_IT" => "Friulian (Italy)","fy" => "Western Frisian","fy_NL" => "Western Frisian (Netherlands)","ga" => "Irish","ga_IE" => "Irish (Ireland)","gd" => "Scottish Gaelic","gd_GB" => "Scottish Gaelic (United Kingdom)","gl" => "Galician","gl_ES" => "Galician (Spain)","gsw" => "Swiss German","gsw_CH" => "Swiss German (Switzerland)","gsw_FR" => "Swiss German (France)","gsw_LI" => "Swiss German (Liechtenstein)","gu" => "Gujarati","gu_IN" => "Gujarati (India)","guz" => "Gusii","guz_KE" => "Gusii (Kenya)","gv" => "Manx","gv_IM" => "Manx (Isle of Man)","ha" => "Hausa","ha_GH" => "Hausa (Ghana)","ha_NE" => "Hausa (Niger)","ha_NG" => "Hausa (Nigeria)","haw" => "Hawaiian","haw_US" => "Hawaiian (United States)","he" => "Hebrew","he_IL" => "Hebrew (Israel)","hi" => "Hindi","hi_IN" => "Hindi (India)","hr" => "Croatian","hr_BA" => "Croatian (Bosnia & Herzegovina)","hr_HR" => "Croatian (Croatia)","hsb" => "Upper Sorbian","hsb_DE" => "Upper Sorbian (Germany)","hu" => "Hungarian","hu_HU" => "Hungarian (Hungary)","hy" => "Armenian","hy_AM" => "Armenian (Armenia)","id" => "Indonesian","id_ID" => "Indonesian (Indonesia)","ig" => "Igbo","ig_NG" => "Igbo (Nigeria)","ii" => "Sichuan Yi","ii_CN" => "Sichuan Yi (China)","is" => "Icelandic","is_IS" => "Icelandic (Iceland)","it" => "Italian","it_CH" => "Italian (Switzerland)","it_IT" => "Italian (Italy)","it_SM" => "Italian (San Marino)","it_VA" => "Italian (Vatican City)","iu" => "Inuktitut","iu_CA" => "Inuktitut (Canada)","ja" => "Japanese","ja_JP" => "Japanese (Japan)","jgo" => "Ngomba","jgo_CM" => "Ngomba (Cameroon)","jmc" => "Machame","jmc_TZ" => "Machame (Tanzania)","ka" => "Georgian","ka_GE" => "Georgian (Georgia)","kab" => "Kabyle","kab_DZ" => "Kabyle (Algeria)","kam" => "Kamba","kam_KE" => "Kamba (Kenya)","kde" => "Makonde","kde_TZ" => "Makonde (Tanzania)","kea" => "Kabuverdianu","kea_CV" => "Kabuverdianu (Cape Verde)","khq" => "Koyra Chiini","khq_ML" => "Koyra Chiini (Mali)","ki" => "Kikuyu","ki_KE" => "Kikuyu (Kenya)","kk" => "Kazakh","kk_KZ" => "Kazakh (Kazakhstan)","kkj" => "Kako","kkj_CM" => "Kako (Cameroon)","kl" => "Kalaallisut","kl_GL" => "Kalaallisut (Greenland)","kln" => "Kalenjin","kln_KE" => "Kalenjin (Kenya)","km" => "Khmer","km_KH" => "Khmer (Cambodia)","kn" => "Kannada","kn_IN" => "Kannada (India)","ko" => "Korean","ko_KP" => "Korean (North Korea)","ko_KR" => "Korean (South Korea)","kok" => "Konkani","kok_IN" => "Konkani (India)","ks" => "Kashmiri","ks_IN" => "Kashmiri (India)","ksb" => "Shambala","ksb_TZ" => "Shambala (Tanzania)","ksf" => "Bafia","ksf_CM" => "Bafia (Cameroon)","ksh" => "Colognian","ksh_DE" => "Colognian (Germany)","kw" => "Cornish","kw_GB" => "Cornish (United Kingdom)","ky" => "Kyrgyz","ky_KG" => "Kyrgyz (Kyrgyzstan)","lag" => "Langi","lag_TZ" => "Langi (Tanzania)","lb" => "Luxembourgish","lb_LU" => "Luxembourgish (Luxembourg)","lg" => "Ganda","lg_UG" => "Ganda (Uganda)","lkt" => "Lakota","lkt_US" => "Lakota (United States)","ln" => "Lingala","ln_AO" => "Lingala (Angola)","ln_CD" => "Lingala (Congo - Kinshasa)","ln_CF" => "Lingala (Central African Republic)","ln_CG" => "Lingala (Congo - Brazzaville)","lo" => "Lao","lo_LA" => "Lao (Laos)","lrc" => "Northern Luri","lrc_IQ" => "Northern Luri (Iraq)","lrc_IR" => "Northern Luri (Iran)","lt" => "Lithuanian","lt_LT" => "Lithuanian (Lithuania)","lu" => "Luba-Katanga","lu_CD" => "Luba-Katanga (Congo - Kinshasa)","luo" => "Luo","luo_KE" => "Luo (Kenya)","luy" => "Luyia","luy_KE" => "Luyia (Kenya)","lv" => "Latvian","lv_LV" => "Latvian (Latvia)","mas" => "Masai","mas_KE" => "Masai (Kenya)","mas_TZ" => "Masai (Tanzania)","mer" => "Meru","mer_KE" => "Meru (Kenya)","mfe" => "Morisyen","mfe_MU" => "Morisyen (Mauritius)","mg" => "Malagasy","mg_MG" => "Malagasy (Madagascar)","mgh" => "Makhuwa-Meetto","mgh_MZ" => "Makhuwa-Meetto (Mozambique)","mgo" => "Metaʼ","mgo_CM" => "Metaʼ (Cameroon)","mk" => "Macedonian","mk_MK" => "Macedonian (Macedonia)","ml" => "Malayalam","ml_IN" => "Malayalam (India)","mn" => "Mongolian","mn_MN" => "Mongolian (Mongolia)","mr" => "Marathi","mr_IN" => "Marathi (India)","ms" => "Malay","ms_Arab" => "Malay (Arabic)","ms_Arab_BN" => "Malay (Arabic, Brunei)","ms_Arab_MY" => "Malay (Arabic, Malaysia)","ms_BN" => "Malay (Brunei)","ms_MY" => "Malay (Malaysia)","ms_SG" => "Malay (Singapore)","mt" => "Maltese","mt_MT" => "Maltese (Malta)","mua" => "Mundang","mua_CM" => "Mundang (Cameroon)","my" => "Burmese","my_MM" => "Burmese (Myanmar [Burma])","mzn" => "Mazanderani","mzn_IR" => "Mazanderani (Iran)","naq" => "Nama","naq_NA" => "Nama (Namibia)","nb" => "Norwegian Bokmål","nb_NO" => "Norwegian Bokmål (Norway)","nb_SJ" => "Norwegian Bokmål (Svalbard & Jan Mayen)","nd" => "North Ndebele","nd_ZW" => "North Ndebele (Zimbabwe)","nds" => "Low German","nds_DE" => "Low German (Germany)","nds_NL" => "Low German (Netherlands)","ne" => "Nepali","ne_IN" => "Nepali (India)","ne_NP" => "Nepali (Nepal)","nl" => "Dutch","nl_AW" => "Dutch (Aruba)","nl_BE" => "Dutch (Belgium)","nl_BQ" => "Dutch (Caribbean Netherlands)","nl_CW" => "Dutch (Curaçao)","nl_NL" => "Dutch (Netherlands)","nl_SR" => "Dutch (Suriname)","nl_SX" => "Dutch (Sint Maarten)","nmg" => "Kwasio","nmg_CM" => "Kwasio (Cameroon)","nn" => "Norwegian Nynorsk","nn_NO" => "Norwegian Nynorsk (Norway)","nnh" => "Ngiemboon","nnh_CM" => "Ngiemboon (Cameroon)","nus" => "Nuer","nus_SS" => "Nuer (South Sudan)","nyn" => "Nyankole","nyn_UG" => "Nyankole (Uganda)","om" => "Oromo","om_ET" => "Oromo (Ethiopia)","om_KE" => "Oromo (Kenya)","or" => "Odia","or_IN" => "Odia (India)","os" => "Ossetic","os_GE" => "Ossetic (Georgia)","os_RU" => "Ossetic (Russia)","pa" => "Punjabi","pa_Arab" => "Punjabi (Arabic)","pa_Arab_PK" => "Punjabi (Arabic, Pakistan)","pa_Guru" => "Punjabi (Gurmukhi)","pa_Guru_IN" => "Punjabi (Gurmukhi, India)","pl" => "Polish","pl_PL" => "Polish (Poland)","ps" => "Pashto","ps_AF" => "Pashto (Afghanistan)","pt" => "Portuguese","pt_AO" => "Portuguese (Angola)","pt_BR" => "Portuguese (Brazil)","pt_CH" => "Portuguese (Switzerland)","pt_CV" => "Portuguese (Cape Verde)","pt_FR" => "Portuguese (France)","pt_GQ" => "Portuguese (Equatorial Guinea)","pt_GW" => "Portuguese (Guinea-Bissau)","pt_LU" => "Portuguese (Luxembourg)","pt_MO" => "Portuguese (Macau [China])","pt_MZ" => "Portuguese (Mozambique)","pt_PT" => "Portuguese (Portugal)","pt_ST" => "Portuguese (São Tomé & Príncipe)","pt_TL" => "Portuguese (Timor-Leste)","qu" => "Quechua","qu_BO" => "Quechua (Bolivia)","qu_EC" => "Quechua (Ecuador)","qu_PE" => "Quechua (Peru)","rm" => "Romansh","rm_CH" => "Romansh (Switzerland)","rn" => "Rundi","rn_BI" => "Rundi (Burundi)","ro" => "Romanian","ro_MD" => "Romanian (Moldova)","ro_RO" => "Romanian (Romania)","rof" => "Rombo","rof_TZ" => "Rombo (Tanzania)","ru" => "Russian","ru_BY" => "Russian (Belarus)","ru_KG" => "Russian (Kyrgyzstan)","ru_KZ" => "Russian (Kazakhstan)","ru_MD" => "Russian (Moldova)","ru_RU" => "Russian (Russia)","ru_UA" => "Russian (Ukraine)","rw" => "Kinyarwanda","rw_RW" => "Kinyarwanda (Rwanda)","rwk" => "Rwa","rwk_TZ" => "Rwa (Tanzania)","sah" => "Sakha","sah_RU" => "Sakha (Russia)","saq" => "Samburu","saq_KE" => "Samburu (Kenya)","sbp" => "Sangu","sbp_TZ" => "Sangu (Tanzania)","se" => "Northern Sami","se_FI" => "Northern Sami (Finland)","se_NO" => "Northern Sami (Norway)","se_SE" => "Northern Sami (Sweden)","seh" => "Sena","seh_MZ" => "Sena (Mozambique)","ses" => "Koyraboro Senni","ses_ML" => "Koyraboro Senni (Mali)","sg" => "Sango","sg_CF" => "Sango (Central African Republic)","shi" => "Tachelhit","shi_Latn" => "Tachelhit (Latin)","shi_Latn_MA" => "Tachelhit (Latin, Morocco)","shi_Tfng" => "Tachelhit (Tifinagh)","shi_Tfng_MA" => "Tachelhit (Tifinagh, Morocco)","si" => "Sinhala","si_LK" => "Sinhala (Sri Lanka)","sk" => "Slovak","sk_SK" => "Slovak (Slovakia)","sl" => "Slovenian","sl_SI" => "Slovenian (Slovenia)","smn" => "Inari Sami","smn_FI" => "Inari Sami (Finland)","sn" => "Shona","sn_ZW" => "Shona (Zimbabwe)","so" => "Somali","so_DJ" => "Somali (Djibouti)","so_ET" => "Somali (Ethiopia)","so_KE" => "Somali (Kenya)","so_SO" => "Somali (Somalia)","sq" => "Albanian","sq_AL" => "Albanian (Albania)","sq_MK" => "Albanian (Macedonia)","sq_XK" => "Albanian (Kosovo)","sr" => "Serbian","sr_Cyrl" => "Serbian (Cyrillic)","sr_Cyrl_BA" => "Serbian (Cyrillic, Bosnia & Herzegovina)","sr_Cyrl_ME" => "Serbian (Cyrillic, Montenegro)","sr_Cyrl_RS" => "Serbian (Cyrillic, Serbia)","sr_Cyrl_XK" => "Serbian (Cyrillic, Kosovo)","sr_Latn" => "Serbian (Latin)","sr_Latn_BA" => "Serbian (Latin, Bosnia & Herzegovina)","sr_Latn_ME" => "Serbian (Latin, Montenegro)","sr_Latn_RS" => "Serbian (Latin, Serbia)","sr_Latn_XK" => "Serbian (Latin, Kosovo)","sv" => "Swedish","sv_AX" => "Swedish (Åland Islands)","sv_FI" => "Swedish (Finland)","sv_SE" => "Swedish (Sweden)","sw" => "Swahili","sw_CD" => "Swahili (Congo - Kinshasa)","sw_KE" => "Swahili (Kenya)","sw_TZ" => "Swahili (Tanzania)","sw_UG" => "Swahili (Uganda)","ta" => "Tamil","ta_IN" => "Tamil (India)","ta_LK" => "Tamil (Sri Lanka)","ta_MY" => "Tamil (Malaysia)","ta_SG" => "Tamil (Singapore)","te" => "Telugu","te_IN" => "Telugu (India)","teo" => "Teso","teo_KE" => "Teso (Kenya)","teo_UG" => "Teso (Uganda)","tg" => "Tajik","tg_TJ" => "Tajik (Tajikistan)","th" => "Thai","th_TH" => "Thai (Thailand)","ti" => "Tigrinya","ti_ER" => "Tigrinya (Eritrea)","ti_ET" => "Tigrinya (Ethiopia)","tk" => "Turkmen","tk_TM" => "Turkmen (Turkmenistan)","to" => "Tongan","to_TO" => "Tongan (Tonga)","tr" => "Turkish","tr_CY" => "Turkish (Cyprus)","tr_TR" => "Turkish (Turkey)","twq" => "Tasawaq","twq_NE" => "Tasawaq (Niger)","tzm" => "Central Atlas Tamazight","tzm_MA" => "Central Atlas Tamazight (Morocco)","ug" => "Uyghur","ug_CN" => "Uyghur (China)","uk" => "Ukrainian","uk_UA" => "Ukrainian (Ukraine)","ur" => "Urdu","ur_IN" => "Urdu (India)","ur_PK" => "Urdu (Pakistan)","uz" => "Uzbek","uz_Arab" => "Uzbek (Arabic)","uz_Arab_AF" => "Uzbek (Arabic, Afghanistan)","uz_Cyrl" => "Uzbek (Cyrillic)","uz_Cyrl_UZ" => "Uzbek (Cyrillic, Uzbekistan)","uz_Latn" => "Uzbek (Latin)","uz_Latn_UZ" => "Uzbek (Latin, Uzbekistan)","vai" => "Vai","vai_Latn" => "Vai (Latin)","vai_Latn_LR" => "Vai (Latin, Liberia)","vai_Vaii" => "Vai (Vai)","vai_Vaii_LR" => "Vai (Vai, Liberia)","vi" => "Vietnamese","vi_VN" => "Vietnamese (Vietnam)","vun" => "Vunjo","vun_TZ" => "Vunjo (Tanzania)","wae" => "Walser","wae_CH" => "Walser (Switzerland)","xog" => "Soga","xog_UG" => "Soga (Uganda)","yav" => "Yangben","yav_CM" => "Yangben (Cameroon)","yi" => "Yiddish","yi_001" => "Yiddish (World)","yo" => "Yoruba","yo_BJ" => "Yoruba (Benin)","yo_NG" => "Yoruba (Nigeria)","yue" => "Cantonese","yue_Hans" => "Cantonese (Simplified)","yue_Hans_CN" => "Cantonese (Simplified, China)","yue_Hant" => "Cantonese (Traditional)","yue_Hant_HK" => "Cantonese (Traditional, Hong Kong [China])","zgh" => "Standard Moroccan Tamazight","zgh_MA" => "Standard Moroccan Tamazight (Morocco)","zh" => "Chinese","zh_Hans" => "Chinese (Simplified)","zh_Hans_CN" => "Chinese (Simplified, China)","zh_Hans_HK" => "Chinese (Simplified, Hong Kong [China])","zh_Hans_MO" => "Chinese (Simplified, Macau [China])","zh_Hans_SG" => "Chinese (Simplified, Singapore)","zh_Hant" => "Chinese (Traditional)","zh_Hant_HK" => "Chinese (Traditional, Hong Kong [China])","zh_Hant_MO" => "Chinese (Traditional, Macau [China])","zh_Hant_TW" => "Chinese (Traditional, Taiwan)","zu" => "Zulu","zu_ZA" => "Zulu (South Africa)"
89
+ },
87
90
  RunLoop::Version.new("10.0") => {
88
91
  "af" => "Afrikaans","af_NA" => "Afrikaans (Namibia)","af_ZA" => "Afrikaans (South Africa)","agq" => "Aghem","agq_CM" => "Aghem (Cameroon)","ak" => "Akan","ak_GH" => "Akan (Ghana)","am" => "Amharic","am_ET" => "Amharic (Ethiopia)","ar" => "Arabic","ar_001" => "Arabic (World)","ar_AE" => "Arabic (United Arab Emirates)","ar_BH" => "Arabic (Bahrain)","ar_DJ" => "Arabic (Djibouti)","ar_DZ" => "Arabic (Algeria)","ar_EG" => "Arabic (Egypt)","ar_EH" => "Arabic (Western Sahara)","ar_ER" => "Arabic (Eritrea)","ar_IL" => "Arabic (Israel)","ar_IQ" => "Arabic (Iraq)","ar_JO" => "Arabic (Jordan)","ar_KM" => "Arabic (Comoros)","ar_KW" => "Arabic (Kuwait)","ar_LB" => "Arabic (Lebanon)","ar_LY" => "Arabic (Libya)","ar_MA" => "Arabic (Morocco)","ar_MR" => "Arabic (Mauritania)","ar_OM" => "Arabic (Oman)","ar_PS" => "Arabic (Palestinian Territories)","ar_QA" => "Arabic (Qatar)","ar_SA" => "Arabic (Saudi Arabia)","ar_SD" => "Arabic (Sudan)","ar_SO" => "Arabic (Somalia)","ar_SS" => "Arabic (South Sudan)","ar_SY" => "Arabic (Syria)","ar_TD" => "Arabic (Chad)","ar_TN" => "Arabic (Tunisia)","ar_YE" => "Arabic (Yemen)","ars" => "Najdi Arabic","as" => "Assamese","as_IN" => "Assamese (India)","asa" => "Asu","asa_TZ" => "Asu (Tanzania)","ast" => "Asturian","ast_ES" => "Asturian (Spain)","az" => "Azerbaijani","az_Cyrl" => "Azerbaijani (Cyrillic)","az_Cyrl_AZ" => "Azerbaijani (Cyrillic, Azerbaijan)","az_Latn" => "Azerbaijani (Latin)","az_Latn_AZ" => "Azerbaijani (Latin, Azerbaijan)","bas" => "Basaa","bas_CM" => "Basaa (Cameroon)","be" => "Belarusian","be_BY" => "Belarusian (Belarus)","bem" => "Bemba","bem_ZM" => "Bemba (Zambia)","bez" => "Bena","bez_TZ" => "Bena (Tanzania)","bg" => "Bulgarian","bg_BG" => "Bulgarian (Bulgaria)","bm" => "Bambara","bm_ML" => "Bambara (Mali)","bn" => "Bengali","bn_BD" => "Bengali (Bangladesh)","bn_IN" => "Bengali (India)","bo" => "Tibetan","bo_CN" => "Tibetan (China)","bo_IN" => "Tibetan (India)","br" => "Breton","br_FR" => "Breton (France)","brx" => "Bodo","brx_IN" => "Bodo (India)","bs" => "Bosnian","bs_Cyrl" => "Bosnian (Cyrillic)","bs_Cyrl_BA" => "Bosnian (Cyrillic, Bosnia & Herzegovina)","bs_Latn" => "Bosnian (Latin)","bs_Latn_BA" => "Bosnian (Latin, Bosnia & Herzegovina)","ca" => "Catalan","ca_AD" => "Catalan (Andorra)","ca_ES" => "Catalan (Spain)","ca_FR" => "Catalan (France)","ca_IT" => "Catalan (Italy)","ce" => "Chechen","ce_RU" => "Chechen (Russia)","cgg" => "Chiga","cgg_UG" => "Chiga (Uganda)","chr" => "Cherokee","chr_US" => "Cherokee (United States)","ckb" => "Central Kurdish","ckb_IQ" => "Central Kurdish (Iraq)","ckb_IR" => "Central Kurdish (Iran)","cs" => "Czech","cs_CZ" => "Czech (Czech Republic)","cy" => "Welsh","cy_GB" => "Welsh (United Kingdom)","da" => "Danish","da_DK" => "Danish (Denmark)","da_GL" => "Danish (Greenland)","dav" => "Taita","dav_KE" => "Taita (Kenya)","de" => "German","de_AT" => "German (Austria)","de_BE" => "German (Belgium)","de_CH" => "German (Switzerland)","de_DE" => "German (Germany)","de_LI" => "German (Liechtenstein)","de_LU" => "German (Luxembourg)","dje" => "Zarma","dje_NE" => "Zarma (Niger)","dsb" => "Lower Sorbian","dsb_DE" => "Lower Sorbian (Germany)","dua" => "Duala","dua_CM" => "Duala (Cameroon)","dyo" => "Jola-Fonyi","dyo_SN" => "Jola-Fonyi (Senegal)","dz" => "Dzongkha","dz_BT" => "Dzongkha (Bhutan)","ebu" => "Embu","ebu_KE" => "Embu (Kenya)","ee" => "Ewe","ee_GH" => "Ewe (Ghana)","ee_TG" => "Ewe (Togo)","el" => "Greek","el_CY" => "Greek (Cyprus)","el_GR" => "Greek (Greece)","en" => "English","en_001" => "English (World)","en_150" => "English (Europe)","en_AD" => "English (Andorra)","en_AG" => "English (Antigua & Barbuda)","en_AI" => "English (Anguilla)","en_AL" => "English (Albania)","en_AS" => "English (American Samoa)","en_AT" => "English (Austria)","en_AU" => "English (Australia)","en_BA" => "English (Bosnia & Herzegovina)","en_BB" => "English (Barbados)","en_BE" => "English (Belgium)","en_BI" => "English (Burundi)","en_BM" => "English (Bermuda)","en_BR" => "English (Brazil)","en_BS" => "English (Bahamas)","en_BW" => "English (Botswana)","en_BZ" => "English (Belize)","en_CA" => "English (Canada)","en_CC" => "English (Cocos [Keeling] Islands)","en_CH" => "English (Switzerland)","en_CK" => "English (Cook Islands)","en_CM" => "English (Cameroon)","en_CN" => "English (China)","en_CX" => "English (Christmas Island)","en_CY" => "English (Cyprus)","en_CZ" => "English (Czech Republic)","en_DE" => "English (Germany)","en_DG" => "English (Diego Garcia)","en_DK" => "English (Denmark)","en_DM" => "English (Dominica)","en_EE" => "English (Estonia)","en_ER" => "English (Eritrea)","en_ES" => "English (Spain)","en_FI" => "English (Finland)","en_FJ" => "English (Fiji)","en_FK" => "English (Falkland Islands)","en_FM" => "English (Micronesia)","en_FR" => "English (France)","en_GB" => "English (United Kingdom)","en_GD" => "English (Grenada)","en_GG" => "English (Guernsey)","en_GH" => "English (Ghana)","en_GI" => "English (Gibraltar)","en_GM" => "English (Gambia)","en_GR" => "English (Greece)","en_GU" => "English (Guam)","en_GY" => "English (Guyana)","en_HK" => "English (Hong Kong [China])","en_HR" => "English (Croatia)","en_HU" => "English (Hungary)","en_IE" => "English (Ireland)","en_IL" => "English (Israel)","en_IM" => "English (Isle of Man)","en_IN" => "English (India)","en_IO" => "English (British Indian Ocean Territory)","en_IS" => "English (Iceland)","en_IT" => "English (Italy)","en_JE" => "English (Jersey)","en_JM" => "English (Jamaica)","en_JP" => "English (Japan)","en_KE" => "English (Kenya)","en_KI" => "English (Kiribati)","en_KN" => "English (St. Kitts & Nevis)","en_KR" => "English (South Korea)","en_KY" => "English (Cayman Islands)","en_LC" => "English (St. Lucia)","en_LR" => "English (Liberia)","en_LS" => "English (Lesotho)","en_LT" => "English (Lithuania)","en_LU" => "English (Luxembourg)","en_LV" => "English (Latvia)","en_ME" => "English (Montenegro)","en_MG" => "English (Madagascar)","en_MH" => "English (Marshall Islands)","en_MO" => "English (Macau [China])","en_MP" => "English (Northern Mariana Islands)","en_MS" => "English (Montserrat)","en_MT" => "English (Malta)","en_MU" => "English (Mauritius)","en_MV" => "English (Maldives)","en_MW" => "English (Malawi)","en_MY" => "English (Malaysia)","en_NA" => "English (Namibia)","en_NF" => "English (Norfolk Island)","en_NG" => "English (Nigeria)","en_NL" => "English (Netherlands)","en_NO" => "English (Norway)","en_NR" => "English (Nauru)","en_NU" => "English (Niue)","en_NZ" => "English (New Zealand)","en_PG" => "English (Papua New Guinea)","en_PH" => "English (Philippines)","en_PK" => "English (Pakistan)","en_PL" => "English (Poland)","en_PN" => "English (Pitcairn Islands)","en_PR" => "English (Puerto Rico)","en_PT" => "English (Portugal)","en_PW" => "English (Palau)","en_RO" => "English (Romania)","en_RU" => "English (Russia)","en_RW" => "English (Rwanda)","en_SB" => "English (Solomon Islands)","en_SC" => "English (Seychelles)","en_SD" => "English (Sudan)","en_SE" => "English (Sweden)","en_SG" => "English (Singapore)","en_SH" => "English (St. Helena)","en_SI" => "English (Slovenia)","en_SK" => "English (Slovakia)","en_SL" => "English (Sierra Leone)","en_SS" => "English (South Sudan)","en_SX" => "English (Sint Maarten)","en_SZ" => "English (Swaziland)","en_TC" => "English (Turks & Caicos Islands)","en_TK" => "English (Tokelau)","en_TO" => "English (Tonga)","en_TR" => "English (Turkey)","en_TT" => "English (Trinidad & Tobago)","en_TV" => "English (Tuvalu)","en_TW" => "English (Taiwan)","en_TZ" => "English (Tanzania)","en_UG" => "English (Uganda)","en_UM" => "English (U.S. Outlying Islands)","en_US" => "English (United States)","en_US_POSIX" => "English (United States, Computer)","en_VC" => "English (St. Vincent & Grenadines)","en_VG" => "English (British Virgin Islands)","en_VI" => "English (U.S. Virgin Islands)","en_VU" => "English (Vanuatu)","en_WS" => "English (Samoa)","en_ZA" => "English (South Africa)","en_ZM" => "English (Zambia)","en_ZW" => "English (Zimbabwe)","eo" => "Esperanto","es" => "Spanish","es_419" => "Spanish (Latin America)","es_AR" => "Spanish (Argentina)","es_BO" => "Spanish (Bolivia)","es_CL" => "Spanish (Chile)","es_CO" => "Spanish (Colombia)","es_CR" => "Spanish (Costa Rica)","es_CU" => "Spanish (Cuba)","es_DO" => "Spanish (Dominican Republic)","es_EA" => "Spanish (Ceuta & Melilla)","es_EC" => "Spanish (Ecuador)","es_ES" => "Spanish (Spain)","es_GQ" => "Spanish (Equatorial Guinea)","es_GT" => "Spanish (Guatemala)","es_HN" => "Spanish (Honduras)","es_IC" => "Spanish (Canary Islands)","es_MX" => "Spanish (Mexico)","es_NI" => "Spanish (Nicaragua)","es_PA" => "Spanish (Panama)","es_PE" => "Spanish (Peru)","es_PH" => "Spanish (Philippines)","es_PR" => "Spanish (Puerto Rico)","es_PY" => "Spanish (Paraguay)","es_SV" => "Spanish (El Salvador)","es_US" => "Spanish (United States)","es_UY" => "Spanish (Uruguay)","es_VE" => "Spanish (Venezuela)","et" => "Estonian","et_EE" => "Estonian (Estonia)","eu" => "Basque","eu_ES" => "Basque (Spain)","ewo" => "Ewondo","ewo_CM" => "Ewondo (Cameroon)","fa" => "Persian","fa_AF" => "Persian (Afghanistan)","fa_IR" => "Persian (Iran)","ff" => "Fulah","ff_CM" => "Fulah (Cameroon)","ff_GN" => "Fulah (Guinea)","ff_MR" => "Fulah (Mauritania)","ff_SN" => "Fulah (Senegal)","fi" => "Finnish","fi_FI" => "Finnish (Finland)","fil" => "Filipino","fil_PH" => "Filipino (Philippines)","fo" => "Faroese","fo_DK" => "Faroese (Denmark)","fo_FO" => "Faroese (Faroe Islands)","fr" => "French","fr_BE" => "French (Belgium)","fr_BF" => "French (Burkina Faso)","fr_BI" => "French (Burundi)","fr_BJ" => "French (Benin)","fr_BL" => "French (St. Barthélemy)","fr_CA" => "French (Canada)","fr_CD" => "French (Congo - Kinshasa)","fr_CF" => "French (Central African Republic)","fr_CG" => "French (Congo - Brazzaville)","fr_CH" => "French (Switzerland)","fr_CI" => "French (Côte d’Ivoire)","fr_CM" => "French (Cameroon)","fr_DJ" => "French (Djibouti)","fr_DZ" => "French (Algeria)","fr_FR" => "French (France)","fr_GA" => "French (Gabon)","fr_GF" => "French (French Guiana)","fr_GN" => "French (Guinea)","fr_GP" => "French (Guadeloupe)","fr_GQ" => "French (Equatorial Guinea)","fr_HT" => "French (Haiti)","fr_KM" => "French (Comoros)","fr_LU" => "French (Luxembourg)","fr_MA" => "French (Morocco)","fr_MC" => "French (Monaco)","fr_MF" => "French (St. Martin)","fr_MG" => "French (Madagascar)","fr_ML" => "French (Mali)","fr_MQ" => "French (Martinique)","fr_MR" => "French (Mauritania)","fr_MU" => "French (Mauritius)","fr_NC" => "French (New Caledonia)","fr_NE" => "French (Niger)","fr_PF" => "French (French Polynesia)","fr_PM" => "French (St. Pierre & Miquelon)","fr_RE" => "French (Réunion)","fr_RW" => "French (Rwanda)","fr_SC" => "French (Seychelles)","fr_SN" => "French (Senegal)","fr_SY" => "French (Syria)","fr_TD" => "French (Chad)","fr_TG" => "French (Togo)","fr_TN" => "French (Tunisia)","fr_VU" => "French (Vanuatu)","fr_WF" => "French (Wallis & Futuna)","fr_YT" => "French (Mayotte)","fur" => "Friulian","fur_IT" => "Friulian (Italy)","fy" => "Western Frisian","fy_NL" => "Western Frisian (Netherlands)","ga" => "Irish","ga_IE" => "Irish (Ireland)","gd" => "Scottish Gaelic","gd_GB" => "Scottish Gaelic (United Kingdom)","gl" => "Galician","gl_ES" => "Galician (Spain)","gsw" => "Swiss German","gsw_CH" => "Swiss German (Switzerland)","gsw_FR" => "Swiss German (France)","gsw_LI" => "Swiss German (Liechtenstein)","gu" => "Gujarati","gu_IN" => "Gujarati (India)","guz" => "Gusii","guz_KE" => "Gusii (Kenya)","gv" => "Manx","gv_IM" => "Manx (Isle of Man)","ha" => "Hausa","ha_GH" => "Hausa (Ghana)","ha_NE" => "Hausa (Niger)","ha_NG" => "Hausa (Nigeria)","haw" => "Hawaiian","haw_US" => "Hawaiian (United States)","he" => "Hebrew","he_IL" => "Hebrew (Israel)","hi" => "Hindi","hi_IN" => "Hindi (India)","hr" => "Croatian","hr_BA" => "Croatian (Bosnia & Herzegovina)","hr_HR" => "Croatian (Croatia)","hsb" => "Upper Sorbian","hsb_DE" => "Upper Sorbian (Germany)","hu" => "Hungarian","hu_HU" => "Hungarian (Hungary)","hy" => "Armenian","hy_AM" => "Armenian (Armenia)","id" => "Indonesian","id_ID" => "Indonesian (Indonesia)","ig" => "Igbo","ig_NG" => "Igbo (Nigeria)","ii" => "Sichuan Yi","ii_CN" => "Sichuan Yi (China)","is" => "Icelandic","is_IS" => "Icelandic (Iceland)","it" => "Italian","it_CH" => "Italian (Switzerland)","it_IT" => "Italian (Italy)","it_SM" => "Italian (San Marino)","iu" => "Inuktitut","iu_CA" => "Inuktitut (Canada)","ja" => "Japanese","ja_JP" => "Japanese (Japan)","jgo" => "Ngomba","jgo_CM" => "Ngomba (Cameroon)","jmc" => "Machame","jmc_TZ" => "Machame (Tanzania)","ka" => "Georgian","ka_GE" => "Georgian (Georgia)","kab" => "Kabyle","kab_DZ" => "Kabyle (Algeria)","kam" => "Kamba","kam_KE" => "Kamba (Kenya)","kde" => "Makonde","kde_TZ" => "Makonde (Tanzania)","kea" => "Kabuverdianu","kea_CV" => "Kabuverdianu (Cape Verde)","khq" => "Koyra Chiini","khq_ML" => "Koyra Chiini (Mali)","ki" => "Kikuyu","ki_KE" => "Kikuyu (Kenya)","kk" => "Kazakh","kk_KZ" => "Kazakh (Kazakhstan)","kkj" => "Kako","kkj_CM" => "Kako (Cameroon)","kl" => "Kalaallisut","kl_GL" => "Kalaallisut (Greenland)","kln" => "Kalenjin","kln_KE" => "Kalenjin (Kenya)","km" => "Khmer","km_KH" => "Khmer (Cambodia)","kn" => "Kannada","kn_IN" => "Kannada (India)","ko" => "Korean","ko_KP" => "Korean (North Korea)","ko_KR" => "Korean (South Korea)","kok" => "Konkani","kok_IN" => "Konkani (India)","ks" => "Kashmiri","ks_IN" => "Kashmiri (India)","ksb" => "Shambala","ksb_TZ" => "Shambala (Tanzania)","ksf" => "Bafia","ksf_CM" => "Bafia (Cameroon)","ksh" => "Colognian","ksh_DE" => "Colognian (Germany)","kw" => "Cornish","kw_GB" => "Cornish (United Kingdom)","ky" => "Kyrgyz","ky_KG" => "Kyrgyz (Kyrgyzstan)","lag" => "Langi","lag_TZ" => "Langi (Tanzania)","lb" => "Luxembourgish","lb_LU" => "Luxembourgish (Luxembourg)","lg" => "Ganda","lg_UG" => "Ganda (Uganda)","lkt" => "Lakota","lkt_US" => "Lakota (United States)","ln" => "Lingala","ln_AO" => "Lingala (Angola)","ln_CD" => "Lingala (Congo - Kinshasa)","ln_CF" => "Lingala (Central African Republic)","ln_CG" => "Lingala (Congo - Brazzaville)","lo" => "Lao","lo_LA" => "Lao (Laos)","lrc" => "Northern Luri","lrc_IQ" => "Northern Luri (Iraq)","lrc_IR" => "Northern Luri (Iran)","lt" => "Lithuanian","lt_LT" => "Lithuanian (Lithuania)","lu" => "Luba-Katanga","lu_CD" => "Luba-Katanga (Congo - Kinshasa)","luo" => "Luo","luo_KE" => "Luo (Kenya)","luy" => "Luyia","luy_KE" => "Luyia (Kenya)","lv" => "Latvian","lv_LV" => "Latvian (Latvia)","mas" => "Masai","mas_KE" => "Masai (Kenya)","mas_TZ" => "Masai (Tanzania)","mer" => "Meru","mer_KE" => "Meru (Kenya)","mfe" => "Morisyen","mfe_MU" => "Morisyen (Mauritius)","mg" => "Malagasy","mg_MG" => "Malagasy (Madagascar)","mgh" => "Makhuwa-Meetto","mgh_MZ" => "Makhuwa-Meetto (Mozambique)","mgo" => "Metaʼ","mgo_CM" => "Metaʼ (Cameroon)","mk" => "Macedonian","mk_MK" => "Macedonian (Macedonia)","ml" => "Malayalam","ml_IN" => "Malayalam (India)","mn" => "Mongolian","mn_MN" => "Mongolian (Mongolia)","mr" => "Marathi","mr_IN" => "Marathi (India)","ms" => "Malay","ms_Arab" => "Malay (Arabic)","ms_Arab_BN" => "Malay (Arabic, Brunei)","ms_Arab_MY" => "Malay (Arabic, Malaysia)","ms_BN" => "Malay (Brunei)","ms_MY" => "Malay (Malaysia)","ms_SG" => "Malay (Singapore)","mt" => "Maltese","mt_MT" => "Maltese (Malta)","mua" => "Mundang","mua_CM" => "Mundang (Cameroon)","my" => "Burmese","my_MM" => "Burmese (Myanmar [Burma])","mzn" => "Mazanderani","mzn_IR" => "Mazanderani (Iran)","naq" => "Nama","naq_NA" => "Nama (Namibia)","nb" => "Norwegian Bokmål","nb_NO" => "Norwegian Bokmål (Norway)","nb_SJ" => "Norwegian Bokmål (Svalbard & Jan Mayen)","nd" => "North Ndebele","nd_ZW" => "North Ndebele (Zimbabwe)","ne" => "Nepali","ne_IN" => "Nepali (India)","ne_NP" => "Nepali (Nepal)","nl" => "Dutch","nl_AW" => "Dutch (Aruba)","nl_BE" => "Dutch (Belgium)","nl_BQ" => "Dutch (Caribbean Netherlands)","nl_CW" => "Dutch (Curaçao)","nl_NL" => "Dutch (Netherlands)","nl_SR" => "Dutch (Suriname)","nl_SX" => "Dutch (Sint Maarten)","nmg" => "Kwasio","nmg_CM" => "Kwasio (Cameroon)","nn" => "Norwegian Nynorsk","nn_NO" => "Norwegian Nynorsk (Norway)","nnh" => "Ngiemboon","nnh_CM" => "Ngiemboon (Cameroon)","nus" => "Nuer","nus_SS" => "Nuer (South Sudan)","nyn" => "Nyankole","nyn_UG" => "Nyankole (Uganda)","om" => "Oromo","om_ET" => "Oromo (Ethiopia)","om_KE" => "Oromo (Kenya)","or" => "Oriya","or_IN" => "Oriya (India)","os" => "Ossetic","os_GE" => "Ossetic (Georgia)","os_RU" => "Ossetic (Russia)","pa" => "Punjabi","pa_Arab" => "Punjabi (Arabic)","pa_Arab_PK" => "Punjabi (Arabic, Pakistan)","pa_Guru" => "Punjabi (Gurmukhi)","pa_Guru_IN" => "Punjabi (Gurmukhi, India)","pl" => "Polish","pl_PL" => "Polish (Poland)","ps" => "Pashto","ps_AF" => "Pashto (Afghanistan)","pt" => "Portuguese","pt_AO" => "Portuguese (Angola)","pt_BR" => "Portuguese (Brazil)","pt_CV" => "Portuguese (Cape Verde)","pt_GW" => "Portuguese (Guinea-Bissau)","pt_MO" => "Portuguese (Macau [China])","pt_MZ" => "Portuguese (Mozambique)","pt_PT" => "Portuguese (Portugal)","pt_ST" => "Portuguese (São Tomé & Príncipe)","pt_TL" => "Portuguese (Timor-Leste)","qu" => "Quechua","qu_BO" => "Quechua (Bolivia)","qu_EC" => "Quechua (Ecuador)","qu_PE" => "Quechua (Peru)","rm" => "Romansh","rm_CH" => "Romansh (Switzerland)","rn" => "Rundi","rn_BI" => "Rundi (Burundi)","ro" => "Romanian","ro_MD" => "Romanian (Moldova)","ro_RO" => "Romanian (Romania)","rof" => "Rombo","rof_TZ" => "Rombo (Tanzania)","ru" => "Russian","ru_BY" => "Russian (Belarus)","ru_KG" => "Russian (Kyrgyzstan)","ru_KZ" => "Russian (Kazakhstan)","ru_MD" => "Russian (Moldova)","ru_RU" => "Russian (Russia)","ru_UA" => "Russian (Ukraine)","rw" => "Kinyarwanda","rw_RW" => "Kinyarwanda (Rwanda)","rwk" => "Rwa","rwk_TZ" => "Rwa (Tanzania)","sah" => "Sakha","sah_RU" => "Sakha (Russia)","saq" => "Samburu","saq_KE" => "Samburu (Kenya)","sbp" => "Sangu","sbp_TZ" => "Sangu (Tanzania)","se" => "Northern Sami","se_FI" => "Northern Sami (Finland)","se_NO" => "Northern Sami (Norway)","se_SE" => "Northern Sami (Sweden)","seh" => "Sena","seh_MZ" => "Sena (Mozambique)","ses" => "Koyraboro Senni","ses_ML" => "Koyraboro Senni (Mali)","sg" => "Sango","sg_CF" => "Sango (Central African Republic)","shi" => "Tachelhit","shi_Latn" => "Tachelhit (Latin)","shi_Latn_MA" => "Tachelhit (Latin, Morocco)","shi_Tfng" => "Tachelhit (Tifinagh)","shi_Tfng_MA" => "Tachelhit (Tifinagh, Morocco)","si" => "Sinhala","si_LK" => "Sinhala (Sri Lanka)","sk" => "Slovak","sk_SK" => "Slovak (Slovakia)","sl" => "Slovenian","sl_SI" => "Slovenian (Slovenia)","smn" => "Inari Sami","smn_FI" => "Inari Sami (Finland)","sn" => "Shona","sn_ZW" => "Shona (Zimbabwe)","so" => "Somali","so_DJ" => "Somali (Djibouti)","so_ET" => "Somali (Ethiopia)","so_KE" => "Somali (Kenya)","so_SO" => "Somali (Somalia)","sq" => "Albanian","sq_AL" => "Albanian (Albania)","sq_MK" => "Albanian (Macedonia)","sq_XK" => "Albanian (Kosovo)","sr" => "Serbian","sr_Cyrl" => "Serbian (Cyrillic)","sr_Cyrl_BA" => "Serbian (Cyrillic, Bosnia & Herzegovina)","sr_Cyrl_ME" => "Serbian (Cyrillic, Montenegro)","sr_Cyrl_RS" => "Serbian (Cyrillic, Serbia)","sr_Cyrl_XK" => "Serbian (Cyrillic, Kosovo)","sr_Latn" => "Serbian (Latin)","sr_Latn_BA" => "Serbian (Latin, Bosnia & Herzegovina)","sr_Latn_ME" => "Serbian (Latin, Montenegro)","sr_Latn_RS" => "Serbian (Latin, Serbia)","sr_Latn_XK" => "Serbian (Latin, Kosovo)","sv" => "Swedish","sv_AX" => "Swedish (Åland Islands)","sv_FI" => "Swedish (Finland)","sv_SE" => "Swedish (Sweden)","sw" => "Swahili","sw_CD" => "Swahili (Congo - Kinshasa)","sw_KE" => "Swahili (Kenya)","sw_TZ" => "Swahili (Tanzania)","sw_UG" => "Swahili (Uganda)","ta" => "Tamil","ta_IN" => "Tamil (India)","ta_LK" => "Tamil (Sri Lanka)","ta_MY" => "Tamil (Malaysia)","ta_SG" => "Tamil (Singapore)","te" => "Telugu","te_IN" => "Telugu (India)","teo" => "Teso","teo_KE" => "Teso (Kenya)","teo_UG" => "Teso (Uganda)","tg" => "Tajik","tg_TJ" => "Tajik (Tajikistan)","th" => "Thai","th_TH" => "Thai (Thailand)","ti" => "Tigrinya","ti_ER" => "Tigrinya (Eritrea)","ti_ET" => "Tigrinya (Ethiopia)","tk" => "Turkmen","tk_TM" => "Turkmen (Turkmenistan)","to" => "Tongan","to_TO" => "Tongan (Tonga)","tr" => "Turkish","tr_CY" => "Turkish (Cyprus)","tr_TR" => "Turkish (Turkey)","twq" => "Tasawaq","twq_NE" => "Tasawaq (Niger)","tzm" => "Central Atlas Tamazight","tzm_MA" => "Central Atlas Tamazight (Morocco)","ug" => "Uyghur","ug_CN" => "Uyghur (China)","uk" => "Ukrainian","uk_UA" => "Ukrainian (Ukraine)","ur" => "Urdu","ur_IN" => "Urdu (India)","ur_PK" => "Urdu (Pakistan)","uz" => "Uzbek","uz_Arab" => "Uzbek (Arabic)","uz_Arab_AF" => "Uzbek (Arabic, Afghanistan)","uz_Cyrl" => "Uzbek (Cyrillic)","uz_Cyrl_UZ" => "Uzbek (Cyrillic, Uzbekistan)","uz_Latn" => "Uzbek (Latin)","uz_Latn_UZ" => "Uzbek (Latin, Uzbekistan)","vai" => "Vai","vai_Latn" => "Vai (Latin)","vai_Latn_LR" => "Vai (Latin, Liberia)","vai_Vaii" => "Vai (Vai)","vai_Vaii_LR" => "Vai (Vai, Liberia)","vi" => "Vietnamese","vi_VN" => "Vietnamese (Vietnam)","vun" => "Vunjo","vun_TZ" => "Vunjo (Tanzania)","wae" => "Walser","wae_CH" => "Walser (Switzerland)","xog" => "Soga","xog_UG" => "Soga (Uganda)","yav" => "Yangben","yav_CM" => "Yangben (Cameroon)","yi" => "Yiddish","yi_001" => "Yiddish (World)","yo" => "Yoruba","yo_BJ" => "Yoruba (Benin)","yo_NG" => "Yoruba (Nigeria)","yue" => "Cantonese","yue_HK" => "Cantonese (Hong Kong [China])","zgh" => "Standard Moroccan Tamazight","zgh_MA" => "Standard Moroccan Tamazight (Morocco)","zh" => "Chinese","zh_Hans" => "Chinese (Simplified)","zh_Hans_CN" => "Chinese (Simplified, China)","zh_Hans_HK" => "Chinese (Simplified, Hong Kong [China])","zh_Hans_MO" => "Chinese (Simplified, Macau [China])","zh_Hans_SG" => "Chinese (Simplified, Singapore)","zh_Hant" => "Chinese (Traditional)","zh_Hant_HK" => "Chinese (Traditional, Hong Kong [China])","zh_Hant_MO" => "Chinese (Traditional, Macau [China])","zh_Hant_TW" => "Chinese (Traditional, Taiwan)","zu" => "Zulu","zu_ZA" => "Zulu (South Africa)"
89
92
  },
@@ -39,9 +39,9 @@ module RunLoop
39
39
 
40
40
  # @!visibility private
41
41
  def self.ensure_valid_core_simulator_service
42
- max_tries = 3
42
+ max_tries = 4
43
43
  valid = false
44
- 3.times do |try|
44
+ 4.times do |try|
45
45
  valid = self.valid_core_simulator_service?
46
46
  break if valid
47
47
  RunLoop.log_debug("Invalid CoreSimulator service for active Xcode: try #{try + 1} of #{max_tries}")
@@ -54,11 +54,12 @@ module RunLoop
54
54
  require "run_loop/shell"
55
55
  args = ["xcrun", "simctl", "help"]
56
56
 
57
+ options = {timeout: 5 }
57
58
  begin
58
- hash = Shell.run_shell_command(args)
59
+ hash = Shell.run_shell_command(args, options)
59
60
  hash[:exit_status] == 0 &&
60
61
  !hash[:out][/Failed to locate a valid instance of CoreSimulatorService/]
61
- rescue RunLoop::Shell::Error => _
62
+ rescue RunLoop::Shell::TimeoutError, RunLoop::Shell::Error => _
62
63
  false
63
64
  end
64
65
  end
@@ -379,13 +380,6 @@ $ bundle exec run-loop simctl manage-processes
379
380
  sim_control.ensure_accessibility(device)
380
381
  end
381
382
 
382
- # @!visibility private
383
- #
384
- # SimControl compatibility
385
- def ensure_software_keyboard(device)
386
- sim_control.ensure_software_keyboard(device)
387
- end
388
-
389
383
  # @!visibility private
390
384
  #
391
385
  # TODO Make this private again; exposed for SimControl compatibility.
@@ -1,5 +1,5 @@
1
1
  module RunLoop
2
- VERSION = "2.5.2"
2
+ VERSION = "2.5.3"
3
3
 
4
4
  # A model of a software release version that can be used to compare two versions.
5
5
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: run_loop
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.2
4
+ version: 2.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karl Krukow
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-08-28 00:00:00.000000000 Z
12
+ date: 2017-08-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -415,7 +415,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
415
415
  version: '0'
416
416
  requirements: []
417
417
  rubyforge_project:
418
- rubygems_version: 2.6.12
418
+ rubygems_version: 2.6.13
419
419
  signing_key:
420
420
  specification_version: 4
421
421
  summary: The bridge between Calabash iOS and Xcode command-line tools like instruments