aboutsummaryrefslogtreecommitdiff
path: root/source/ShiftUI/Keyboard
diff options
context:
space:
mode:
authorMichaelTheShifter <[email protected]>2016-07-20 09:40:36 -0400
committerMichaelTheShifter <[email protected]>2016-07-20 09:40:36 -0400
commitd40fed5ce2bc806a91245adb18039634eac13ed0 (patch)
treef1d7168aee6db109ac2c738ad18c9db667a6ba69 /source/ShiftUI/Keyboard
parentf1856e8ed30ed882229fd3fa2a4038122a5fb441 (diff)
downloadshiftos-c--d40fed5ce2bc806a91245adb18039634eac13ed0.tar.gz
shiftos-c--d40fed5ce2bc806a91245adb18039634eac13ed0.tar.bz2
shiftos-c--d40fed5ce2bc806a91245adb18039634eac13ed0.zip
Move ShiftUI source code to ShiftOS
This'll be a lot easier to work on.
Diffstat (limited to 'source/ShiftUI/Keyboard')
-rw-r--r--source/ShiftUI/Keyboard/InputLanguage.cs134
-rw-r--r--source/ShiftUI/Keyboard/InputLanguageCollection.cs77
-rw-r--r--source/ShiftUI/Keyboard/KeyEventArgs.cs123
-rw-r--r--source/ShiftUI/Keyboard/KeyEventHandler.cs33
-rw-r--r--source/ShiftUI/Keyboard/KeyPressEventArgs.cs68
-rw-r--r--source/ShiftUI/Keyboard/KeyPressEventHandler.cs31
-rw-r--r--source/ShiftUI/Keyboard/KeyboardLayouts.cs149
-rw-r--r--source/ShiftUI/Keyboard/ResXResourceWriter.cs667
-rw-r--r--source/ShiftUI/Keyboard/create-keyboards.cs2079
9 files changed, 3361 insertions, 0 deletions
diff --git a/source/ShiftUI/Keyboard/InputLanguage.cs b/source/ShiftUI/Keyboard/InputLanguage.cs
new file mode 100644
index 0000000..e2f7edd
--- /dev/null
+++ b/source/ShiftUI/Keyboard/InputLanguage.cs
@@ -0,0 +1,134 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2004 Novell, Inc.
+//
+// Authors:
+// Peter Bartok [email protected]
+//
+
+
+// NOT COMPLETE
+
+using System.Globalization;
+using System;
+
+namespace ShiftUI {
+ public sealed class InputLanguage {
+ private static InputLanguageCollection all;
+ private IntPtr handle;
+ private CultureInfo culture;
+ private string layout_name;
+ private static InputLanguage current_input;
+ private static InputLanguage default_input;
+
+ #region Private Constructor
+ [MonoInternalNote ("Pull Microsofts InputLanguages and enter them here")]
+ internal InputLanguage()
+ {
+ }
+
+ internal InputLanguage(IntPtr handle, CultureInfo culture, string layout_name) : this() {
+ this.handle=handle;
+ this.culture=culture;
+ this.layout_name=layout_name;
+ }
+ #endregion // Private Constructor
+
+ #region Public Static Properties
+ public static InputLanguage CurrentInputLanguage {
+ get {
+ if (current_input == null)
+ current_input = InputLanguage.FromCulture (CultureInfo.CurrentUICulture);
+ return current_input;
+ }
+
+ set {
+ if (InstalledInputLanguages.Contains (value))
+ current_input = value;
+ }
+ }
+
+ public static InputLanguage DefaultInputLanguage {
+ get {
+ if (default_input == null)
+ default_input = InputLanguage.FromCulture (CultureInfo.CurrentUICulture);
+
+ return default_input;
+ }
+ }
+
+ public static InputLanguageCollection InstalledInputLanguages {
+ get {
+ if (all == null)
+ all = new InputLanguageCollection (new InputLanguage[] { new InputLanguage (IntPtr.Zero, new CultureInfo(string.Empty), "US") });
+
+ return all;
+ }
+ }
+ #endregion // Public Static Properties
+
+ #region Public Instance Properties
+ public CultureInfo Culture {
+ get {
+ return this.culture;
+ }
+ }
+
+ public IntPtr Handle {
+ get {
+ return this.handle;
+ }
+ }
+
+ public string LayoutName {
+ get {
+ return this.layout_name;
+ }
+ }
+ #endregion // Public Instance Properties
+
+ #region Public Static Methods
+ public static InputLanguage FromCulture(System.Globalization.CultureInfo culture) {
+ foreach (InputLanguage c in InstalledInputLanguages) {
+ if (culture.EnglishName==c.culture.EnglishName) {
+ return new InputLanguage(c.handle, c.culture, c.layout_name);
+ }
+ }
+
+ return new InputLanguage (InstalledInputLanguages[0].handle, InstalledInputLanguages[0].culture, InstalledInputLanguages[0].layout_name);
+ }
+ #endregion // Public Static Methods
+
+ #region Public Instance Methods
+ public override bool Equals(object value) {
+ if (value is InputLanguage) {
+ if ((((InputLanguage)value).culture==this.culture) && (((InputLanguage)value).handle==this.handle) && (((InputLanguage)value).layout_name==this.layout_name)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public override int GetHashCode() {
+ return base.GetHashCode();
+ }
+ #endregion // Public Instance Methods
+ }
+}
diff --git a/source/ShiftUI/Keyboard/InputLanguageCollection.cs b/source/ShiftUI/Keyboard/InputLanguageCollection.cs
new file mode 100644
index 0000000..e1715db
--- /dev/null
+++ b/source/ShiftUI/Keyboard/InputLanguageCollection.cs
@@ -0,0 +1,77 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2004 Novell, Inc.
+//
+// Authors:
+// Peter Bartok [email protected]
+//
+
+
+// COMPLETE
+
+using System.Collections;
+using System.Globalization;
+using System;
+
+namespace ShiftUI {
+ public class InputLanguageCollection : ReadOnlyCollectionBase {
+ #region Private Constructor
+ internal InputLanguageCollection (InputLanguage[] data)
+ {
+ base.InnerList.AddRange (data);
+ }
+ #endregion // Private Constructor
+
+ #region Public Instance Methods
+ public InputLanguage this [int index] {
+ get {
+ if (index >= base.InnerList.Count) {
+ throw new ArgumentOutOfRangeException("index");
+ }
+ return base.InnerList[index] as InputLanguage;
+ }
+ }
+
+ public bool Contains(InputLanguage value) {
+ for (int i = 0; i < base.InnerList.Count; i++) {
+ if ((this[i].Culture == value.Culture) && (this[i].LayoutName == value.LayoutName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void CopyTo(InputLanguage[] array, int index) {
+ if (base.InnerList.Count > 0) {
+ base.InnerList.CopyTo (array, index);
+ }
+ }
+
+ public int IndexOf(InputLanguage value) {
+ for (int i = 0; i < base.InnerList.Count; i++) {
+ if ((this[i].Culture == value.Culture) && (this[i].LayoutName == value.LayoutName)) {
+ return i;
+ }
+ }
+ return -1;
+ }
+ #endregion // Public Instance Methods
+ }
+}
diff --git a/source/ShiftUI/Keyboard/KeyEventArgs.cs b/source/ShiftUI/Keyboard/KeyEventArgs.cs
new file mode 100644
index 0000000..da53765
--- /dev/null
+++ b/source/ShiftUI/Keyboard/KeyEventArgs.cs
@@ -0,0 +1,123 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2004-2005 Novell, Inc.
+//
+// Authors:
+// Peter Bartok [email protected]
+//
+//
+
+
+// COMPLETE
+
+using System.Runtime.InteropServices;
+using System;
+
+namespace ShiftUI {
+ [ComVisible(true)]
+ public class KeyEventArgs : EventArgs {
+ private Keys key_data;
+ private bool event_handled;
+ private bool supress_key_press;
+
+ #region Public Constructors
+ public KeyEventArgs(Keys keyData) {
+ this.key_data=keyData;
+ this.event_handled=false;
+ }
+ #endregion // Public Constructors
+
+ #region Public Instance Properties
+ public virtual bool Alt {
+ get {
+ if ((this.key_data & Keys.Alt)==0) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ }
+
+ public bool Widget {
+ get {
+ if ((this.key_data & Keys.Widget)==0) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ }
+
+ public bool Handled {
+ get {
+ return this.event_handled;
+ }
+
+ set {
+ this.event_handled=value;
+ }
+ }
+
+ public Keys KeyCode {
+ get {
+ return (this.key_data & Keys.KeyCode);
+ }
+ }
+
+ public Keys KeyData {
+ get {
+ return this.key_data;
+ }
+ }
+
+ public int KeyValue {
+ get {
+ return Convert.ToInt32(this.key_data);
+ }
+ }
+
+ public Keys Modifiers {
+ get {
+ return (this.key_data & Keys.Modifiers);
+ }
+ }
+
+ public virtual bool Shift {
+ get {
+ if ((this.key_data & Keys.Shift)==0) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ }
+
+ public bool SuppressKeyPress {
+ get {
+ return supress_key_press;
+ }
+ set {
+ supress_key_press = value;
+ event_handled = value;
+ }
+ }
+ #endregion // Public Instance Properties
+ }
+}
diff --git a/source/ShiftUI/Keyboard/KeyEventHandler.cs b/source/ShiftUI/Keyboard/KeyEventHandler.cs
new file mode 100644
index 0000000..857eef3
--- /dev/null
+++ b/source/ShiftUI/Keyboard/KeyEventHandler.cs
@@ -0,0 +1,33 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2004 Novell, Inc.
+//
+// Authors:
+// Peter Bartok [email protected]
+//
+//
+
+
+
+// COMPLETE
+
+namespace ShiftUI {
+ public delegate void KeyEventHandler (object sender, KeyEventArgs e);
+}
diff --git a/source/ShiftUI/Keyboard/KeyPressEventArgs.cs b/source/ShiftUI/Keyboard/KeyPressEventArgs.cs
new file mode 100644
index 0000000..7d912d6
--- /dev/null
+++ b/source/ShiftUI/Keyboard/KeyPressEventArgs.cs
@@ -0,0 +1,68 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2004-2006 Novell, Inc.
+//
+// Authors:
+// Peter Bartok [email protected]
+//
+//
+
+
+// COMPLETE
+
+using System.Runtime.InteropServices;
+using System;
+
+namespace ShiftUI {
+ [ComVisible(true)]
+ public class KeyPressEventArgs : EventArgs {
+ private char key_char;
+ private bool event_handled;
+
+ #region Public Constructors
+ public KeyPressEventArgs(char keyChar) {
+ this.key_char=keyChar;
+ this.event_handled=false;
+ }
+ #endregion // Public Constructors
+
+ #region Public Instance Properties
+ public bool Handled {
+ get {
+ return this.event_handled;
+ }
+
+ set {
+ this.event_handled=value;
+ }
+ }
+
+ public char KeyChar {
+ get {
+ return this.key_char;
+ }
+
+ set {
+ key_char = value;
+ }
+ }
+ #endregion // Public Instance Properties
+ }
+}
diff --git a/source/ShiftUI/Keyboard/KeyPressEventHandler.cs b/source/ShiftUI/Keyboard/KeyPressEventHandler.cs
new file mode 100644
index 0000000..bfb6a25
--- /dev/null
+++ b/source/ShiftUI/Keyboard/KeyPressEventHandler.cs
@@ -0,0 +1,31 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2004 Novell, Inc.
+//
+// Authors:
+// Peter Bartok [email protected]
+//
+
+
+// COMPLETE
+
+namespace ShiftUI {
+ public delegate void KeyPressEventHandler (object sender, KeyPressEventArgs e);
+}
diff --git a/source/ShiftUI/Keyboard/KeyboardLayouts.cs b/source/ShiftUI/Keyboard/KeyboardLayouts.cs
new file mode 100644
index 0000000..7d56678
--- /dev/null
+++ b/source/ShiftUI/Keyboard/KeyboardLayouts.cs
@@ -0,0 +1,149 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2004 Novell, Inc.
+//
+// Authors:
+// Jackson Harper ([email protected])
+//
+//
+using System;
+using System.Resources;
+using System.Text;
+using System.IO;
+using System.Runtime.Serialization.Formatters.Binary;
+using System.Reflection;
+
+namespace ShiftUI {
+
+ internal class KeyboardLayouts {
+ private KeyboardLayout [] keyboard_layouts;
+ public int [][] vkey_table;
+ public short [][] scan_table;
+
+ public static object ObjFromByte(string resource) {
+ var asm = Assembly.GetExecutingAssembly ();
+ var resources = asm.GetManifestResourceNames ();
+ byte[] binary = null;
+ foreach (var r in resources) {
+ if(r.Contains(resource)) {
+ var res = asm.GetManifestResourceStream(r);
+ binary = new byte[res.Length];
+ res.Read(binary, 0, (int)res.Length);
+ string base64s = Encoding.UTF8.GetString (binary);
+ binary = Convert.FromBase64String (base64s);
+ res.Close();
+ }
+ }
+ if (binary != null) {
+ MemoryStream memStream = new MemoryStream();
+ BinaryFormatter binForm = new BinaryFormatter();
+ memStream.Write(binary, 0, binary.Length);
+ memStream.Seek(0, SeekOrigin.Begin);
+ Object obj = (Object) binForm.Deserialize(memStream);
+ return obj;
+ } else {
+ throw new ArgumentException ("The resource could not be found.");
+ }
+ }
+
+ public void LoadLayouts ()
+ {
+ keyboard_layouts = (KeyboardLayout []) ObjFromByte("keyboard_table");
+
+ vkey_table = (int [][]) ObjFromByte ("vkey_table");
+ scan_table = (short [][]) ObjFromByte ("scan_table");
+ }
+
+ public KeyboardLayout [] Layouts {
+ get {
+ if (keyboard_layouts == null)
+ LoadLayouts ();
+ return keyboard_layouts;
+ }
+ }
+ }
+
+
+
+ [Serializable]
+#if GENERATING_RESOURCES
+ [CLSCompliant(false)]
+ public
+#else
+ internal
+#endif
+ class KeyboardLayout {
+
+ public int Lcid;
+ public string Name;
+ public ScanTableIndex ScanIndex;
+ public VKeyTableIndex VKeyIndex;
+ public uint [][] Keys;
+
+ public KeyboardLayout (int lcid, string name, ScanTableIndex scan_index,
+ VKeyTableIndex vkey_index, uint [][] keys)
+ {
+ Lcid = lcid;
+ Name = name;
+ ScanIndex = scan_index;
+ VKeyIndex = vkey_index;
+ Keys = keys;
+ }
+
+ public KeyboardLayout (int lcid, string name, int scan_index,
+ int vkey_index, uint [][] keys) : this (lcid, name, (ScanTableIndex) scan_index,
+ (VKeyTableIndex) vkey_index, keys)
+ {
+ }
+
+ }
+
+#if GENERATING_RESOURCES
+ public
+#else
+ internal
+#endif
+ enum VKeyTableIndex {
+ Qwerty,
+ Qwertz,
+ Dvorak,
+ Qwertz105,
+ Azerty,
+ QwertyV2,
+ AbntQwerty,
+ QwertyJp106,
+ Vnc
+ }
+
+#if GENERATING_RESOURCES
+ public
+#else
+ internal
+#endif
+ enum ScanTableIndex {
+ Qwerty,
+ Dvorak,
+ AbntQwerty,
+ QwertyJp106,
+ Vnc
+ }
+
+}
+
diff --git a/source/ShiftUI/Keyboard/ResXResourceWriter.cs b/source/ShiftUI/Keyboard/ResXResourceWriter.cs
new file mode 100644
index 0000000..42b3961
--- /dev/null
+++ b/source/ShiftUI/Keyboard/ResXResourceWriter.cs
@@ -0,0 +1,667 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// Copyright (c) 2004-2005 Novell, Inc.
+//
+// Authors:
+// Duncan Mak [email protected]
+// Gonzalo Paniagua Javier [email protected]
+// Peter Bartok [email protected]
+// Gary Barnett [email protected]
+// includes code by Mike Krüger and Lluis Sanchez
+
+using System.ComponentModel;
+using System.IO;
+using System.Runtime.Serialization.Formatters.Binary;
+using System.Text;
+using System.Xml;
+using System.Reflection;
+
+namespace System.Resources
+{
+#if INSIDE_SYSTEM_WEB
+ internal
+#else
+ public
+#endif
+ class ResXResourceWriter : IResourceWriter, IDisposable
+ {
+ #region Local Variables
+ private string filename;
+ private Stream stream;
+ private TextWriter textwriter;
+ private XmlTextWriter writer;
+ private bool written;
+ private string base_path;
+ #endregion // Local Variables
+
+ #region Static Fields
+ public static readonly string BinSerializedObjectMimeType = "application/x-microsoft.net.object.binary.base64";
+ public static readonly string ByteArraySerializedObjectMimeType = "application/x-microsoft.net.object.bytearray.base64";
+ public static readonly string DefaultSerializedObjectMimeType = BinSerializedObjectMimeType;
+ public static readonly string ResMimeType = "text/microsoft-resx";
+ public static readonly string ResourceSchema = schema;
+ public static readonly string SoapSerializedObjectMimeType = "application/x-microsoft.net.object.soap.base64";
+ public static readonly string Version = "2.0";
+ #endregion // Static Fields
+
+ #region Constructors & Destructor
+ public ResXResourceWriter (Stream stream)
+ {
+ if (stream == null)
+ throw new ArgumentNullException ("stream");
+
+ if (!stream.CanWrite)
+ throw new ArgumentException ("stream is not writable.", "stream");
+
+ this.stream = stream;
+ }
+
+ public ResXResourceWriter (TextWriter textWriter)
+ {
+ if (textWriter == null)
+ throw new ArgumentNullException ("textWriter");
+
+ this.textwriter = textWriter;
+ }
+
+ public ResXResourceWriter (string fileName)
+ {
+ if (fileName == null)
+ throw new ArgumentNullException ("fileName");
+
+ this.filename = fileName;
+ }
+
+ ~ResXResourceWriter() {
+ Dispose(false);
+ }
+ #endregion // Constructors & Destructor
+
+ void InitWriter ()
+ {
+ if (filename != null)
+ stream = File.Open (filename, FileMode.Create);
+ if (textwriter == null)
+ textwriter = new StreamWriter (stream, Encoding.UTF8);
+
+ writer = new XmlTextWriter (textwriter);
+ writer.Formatting = Formatting.Indented;
+ writer.WriteStartDocument ();
+ writer.WriteStartElement ("root");
+ writer.WriteRaw (schema);
+ WriteHeader ("resmimetype", "text/microsoft-resx");
+ WriteHeader ("version", "1.3");
+ WriteHeader ("reader", typeof (ResXResourceReader).AssemblyQualifiedName);
+ WriteHeader ("writer", typeof (ResXResourceWriter).AssemblyQualifiedName);
+ }
+
+ void WriteHeader (string name, string value)
+ {
+ writer.WriteStartElement ("resheader");
+ writer.WriteAttributeString ("name", name);
+ writer.WriteStartElement ("value");
+ writer.WriteString (value);
+ writer.WriteEndElement ();
+ writer.WriteEndElement ();
+ }
+
+ void WriteNiceBase64(byte[] value, int offset, int length) {
+ string b64;
+ StringBuilder sb;
+ int pos;
+ int inc;
+ string ins;
+
+ b64 = Convert.ToBase64String(value, offset, length);
+
+ // Wild guess; two extra newlines, and one newline/tab pair for every 80 chars
+ sb = new StringBuilder(b64, b64.Length + ((b64.Length + 160) / 80) * 3);
+ pos = 0;
+ inc = 80 + Environment.NewLine.Length + 1;
+ ins = Environment.NewLine + "\t";
+ while (pos < sb.Length) {
+ sb.Insert(pos, ins);
+ pos += inc;
+ }
+ sb.Insert(sb.Length, Environment.NewLine);
+ writer.WriteString(sb.ToString());
+ }
+ void WriteBytes (string name, Type type, byte[] value, int offset, int length)
+ {
+ WriteBytes (name, type, value, offset, length, String.Empty);
+ }
+
+ void WriteBytes (string name, Type type, byte[] value, int offset, int length, string comment)
+ {
+ writer.WriteStartElement ("data");
+ writer.WriteAttributeString ("name", name);
+
+ if (type != null) {
+ writer.WriteAttributeString ("type", type.AssemblyQualifiedName);
+ // byte[] should never get a mimetype, otherwise MS.NET won't be able
+ // to parse the data.
+ if (type != typeof (byte[]))
+ writer.WriteAttributeString ("mimetype", ByteArraySerializedObjectMimeType);
+ writer.WriteStartElement ("value");
+ WriteNiceBase64 (value, offset, length);
+ } else {
+ writer.WriteAttributeString ("mimetype", BinSerializedObjectMimeType);
+ writer.WriteStartElement ("value");
+ writer.WriteBase64 (value, offset, length);
+ }
+
+ writer.WriteEndElement ();
+
+ if (!(comment == null || comment.Equals (String.Empty))) {
+ writer.WriteStartElement ("comment");
+ writer.WriteString (comment);
+ writer.WriteEndElement ();
+ }
+
+ writer.WriteEndElement ();
+ }
+
+ void WriteBytes (string name, Type type, byte [] value, string comment)
+ {
+ WriteBytes (name, type, value, 0, value.Length, comment);
+ }
+
+ void WriteString (string name, string value)
+ {
+ WriteString (name, value, null);
+ }
+ void WriteString (string name, string value, Type type)
+ {
+ WriteString (name, value, type, String.Empty);
+ }
+ void WriteString (string name, string value, Type type, string comment)
+ {
+ writer.WriteStartElement ("data");
+ writer.WriteAttributeString ("name", name);
+ if (type != null)
+ writer.WriteAttributeString ("type", type.AssemblyQualifiedName);
+ writer.WriteStartElement ("value");
+ writer.WriteString (value);
+ writer.WriteEndElement ();
+ if (!(comment == null || comment.Equals (String.Empty))) {
+ writer.WriteStartElement ("comment");
+ writer.WriteString (comment);
+ writer.WriteEndElement ();
+ }
+ writer.WriteEndElement ();
+ writer.WriteWhitespace ("\n ");
+ }
+
+ public void AddResource (string name, byte [] value)
+ {
+ if (name == null)
+ throw new ArgumentNullException ("name");
+
+ if (value == null)
+ throw new ArgumentNullException ("value");
+
+ if (written)
+ throw new InvalidOperationException ("The resource is already generated.");
+
+ if (writer == null)
+ InitWriter ();
+
+ WriteBytes (name, value.GetType (), value, null);
+ }
+
+ public void AddResource (string name, object value)
+ {
+ AddResource (name, value, String.Empty);
+ }
+
+ private void AddResource (string name, object value, string comment)
+ {
+ if (value is string) {
+ AddResource (name, (string) value, comment);
+ return;
+ }
+
+ if (name == null)
+ throw new ArgumentNullException ("name");
+
+ if (value != null && !value.GetType ().IsSerializable)
+ throw new InvalidOperationException (String.Format ("The element '{0}' of type '{1}' is not serializable.", name, value.GetType ().Name));
+
+ if (written)
+ throw new InvalidOperationException ("The resource is already generated.");
+
+ if (writer == null)
+ InitWriter ();
+
+ if (value is byte[]) {
+ WriteBytes (name, value.GetType (), (byte []) value, comment);
+ return;
+ }
+
+ if (value == null) {
+ // nulls written as ResXNullRef
+ WriteString (name, "", typeof (ResXNullRef), comment);
+ return;
+ }
+
+ TypeConverter converter = TypeDescriptor.GetConverter (value);
+ if (value is ResXFileRef) {
+ ResXFileRef fileRef = ProcessFileRefBasePath ((ResXFileRef) value);
+ string str = (string) converter.ConvertToInvariantString (fileRef);
+ WriteString (name, str, value.GetType (), comment);
+ return;
+ }
+
+ if (converter != null && converter.CanConvertTo (typeof (string)) && converter.CanConvertFrom (typeof (string))) {
+ string str = (string) converter.ConvertToInvariantString (value);
+ WriteString (name, str, value.GetType (), comment);
+ return;
+ }
+
+ if (converter != null && converter.CanConvertTo (typeof (byte[])) && converter.CanConvertFrom (typeof (byte[]))) {
+ byte[] b = (byte[]) converter.ConvertTo (value, typeof (byte[]));
+ WriteBytes (name, value.GetType (), b, comment);
+ return;
+ }
+
+ MemoryStream ms = new MemoryStream ();
+ BinaryFormatter fmt = new BinaryFormatter ();
+ try {
+ fmt.Serialize (ms, value);
+ } catch (Exception e) {
+ throw new InvalidOperationException ("Cannot add a " + value.GetType () +
+ "because it cannot be serialized: " +
+ e.Message);
+ }
+
+ WriteBytes (name, null, ms.GetBuffer (), 0, (int) ms.Length, comment);
+ ms.Close ();
+ }
+
+ public void AddResource (string name, string value)
+ {
+ AddResource (name, value, string.Empty);
+ }
+
+ private void AddResource (string name, string value, string comment)
+ {
+ if (name == null)
+ throw new ArgumentNullException ("name");
+
+ if (value == null)
+ throw new ArgumentNullException ("value");
+
+ if (written)
+ throw new InvalidOperationException ("The resource is already generated.");
+
+ if (writer == null)
+ InitWriter ();
+
+ WriteString (name, value, null, comment);
+ }
+
+ [MonoTODO ("Stub, not implemented")]
+ public virtual void AddAlias (string aliasName, AssemblyName assemblyName)
+ {
+ }
+
+ public void AddResource (ResXDataNode node)
+ {
+ if (node == null)
+ throw new ArgumentNullException ("node");
+
+ if (writer == null)
+ InitWriter ();
+
+ if (node.IsWritable)
+ WriteWritableNode (node);
+ else if (node.FileRef != null)
+ AddResource (node.Name, node.FileRef, node.Comment);
+ else
+ AddResource (node.Name, node.GetValue ((AssemblyName []) null), node.Comment);
+ }
+
+ ResXFileRef ProcessFileRefBasePath (ResXFileRef fileRef)
+ {
+ if (String.IsNullOrEmpty (BasePath))
+ return fileRef;
+
+ string newPath = AbsoluteToRelativePath (BasePath, fileRef.FileName);
+ return new ResXFileRef (newPath, fileRef.TypeName, fileRef.TextFileEncoding);
+ }
+
+ static bool IsSeparator (char ch)
+ {
+ return ch == Path.DirectorySeparatorChar || ch == Path.AltDirectorySeparatorChar || ch == Path.VolumeSeparatorChar;
+ }
+ //adapted from MonoDevelop.Core
+ unsafe static string AbsoluteToRelativePath (string baseDirectoryPath, string absPath)
+ {
+ if (string.IsNullOrEmpty (baseDirectoryPath))
+ return absPath;
+
+ baseDirectoryPath = baseDirectoryPath.TrimEnd (Path.DirectorySeparatorChar);
+
+ fixed (char* bPtr = baseDirectoryPath, aPtr = absPath) {
+ var bEnd = bPtr + baseDirectoryPath.Length;
+ var aEnd = aPtr + absPath.Length;
+ char* lastStartA = aEnd;
+ char* lastStartB = bEnd;
+
+ int indx = 0;
+ // search common base path
+ var a = aPtr;
+ var b = bPtr;
+ while (a < aEnd) {
+ if (*a != *b)
+ break;
+ if (IsSeparator (*a)) {
+ indx++;
+ lastStartA = a + 1;
+ lastStartB = b;
+ }
+ a++;
+ b++;
+ if (b >= bEnd) {
+ if (a >= aEnd || IsSeparator (*a)) {
+ indx++;
+ lastStartA = a + 1;
+ lastStartB = b;
+ }
+ break;
+ }
+ }
+ if (indx == 0)
+ return absPath;
+
+ if (lastStartA >= aEnd)
+ return ".";
+
+ // handle case a: some/path b: some/path/deeper...
+ if (a >= aEnd) {
+ if (IsSeparator (*b)) {
+ lastStartA = a + 1;
+ lastStartB = b;
+ }
+ }
+
+ // look how many levels to go up into the base path
+ int goUpCount = 0;
+ while (lastStartB < bEnd) {
+ if (IsSeparator (*lastStartB))
+ goUpCount++;
+ lastStartB++;
+ }
+ var size = goUpCount * 2 + goUpCount + aEnd - lastStartA;
+ var result = new char [size];
+ fixed (char* rPtr = result) {
+ // go paths up
+ var r = rPtr;
+ for (int i = 0; i < goUpCount; i++) {
+ *(r++) = '.';
+ *(r++) = '.';
+ *(r++) = Path.DirectorySeparatorChar;
+ }
+ // copy the remaining absulute path
+ while (lastStartA < aEnd)
+ *(r++) = *(lastStartA++);
+ }
+ return new string (result);
+ }
+ }
+
+ // avoids instantiating objects
+ void WriteWritableNode (ResXDataNode node)
+ {
+ writer.WriteStartElement ("data");
+ writer.WriteAttributeString ("name", node.Name);
+ if (!(node.Type == null || node.Type.Equals (String.Empty)))
+ writer.WriteAttributeString ("type", node.Type);
+ if (!(node.MimeType == null || node.MimeType.Equals (String.Empty)))
+ writer.WriteAttributeString ("mimetype", node.MimeType);
+ writer.WriteStartElement ("value");
+ writer.WriteString (node.DataString);
+ writer.WriteEndElement ();
+ if (!(node.Comment == null || node.Comment.Equals (String.Empty))) {
+ writer.WriteStartElement ("comment");
+ writer.WriteString (node.Comment);
+ writer.WriteEndElement ();
+ }
+ writer.WriteEndElement ();
+ writer.WriteWhitespace ("\n ");
+ }
+
+ public void AddMetadata (string name, string value)
+ {
+ if (name == null)
+ throw new ArgumentNullException ("name");
+
+ if (value == null)
+ throw new ArgumentNullException ("value");
+
+ if (written)
+ throw new InvalidOperationException ("The resource is already generated.");
+
+ if (writer == null)
+ InitWriter ();
+
+ writer.WriteStartElement ("metadata");
+ writer.WriteAttributeString ("name", name);
+ writer.WriteAttributeString ("xml:space", "preserve");
+
+ writer.WriteElementString ("value", value);
+
+ writer.WriteEndElement ();
+ }
+
+ public void AddMetadata (string name, byte[] value)
+ {
+ if (name == null)
+ throw new ArgumentNullException ("name");
+
+ if (value == null)
+ throw new ArgumentNullException ("value");
+
+ if (written)
+ throw new InvalidOperationException ("The resource is already generated.");
+
+ if (writer == null)
+ InitWriter ();
+
+ writer.WriteStartElement ("metadata");
+ writer.WriteAttributeString ("name", name);
+
+ writer.WriteAttributeString ("type", value.GetType ().AssemblyQualifiedName);
+
+ writer.WriteStartElement ("value");
+ WriteNiceBase64 (value, 0, value.Length);
+ writer.WriteEndElement ();
+
+ writer.WriteEndElement ();
+ }
+
+ public void AddMetadata (string name, object value)
+ {
+ if (value is string) {
+ AddMetadata (name, (string)value);
+ return;
+ }
+
+ if (value is byte[]) {
+ AddMetadata (name, (byte[])value);
+ return;
+ }
+
+ if (name == null)
+ throw new ArgumentNullException ("name");
+
+ if (value == null)
+ throw new ArgumentNullException ("value");
+
+ if (!value.GetType ().IsSerializable)
+ throw new InvalidOperationException (String.Format ("The element '{0}' of type '{1}' is not serializable.", name, value.GetType ().Name));
+
+ if (written)
+ throw new InvalidOperationException ("The resource is already generated.");
+
+ if (writer == null)
+ InitWriter ();
+
+ Type type = value.GetType ();
+
+ TypeConverter converter = TypeDescriptor.GetConverter (value);
+ if (converter != null && converter.CanConvertTo (typeof (string)) && converter.CanConvertFrom (typeof (string))) {
+ string str = (string)converter.ConvertToInvariantString (value);
+ writer.WriteStartElement ("metadata");
+ writer.WriteAttributeString ("name", name);
+ if (type != null)
+ writer.WriteAttributeString ("type", type.AssemblyQualifiedName);
+ writer.WriteStartElement ("value");
+ writer.WriteString (str);
+ writer.WriteEndElement ();
+ writer.WriteEndElement ();
+ writer.WriteWhitespace ("\n ");
+ return;
+ }
+
+ if (converter != null && converter.CanConvertTo (typeof (byte[])) && converter.CanConvertFrom (typeof (byte[]))) {
+ byte[] b = (byte[])converter.ConvertTo (value, typeof (byte[]));
+ writer.WriteStartElement ("metadata");
+ writer.WriteAttributeString ("name", name);
+
+ if (type != null) {
+ writer.WriteAttributeString ("type", type.AssemblyQualifiedName);
+ writer.WriteAttributeString ("mimetype", ByteArraySerializedObjectMimeType);
+ writer.WriteStartElement ("value");
+ WriteNiceBase64 (b, 0, b.Length);
+ } else {
+ writer.WriteAttributeString ("mimetype", BinSerializedObjectMimeType);
+ writer.WriteStartElement ("value");
+ writer.WriteBase64 (b, 0, b.Length);
+ }
+
+ writer.WriteEndElement ();
+ writer.WriteEndElement ();
+ return;
+ }
+
+ MemoryStream ms = new MemoryStream ();
+ BinaryFormatter fmt = new BinaryFormatter ();
+ try {
+ fmt.Serialize (ms, value);
+ } catch (Exception e) {
+ throw new InvalidOperationException ("Cannot add a " + value.GetType () +
+ "because it cannot be serialized: " +
+ e.Message);
+ }
+
+ writer.WriteStartElement ("metadata");
+ writer.WriteAttributeString ("name", name);
+
+ if (type != null) {
+ writer.WriteAttributeString ("type", type.AssemblyQualifiedName);
+ writer.WriteAttributeString ("mimetype", ByteArraySerializedObjectMimeType);
+ writer.WriteStartElement ("value");
+ WriteNiceBase64 (ms.GetBuffer (), 0, ms.GetBuffer ().Length);
+ } else {
+ writer.WriteAttributeString ("mimetype", BinSerializedObjectMimeType);
+ writer.WriteStartElement ("value");
+ writer.WriteBase64 (ms.GetBuffer (), 0, ms.GetBuffer ().Length);
+ }
+
+ writer.WriteEndElement ();
+ writer.WriteEndElement ();
+ ms.Close ();
+ }
+
+ public void Close ()
+ {
+ if (!written) {
+ Generate ();
+ }
+
+ if (writer != null) {
+ writer.Close ();
+ stream = null;
+ filename = null;
+ textwriter = null;
+ }
+ }
+
+ public virtual void Dispose ()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ public void Generate ()
+ {
+ if (written)
+ throw new InvalidOperationException ("The resource is already generated.");
+
+ written = true;
+ writer.WriteEndElement ();
+ writer.Flush ();
+ }
+
+ protected virtual void Dispose (bool disposing)
+ {
+ if (disposing)
+ Close();
+ }
+
+ static string schema = @"
+ <xsd:schema id='root' xmlns='' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:msdata='urn:schemas-microsoft-com:xml-msdata'>
+ <xsd:element name='root' msdata:IsDataSet='true'>
+ <xsd:complexType>
+ <xsd:choice maxOccurs='unbounded'>
+ <xsd:element name='data'>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name='value' type='xsd:string' minOccurs='0' msdata:Ordinal='1' />
+ <xsd:element name='comment' type='xsd:string' minOccurs='0' msdata:Ordinal='2' />
+ </xsd:sequence>
+ <xsd:attribute name='name' type='xsd:string' msdata:Ordinal='1' />
+ <xsd:attribute name='type' type='xsd:string' msdata:Ordinal='3' />
+ <xsd:attribute name='mimetype' type='xsd:string' msdata:Ordinal='4' />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name='resheader'>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name='value' type='xsd:string' minOccurs='0' msdata:Ordinal='1' />
+ </xsd:sequence>
+ <xsd:attribute name='name' type='xsd:string' use='required' />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+".Replace ("'", "\"");
+
+ #region Public Properties
+ public string BasePath {
+ get { return base_path; }
+ set { base_path = value; }
+ }
+ #endregion
+ }
+}
diff --git a/source/ShiftUI/Keyboard/create-keyboards.cs b/source/ShiftUI/Keyboard/create-keyboards.cs
new file mode 100644
index 0000000..67ac3ad
--- /dev/null
+++ b/source/ShiftUI/Keyboard/create-keyboards.cs
@@ -0,0 +1,2079 @@
+
+using System;
+using System.Resources;
+using System.Windows.Forms;
+using ShiftUI;
+
+
+
+public class CreateKeyboards
+{
+ public static void Main()
+ {
+ ResXResourceWriter rsxw = new ResXResourceWriter ("keyboards.resx");
+ KeyboardLayout [] table = new KeyboardLayout [64];
+
+ table [0] = new KeyboardLayout (1033, "United States keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {},
+ new uint [] {}, });
+ table [1] = new KeyboardLayout (1033, "United States keyboard layout (phantom key version)", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [2] = new KeyboardLayout (1033, "United States keyboard layout (dvorak)", 1, 2, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x63, 0x43, }, new uint [] {0x72, 0x52, },
+ new uint [] {0x6c, 0x4c, }, new uint [] {0x2f, 0x3f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x6f, 0x4f, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x75, 0x55, }, new uint [] {0x69, 0x49, },
+ new uint [] {0x64, 0x44, }, new uint [] {0x68, 0x48, },
+ new uint [] {0x74, 0x54, }, new uint [] {0x6e, 0x4e, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x3b, 0x3a, },
+ new uint [] {0x71, 0x51, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x78, 0x58, },
+ new uint [] {0x62, 0x42, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x76, 0x56, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {},
+ new uint [] {}, });
+ table [3] = new KeyboardLayout (1033, "United States International keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x5c, 0x7c, },
+ new uint [] {0x71, 0x51, }, new uint [] {0x77, 0x57, },
+ new uint [] {0x65, 0x45, }, new uint [] {0x72, 0x52, },
+ new uint [] {0x74, 0x54, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x75, 0x55, }, new uint [] {0x69, 0x49, },
+ new uint [] {0x6f, 0x4f, }, new uint [] {0x70, 0x50, },
+ new uint [] {0x5b, 0x7b, }, new uint [] {0x5d, 0x7d, },
+ new uint [] {0x61, 0x41, }, new uint [] {0x73, 0x53, },
+ new uint [] {0x64, 0x44, }, new uint [] {0x66, 0x46, },
+ new uint [] {0x67, 0x47, }, new uint [] {0x68, 0x48, },
+ new uint [] {0x6a, 0x4a, }, new uint [] {0x6b, 0x4b, },
+ new uint [] {0x6c, 0x4c, }, new uint [] {0x3b, 0x3a, },
+ new uint [] {0x27, 0x22, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {},
+ new uint [] {}, });
+ table [4] = new KeyboardLayout (2057, "British keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa3, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x40, },
+ new uint [] {0x23, 0x7e, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x5c, 0x7c, },
+ new uint [] {}, });
+ table [5] = new KeyboardLayout (1031, "German keyboard layout", 0, 1, new uint [][] {
+ new uint [] {0x5e, 0xffffffb0, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa7, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0xffffffdf, 0x3f, },
+ new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, },
+ new uint [] {0x2b, 0x2a, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, },
+ new uint [] {0x23, 0x27, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, 0x7c, },
+ new uint [] {}, });
+ table [6] = new KeyboardLayout (1031, "German keyboard layout without dead keys", 0, 1, new uint [][] {
+ new uint [] {0x5e, 0xffffffb0, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa7, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, },
+ new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, },
+ new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0xffffffdf, 0x3f, 0x5c, },
+ new uint [] {0xffffffb4, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, },
+ new uint [] {0x2b, 0x2a, 0x7e, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, },
+ new uint [] {0x23, 0x27, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [7] = new KeyboardLayout (1031, "German keyboard layout for logitech desktop pro", 0, 1, new uint [][] {
+ new uint [] {0x5e, 0xffffffb0, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa7, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, },
+ new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, },
+ new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0xffffffdf, 0x3f, 0x5c, },
+ new uint [] {0x27, 0x60, }, new uint [] {0x71, 0x51, 0x40, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, },
+ new uint [] {0x2b, 0x2a, 0x7e, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, },
+ new uint [] {0x23, 0x27, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, 0x7c, },
+ new uint [] {}, });
+ table [8] = new KeyboardLayout (1031, "German keyboard layout without dead keys 105", 0, 3, new uint [][] {
+ new uint [] {0x5e, 0xffffffb0, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, 0xffffffb2, }, new uint [] {0x33, 0xffffffa7, 0xffffffb3, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, },
+ new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, },
+ new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0xffffffdf, 0x3f, 0x5c, },
+ new uint [] {0x27, 0x60, }, new uint [] {0x71, 0x51, 0x40, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, },
+ new uint [] {0x2b, 0x2a, 0x7e, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, },
+ new uint [] {0x23, 0x27, }, new uint [] {0x3c, 0x3e, 0x7c, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x78, 0x58, },
+ new uint [] {0x63, 0x43, }, new uint [] {0x76, 0x56, },
+ new uint [] {0x62, 0x42, }, new uint [] {0x6e, 0x4e, },
+ new uint [] {0x6d, 0x4d, }, new uint [] {0x2c, 0x3b, },
+ new uint [] {0x2e, 0x3a, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {}, });
+ table [9] = new KeyboardLayout (2055, "Swiss German keyboard layout", 0, 1, new uint [][] {
+ new uint [] {0xffffffa7, 0xffffffb0, }, new uint [] {0x31, 0x2b, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x2a, },
+ new uint [] {0x34, 0xffffffe7, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, },
+ new uint [] {0x5e, 0x60, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffe8, },
+ new uint [] {0xffffffa8, 0x21, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff6, 0xffffffe9, }, new uint [] {0xffffffe4, 0xffffffe0, },
+ new uint [] {0x24, 0xffffffa3, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [10] = new KeyboardLayout (4108, "Swiss French keyboard layout", 0, 1, new uint [][] {
+ new uint [] {0xffffffa7, 0xffffffb0, }, new uint [] {0x31, 0x2b, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x2a, },
+ new uint [] {0x34, 0xffffffe7, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, },
+ new uint [] {0x5e, 0x60, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffe8, 0xfffffffc, },
+ new uint [] {0xffffffa8, 0x21, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xffffffe9, 0xfffffff6, }, new uint [] {0xffffffe0, 0xffffffe4, },
+ new uint [] {0x24, 0xffffffa3, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [11] = new KeyboardLayout (1053, "Swedish keyboard layout", 0, 5, new uint [][] {
+ new uint [] {0xffffffa7, 0xffffffbd, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0xffffffa4, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x2b, 0x3f, },
+ new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffe5, 0xffffffc5, },
+ new uint [] {0xffffffa8, 0x5e, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, },
+ new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [12] = new KeyboardLayout (1061, "Estonian keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0xffffffb7, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0xffffffa4, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x2b, 0x3f, },
+ new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffc, 0xffffffdc, },
+ new uint [] {0xfffffff5, 0xffffffd5, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, },
+ new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [13] = new KeyboardLayout (1044, "Norwegian keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x7c, 0xffffffa7, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, 0x40, }, new uint [] {0x33, 0x23, 0xffffffa3, },
+ new uint [] {0x34, 0xffffffa4, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, },
+ new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, },
+ new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0x2b, 0x3f, },
+ new uint [] {0x5c, 0x60, 0xffffffb4, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffe5, 0xffffffc5, },
+ new uint [] {0xffffffa8, 0x5e, 0x7e, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff8, 0xffffffd8, }, new uint [] {0xffffffe6, 0xffffffc6, },
+ new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [14] = new KeyboardLayout (1030, "Danish keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0xffffffbd, 0xffffffa7, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0xffffffa4, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x2b, 0x3f, },
+ new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffe5, 0xffffffc5, },
+ new uint [] {0xffffffa8, 0x5e, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xffffffe6, 0xffffffc6, }, new uint [] {0xfffffff8, 0xffffffd8, },
+ new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [15] = new KeyboardLayout (1036, "French keyboard layout", 0, 4, new uint [][] {
+ new uint [] {0xffffffb2, }, new uint [] {0x26, 0x31, },
+ new uint [] {0xffffffe9, 0x32, 0x7e, }, new uint [] {0x22, 0x33, 0x23, },
+ new uint [] {0x27, 0x34, 0x7b, }, new uint [] {0x28, 0x35, 0x5b, },
+ new uint [] {0x2d, 0x36, 0x7c, }, new uint [] {0xffffffe8, 0x37, 0x60, },
+ new uint [] {0x5f, 0x38, 0x5c, }, new uint [] {0xffffffe7, 0x39, 0x5e, 0xffffffb1, },
+ new uint [] {0xffffffe0, 0x30, 0x40, }, new uint [] {0x29, 0xffffffb0, 0x5d, },
+ new uint [] {0x3d, 0x2b, 0x7d, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x65, 0x45, 0xffffffbf, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x5e, 0xffffffa8, },
+ new uint [] {0x24, 0xffffffa3, 0xffffffa4, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x73, 0x53, 0xffffffdf, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x6d, 0x4d, }, new uint [] {0xfffffff9, 0x25, },
+ new uint [] {0x2a, 0xffffffb5, }, new uint [] {0x77, 0x57, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x2c, 0x3f, },
+ new uint [] {0x3b, 0x2e, }, new uint [] {0x3a, 0x2f, },
+ new uint [] {0x21, 0xffffffa7, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [16] = new KeyboardLayout (3084, "Canadian French keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x23, 0x7c, 0x5c, }, new uint [] {0x31, 0x21, 0xffffffb1, },
+ new uint [] {0x32, 0x22, 0x40, }, new uint [] {0x33, 0x2f, 0xffffffa3, },
+ new uint [] {0x34, 0x24, 0xffffffa2, }, new uint [] {0x35, 0x25, 0xffffffa4, },
+ new uint [] {0x36, 0x3f, 0xffffffac, }, new uint [] {0x37, 0x26, 0xffffffa6, },
+ new uint [] {0x38, 0x2a, 0xffffffb2, }, new uint [] {0x39, 0x28, 0xffffffb3, },
+ new uint [] {0x30, 0x29, 0xffffffbc, }, new uint [] {0x2d, 0x5f, 0xffffffbd, },
+ new uint [] {0x3d, 0x2b, 0xffffffbe, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, 0xffffffa7, },
+ new uint [] {0x70, 0x50, 0xffffffb6, }, new uint [] {0x5e, 0x5e, 0x5b, },
+ new uint [] {0xffffffb8, 0xffffffa8, 0x5d, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x3b, 0x3a, 0x7e, }, new uint [] {0x60, 0x60, 0x7b, },
+ new uint [] {0x3c, 0x3e, 0x7d, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x27, 0x2d, }, new uint [] {0x2e, },
+ new uint [] {0xffffffe9, 0xffffffc9, }, new uint [] {0xffffffab, 0xffffffbb, 0xffffffb0, },
+ new uint [] {}, });
+ table [17] = new KeyboardLayout (3084, "Canadian French keyboard layout (CA_fr)", 0, 0, new uint [][] {
+ new uint [] {0x23, 0x7c, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x2f, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x3f, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x5e, 0x5e, },
+ new uint [] {0xffffffb8, 0xffffffa8, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x60, 0x60, },
+ new uint [] {0x3c, 0x3e, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x27, }, new uint [] {0x2e, },
+ new uint [] {0xffffffe9, 0xffffffc9, }, new uint [] {0xffffffab, 0xffffffbb, },
+ new uint [] {}, });
+ table [18] = new KeyboardLayout (3084, "Canadian keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x2f, 0x5c, }, new uint [] {0x31, 0x21, 0xffffffb9, 0xffffffa1, },
+ new uint [] {0x32, 0x40, 0xffffffb2, }, new uint [] {0x33, 0x23, 0xffffffb3, 0xffffffa3, },
+ new uint [] {0x34, 0x24, 0xffffffbc, 0xffffffa4, }, new uint [] {0x35, 0x25, 0xffffffbd, },
+ new uint [] {0x36, 0x3f, 0xffffffbe, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, 0xfffffff8, 0xffffffd8, },
+ new uint [] {0x70, 0x50, 0xfffffffe, 0xffffffde, }, new uint [] {0x5e, 0xffffffa8, 0xffffffa8, },
+ new uint [] {0xffffffe7, 0xffffffc7, 0x7e, }, new uint [] {0x61, 0x41, 0xffffffe6, 0xffffffc6, },
+ new uint [] {0x73, 0x53, 0xffffffdf, 0xffffffa7, }, new uint [] {0x64, 0x44, 0xfffffff0, 0xffffffd0, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x3b, 0x3a, 0xffffffb4, }, new uint [] {0xffffffe8, 0xffffffc8, },
+ new uint [] {0xffffffe0, 0xffffffc0, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, 0xffffffa2, 0xffffffa9, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, 0xffffffb5, 0xffffffba, },
+ new uint [] {0x2c, 0x27, }, new uint [] {0x2e, 0x22, 0xffffffb7, 0xfffffff7, },
+ new uint [] {0xffffffe9, 0xffffffc9, }, new uint [] {0xfffffff9, 0xffffffd9, },
+ new uint [] {}, });
+ table [19] = new KeyboardLayout (2060, "Belgian keyboard layout", 0, 4, new uint [][] {
+ new uint [] {}, new uint [] {0x26, 0x31, 0x7c, },
+ new uint [] {0xffffffe9, 0x32, 0x40, }, new uint [] {0x22, 0x33, 0x23, },
+ new uint [] {0x27, 0x34, }, new uint [] {0x28, 0x35, },
+ new uint [] {0xffffffa7, 0x36, 0x5e, }, new uint [] {0xffffffe8, 0x37, },
+ new uint [] {0x21, 0x38, }, new uint [] {0xffffffe7, 0x39, 0x7b, },
+ new uint [] {0xffffffe0, 0x30, 0x7d, }, new uint [] {0x29, 0xffffffb0, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x65, 0x45, 0xffffffa4, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x5e, 0xffffffa8, 0x5b, },
+ new uint [] {0x24, 0x2a, 0x5d, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x73, 0x53, 0xffffffdf, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x6d, 0x4d, }, new uint [] {0xfffffff9, 0x25, 0xffffffb4, },
+ new uint [] {0xffffffb5, 0xffffffa3, 0x60, }, new uint [] {0x77, 0x57, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x2c, 0x3f, },
+ new uint [] {0x3b, 0x2e, }, new uint [] {0x3a, 0x2f, },
+ new uint [] {0x3d, 0x2b, 0x7e, }, new uint [] {0x3c, 0x3e, 0x5c, },
+ new uint [] {}, });
+ table [20] = new KeyboardLayout (2070, "Portuguese keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, },
+ new uint [] {0xffffffab, 0xffffffbb, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x2b, 0x2a, },
+ new uint [] {0xffffffb4, 0x60, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xffffffe7, 0xffffffc7, }, new uint [] {0xffffffba, 0xffffffaa, },
+ new uint [] {0x7e, 0x5e, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [21] = new KeyboardLayout (1046, "Brazilian ABNT-2 keyboard layout", 2, 6, new uint [][] {
+ new uint [] {0x27, 0x22, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0xffffffa8, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffb4, 0x60, },
+ new uint [] {0x5b, 0x7b, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xffffffe7, 0xffffffc7, }, new uint [] {0x7e, 0x5e, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x5c, 0x7c, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x78, 0x58, },
+ new uint [] {0x63, 0x43, }, new uint [] {0x76, 0x56, },
+ new uint [] {0x62, 0x42, }, new uint [] {0x6e, 0x4e, },
+ new uint [] {0x6d, 0x4d, }, new uint [] {0x2c, 0x3c, },
+ new uint [] {0x2e, 0x3e, }, new uint [] {0x3b, 0x3a, },
+ new uint [] {0x2f, 0x3f, }, });
+ table [22] = new KeyboardLayout (1046, "Brazilian ABNT-2 keyboard layout ALT GR", 2, 6, new uint [][] {
+ new uint [] {0x27, 0x22, }, new uint [] {0x31, 0x21, 0x39, },
+ new uint [] {0x32, 0x40, 0x32, }, new uint [] {0x33, 0x23, 0x33, },
+ new uint [] {0x34, 0x24, 0x23, }, new uint [] {0x35, 0x25, 0x22, },
+ new uint [] {0x36, 0x28, 0x2c, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, 0x27, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x34, 0x60, },
+ new uint [] {0x5b, 0x7b, 0x2a, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x67, 0x47, }, new uint [] {0x7e, 0x5e, },
+ new uint [] {0x5d, 0x7d, 0x3a, }, new uint [] {0x5c, 0x7c, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x78, 0x58, },
+ new uint [] {0x63, 0x43, }, new uint [] {0x76, 0x56, },
+ new uint [] {0x62, 0x42, }, new uint [] {0x6e, 0x4e, },
+ new uint [] {0x6d, 0x4d, }, new uint [] {0x2c, 0x3c, },
+ new uint [] {0x2e, 0x3e, }, new uint [] {0x3b, 0x3a, },
+ new uint [] {0x2f, 0x3f, 0x30, }, });
+ table [23] = new KeyboardLayout (1035, "Finnish keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0xffffffa7, 0xffffffbd, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0xffffffa4, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x2b, 0x3f, },
+ new uint [] {0xffffffb4, 0x60, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffe5, 0xffffffc5, },
+ new uint [] {0xffffffa8, 0x5e, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe4, 0xffffffc4, },
+ new uint [] {0x27, 0x2a, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [24] = new KeyboardLayout (1026, "Bulgarian bds keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, 0x28, 0x29, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, 0x32, 0x3f, }, new uint [] {0x33, 0x23, 0x33, 0x2b, },
+ new uint [] {0x34, 0x24, 0x34, 0x22, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, 0x36, 0x3d, }, new uint [] {0x37, 0x26, 0x37, 0x3a, },
+ new uint [] {0x38, 0x2a, 0x38, 0x2f, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, 0x2d, 0x49, },
+ new uint [] {0x3d, 0x2b, 0x2e, 0x56, }, new uint [] {0x71, 0x51, 0x2c, 0xfffffffb, },
+ new uint [] {0x77, 0x57, 0xfffffff3, 0xffffffd3, }, new uint [] {0x65, 0x45, 0xffffffe5, 0xffffffc5, },
+ new uint [] {0x72, 0x52, 0xffffffe8, 0xffffffc8, }, new uint [] {0x74, 0x54, 0xfffffff8, 0xffffffd8, },
+ new uint [] {0x79, 0x59, 0xfffffff9, 0xffffffd9, }, new uint [] {0x75, 0x55, 0xffffffea, 0xffffffca, },
+ new uint [] {0x69, 0x49, 0xfffffff1, 0xffffffd1, }, new uint [] {0x6f, 0x4f, 0xffffffe4, 0xffffffc4, },
+ new uint [] {0x70, 0x50, 0xffffffe7, 0xffffffc7, }, new uint [] {0x5b, 0x7b, 0xfffffff6, 0xffffffd6, },
+ new uint [] {0x5d, 0x7d, 0x3b, }, new uint [] {0x61, 0x41, 0xfffffffc, 0xffffffdc, },
+ new uint [] {0x73, 0x53, 0xffffffff, 0xffffffdf, }, new uint [] {0x64, 0x44, 0xffffffe0, 0xffffffc0, },
+ new uint [] {0x66, 0x46, 0xffffffee, 0xffffffce, }, new uint [] {0x67, 0x47, 0xffffffe6, 0xffffffc6, },
+ new uint [] {0x68, 0x48, 0xffffffe3, 0xffffffc3, }, new uint [] {0x6a, 0x4a, 0xfffffff2, 0xffffffd2, },
+ new uint [] {0x6b, 0x4b, 0xffffffed, 0xffffffcd, }, new uint [] {0x6c, 0x4c, 0xffffffe2, 0xffffffc2, },
+ new uint [] {0x3b, 0x3a, 0xffffffec, 0xffffffcc, }, new uint [] {0x27, 0x22, 0xfffffff7, 0xffffffd7, },
+ new uint [] {0x5c, 0x7c, 0x27, 0xffffffdb, }, new uint [] {0x7a, 0x5a, 0xfffffffe, 0xffffffde, },
+ new uint [] {0x78, 0x58, 0xffffffe9, 0xffffffc9, }, new uint [] {0x63, 0x43, 0xfffffffa, 0xffffffda, },
+ new uint [] {0x76, 0x56, 0xfffffffd, 0xffffffdd, }, new uint [] {0x62, 0x42, 0xfffffff4, 0xffffffd4, },
+ new uint [] {0x6e, 0x4e, 0xfffffff5, 0xffffffd5, }, new uint [] {0x6d, 0x4d, 0xffffffef, 0xffffffcf, },
+ new uint [] {0x2c, 0x3c, 0xfffffff0, 0xffffffd0, }, new uint [] {0x2e, 0x3e, 0xffffffeb, 0xffffffcb, },
+ new uint [] {0x2f, 0x3f, 0xffffffe1, 0xffffffc1, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [25] = new KeyboardLayout (1026, "Bulgarian phonetic keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, 0xfffffff7, 0xffffffd7, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffff, 0xffffffdf, },
+ new uint [] {0x77, 0x57, 0xffffffe2, 0xffffffc2, }, new uint [] {0x65, 0x45, 0xffffffe5, 0xffffffc5, },
+ new uint [] {0x72, 0x52, 0xfffffff0, 0xffffffd0, }, new uint [] {0x74, 0x54, 0xfffffff2, 0xffffffd2, },
+ new uint [] {0x79, 0x59, 0xfffffffa, 0xffffffda, }, new uint [] {0x75, 0x55, 0xfffffff3, 0xffffffd3, },
+ new uint [] {0x69, 0x49, 0xffffffe8, 0xffffffc8, }, new uint [] {0x6f, 0x4f, 0xffffffee, 0xffffffce, },
+ new uint [] {0x70, 0x50, 0xffffffef, 0xffffffcf, }, new uint [] {0x5b, 0x7b, 0xfffffff8, 0xffffffd8, },
+ new uint [] {0x5d, 0x7d, 0xfffffff9, 0xffffffd9, }, new uint [] {0x61, 0x41, 0xffffffe0, 0xffffffc0, },
+ new uint [] {0x73, 0x53, 0xfffffff1, 0xffffffd1, }, new uint [] {0x64, 0x44, 0xffffffe4, 0xffffffc4, },
+ new uint [] {0x66, 0x46, 0xfffffff4, 0xffffffd4, }, new uint [] {0x67, 0x47, 0xffffffe3, 0xffffffc3, },
+ new uint [] {0x68, 0x48, 0xfffffff5, 0xffffffd5, }, new uint [] {0x6a, 0x4a, 0xffffffe9, 0xffffffc9, },
+ new uint [] {0x6b, 0x4b, 0xffffffea, 0xffffffca, }, new uint [] {0x6c, 0x4c, 0xffffffeb, 0xffffffcb, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x5c, 0x7c, 0xfffffffe, 0xffffffde, }, new uint [] {0x7a, 0x5a, 0xffffffe7, 0xffffffc7, },
+ new uint [] {0x78, 0x58, 0xfffffffc, 0xffffffdc, }, new uint [] {0x63, 0x43, 0xfffffff6, 0xffffffd6, },
+ new uint [] {0x76, 0x56, 0xffffffe6, 0xffffffc6, }, new uint [] {0x62, 0x42, 0xffffffe1, 0xffffffc1, },
+ new uint [] {0x6e, 0x4e, 0xffffffed, 0xffffffcd, }, new uint [] {0x6d, 0x4d, 0xffffffec, 0xffffffcc, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [26] = new KeyboardLayout (1059, "Belarusian keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, 0xffffffa3, 0xffffffb3, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffca, 0xffffffea, },
+ new uint [] {0x77, 0x57, 0xffffffc3, 0xffffffe3, }, new uint [] {0x65, 0x45, 0xffffffd5, 0xfffffff5, },
+ new uint [] {0x72, 0x52, 0xffffffcb, 0xffffffeb, }, new uint [] {0x74, 0x54, 0xffffffc5, 0xffffffe5, },
+ new uint [] {0x79, 0x59, 0xffffffce, 0xffffffee, }, new uint [] {0x75, 0x55, 0xffffffc7, 0xffffffe7, },
+ new uint [] {0x69, 0x49, 0xffffffdb, 0xfffffffb, }, new uint [] {0x6f, 0x4f, 0xffffffae, 0xffffffbe, },
+ new uint [] {0x70, 0x50, 0xffffffda, 0xfffffffa, }, new uint [] {0x5b, 0x7b, 0xffffffc8, 0xffffffe8, },
+ new uint [] {0x5d, 0x7d, 0x27, 0x27, }, new uint [] {0x61, 0x41, 0xffffffc6, 0xffffffe6, },
+ new uint [] {0x73, 0x53, 0xffffffd9, 0xfffffff9, }, new uint [] {0x64, 0x44, 0xffffffd7, 0xfffffff7, },
+ new uint [] {0x66, 0x46, 0xffffffc1, 0xffffffe1, }, new uint [] {0x67, 0x47, 0xffffffd0, 0xfffffff0, },
+ new uint [] {0x68, 0x48, 0xffffffd2, 0xfffffff2, }, new uint [] {0x6a, 0x4a, 0xffffffcf, 0xffffffef, },
+ new uint [] {0x6b, 0x4b, 0xffffffcc, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffc4, 0xffffffe4, },
+ new uint [] {0x3b, 0x3a, 0xffffffd6, 0xfffffff6, }, new uint [] {0x27, 0x22, 0xffffffdc, 0xfffffffc, },
+ new uint [] {0x5c, 0x7c, 0x2f, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffd1, 0xfffffff1, },
+ new uint [] {0x78, 0x58, 0xffffffde, 0xfffffffe, }, new uint [] {0x63, 0x43, 0xffffffd3, 0xfffffff3, },
+ new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffed, }, new uint [] {0x62, 0x42, 0xffffffa6, 0xffffffb6, },
+ new uint [] {0x6e, 0x4e, 0xffffffd4, 0xfffffff4, }, new uint [] {0x6d, 0x4d, 0xffffffd8, 0xfffffff8, },
+ new uint [] {0x2c, 0x3c, 0xffffffc2, 0xffffffe2, }, new uint [] {0x2e, 0x3e, 0xffffffc0, 0xffffffe0, },
+ new uint [] {0x2f, 0x3f, 0x2e, 0x2c, }, new uint [] {0x3c, 0x3e, 0x7c, 0xffffffa6, },
+ new uint [] {}, });
+ table [27] = new KeyboardLayout (1049, "Russian keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffca, 0xffffffea, },
+ new uint [] {0x77, 0x57, 0xffffffc3, 0xffffffe3, }, new uint [] {0x65, 0x45, 0xffffffd5, 0xfffffff5, },
+ new uint [] {0x72, 0x52, 0xffffffcb, 0xffffffeb, }, new uint [] {0x74, 0x54, 0xffffffc5, 0xffffffe5, },
+ new uint [] {0x79, 0x59, 0xffffffce, 0xffffffee, }, new uint [] {0x75, 0x55, 0xffffffc7, 0xffffffe7, },
+ new uint [] {0x69, 0x49, 0xffffffdb, 0xfffffffb, }, new uint [] {0x6f, 0x4f, 0xffffffdd, 0xfffffffd, },
+ new uint [] {0x70, 0x50, 0xffffffda, 0xfffffffa, }, new uint [] {0x5b, 0x7b, 0xffffffc8, 0xffffffe8, },
+ new uint [] {0x5d, 0x7d, 0xffffffdf, 0xffffffff, }, new uint [] {0x61, 0x41, 0xffffffc6, 0xffffffe6, },
+ new uint [] {0x73, 0x53, 0xffffffd9, 0xfffffff9, }, new uint [] {0x64, 0x44, 0xffffffd7, 0xfffffff7, },
+ new uint [] {0x66, 0x46, 0xffffffc1, 0xffffffe1, }, new uint [] {0x67, 0x47, 0xffffffd0, 0xfffffff0, },
+ new uint [] {0x68, 0x48, 0xffffffd2, 0xfffffff2, }, new uint [] {0x6a, 0x4a, 0xffffffcf, 0xffffffef, },
+ new uint [] {0x6b, 0x4b, 0xffffffcc, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffc4, 0xffffffe4, },
+ new uint [] {0x3b, 0x3a, 0xffffffd6, 0xfffffff6, }, new uint [] {0x27, 0x22, 0xffffffdc, 0xfffffffc, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffd1, 0xfffffff1, },
+ new uint [] {0x78, 0x58, 0xffffffde, 0xfffffffe, }, new uint [] {0x63, 0x43, 0xffffffd3, 0xfffffff3, },
+ new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffed, }, new uint [] {0x62, 0x42, 0xffffffc9, 0xffffffe9, },
+ new uint [] {0x6e, 0x4e, 0xffffffd4, 0xfffffff4, }, new uint [] {0x6d, 0x4d, 0xffffffd8, 0xfffffff8, },
+ new uint [] {0x2c, 0x3c, 0xffffffc2, 0xffffffe2, }, new uint [] {0x2e, 0x3e, 0xffffffc0, 0xffffffe0, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {},
+ new uint [] {}, });
+ table [28] = new KeyboardLayout (1049, "Russian keyboard layout (phantom key version)", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffca, 0xffffffea, },
+ new uint [] {0x77, 0x57, 0xffffffc3, 0xffffffe3, }, new uint [] {0x65, 0x45, 0xffffffd5, 0xfffffff5, },
+ new uint [] {0x72, 0x52, 0xffffffcb, 0xffffffeb, }, new uint [] {0x74, 0x54, 0xffffffc5, 0xffffffe5, },
+ new uint [] {0x79, 0x59, 0xffffffce, 0xffffffee, }, new uint [] {0x75, 0x55, 0xffffffc7, 0xffffffe7, },
+ new uint [] {0x69, 0x49, 0xffffffdb, 0xfffffffb, }, new uint [] {0x6f, 0x4f, 0xffffffdd, 0xfffffffd, },
+ new uint [] {0x70, 0x50, 0xffffffda, 0xfffffffa, }, new uint [] {0x5b, 0x7b, 0xffffffc8, 0xffffffe8, },
+ new uint [] {0x5d, 0x7d, 0xffffffdf, 0xffffffff, }, new uint [] {0x61, 0x41, 0xffffffc6, 0xffffffe6, },
+ new uint [] {0x73, 0x53, 0xffffffd9, 0xfffffff9, }, new uint [] {0x64, 0x44, 0xffffffd7, 0xfffffff7, },
+ new uint [] {0x66, 0x46, 0xffffffc1, 0xffffffe1, }, new uint [] {0x67, 0x47, 0xffffffd0, 0xfffffff0, },
+ new uint [] {0x68, 0x48, 0xffffffd2, 0xfffffff2, }, new uint [] {0x6a, 0x4a, 0xffffffcf, 0xffffffef, },
+ new uint [] {0x6b, 0x4b, 0xffffffcc, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffc4, 0xffffffe4, },
+ new uint [] {0x3b, 0x3a, 0xffffffd6, 0xfffffff6, }, new uint [] {0x27, 0x22, 0xffffffdc, 0xfffffffc, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffd1, 0xfffffff1, },
+ new uint [] {0x78, 0x58, 0xffffffde, 0xfffffffe, }, new uint [] {0x63, 0x43, 0xffffffd3, 0xfffffff3, },
+ new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffed, }, new uint [] {0x62, 0x42, 0xffffffc9, 0xffffffe9, },
+ new uint [] {0x6e, 0x4e, 0xffffffd4, 0xfffffff4, }, new uint [] {0x6d, 0x4d, 0xffffffd8, 0xfffffff8, },
+ new uint [] {0x2c, 0x3c, 0xffffffc2, 0xffffffe2, }, new uint [] {0x2e, 0x3e, 0xffffffc0, 0xffffffe0, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [29] = new KeyboardLayout (1049, "Russian keyboard layout KOI8-R", 0, 0, new uint [][] {
+ new uint [] {0x28, 0x29, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x2f, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x3a, },
+ new uint [] {0x36, 0x2c, }, new uint [] {0x37, 0x2e, },
+ new uint [] {0x38, 0x3b, }, new uint [] {0x39, 0x3f, },
+ new uint [] {0x30, 0x25, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0xffffffca, 0xffffffea, },
+ new uint [] {0xffffffc3, 0xffffffe3, }, new uint [] {0xffffffd5, 0xfffffff5, },
+ new uint [] {0xffffffcb, 0xffffffeb, }, new uint [] {0xffffffc5, 0xffffffe5, },
+ new uint [] {0xffffffce, 0xffffffee, }, new uint [] {0xffffffc7, 0xffffffe7, },
+ new uint [] {0xffffffdb, 0xfffffffb, }, new uint [] {0xffffffdd, 0xfffffffd, },
+ new uint [] {0xffffffda, 0xfffffffa, }, new uint [] {0xffffffc8, 0xffffffe8, },
+ new uint [] {0xffffffdf, 0xffffffff, }, new uint [] {0xffffffc6, 0xffffffe6, },
+ new uint [] {0xffffffd9, 0xfffffff9, }, new uint [] {0xffffffd7, 0xfffffff7, },
+ new uint [] {0xffffffc1, 0xffffffe1, }, new uint [] {0xffffffd0, 0xfffffff0, },
+ new uint [] {0xffffffd2, 0xfffffff2, }, new uint [] {0xffffffcf, 0xffffffef, },
+ new uint [] {0xffffffcc, 0xffffffec, }, new uint [] {0xffffffc4, 0xffffffe4, },
+ new uint [] {0xffffffd6, 0xfffffff6, }, new uint [] {0xffffffdc, 0xfffffffc, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0xffffffd1, 0xfffffff1, },
+ new uint [] {0xffffffde, 0xfffffffe, }, new uint [] {0xffffffd3, 0xfffffff3, },
+ new uint [] {0xffffffcd, 0xffffffed, }, new uint [] {0xffffffc9, 0xffffffe9, },
+ new uint [] {0xffffffd4, 0xfffffff4, }, new uint [] {0xffffffd8, 0xfffffff8, },
+ new uint [] {0xffffffc2, 0xffffffe2, }, new uint [] {0xffffffc0, 0xffffffe0, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [30] = new KeyboardLayout (1049, "Russian keyboard layout cp1251", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffe9, 0xffffffc9, },
+ new uint [] {0x77, 0x57, 0xfffffff6, 0xffffffd6, }, new uint [] {0x65, 0x45, 0xfffffff3, 0xffffffd3, },
+ new uint [] {0x72, 0x52, 0xffffffea, 0xffffffca, }, new uint [] {0x74, 0x54, 0xffffffe5, 0xffffffc5, },
+ new uint [] {0x79, 0x59, 0xffffffed, 0xffffffcd, }, new uint [] {0x75, 0x55, 0xffffffe3, 0xffffffc3, },
+ new uint [] {0x69, 0x49, 0xfffffff8, 0xffffffd8, }, new uint [] {0x6f, 0x4f, 0xfffffff9, 0xffffffd9, },
+ new uint [] {0x70, 0x50, 0xffffffe7, 0xffffffc7, }, new uint [] {0x5b, 0x7b, 0xfffffff5, 0xffffffd5, },
+ new uint [] {0x5d, 0x7d, 0xfffffffa, 0xffffffda, }, new uint [] {0x61, 0x41, 0xfffffff4, 0xffffffd4, },
+ new uint [] {0x73, 0x53, 0xfffffffb, 0xffffffdb, }, new uint [] {0x64, 0x44, 0xffffffe2, 0xffffffc2, },
+ new uint [] {0x66, 0x46, 0xffffffe0, 0xffffffc0, }, new uint [] {0x67, 0x47, 0xffffffef, 0xffffffcf, },
+ new uint [] {0x68, 0x48, 0xfffffff0, 0xffffffd0, }, new uint [] {0x6a, 0x4a, 0xffffffee, 0xffffffce, },
+ new uint [] {0x6b, 0x4b, 0xffffffeb, 0xffffffcb, }, new uint [] {0x6c, 0x4c, 0xffffffe4, 0xffffffc4, },
+ new uint [] {0x3b, 0x3a, 0xffffffe6, 0xffffffc6, }, new uint [] {0x27, 0x22, 0xfffffffd, 0xffffffdd, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffff, 0xffffffdf, },
+ new uint [] {0x78, 0x58, 0xfffffff7, 0xffffffd7, }, new uint [] {0x63, 0x43, 0xfffffff1, 0xffffffd1, },
+ new uint [] {0x76, 0x56, 0xffffffec, 0xffffffcc, }, new uint [] {0x62, 0x42, 0xffffffe8, 0xffffffc8, },
+ new uint [] {0x6e, 0x4e, 0xfffffff2, 0xffffffd2, }, new uint [] {0x6d, 0x4d, 0xfffffffc, 0xffffffdc, },
+ new uint [] {0x2c, 0x3c, 0xffffffe1, 0xffffffc1, }, new uint [] {0x2e, 0x3e, 0xfffffffe, 0xffffffde, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [31] = new KeyboardLayout (1049, "Russian phonetic keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffd1, 0xfffffff1, },
+ new uint [] {0x77, 0x57, 0xffffffd7, 0xfffffff7, }, new uint [] {0x65, 0x45, 0xffffffc5, 0xffffffe5, },
+ new uint [] {0x72, 0x52, 0xffffffd2, 0xfffffff2, }, new uint [] {0x74, 0x54, 0xffffffd4, 0xfffffff4, },
+ new uint [] {0x79, 0x59, 0xffffffd9, 0xfffffff9, }, new uint [] {0x75, 0x55, 0xffffffd5, 0xfffffff5, },
+ new uint [] {0x69, 0x49, 0xffffffc9, 0xffffffe9, }, new uint [] {0x6f, 0x4f, 0xffffffcf, 0xffffffef, },
+ new uint [] {0x70, 0x50, 0xffffffd0, 0xfffffff0, }, new uint [] {0x5b, 0x7b, 0xffffffdb, 0xfffffffb, },
+ new uint [] {0x5d, 0x7d, 0xffffffdd, 0xfffffffd, }, new uint [] {0x61, 0x41, 0xffffffc1, 0xffffffe1, },
+ new uint [] {0x73, 0x53, 0xffffffd3, 0xfffffff3, }, new uint [] {0x64, 0x44, 0xffffffc4, 0xffffffe4, },
+ new uint [] {0x66, 0x46, 0xffffffc6, 0xffffffe6, }, new uint [] {0x67, 0x47, 0xffffffc7, 0xffffffe7, },
+ new uint [] {0x68, 0x48, 0xffffffc8, 0xffffffe8, }, new uint [] {0x6a, 0x4a, 0xffffffca, 0xffffffea, },
+ new uint [] {0x6b, 0x4b, 0xffffffcb, 0xffffffeb, }, new uint [] {0x6c, 0x4c, 0xffffffcc, 0xffffffec, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffda, 0xfffffffa, },
+ new uint [] {0x78, 0x58, 0xffffffd8, 0xfffffff8, }, new uint [] {0x63, 0x43, 0xffffffc3, 0xffffffe3, },
+ new uint [] {0x76, 0x56, 0xffffffd6, 0xfffffff6, }, new uint [] {0x62, 0x42, 0xffffffc2, 0xffffffe2, },
+ new uint [] {0x6e, 0x4e, 0xffffffce, 0xffffffee, }, new uint [] {0x6d, 0x4d, 0xffffffcd, 0xffffffed, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [32] = new KeyboardLayout (1058, "Ukrainian keyboard layout KOI8-U", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, 0xffffffad, 0xffffffbd, }, new uint [] {0x31, 0x21, 0x31, 0x21, },
+ new uint [] {0x32, 0x40, 0x32, 0x22, }, new uint [] {0x33, 0x23, 0x33, 0x27, },
+ new uint [] {0x34, 0x24, 0x34, 0x2a, }, new uint [] {0x35, 0x25, 0x35, 0x3a, },
+ new uint [] {0x36, 0x5e, 0x36, 0x2c, }, new uint [] {0x37, 0x26, 0x37, 0x2e, },
+ new uint [] {0x38, 0x2a, 0x38, 0x3b, }, new uint [] {0x39, 0x28, 0x39, 0x28, },
+ new uint [] {0x30, 0x29, 0x30, 0x29, }, new uint [] {0x2d, 0x5f, 0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, 0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffca, 0xffffffea, },
+ new uint [] {0x77, 0x57, 0xffffffc3, 0xffffffe3, }, new uint [] {0x65, 0x45, 0xffffffd5, 0xfffffff5, },
+ new uint [] {0x72, 0x52, 0xffffffcb, 0xffffffeb, }, new uint [] {0x74, 0x54, 0xffffffc5, 0xffffffe5, },
+ new uint [] {0x79, 0x59, 0xffffffce, 0xffffffee, }, new uint [] {0x75, 0x55, 0xffffffc7, 0xffffffe7, },
+ new uint [] {0x69, 0x49, 0xffffffdb, 0xfffffffb, }, new uint [] {0x6f, 0x4f, 0xffffffdd, 0xfffffffd, },
+ new uint [] {0x70, 0x50, 0xffffffda, 0xfffffffa, }, new uint [] {0x5b, 0x7b, 0xffffffc8, 0xffffffe8, },
+ new uint [] {0x5d, 0x7d, 0xffffffa7, 0xffffffb7, }, new uint [] {0x61, 0x41, 0xffffffc6, 0xffffffe6, },
+ new uint [] {0x73, 0x53, 0xffffffa6, 0xffffffb6, }, new uint [] {0x64, 0x44, 0xffffffd7, 0xfffffff7, },
+ new uint [] {0x66, 0x46, 0xffffffc1, 0xffffffe1, }, new uint [] {0x67, 0x47, 0xffffffd0, 0xfffffff0, },
+ new uint [] {0x68, 0x48, 0xffffffd2, 0xfffffff2, }, new uint [] {0x6a, 0x4a, 0xffffffcf, 0xffffffef, },
+ new uint [] {0x6b, 0x4b, 0xffffffcc, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffc4, 0xffffffe4, },
+ new uint [] {0x3b, 0x3a, 0xffffffd6, 0xfffffff6, }, new uint [] {0x27, 0x22, 0xffffffa4, 0xffffffb4, },
+ new uint [] {0x5c, 0x7c, 0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffd1, 0xfffffff1, },
+ new uint [] {0x78, 0x58, 0xffffffde, 0xfffffffe, }, new uint [] {0x63, 0x43, 0xffffffd3, 0xfffffff3, },
+ new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffed, }, new uint [] {0x62, 0x42, 0xffffffc9, 0xffffffe9, },
+ new uint [] {0x6e, 0x4e, 0xffffffd4, 0xfffffff4, }, new uint [] {0x6d, 0x4d, 0xffffffd8, 0xfffffff8, },
+ new uint [] {0x2c, 0x3c, 0xffffffc2, 0xffffffe2, }, new uint [] {0x2e, 0x3e, 0xffffffc0, 0xffffffe0, },
+ new uint [] {0x2f, 0x3f, 0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [33] = new KeyboardLayout (1058, "Ukrainian keyboard layout (standard)", 0, 0, new uint [][] {
+ new uint [] {0xffffffad, 0xffffffbd, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x27, },
+ new uint [] {0x34, 0x3b, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x3a, }, new uint [] {0x37, 0x3f, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0xffffffca, 0xffffffea, },
+ new uint [] {0xffffffc3, 0xffffffe3, }, new uint [] {0xffffffd5, 0xfffffff5, },
+ new uint [] {0xffffffcb, 0xffffffeb, }, new uint [] {0xffffffc5, 0xffffffe5, },
+ new uint [] {0xffffffce, 0xffffffee, }, new uint [] {0xffffffc7, 0xffffffe7, },
+ new uint [] {0xffffffdb, 0xfffffffb, }, new uint [] {0xffffffdd, 0xfffffffd, },
+ new uint [] {0xffffffda, 0xfffffffa, }, new uint [] {0xffffffc8, 0xffffffe8, },
+ new uint [] {0xffffffa7, 0xffffffb7, }, new uint [] {0xffffffc6, 0xffffffe6, },
+ new uint [] {0xffffffa6, 0xffffffb6, }, new uint [] {0xffffffd7, 0xfffffff7, },
+ new uint [] {0xffffffc1, 0xffffffe1, }, new uint [] {0xffffffd0, 0xfffffff0, },
+ new uint [] {0xffffffd2, 0xfffffff2, }, new uint [] {0xffffffcf, 0xffffffef, },
+ new uint [] {0xffffffcc, 0xffffffec, }, new uint [] {0xffffffc4, 0xffffffe4, },
+ new uint [] {0xffffffd6, 0xfffffff6, }, new uint [] {0xffffffa4, 0xffffffb4, },
+ new uint [] {0x5c, 0x2f, }, new uint [] {0xffffffd1, 0xfffffff1, },
+ new uint [] {0xffffffde, 0xfffffffe, }, new uint [] {0xffffffd3, 0xfffffff3, },
+ new uint [] {0xffffffcd, 0xffffffed, }, new uint [] {0xffffffc9, 0xffffffe9, },
+ new uint [] {0xffffffd4, 0xfffffff4, }, new uint [] {0xffffffd8, 0xfffffff8, },
+ new uint [] {0xffffffc2, 0xffffffe2, }, new uint [] {0xffffffc0, 0xffffffe0, },
+ new uint [] {0x2e, 0x2c, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [34] = new KeyboardLayout (1049, "Russian keyboard layout (standard)", 0, 0, new uint [][] {
+ new uint [] {0xffffffa3, 0xffffffb3, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x27, },
+ new uint [] {0x34, 0x3b, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x3a, }, new uint [] {0x37, 0x3f, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0xffffffca, 0xffffffea, },
+ new uint [] {0xffffffc3, 0xffffffe3, }, new uint [] {0xffffffd5, 0xfffffff5, },
+ new uint [] {0xffffffcb, 0xffffffeb, }, new uint [] {0xffffffc5, 0xffffffe5, },
+ new uint [] {0xffffffce, 0xffffffee, }, new uint [] {0xffffffc7, 0xffffffe7, },
+ new uint [] {0xffffffdb, 0xfffffffb, }, new uint [] {0xffffffdd, 0xfffffffd, },
+ new uint [] {0xffffffda, 0xfffffffa, }, new uint [] {0xffffffc8, 0xffffffe8, },
+ new uint [] {0xffffffdf, 0xffffffff, }, new uint [] {0xffffffc6, 0xffffffe6, },
+ new uint [] {0xffffffd9, 0xfffffff9, }, new uint [] {0xffffffd7, 0xfffffff7, },
+ new uint [] {0xffffffc1, 0xffffffe1, }, new uint [] {0xffffffd0, 0xfffffff0, },
+ new uint [] {0xffffffd2, 0xfffffff2, }, new uint [] {0xffffffcf, 0xffffffef, },
+ new uint [] {0xffffffcc, 0xffffffec, }, new uint [] {0xffffffc4, 0xffffffe4, },
+ new uint [] {0xffffffd6, 0xfffffff6, }, new uint [] {0xffffffdc, 0xfffffffc, },
+ new uint [] {0x5c, 0x2f, }, new uint [] {0xffffffd1, 0xfffffff1, },
+ new uint [] {0xffffffde, 0xfffffffe, }, new uint [] {0xffffffd3, 0xfffffff3, },
+ new uint [] {0xffffffcd, 0xffffffed, }, new uint [] {0xffffffc9, 0xffffffe9, },
+ new uint [] {0xffffffd4, 0xfffffff4, }, new uint [] {0xffffffd8, 0xfffffff8, },
+ new uint [] {0xffffffc2, 0xffffffe2, }, new uint [] {0xffffffc0, 0xffffffe0, },
+ new uint [] {0x2e, 0x2c, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [35] = new KeyboardLayout (1034, "Spanish keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0xffffffba, 0xffffffaa, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffb7, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, },
+ new uint [] {0xffffffa1, 0xffffffbf, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x60, 0x5e, },
+ new uint [] {0x2b, 0x2a, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff1, 0xffffffd1, }, new uint [] {0xffffffb4, 0xffffffa8, },
+ new uint [] {0xffffffe7, 0xffffffc7, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [36] = new KeyboardLayout (1040, "Italian keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0xffffffa3, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, },
+ new uint [] {0xffffffec, 0x5e, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffe8, 0xffffffe9, },
+ new uint [] {0x2b, 0x2a, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff2, 0xffffffe7, }, new uint [] {0xffffffe0, 0xffffffb0, },
+ new uint [] {0xfffffff9, 0xffffffa7, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [37] = new KeyboardLayout (1039, "Icelandic keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0xffffffb0, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0xfffffff6, 0xffffffd6, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffff0, 0xffffffd0, },
+ new uint [] {0x27, 0x3f, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xffffffe6, 0xffffffc6, }, new uint [] {0xffffffb4, 0xffffffc4, },
+ new uint [] {0x2b, 0x2a, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0xfffffffe, 0xffffffde, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [38] = new KeyboardLayout (1038, "Hungarian keyboard layout", 0, 1, new uint [][] {
+ new uint [] {0x30, 0xffffffa7, }, new uint [] {0x31, 0x27, 0x7e, },
+ new uint [] {0x32, 0x22, 0xffffffb7, }, new uint [] {0x33, 0x2b, 0x5e, },
+ new uint [] {0x34, 0x21, 0xffffffa2, }, new uint [] {0x35, 0x25, 0x30, 0xffffffb0, },
+ new uint [] {0x36, 0x2f, 0xffffffb2, }, new uint [] {0x37, 0x3d, 0x60, },
+ new uint [] {0x38, 0x28, 0xffffffff, }, new uint [] {0x39, 0x29, 0xffffffb4, },
+ new uint [] {0xfffffff6, 0xffffffd6, 0xffffffbd, }, new uint [] {0xfffffffc, 0xffffffdc, 0xffffffa8, },
+ new uint [] {0xfffffff3, 0xffffffd3, 0xffffffb8, }, new uint [] {0x71, 0x51, 0x5c, },
+ new uint [] {0x77, 0x57, 0x7c, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, 0xffffffcd, }, new uint [] {0x6f, 0x4f, 0xfffffff8, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffff5, 0xffffffd5, 0xfffffff7, },
+ new uint [] {0xfffffffa, 0xffffffda, 0xffffffd7, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, 0xfffffff0, }, new uint [] {0x64, 0x44, 0xffffffd0, },
+ new uint [] {0x66, 0x46, 0x5b, }, new uint [] {0x67, 0x47, 0x5d, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, 0xffffffed, },
+ new uint [] {0x6b, 0x4b, 0xffffffb3, }, new uint [] {0x6c, 0x4c, 0xffffffa3, },
+ new uint [] {0xffffffe9, 0xffffffc9, 0x24, }, new uint [] {0xffffffe1, 0xffffffc1, 0xffffffdf, },
+ new uint [] {0xfffffffb, 0xffffffdb, 0xffffffa4, }, new uint [] {0x79, 0x59, 0x3e, },
+ new uint [] {0x78, 0x58, 0x23, }, new uint [] {0x63, 0x43, 0x26, },
+ new uint [] {0x76, 0x56, 0x40, }, new uint [] {0x62, 0x42, 0x7b, },
+ new uint [] {0x6e, 0x4e, 0x7d, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3f, 0x3b, }, new uint [] {0x2e, 0x3a, 0x3e, },
+ new uint [] {0x2d, 0x5f, 0x2a, }, new uint [] {0xffffffed, 0xffffffcd, 0x3c, },
+ new uint [] {}, });
+ table [39] = new KeyboardLayout (1045, "Polish (programmer's) keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, 0xffffffa7, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, 0xffffffea, 0xffffffca, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, 0xfffffff3, 0xffffffd3, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffb1, 0xffffffa1, },
+ new uint [] {0x73, 0x53, 0xffffffb6, 0xffffffa6, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, 0xffffffb3, 0xffffffa3, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffbf, 0xffffffaf, },
+ new uint [] {0x78, 0x58, 0xffffffbc, 0xffffffac, }, new uint [] {0x63, 0x43, 0xffffffe6, 0xffffffc6, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, 0xfffffff1, 0xffffffd1, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, 0x7c, },
+ new uint [] {}, });
+ table [40] = new KeyboardLayout (1060, "Slovenian keyboard layout", 0, 1, new uint [][] {
+ new uint [] {0xffffffb8, 0xffffffa8, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, },
+ new uint [] {0x2b, 0x2a, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffb9, 0xffffffa9, },
+ new uint [] {0xfffffff0, 0xffffffd0, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xffffffe8, 0xffffffc8, }, new uint [] {0xffffffe6, 0xffffffc6, },
+ new uint [] {0xffffffbe, 0xffffffae, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [41] = new KeyboardLayout (3098, "Serbian keyboard layout sr", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, },
+ new uint [] {0x2b, 0x2a, }, new uint [] {0xffffffa9, 0xffffffb9, },
+ new uint [] {0xffffffaa, 0xffffffba, }, new uint [] {0xffffffc5, 0xffffffe5, },
+ new uint [] {0xffffffd2, 0xfffffff2, }, new uint [] {0xffffffd4, 0xfffffff4, },
+ new uint [] {0xffffffda, 0xfffffffa, }, new uint [] {0xffffffd5, 0xfffffff5, },
+ new uint [] {0xffffffc9, 0xffffffe9, }, new uint [] {0xffffffcf, 0xffffffef, },
+ new uint [] {0xffffffd0, 0xfffffff0, }, new uint [] {0xffffffdb, 0xfffffffb, },
+ new uint [] {0x5b, 0x5d, }, new uint [] {0xffffffc1, 0xffffffe1, },
+ new uint [] {0xffffffd3, 0xfffffff3, }, new uint [] {0xffffffc4, 0xffffffe4, },
+ new uint [] {0xffffffc6, 0xffffffe6, }, new uint [] {0xffffffc7, 0xffffffe7, },
+ new uint [] {0xffffffc8, 0xffffffe8, }, new uint [] {0xffffffa8, 0xffffffb8, },
+ new uint [] {0xffffffcb, 0xffffffeb, }, new uint [] {0xffffffcc, 0xffffffec, },
+ new uint [] {0xffffffde, 0xfffffffe, }, new uint [] {0xffffffab, 0xffffffbb, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0xffffffa1, 0xffffffb1, },
+ new uint [] {0xffffffaf, 0xffffffbf, }, new uint [] {0xffffffc3, 0xffffffe3, },
+ new uint [] {0xffffffd7, 0xfffffff7, }, new uint [] {0xffffffc2, 0xffffffe2, },
+ new uint [] {0xffffffce, 0xffffffee, }, new uint [] {0xffffffcd, 0xffffffed, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0xffffffd6, 0xfffffff6, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [42] = new KeyboardLayout (3098, "Serbian keyboard layout us,sr", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, 0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, 0x36, 0x26, }, new uint [] {0x37, 0x26, 0x37, 0x2f, },
+ new uint [] {0x38, 0x2a, 0x38, 0x28, }, new uint [] {0x39, 0x28, 0x39, 0x29, },
+ new uint [] {0x30, 0x29, 0x30, 0x3d, }, new uint [] {0x2d, 0x5f, 0x27, 0x3f, },
+ new uint [] {0x3d, 0x2b, 0x2b, 0x2a, }, new uint [] {0x71, 0x51, 0xffffffa9, 0xffffffb9, },
+ new uint [] {0x77, 0x57, 0xffffffaa, 0xffffffba, }, new uint [] {0x65, 0x45, 0xffffffc5, 0xffffffe5, },
+ new uint [] {0x72, 0x52, 0xffffffd2, 0xfffffff2, }, new uint [] {0x74, 0x54, 0xffffffd4, 0xfffffff4, },
+ new uint [] {0x79, 0x59, 0xffffffda, 0xfffffffa, }, new uint [] {0x75, 0x55, 0xffffffd5, 0xfffffff5, },
+ new uint [] {0x69, 0x49, 0xffffffc9, 0xffffffe9, }, new uint [] {0x6f, 0x4f, 0xffffffcf, 0xffffffef, },
+ new uint [] {0x70, 0x50, 0xffffffd0, 0xfffffff0, }, new uint [] {0x5b, 0x7b, 0xffffffdb, 0xfffffffb, },
+ new uint [] {0x5d, 0x7d, 0x5b, 0x5d, }, new uint [] {0x61, 0x41, 0xffffffc1, 0xffffffe1, },
+ new uint [] {0x73, 0x53, 0xffffffd3, 0xfffffff3, }, new uint [] {0x64, 0x44, 0xffffffc4, 0xffffffe4, },
+ new uint [] {0x66, 0x46, 0xffffffc6, 0xffffffe6, }, new uint [] {0x67, 0x47, 0xffffffc7, 0xffffffe7, },
+ new uint [] {0x68, 0x48, 0xffffffc8, 0xffffffe8, }, new uint [] {0x6a, 0x4a, 0xffffffa8, 0xffffffb8, },
+ new uint [] {0x6b, 0x4b, 0xffffffcb, 0xffffffeb, }, new uint [] {0x6c, 0x4c, 0xffffffcc, 0xffffffec, },
+ new uint [] {0x3b, 0x3a, 0xffffffde, 0xfffffffe, }, new uint [] {0x27, 0x22, 0xffffffab, 0xffffffbb, },
+ new uint [] {0x5c, 0x7c, 0x2d, 0x5f, }, new uint [] {0x7a, 0x5a, 0xffffffa1, 0xffffffb1, },
+ new uint [] {0x78, 0x58, 0xffffffaf, 0xffffffbf, }, new uint [] {0x63, 0x43, 0xffffffc3, 0xffffffe3, },
+ new uint [] {0x76, 0x56, 0xffffffd7, 0xfffffff7, }, new uint [] {0x62, 0x42, 0xffffffc2, 0xffffffe2, },
+ new uint [] {0x6e, 0x4e, 0xffffffce, 0xffffffee, }, new uint [] {0x6d, 0x4d, 0xffffffcd, 0xffffffed, },
+ new uint [] {0x2c, 0x3c, 0x2c, 0x3b, }, new uint [] {0x2e, 0x3e, 0x2e, 0x3a, },
+ new uint [] {0x2f, 0x3f, 0xffffffd6, 0xfffffff6, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [43] = new KeyboardLayout (1050, "Croatian keyboard layout", 0, 1, new uint [][] {
+ new uint [] {0xffffffb8, 0xffffffa8, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, },
+ new uint [] {0x2b, 0x2a, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffb9, 0xffffffa9, },
+ new uint [] {0xfffffff0, 0xffffffd0, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xffffffe8, 0xffffffc8, }, new uint [] {0xffffffe6, 0xffffffc6, },
+ new uint [] {0xffffffbe, 0xffffffae, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [44] = new KeyboardLayout (1050, "Croatian keyboard layout (specific)", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x5b, 0x7b, 0xffffffb9, 0xffffffa9, },
+ new uint [] {0x5d, 0x7d, 0xfffffff0, 0xffffffd0, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x3b, 0x3a, 0xffffffe8, 0xffffffc8, }, new uint [] {0x27, 0x22, 0xffffffe6, 0xffffffc6, },
+ new uint [] {0x5c, 0x7c, 0xffffffbe, 0xffffffae, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, 0x7c, },
+ new uint [] {}, });
+ table [45] = new KeyboardLayout (1041, "Japanese 106 keyboard layout", 3, 7, new uint [][] {
+ new uint [] {0x31, 0x21, }, new uint [] {0x32, 0x22, },
+ new uint [] {0x33, 0x23, }, new uint [] {0x34, 0x24, },
+ new uint [] {0x35, 0x25, }, new uint [] {0x36, 0x26, },
+ new uint [] {0x37, 0x27, }, new uint [] {0x38, 0x28, },
+ new uint [] {0x39, 0x29, }, new uint [] {0x30, 0x7e, },
+ new uint [] {0x2d, 0x3d, }, new uint [] {0x5e, 0x7e, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x40, 0x60, },
+ new uint [] {0x5b, 0x7b, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x3b, 0x2b, }, new uint [] {0x3a, 0x2a, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x5c, 0x5f, },
+ new uint [] {}, });
+ table [46] = new KeyboardLayout (1041, "Japanese pc98x1 keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x31, 0x21, }, new uint [] {0x32, 0x22, },
+ new uint [] {0x33, 0x23, }, new uint [] {0x34, 0x24, },
+ new uint [] {0x35, 0x25, }, new uint [] {0x36, 0x26, },
+ new uint [] {0x37, 0x27, }, new uint [] {0x38, 0x28, },
+ new uint [] {0x39, 0x29, }, new uint [] {0x30, },
+ new uint [] {0x2d, 0x3d, }, new uint [] {0x5e, 0x60, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x40, 0x7e, },
+ new uint [] {0x5b, 0x7b, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x3b, 0x2b, }, new uint [] {0x3a, 0x2a, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x5c, 0x5f, },
+ new uint [] {}, });
+ table [47] = new KeyboardLayout (1051, "Slovak keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x3b, 0x30, }, new uint [] {0x2b, 0x31, },
+ new uint [] {0xffffffb5, 0x32, }, new uint [] {0xffffffb9, 0x33, },
+ new uint [] {0xffffffe8, 0x34, }, new uint [] {0xffffffbb, 0x35, },
+ new uint [] {0xffffffbe, 0x36, }, new uint [] {0xfffffffd, 0x37, },
+ new uint [] {0xffffffe1, 0x38, }, new uint [] {0xffffffed, 0x39, },
+ new uint [] {0xffffffe9, 0x30, }, new uint [] {0x3d, 0x25, },
+ new uint [] {0x27, 0x76, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffa, 0x2f, },
+ new uint [] {0xffffffe4, 0x28, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff4, 0x22, }, new uint [] {0xffffffa7, 0x21, },
+ new uint [] {0xfffffff2, 0x29, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3f, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [48] = new KeyboardLayout (1051, "Slovak and Czech keyboard layout without dead keys", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xffffffe4, 0xffffffc4, },
+ new uint [] {0x77, 0x57, 0xffffffec, 0xffffffcc, }, new uint [] {0x65, 0x45, 0xffffffe9, 0xffffffc9, },
+ new uint [] {0x72, 0x52, 0xfffffff8, 0xffffffd8, }, new uint [] {0x74, 0x54, 0xffffffbb, 0xffffffab, },
+ new uint [] {0x79, 0x59, 0xfffffffd, 0xffffffdd, }, new uint [] {0x75, 0x55, 0xfffffff9, 0xffffffd9, },
+ new uint [] {0x69, 0x49, 0xffffffed, 0xffffffcd, }, new uint [] {0x6f, 0x4f, 0xfffffff3, 0xffffffd3, },
+ new uint [] {0x70, 0x50, 0xfffffff6, 0xffffffd6, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffe1, 0xffffffc1, },
+ new uint [] {0x73, 0x53, 0xffffffb9, 0xffffffa9, }, new uint [] {0x64, 0x44, 0xffffffef, 0xffffffcf, },
+ new uint [] {0x66, 0x46, 0xffffffeb, 0xffffffcb, }, new uint [] {0x67, 0x47, 0xffffffe0, 0xffffffc0, },
+ new uint [] {0x68, 0x48, 0xfffffffa, 0xffffffda, }, new uint [] {0x6a, 0x4a, 0xfffffffc, 0xffffffdc, },
+ new uint [] {0x6b, 0x4b, 0xfffffff4, 0xffffffd4, }, new uint [] {0x6c, 0x4c, 0xffffffb5, 0xffffffa5, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffbe, 0xffffffae, },
+ new uint [] {0x78, 0x58, 0xffffffa4, }, new uint [] {0x63, 0x43, 0xffffffe8, 0xffffffc8, },
+ new uint [] {0x76, 0x56, 0xffffffe7, 0xffffffc7, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, 0xfffffff2, 0xffffffd2, }, new uint [] {0x6d, 0x4d, 0xffffffe5, 0xffffffc5, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [49] = new KeyboardLayout (1029, "Czech keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x3b, }, new uint [] {0x2b, 0x31, },
+ new uint [] {0xffffffec, 0x32, }, new uint [] {0xffffffb9, 0x33, },
+ new uint [] {0xffffffe8, 0x34, }, new uint [] {0xfffffff8, 0x35, },
+ new uint [] {0xffffffbe, 0x36, }, new uint [] {0xfffffffd, 0x37, },
+ new uint [] {0xffffffe1, 0x38, }, new uint [] {0xffffffed, 0x39, },
+ new uint [] {0xffffffe9, 0x30, 0xffffffbd, 0x29, }, new uint [] {0x3d, 0x25, },
+ new uint [] {}, new uint [] {0x71, 0x51, 0x5c, },
+ new uint [] {0x77, 0x57, 0x7c, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffa, 0x2f, 0x5b, 0x7b, },
+ new uint [] {0x29, 0x28, 0x5d, 0x7d, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, 0xfffffff0, }, new uint [] {0x64, 0x44, 0xffffffd0, },
+ new uint [] {0x66, 0x46, 0x5b, }, new uint [] {0x67, 0x47, 0x5d, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, 0xffffffb3, }, new uint [] {0x6c, 0x4c, 0xffffffa3, },
+ new uint [] {0xfffffff9, 0x22, 0x24, }, new uint [] {0xffffffa7, 0x21, 0xffffffdf, },
+ new uint [] {0xffffffa8, 0x27, }, new uint [] {0x7a, 0x5a, 0x3e, },
+ new uint [] {0x78, 0x58, 0x23, }, new uint [] {0x63, 0x43, 0x26, },
+ new uint [] {0x76, 0x56, 0x40, }, new uint [] {0x62, 0x42, 0x7b, },
+ new uint [] {0x6e, 0x4e, 0x7d, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3f, 0x3c, }, new uint [] {0x2e, 0x3a, 0x3e, },
+ new uint [] {0x2d, 0x5f, 0x2a, }, new uint [] {0x3c, 0x3e, 0x5c, 0x7c, },
+ new uint [] {}, });
+ table [50] = new KeyboardLayout (1029, "Czech keyboard layout cz", 0, 1, new uint [][] {
+ new uint [] {0x3b, }, new uint [] {0x2b, 0x31, },
+ new uint [] {0xffffffec, 0x32, }, new uint [] {0xffffffb9, 0x33, },
+ new uint [] {0xffffffe8, 0x34, }, new uint [] {0xfffffff8, 0x35, },
+ new uint [] {0xffffffbe, 0x36, }, new uint [] {0xfffffffd, 0x37, },
+ new uint [] {0xffffffe1, 0x38, }, new uint [] {0xffffffed, 0x39, },
+ new uint [] {0xffffffe9, 0x30, }, new uint [] {0x3d, 0x25, },
+ new uint [] {0xffffffb4, 0xffffffb7, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffa, 0x2f, },
+ new uint [] {0x29, 0x28, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff9, 0x22, }, new uint [] {0xffffffa7, 0x21, },
+ new uint [] {0xffffffa8, 0x27, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3f, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x5c, },
+ new uint [] {}, });
+ table [51] = new KeyboardLayout (1029, "Czech keyboard layout cz_qwerty", 0, 0, new uint [][] {
+ new uint [] {0x3b, }, new uint [] {0x2b, 0x31, },
+ new uint [] {0xffffffec, 0x32, }, new uint [] {0xffffffb9, 0x33, },
+ new uint [] {0xffffffe8, 0x34, }, new uint [] {0xfffffff8, 0x35, },
+ new uint [] {0xffffffbe, 0x36, }, new uint [] {0xfffffffd, 0x37, },
+ new uint [] {0xffffffe1, 0x38, }, new uint [] {0xffffffed, 0x39, },
+ new uint [] {0xffffffe9, 0x30, }, new uint [] {0x3d, 0x25, },
+ new uint [] {0xffffffb4, 0xffffffb7, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffffa, 0x2f, },
+ new uint [] {0x29, 0x28, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff9, 0x22, }, new uint [] {0xffffffa7, 0x21, },
+ new uint [] {0xffffffa8, 0x27, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3f, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x5c, },
+ new uint [] {}, });
+ table [52] = new KeyboardLayout (1034, "Latin American keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x7c, 0xffffffb0, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x27, 0x3f, },
+ new uint [] {0xffffffbf, 0xffffffa1, }, new uint [] {0x71, 0x51, 0x40, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffb4, 0xffffffa8, },
+ new uint [] {0x2b, 0x2a, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffff1, 0xffffffd1, }, new uint [] {0x7b, 0x5b, 0x5e, },
+ new uint [] {0x7d, 0x5d, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [53] = new KeyboardLayout (1063, "Lithuanian (Baltic) keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0xffffffe0, 0xffffffc0, },
+ new uint [] {0xffffffe8, 0xffffffc8, }, new uint [] {0xffffffe6, 0xffffffc6, },
+ new uint [] {0xffffffeb, 0xffffffcb, }, new uint [] {0xffffffe1, 0xffffffc1, },
+ new uint [] {0xfffffff0, 0xffffffd0, }, new uint [] {0xfffffff8, 0xffffffd8, },
+ new uint [] {0xfffffffb, 0xffffffdb, }, new uint [] {0xffffffa5, 0x28, },
+ new uint [] {0xffffffb4, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0xfffffffe, 0xffffffde, }, new uint [] {0x5c, 0x7c, },
+ new uint [] {0x71, 0x51, }, new uint [] {0x77, 0x57, },
+ new uint [] {0x65, 0x45, }, new uint [] {0x72, 0x52, },
+ new uint [] {0x74, 0x54, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x75, 0x55, }, new uint [] {0x69, 0x49, },
+ new uint [] {0x6f, 0x4f, }, new uint [] {0x70, 0x50, },
+ new uint [] {0x5b, 0x7b, }, new uint [] {0x5d, 0x7d, },
+ new uint [] {0x61, 0x41, }, new uint [] {0x73, 0x53, },
+ new uint [] {0x64, 0x44, }, new uint [] {0x66, 0x46, },
+ new uint [] {0x67, 0x47, }, new uint [] {0x68, 0x48, },
+ new uint [] {0x6a, 0x4a, }, new uint [] {0x6b, 0x4b, },
+ new uint [] {0x6c, 0x4c, }, new uint [] {0x3b, 0x3a, },
+ new uint [] {0x27, 0x22, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {},
+ new uint [] {}, });
+ table [54] = new KeyboardLayout (1055, "Turkish keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x22, 0xffffffe9, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x27, }, new uint [] {0x33, 0x5e, 0x23, },
+ new uint [] {0x34, 0x2b, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, 0x7b, },
+ new uint [] {0x38, 0x28, 0x5b, }, new uint [] {0x39, 0x29, 0x5d, },
+ new uint [] {0x30, 0x3d, 0x7d, }, new uint [] {0x2a, 0x3f, 0x5c, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x71, 0x51, 0x40, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0xfffffffd, 0x49, 0xffffffee, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xfffffff0, 0xffffffd0, },
+ new uint [] {0xfffffffc, 0xffffffdc, 0x7e, }, new uint [] {0x61, 0x41, 0xffffffe6, },
+ new uint [] {0x73, 0x53, 0xffffffdf, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xfffffffe, 0xffffffde, }, new uint [] {0x69, 0xffffffdd, },
+ new uint [] {0x2c, 0x3b, 0x60, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe7, 0xffffffc7, },
+ new uint [] {0x2e, 0x3a, }, new uint [] {},
+ new uint [] {}, });
+ table [55] = new KeyboardLayout (1055, "Turkish keyboard layout tr", 0, 0, new uint [][] {
+ new uint [] {0x22, 0x5c, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x27, }, new uint [] {0x33, 0x5e, },
+ new uint [] {0x34, 0x2b, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x2f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x2a, 0x3f, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0xffffffb9, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffbb, 0xffffffab, },
+ new uint [] {0xfffffffc, 0xffffffdc, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0xffffffba, 0xffffffaa, }, new uint [] {0x69, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0xffffffe7, 0xffffffc7, },
+ new uint [] {0x2e, 0x3a, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [56] = new KeyboardLayout (1055, "Turkish keyboard layout trf", 0, 0, new uint [][] {
+ new uint [] {0x2b, 0x2a, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x5e, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x27, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x3d, }, new uint [] {0x2f, 0x3f, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x66, 0x46, },
+ new uint [] {0x67, 0x47, }, new uint [] {0xffffffbb, 0xffffffab, },
+ new uint [] {0xffffffb9, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x64, 0x44, }, new uint [] {0x72, 0x52, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x68, 0x48, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x61, 0x41, }, new uint [] {0xfffffffc, 0xffffffdc, },
+ new uint [] {0x74, 0x54, }, new uint [] {0x6b, 0x4b, },
+ new uint [] {0x6d, 0x4d, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x79, 0x59, }, new uint [] {0xffffffba, 0xffffffaa, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0xfffffff6, 0xffffffd6, }, new uint [] {0x76, 0x56, },
+ new uint [] {0x63, 0x43, }, new uint [] {0xffffffe7, 0xffffffc7, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {0x73, 0x53, },
+ new uint [] {0x62, 0x42, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [57] = new KeyboardLayout (1037, "Israelian keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, 0x3b, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0x2f, },
+ new uint [] {0x77, 0x57, 0x27, }, new uint [] {0x65, 0x45, 0xfffffff7, },
+ new uint [] {0x72, 0x52, 0xfffffff8, }, new uint [] {0x74, 0x54, 0xffffffe0, },
+ new uint [] {0x79, 0x59, 0xffffffe8, }, new uint [] {0x75, 0x55, 0xffffffe5, },
+ new uint [] {0x69, 0x49, 0xffffffef, }, new uint [] {0x6f, 0x4f, 0xffffffed, },
+ new uint [] {0x70, 0x50, 0xfffffff4, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xfffffff9, },
+ new uint [] {0x73, 0x53, 0xffffffe3, }, new uint [] {0x64, 0x44, 0xffffffe2, },
+ new uint [] {0x66, 0x46, 0xffffffeb, }, new uint [] {0x67, 0x47, 0xfffffff2, },
+ new uint [] {0x68, 0x48, 0xffffffe9, }, new uint [] {0x6a, 0x4a, 0xffffffe7, },
+ new uint [] {0x6b, 0x4b, 0xffffffec, }, new uint [] {0x6c, 0x4c, 0xffffffea, },
+ new uint [] {0x3b, 0x3a, 0xfffffff3, }, new uint [] {0x27, 0x22, 0x2c, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffe6, },
+ new uint [] {0x78, 0x58, 0xfffffff1, }, new uint [] {0x63, 0x43, 0xffffffe1, },
+ new uint [] {0x76, 0x56, 0xffffffe4, }, new uint [] {0x62, 0x42, 0xfffffff0, },
+ new uint [] {0x6e, 0x4e, 0xffffffee, }, new uint [] {0x6d, 0x4d, 0xfffffff6, },
+ new uint [] {0x2c, 0x3c, 0xfffffffa, }, new uint [] {0x2e, 0x3e, 0xfffffff5, },
+ new uint [] {0x2f, 0x3f, 0x2e, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [58] = new KeyboardLayout (1037, "Israelian phonetic keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xfffffff7, },
+ new uint [] {0x77, 0x57, 0xffffffe5, }, new uint [] {0x65, 0x45, 0xffffffe0, },
+ new uint [] {0x72, 0x52, 0xfffffff8, }, new uint [] {0x74, 0x54, 0xfffffffa, },
+ new uint [] {0x79, 0x59, 0xfffffff2, }, new uint [] {0x75, 0x55, 0xffffffe5, },
+ new uint [] {0x69, 0x49, 0xffffffe9, }, new uint [] {0x6f, 0x4f, 0xfffffff1, },
+ new uint [] {0x70, 0x50, 0xfffffff4, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffe0, },
+ new uint [] {0x73, 0x53, 0xfffffff9, }, new uint [] {0x64, 0x44, 0xffffffe3, },
+ new uint [] {0x66, 0x46, 0xfffffff4, }, new uint [] {0x67, 0x47, 0xffffffe2, },
+ new uint [] {0x68, 0x48, 0xffffffe4, }, new uint [] {0x6a, 0x4a, 0xffffffe9, },
+ new uint [] {0x6b, 0x4b, 0xffffffeb, }, new uint [] {0x6c, 0x4c, 0xffffffec, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffe6, },
+ new uint [] {0x78, 0x58, 0xffffffe7, }, new uint [] {0x63, 0x43, 0xfffffff6, },
+ new uint [] {0x76, 0x56, 0xffffffe5, }, new uint [] {0x62, 0x42, 0xffffffe1, },
+ new uint [] {0x6e, 0x4e, 0xfffffff0, }, new uint [] {0x6d, 0x4d, 0xffffffee, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [59] = new KeyboardLayout (1037, "Israelian Saharon keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0xfffffff7, },
+ new uint [] {0x77, 0x57, 0xfffffff1, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, 0xfffffff8, }, new uint [] {0x74, 0x54, 0xffffffe8, },
+ new uint [] {0x79, 0x59, 0xffffffe3, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, 0xfffffff4, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffe0, },
+ new uint [] {0x73, 0x53, 0xffffffe5, }, new uint [] {0x64, 0x44, 0xffffffec, },
+ new uint [] {0x66, 0x46, 0xfffffffa, }, new uint [] {0x67, 0x47, 0xffffffe2, },
+ new uint [] {0x68, 0x48, 0xffffffe4, }, new uint [] {0x6a, 0x4a, 0xfffffff9, },
+ new uint [] {0x6b, 0x4b, 0xffffffeb, }, new uint [] {0x6c, 0x4c, 0xffffffe9, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffe6, },
+ new uint [] {0x78, 0x58, 0xffffffe7, }, new uint [] {0x63, 0x43, 0xfffffff6, },
+ new uint [] {0x76, 0x56, 0xfffffff2, }, new uint [] {0x62, 0x42, 0xffffffe1, },
+ new uint [] {0x6e, 0x4e, 0xfffffff0, }, new uint [] {0x6d, 0x4d, 0xffffffee, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [60] = new KeyboardLayout (1033, "VNC keyboard layout", 4, 8, new uint [][] {
+ new uint [] {0x31, 0x21, }, new uint [] {0x32, 0x40, },
+ new uint [] {0x33, 0x23, }, new uint [] {0x34, 0x24, },
+ new uint [] {0x35, 0x25, }, new uint [] {0x36, 0x5e, },
+ new uint [] {0x37, 0x26, }, new uint [] {0x38, 0x2a, },
+ new uint [] {0x39, 0x28, }, new uint [] {0x30, 0x29, },
+ new uint [] {0x2d, 0x5f, }, new uint [] {0x3d, 0x2b, },
+ new uint [] {0x5b, 0x7b, }, new uint [] {0x5d, 0x7d, },
+ new uint [] {0x3b, 0x3a, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x60, 0x7e, }, new uint [] {0x2c, 0x3c, },
+ new uint [] {0x2e, 0x3e, }, new uint [] {0x2f, 0x3f, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x62, 0x42, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x64, 0x44, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x69, 0x49, },
+ new uint [] {0x6a, 0x4a, }, new uint [] {0x6b, 0x4b, },
+ new uint [] {0x6c, 0x4c, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x73, 0x53, },
+ new uint [] {0x74, 0x54, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x77, 0x57, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x79, 0x59, },
+ new uint [] {0x7a, 0x5a, }, new uint [] {},
+ new uint [] {}, });
+ table [61] = new KeyboardLayout (1032, "Greek keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x40, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x5e, }, new uint [] {0x37, 0x26, },
+ new uint [] {0x38, 0x2a, }, new uint [] {0x39, 0x28, },
+ new uint [] {0x30, 0x29, }, new uint [] {0x2d, 0x5f, },
+ new uint [] {0x3d, 0x2b, }, new uint [] {0x71, 0x51, 0x3b, 0x3a, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, 0xffffffe5, 0xffffffc5, },
+ new uint [] {0x72, 0x52, 0xfffffff1, 0xffffffd1, }, new uint [] {0x74, 0x54, 0xfffffff4, 0xffffffd4, },
+ new uint [] {0x79, 0x59, 0xfffffff5, 0xffffffd5, }, new uint [] {0x75, 0x55, 0xffffffe8, 0xffffffc8, },
+ new uint [] {0x69, 0x49, 0xffffffe9, 0xffffffc9, }, new uint [] {0x6f, 0x4f, 0xffffffef, 0xffffffcf, },
+ new uint [] {0x70, 0x50, 0xfffffff0, 0xffffffd0, }, new uint [] {0x5b, 0x7b, },
+ new uint [] {0x5d, 0x7d, }, new uint [] {0x61, 0x41, 0xffffffe1, 0xffffffc1, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, 0xffffffe4, 0xffffffc4, },
+ new uint [] {0x66, 0x46, 0xfffffff6, 0xffffffd6, }, new uint [] {0x67, 0x47, 0xffffffe3, 0xffffffc3, },
+ new uint [] {0x68, 0x48, 0xffffffe7, 0xffffffc7, }, new uint [] {0x6a, 0x4a, 0xffffffee, 0xffffffce, },
+ new uint [] {0x6b, 0x4b, 0xffffffea, 0xffffffca, }, new uint [] {0x6c, 0x4c, 0xffffffeb, 0xffffffcb, },
+ new uint [] {0x3b, 0x3a, 0xffffffb4, 0xffffffa8, }, new uint [] {0x27, 0x22, },
+ new uint [] {0x5c, 0x7c, }, new uint [] {0x7a, 0x5a, 0xffffffe6, 0xffffffc6, },
+ new uint [] {0x78, 0x58, 0xfffffff7, 0xffffffd7, }, new uint [] {0x63, 0x43, 0xfffffff8, 0xffffffd8, },
+ new uint [] {0x76, 0x56, 0xfffffff9, 0xffffffd9, }, new uint [] {0x62, 0x42, 0xffffffe2, 0xffffffc2, },
+ new uint [] {0x6e, 0x4e, 0xffffffed, 0xffffffcd, }, new uint [] {0x6d, 0x4d, 0xffffffec, 0xffffffcc, },
+ new uint [] {0x2c, 0x3c, }, new uint [] {0x2e, 0x3e, },
+ new uint [] {0x2f, 0x3f, }, new uint [] {0x3c, 0x3e, },
+ new uint [] {}, });
+ table [62] = new KeyboardLayout (1054, "Thai (Kedmanee) keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x60, 0x7e, 0x5f, 0x25, }, new uint [] {0x31, 0x21, 0xffffffe5, 0x2b, },
+ new uint [] {0x32, 0x40, 0x2f, 0xfffffff1, }, new uint [] {0x33, 0x23, 0x2d, 0xfffffff2, },
+ new uint [] {0x34, 0x24, 0xffffffc0, 0xfffffff3, }, new uint [] {0x35, 0x25, 0xffffffb6, 0xfffffff4, },
+ new uint [] {0x36, 0x5e, 0xffffffd8, 0xffffffd9, }, new uint [] {0x37, 0x26, 0xffffffd6, 0xffffffdf, },
+ new uint [] {0x38, 0x2a, 0xffffffa4, 0xfffffff5, }, new uint [] {0x39, 0x28, 0xffffffb5, 0xfffffff6, },
+ new uint [] {0x30, 0x29, 0xffffffa8, 0xfffffff7, }, new uint [] {0x2d, 0x5f, 0xffffffa2, 0xfffffff8, },
+ new uint [] {0x3d, 0x2b, 0xffffffaa, 0xfffffff9, }, new uint [] {0x71, 0x51, 0xffffffe6, 0xfffffff0, },
+ new uint [] {0x77, 0x57, 0xffffffe4, 0x22, }, new uint [] {0x65, 0x45, 0xffffffd3, 0xffffffae, },
+ new uint [] {0x72, 0x52, 0xffffffbe, 0xffffffb1, }, new uint [] {0x74, 0x54, 0xffffffd0, 0xffffffb8, },
+ new uint [] {0x79, 0x59, 0xffffffd1, 0xffffffed, }, new uint [] {0x75, 0x55, 0xffffffd5, 0xffffffea, },
+ new uint [] {0x69, 0x49, 0xffffffc3, 0xffffffb3, }, new uint [] {0x6f, 0x4f, 0xffffffb9, 0xffffffcf, },
+ new uint [] {0x70, 0x50, 0xffffffc2, 0xffffffad, }, new uint [] {0x5b, 0x7b, 0xffffffba, 0xffffffb0, },
+ new uint [] {0x5d, 0x7d, 0xffffffc5, 0x2c, }, new uint [] {0x61, 0x41, 0xffffffbf, 0xffffffc4, },
+ new uint [] {0x73, 0x53, 0xffffffcb, 0xffffffa6, }, new uint [] {0x64, 0x44, 0xffffffa1, 0xffffffaf, },
+ new uint [] {0x66, 0x46, 0xffffffb4, 0xffffffe2, }, new uint [] {0x67, 0x47, 0xffffffe0, 0xffffffac, },
+ new uint [] {0x68, 0x48, 0xffffffe9, 0xffffffe7, }, new uint [] {0x6a, 0x4a, 0xffffffe8, 0xffffffeb, },
+ new uint [] {0x6b, 0x4b, 0xffffffd2, 0xffffffc9, }, new uint [] {0x6c, 0x4c, 0xffffffca, 0xffffffc8, },
+ new uint [] {0x3b, 0x3a, 0xffffffc7, 0xffffffab, }, new uint [] {0x27, 0x22, 0xffffffa7, 0x2e, },
+ new uint [] {0x5c, 0x7c, 0xffffffa3, 0xffffffa5, }, new uint [] {0x7a, 0x5a, 0xffffffbc, 0x28, },
+ new uint [] {0x78, 0x58, 0xffffffbb, 0x29, }, new uint [] {0x63, 0x43, 0xffffffe1, 0xffffffa9, },
+ new uint [] {0x76, 0x56, 0xffffffcd, 0xffffffce, }, new uint [] {0x62, 0x42, 0xffffffda, },
+ new uint [] {0x6e, 0x4e, 0xffffffd7, 0xffffffec, }, new uint [] {0x6d, 0x4d, 0xffffffb7, 0x3f, },
+ new uint [] {0x2c, 0x3c, 0xffffffc1, 0xffffffb2, }, new uint [] {0x2e, 0x3e, 0xffffffe3, 0xffffffcc, },
+ new uint [] {0x2f, 0x3f, 0xffffffbd, 0xffffffc6, }, new uint [] {},
+ new uint [] {}, });
+ table [63] = new KeyboardLayout (1043, "Dutch keyboard layout", 0, 0, new uint [][] {
+ new uint [] {0x40, 0xffffffa7, }, new uint [] {0x31, 0x21, },
+ new uint [] {0x32, 0x22, }, new uint [] {0x33, 0x23, },
+ new uint [] {0x34, 0x24, }, new uint [] {0x35, 0x25, },
+ new uint [] {0x36, 0x26, }, new uint [] {0x37, 0x5f, },
+ new uint [] {0x38, 0x28, }, new uint [] {0x39, 0x29, },
+ new uint [] {0x30, 0x27, }, new uint [] {0x2f, 0x3f, },
+ new uint [] {0xffffffb0, 0x7e, }, new uint [] {0x71, 0x51, },
+ new uint [] {0x77, 0x57, }, new uint [] {0x65, 0x45, },
+ new uint [] {0x72, 0x52, }, new uint [] {0x74, 0x54, },
+ new uint [] {0x79, 0x59, }, new uint [] {0x75, 0x55, },
+ new uint [] {0x69, 0x49, }, new uint [] {0x6f, 0x4f, },
+ new uint [] {0x70, 0x50, }, new uint [] {0xffffffa8, 0x7e, },
+ new uint [] {0x2a, 0x7c, }, new uint [] {0x61, 0x41, },
+ new uint [] {0x73, 0x53, }, new uint [] {0x64, 0x44, },
+ new uint [] {0x66, 0x46, }, new uint [] {0x67, 0x47, },
+ new uint [] {0x68, 0x48, }, new uint [] {0x6a, 0x4a, },
+ new uint [] {0x6b, 0x4b, }, new uint [] {0x6c, 0x4c, },
+ new uint [] {0x2b, 0xffffffb1, }, new uint [] {0x27, 0x60, },
+ new uint [] {0x3c, 0x3e, }, new uint [] {0x7a, 0x5a, },
+ new uint [] {0x78, 0x58, }, new uint [] {0x63, 0x43, },
+ new uint [] {0x76, 0x56, }, new uint [] {0x62, 0x42, },
+ new uint [] {0x6e, 0x4e, }, new uint [] {0x6d, 0x4d, },
+ new uint [] {0x2c, 0x3b, }, new uint [] {0x2e, 0x3a, },
+ new uint [] {0x2d, 0x3d, }, new uint [] {0x5b, 0x5d, },
+ new uint [] {}, });
+
+
+ rsxw.AddResource ("keyboard_table", table);
+
+ short [][] scan_table = new short [][] {
+ main_key_scan_qwerty, main_key_scan_dvorak, main_key_scan_abnt_qwerty,
+ main_key_scan_qwerty_jp106, main_key_scan_vnc
+ };
+ rsxw.AddResource ("scan_table", scan_table);
+
+ VirtualKeys [][] vkeys = new VirtualKeys [][] {
+ main_key_vkey_qwerty, main_key_vkey_qwertz, main_key_vkey_dvorak,
+ main_key_vkey_qwertz_105, main_key_vkey_azerty, main_key_vkey_qwerty_v2,
+ main_key_vkey_abnt_qwerty, main_key_vkey_qwerty_jp106, main_key_vkey_vnc
+ };
+ int [][] vkey_table = new int [vkeys.Length][];
+ for (int i = 0; i < vkeys.Length; i++) {
+ int [] cp = new int [vkeys [i].Length];
+ for (int r = 0; r < vkeys [i].Length; r++)
+ cp [r] = (int) vkeys [i][r];
+ vkey_table [i] = cp;
+ }
+
+ rsxw.AddResource ("vkey_table", vkey_table);
+
+ rsxw.Close ();
+ }
+
+ private static readonly short [] main_key_scan_vnc = new short []
+ {
+ 0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x1A,0x1B,0x27,0x28,0x29,0x33,0x34,0x35,0x2B,
+ 0x1E,0x30,0x2E,0x20,0x12,0x21,0x22,0x23,0x17,0x24,0x25,0x26,0x32,0x31,0x18,0x19,0x10,0x13,0x1F,0x14,0x16,0x2F,0x11,0x2D,0x15,0x2C,
+ 0x56
+ };
+
+ private static readonly short [] main_key_scan_qwerty_jp106 = new short []
+ {
+ 0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x29,
+ 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,
+ 0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x2B,
+ 0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,
+ 0x56 /* the 102nd key (actually to the right of l-shift) */
+ };
+
+ private static readonly VirtualKeys [] main_key_vkey_vnc = new VirtualKeys []
+ {
+ VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4, VirtualKeys.VK_5, VirtualKeys.VK_6,
+ VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9, VirtualKeys.VK_0, VirtualKeys.VK_OEM_MINUS,
+ VirtualKeys.VK_OEM_PLUS, VirtualKeys.VK_OEM_4, VirtualKeys.VK_OEM_6, VirtualKeys.VK_OEM_1,
+ VirtualKeys.VK_OEM_7, VirtualKeys.VK_OEM_3, VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD,
+ VirtualKeys.VK_OEM_2, VirtualKeys.VK_OEM_5, VirtualKeys.VK_A, VirtualKeys.VK_B, VirtualKeys.VK_C,
+ VirtualKeys.VK_D, VirtualKeys.VK_E, VirtualKeys.VK_F, VirtualKeys.VK_G, VirtualKeys.VK_H,
+ VirtualKeys.VK_I, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_L, VirtualKeys.VK_M,
+ VirtualKeys.VK_N, VirtualKeys.VK_O, VirtualKeys.VK_P, VirtualKeys.VK_Q, VirtualKeys.VK_R,
+ VirtualKeys.VK_S, VirtualKeys.VK_T, VirtualKeys.VK_U, VirtualKeys.VK_V, VirtualKeys.VK_W,
+ VirtualKeys.VK_X, VirtualKeys.VK_Y, VirtualKeys.VK_Z, VirtualKeys.VK_OEM_102
+ };
+
+ private static readonly short [] main_key_scan_qwerty = new short []
+ {
+ /* this is my (102-key) keyboard layout, sorry if it doesn't quite match yours */
+ /* ` 1 2 3 4 5 6 7 8 9 0 - = */
+ 0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
+ /* q w e r t y u i o p [ ] */
+ 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,
+ /* a s d f g h j k l ; ' \ */
+ 0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x2B,
+ /* z x c v b n m , . / */
+ 0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,
+ 0x56 /* the 102nd key (actually to the right of l-shift) */
+ };
+
+ private static readonly short [] main_key_scan_dvorak = new short []
+ {
+ /* ` 1 2 3 4 5 6 7 8 9 0 [ ] */
+ 0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x1A,0x1B,
+ /* ' , . p y f g c r l / = */
+ 0x28,0x33,0x34,0x19,0x15,0x21,0x22,0x2E,0x13,0x26,0x35,0x0D,
+ /* a o e u i d h t n s - \ */
+ 0x1E,0x18,0x12,0x16,0x17,0x20,0x23,0x14,0x31,0x1F,0x0C,0x2B,
+ /* ; q j k x b m w v z */
+ 0x27,0x10,0x24,0x25,0x2D,0x30,0x32,0x11,0x2F,0x2C,
+ 0x56 /* the 102nd key (actually to the right of l-shift) */
+ };
+
+ private static readonly short [] main_key_scan_abnt_qwerty = new short []
+ {
+ 0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
+ 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,
+ 0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x2B,
+ 0x5e,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,
+ 0x56,0x35,
+ };
+
+ private static readonly VirtualKeys [] main_key_vkey_qwerty = new VirtualKeys []
+ {
+ // NOTE: this layout must concur with the scan codes layout above
+ VirtualKeys.VK_OEM_3, VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4,
+ VirtualKeys.VK_5, VirtualKeys.VK_6, VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9,
+ VirtualKeys.VK_0, VirtualKeys.VK_OEM_MINUS, VirtualKeys.VK_OEM_PLUS, VirtualKeys.VK_Q,
+ VirtualKeys.VK_W, VirtualKeys.VK_E, VirtualKeys.VK_R, VirtualKeys.VK_T, VirtualKeys.VK_Y,
+ VirtualKeys.VK_U, VirtualKeys.VK_I, VirtualKeys.VK_O, VirtualKeys.VK_P, VirtualKeys.VK_OEM_4,
+ VirtualKeys.VK_OEM_6, VirtualKeys.VK_A, VirtualKeys.VK_S, VirtualKeys.VK_D, VirtualKeys.VK_F,
+ VirtualKeys.VK_G, VirtualKeys.VK_H, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_L,
+ VirtualKeys.VK_OEM_1, VirtualKeys.VK_OEM_7, VirtualKeys.VK_OEM_5, VirtualKeys.VK_Z,
+ VirtualKeys.VK_X, VirtualKeys.VK_C, VirtualKeys.VK_V, VirtualKeys.VK_B, VirtualKeys.VK_N,
+ VirtualKeys.VK_M, VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD, VirtualKeys.VK_OEM_2,
+ VirtualKeys.VK_OEM_102 // the 102nd key (actually to the right of l-shift)
+ };
+
+ private static readonly VirtualKeys [] main_key_vkey_qwertz = new VirtualKeys []
+ {
+ VirtualKeys.VK_OEM_3, VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4,
+ VirtualKeys.VK_5, VirtualKeys.VK_6, VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9,
+ VirtualKeys.VK_0, VirtualKeys.VK_OEM_MINUS, VirtualKeys.VK_OEM_PLUS,
+ VirtualKeys.VK_Q, VirtualKeys.VK_W, VirtualKeys.VK_E, VirtualKeys.VK_R, VirtualKeys.VK_T, VirtualKeys.VK_Z,
+ VirtualKeys.VK_U, VirtualKeys.VK_I, VirtualKeys.VK_O, VirtualKeys.VK_P, VirtualKeys.VK_OEM_4,
+ VirtualKeys.VK_OEM_6, VirtualKeys.VK_A, VirtualKeys.VK_S, VirtualKeys.VK_D, VirtualKeys.VK_F,
+ VirtualKeys.VK_G, VirtualKeys.VK_H, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_L,
+ VirtualKeys.VK_OEM_1, VirtualKeys.VK_OEM_7, VirtualKeys.VK_OEM_5, VirtualKeys.VK_Y,
+ VirtualKeys.VK_X, VirtualKeys.VK_C, VirtualKeys.VK_V, VirtualKeys.VK_B, VirtualKeys.VK_N,
+ VirtualKeys.VK_M, VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD, VirtualKeys.VK_OEM_2,
+ VirtualKeys.VK_OEM_102 // the 102nd key (actually to the right of l-shift)
+ };
+
+ private static readonly VirtualKeys [] main_key_vkey_dvorak = new VirtualKeys []
+ {
+ // NOTE: this layout must concur with the scan codes layout above
+ VirtualKeys.VK_OEM_3, VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4,
+ VirtualKeys.VK_5, VirtualKeys.VK_6, VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9,
+ VirtualKeys.VK_0, VirtualKeys.VK_OEM_4, VirtualKeys.VK_OEM_6, VirtualKeys.VK_OEM_7,
+ VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD, VirtualKeys.VK_P, VirtualKeys.VK_Y,
+ VirtualKeys.VK_F, VirtualKeys.VK_G, VirtualKeys.VK_C, VirtualKeys.VK_R, VirtualKeys.VK_L,
+ VirtualKeys.VK_OEM_2, VirtualKeys.VK_OEM_PLUS, VirtualKeys.VK_A, VirtualKeys.VK_O,
+ VirtualKeys.VK_E, VirtualKeys.VK_U, VirtualKeys.VK_I, VirtualKeys.VK_D, VirtualKeys.VK_H,
+ VirtualKeys.VK_T, VirtualKeys.VK_N, VirtualKeys.VK_S, VirtualKeys.VK_OEM_MINUS, VirtualKeys.VK_OEM_5,
+ VirtualKeys.VK_OEM_1, VirtualKeys.VK_Q, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_X,
+ VirtualKeys.VK_B, VirtualKeys.VK_M, VirtualKeys.VK_W, VirtualKeys.VK_V, VirtualKeys.VK_Z,
+ VirtualKeys.VK_OEM_102 // the 102nd key (actually to the right of l-shift)
+ };
+
+ private static readonly VirtualKeys [] main_key_vkey_azerty = new VirtualKeys []
+ {
+ // NOTE: this layout must concur with the scan codes layout above
+ VirtualKeys.VK_OEM_7, VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4,
+ VirtualKeys.VK_5, VirtualKeys.VK_6, VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9,
+ VirtualKeys.VK_0, VirtualKeys.VK_OEM_4, VirtualKeys.VK_OEM_PLUS, VirtualKeys.VK_A, VirtualKeys.VK_Z,
+ VirtualKeys.VK_E, VirtualKeys.VK_R, VirtualKeys.VK_T, VirtualKeys.VK_Y, VirtualKeys.VK_U,
+ VirtualKeys.VK_I, VirtualKeys.VK_O, VirtualKeys.VK_P, VirtualKeys.VK_OEM_6, VirtualKeys.VK_OEM_1,
+ VirtualKeys.VK_Q, VirtualKeys.VK_S, VirtualKeys.VK_D, VirtualKeys.VK_F, VirtualKeys.VK_G,
+ VirtualKeys.VK_H, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_L, VirtualKeys.VK_M,
+ VirtualKeys.VK_OEM_3, VirtualKeys.VK_OEM_5, VirtualKeys.VK_W, VirtualKeys.VK_X, VirtualKeys.VK_C,
+ VirtualKeys.VK_V, VirtualKeys.VK_B, VirtualKeys.VK_N, VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD,
+ VirtualKeys.VK_OEM_2, VirtualKeys.VK_OEM_8,
+ VirtualKeys.VK_OEM_102 // the 102nd key (actually to the right of l-shift)
+ };
+
+
+ //// WRONG
+ private static readonly VirtualKeys [] main_key_vkey_qwerty_jp106 = new VirtualKeys []
+ {
+ // NOTE: this layout must concur with the scan codes layout above
+ VirtualKeys.VK_OEM_7, VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4,
+ VirtualKeys.VK_5, VirtualKeys.VK_6, VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9,
+ VirtualKeys.VK_0, VirtualKeys.VK_OEM_4, VirtualKeys.VK_OEM_PLUS, VirtualKeys.VK_A, VirtualKeys.VK_Z,
+ VirtualKeys.VK_E, VirtualKeys.VK_R, VirtualKeys.VK_T, VirtualKeys.VK_Y, VirtualKeys.VK_U,
+ VirtualKeys.VK_I, VirtualKeys.VK_O, VirtualKeys.VK_P, VirtualKeys.VK_OEM_6, VirtualKeys.VK_OEM_1,
+ VirtualKeys.VK_Q, VirtualKeys.VK_S, VirtualKeys.VK_D, VirtualKeys.VK_F, VirtualKeys.VK_G,
+ VirtualKeys.VK_H, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_L, VirtualKeys.VK_M,
+ VirtualKeys.VK_OEM_3, VirtualKeys.VK_OEM_5, VirtualKeys.VK_W, VirtualKeys.VK_X, VirtualKeys.VK_C,
+ VirtualKeys.VK_V, VirtualKeys.VK_B, VirtualKeys.VK_N, VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD,
+ VirtualKeys.VK_OEM_2, VirtualKeys.VK_OEM_8,
+ VirtualKeys.VK_OEM_ATTN,
+ VirtualKeys.VK_OEM_102, // the 102nd key (actually to the right of l-shift)
+ VirtualKeys.VK_OEM_COPY,
+ VirtualKeys.VK_OEM_AUTO,
+ VirtualKeys.VK_OEM_ENLW,
+ VirtualKeys.VK_OEM_BACKTAB,
+ };
+
+ //// WRONG
+ private static readonly VirtualKeys [] main_key_vkey_qwertz_105 = new VirtualKeys []
+ {
+ // NOTE: this layout must concur with the scan codes layout above
+ VirtualKeys.VK_OEM_7, VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4,
+ VirtualKeys.VK_5, VirtualKeys.VK_6, VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9,
+ VirtualKeys.VK_0, VirtualKeys.VK_OEM_4, VirtualKeys.VK_OEM_PLUS, VirtualKeys.VK_A, VirtualKeys.VK_Z,
+ VirtualKeys.VK_E, VirtualKeys.VK_R, VirtualKeys.VK_T, VirtualKeys.VK_Y, VirtualKeys.VK_U,
+ VirtualKeys.VK_I, VirtualKeys.VK_O, VirtualKeys.VK_P, VirtualKeys.VK_OEM_6, VirtualKeys.VK_OEM_1,
+ VirtualKeys.VK_Q, VirtualKeys.VK_S, VirtualKeys.VK_D, VirtualKeys.VK_F, VirtualKeys.VK_G,
+ VirtualKeys.VK_H, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_L, VirtualKeys.VK_M,
+ VirtualKeys.VK_OEM_3, VirtualKeys.VK_OEM_5, VirtualKeys.VK_W, VirtualKeys.VK_X, VirtualKeys.VK_C,
+ VirtualKeys.VK_V, VirtualKeys.VK_B, VirtualKeys.VK_N, VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD,
+ VirtualKeys.VK_OEM_2, VirtualKeys.VK_OEM_8,
+ VirtualKeys.VK_OEM_102 // the 102nd key (actually to the right of l-shift)
+ };
+
+ //// WRONG
+ private static readonly VirtualKeys [] main_key_vkey_qwerty_v2 = new VirtualKeys []
+ {
+ // NOTE: this layout must concur with the scan codes layout above
+ VirtualKeys.VK_OEM_7, VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4,
+ VirtualKeys.VK_5, VirtualKeys.VK_6, VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9,
+ VirtualKeys.VK_0, VirtualKeys.VK_OEM_4, VirtualKeys.VK_OEM_PLUS, VirtualKeys.VK_A, VirtualKeys.VK_Z,
+ VirtualKeys.VK_E, VirtualKeys.VK_R, VirtualKeys.VK_T, VirtualKeys.VK_Y, VirtualKeys.VK_U,
+ VirtualKeys.VK_I, VirtualKeys.VK_O, VirtualKeys.VK_P, VirtualKeys.VK_OEM_6, VirtualKeys.VK_OEM_1,
+ VirtualKeys.VK_Q, VirtualKeys.VK_S, VirtualKeys.VK_D, VirtualKeys.VK_F, VirtualKeys.VK_G,
+ VirtualKeys.VK_H, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_L, VirtualKeys.VK_M,
+ VirtualKeys.VK_OEM_3, VirtualKeys.VK_OEM_5, VirtualKeys.VK_W, VirtualKeys.VK_X, VirtualKeys.VK_C,
+ VirtualKeys.VK_V, VirtualKeys.VK_B, VirtualKeys.VK_N, VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD,
+ VirtualKeys.VK_OEM_2, VirtualKeys.VK_OEM_8,
+ VirtualKeys.VK_OEM_102 // the 102nd key (actually to the right of l-shift)
+ };
+
+ private static readonly VirtualKeys [] main_key_vkey_abnt_qwerty = new VirtualKeys []
+ {
+ // NOTE: this layout must concur with the scan codes layout above
+ VirtualKeys.VK_OEM_7, VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4,
+ VirtualKeys.VK_5, VirtualKeys.VK_6, VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9,
+ VirtualKeys.VK_0, VirtualKeys.VK_OEM_MINUS, VirtualKeys.VK_OEM_PLUS, VirtualKeys.VK_Q,
+ VirtualKeys.VK_W, VirtualKeys.VK_E, VirtualKeys.VK_R, VirtualKeys.VK_T, VirtualKeys.VK_Y,
+ VirtualKeys.VK_U, VirtualKeys.VK_I, VirtualKeys.VK_O, VirtualKeys.VK_P, VirtualKeys.VK_OEM_3,
+ VirtualKeys.VK_OEM_4, VirtualKeys.VK_A, VirtualKeys.VK_S, VirtualKeys.VK_D, VirtualKeys.VK_F,
+ VirtualKeys.VK_G, VirtualKeys.VK_H, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_L,
+ VirtualKeys.VK_OEM_8, VirtualKeys.VK_OEM_102, VirtualKeys.VK_OEM_6, VirtualKeys.VK_Z,
+ VirtualKeys.VK_X, VirtualKeys.VK_C, VirtualKeys.VK_V, VirtualKeys.VK_B, VirtualKeys.VK_N,
+ VirtualKeys.VK_M, VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD, VirtualKeys.VK_OEM_1,
+ VirtualKeys.VK_OEM_2, VirtualKeys.VK_OEM_5
+ };
+ /*
+ private static readonly VirtualKeys [] main_key_vkey_qwerty_jp = new VirtualKeys []
+ {
+ VirtualKeys.VK_1, VirtualKeys.VK_2, VirtualKeys.VK_3, VirtualKeys.VK_4,
+ VirtualKeys.VK_5, VirtualKeys.VK_6, VirtualKeys.VK_7, VirtualKeys.VK_8, VirtualKeys.VK_9,
+ VirtualKeys.VK_0, VirtualKeys.VK_OEM_MINUS, VirtualKeys.VK_OEM_PLUS,VirtualKeys.VK_OEM_3,
+ VirtualKeys.VK_Q, VirtualKeys.VK_W, VirtualKeys.VK_E, VirtualKeys.VK_R, VirtualKeys.VK_T
+ VirtualKeys.VK_Y, VirtualKeys.VK_U, VirtualKeys.VK_I, VirtualKeys.VK_O, VirtualKeys.VK_P
+ VirtualKeys.VK_OEM_4,VirtualKeys.VK_OEM_6,
+ VirtualKeys.VK_A, VirtualKeys.VK_S, VirtualKeys.VK_D, VirtualKeys.VK_F,
+ VirtualKeys.VK_G, VirtualKeys.VK_H, VirtualKeys.VK_J, VirtualKeys.VK_K, VirtualKeys.VK_L,
+ VirtualKeys.VK_OEM_1, VirtualKeys.VK_OEM_7, VirtualKeys.VK_OEM_5, VirtualKeys.VK_Z,
+ VirtualKeys.VK_X, VirtualKeys.VK_C, VirtualKeys.VK_V, VirtualKeys.VK_B, VirtualKeys.VK_N,
+ VirtualKeys.VK_M, VirtualKeys.VK_OEM_COMMA, VirtualKeys.VK_OEM_PERIOD, VirtualKeys.VK_OEM_2,
+ VirtualKeys.VK_OEM_102
+ };*/
+
+ internal enum VirtualKeys {
+ VK_LBUTTON = 0x01,
+ VK_RBUTTON = 0x02,
+ VK_CANCEL = 0x03,
+ VK_MBUTTON = 0x04,
+ VK_XBUTTON1 = 0x05,
+ VK_XBUTTON2 = 0x06,
+ VK_BACK = 0x08,
+ VK_TAB = 0x09,
+ VK_CLEAR = 0x0C,
+ VK_RETURN = 0x0D,
+ VK_SHIFT = 0x10,
+ VK_CONTROL = 0x11,
+ VK_MENU = 0x12,
+ VK_PAUSE = 0x13,
+ VK_CAPITAL = 0x14,
+ VK_ESCAPE = 0x1B,
+ VK_SPACE = 0x20,
+ VK_PRIOR = 0x21,
+ VK_NEXT = 0x22,
+ VK_END = 0x23,
+ VK_HOME = 0x24,
+ VK_LEFT = 0x25,
+ VK_UP = 0x26,
+ VK_RIGHT = 0x27,
+ VK_DOWN = 0x28,
+ VK_SELECT = 0x29,
+ VK_PRINT = 0x2A,
+ VK_EXECUTE = 0x2B,
+ VK_SNAPSHOT = 0x2C,
+ VK_INSERT = 0x2D,
+ VK_DELETE = 0x2E,
+ VK_HELP = 0x2F,
+ VK_0 = 0x30,
+ VK_1 = 0x31,
+ VK_2 = 0x32,
+ VK_3 = 0x33,
+ VK_4 = 0x34,
+ VK_5 = 0x35,
+ VK_6 = 0x36,
+ VK_7 = 0x37,
+ VK_8 = 0x38,
+ VK_9 = 0x39,
+ VK_A = 0x41,
+ VK_B = 0x42,
+ VK_C = 0x43,
+ VK_D = 0x44,
+ VK_E = 0x45,
+ VK_F = 0x46,
+ VK_G = 0x47,
+ VK_H = 0x48,
+ VK_I = 0x49,
+ VK_J = 0x4A,
+ VK_K = 0x4B,
+ VK_L = 0x4C,
+ VK_M = 0x4D,
+ VK_N = 0x4E,
+ VK_O = 0x4F,
+ VK_P = 0x50,
+ VK_Q = 0x51,
+ VK_R = 0x52,
+ VK_S = 0x53,
+ VK_T = 0x54,
+ VK_U = 0x55,
+ VK_V = 0x56,
+ VK_W = 0x57,
+ VK_X = 0x58,
+ VK_Y = 0x59,
+ VK_Z = 0x5A,
+ VK_LWIN = 0x5B,
+ VK_RWIN = 0x5C,
+ VK_APPS = 0x5D,
+ VK_NUMPAD0 = 0x60,
+ VK_NUMPAD1 = 0x61,
+ VK_NUMPAD2 = 0x62,
+ VK_NUMPAD3 = 0x63,
+ VK_NUMPAD4 = 0x64,
+ VK_NUMPAD5 = 0x65,
+ VK_NUMPAD6 = 0x66,
+ VK_NUMPAD7 = 0x67,
+ VK_NUMPAD8 = 0x68,
+ VK_NUMPAD9 = 0x69,
+ VK_MULTIPLY = 0x6A,
+ VK_ADD = 0x6B,
+ VK_SEPARATOR = 0x6C,
+ VK_SUBTRACT = 0x6D,
+ VK_DECIMAL = 0x6E,
+ VK_DIVIDE = 0x6F,
+ VK_F1 = 0x70,
+ VK_F2 = 0x71,
+ VK_F3 = 0x72,
+ VK_F4 = 0x73,
+ VK_F5 = 0x74,
+ VK_F6 = 0x75,
+ VK_F7 = 0x76,
+ VK_F8 = 0x77,
+ VK_F9 = 0x78,
+ VK_F10 = 0x79,
+ VK_F11 = 0x7A,
+ VK_F12 = 0x7B,
+ VK_F13 = 0x7C,
+ VK_F14 = 0x7D,
+ VK_F15 = 0x7E,
+ VK_F16 = 0x7F,
+ VK_F17 = 0x80,
+ VK_F18 = 0x81,
+ VK_F19 = 0x82,
+ VK_F20 = 0x83,
+ VK_F21 = 0x84,
+ VK_F22 = 0x85,
+ VK_F23 = 0x86,
+ VK_F24 = 0x87,
+ VK_NUMLOCK = 0x90,
+ VK_SCROLL = 0x91,
+ VK_LSHIFT = 0xA0,
+ VK_RSHIFT = 0xA1,
+ VK_LCONTROL = 0xA2,
+ VK_RCONTROL = 0xA3,
+ VK_LMENU = 0xA4,
+ VK_RMENU = 0xA5,
+ VK_OEM_1 = 0xBA,
+ VK_OEM_PLUS = 0xBB,
+ VK_OEM_COMMA = 0xBC,
+ VK_OEM_MINUS = 0xBD,
+ VK_OEM_PERIOD = 0xBE,
+ VK_OEM_2 = 0xBF,
+ VK_OEM_3 = 0xC0,
+ VK_OEM_4 = 0xDB,
+ VK_OEM_5 = 0xDC,
+ VK_OEM_6 = 0xDD,
+ VK_OEM_7 = 0xDE,
+ VK_OEM_8 = 0xDF,
+ VK_OEM_AX = 0xE1,
+ VK_OEM_102 = 0xE2,
+ VK_ICO_HELP = 0xE3,
+ VK_ICO_00 = 0xE4,
+ VK_PROCESSKEY = 0xE5,
+ VK_OEM_ATTN = 0xF0,
+ VK_OEM_COPY = 0xF2,
+ VK_OEM_AUTO = 0xF3,
+ VK_OEM_ENLW = 0xF4,
+ VK_OEM_BACKTAB = 0xF5,
+ VK_ATTN = 0xF6,
+ VK_CRSEL = 0xF7,
+ VK_EXSEL = 0xF8,
+ VK_EREOF = 0xF9,
+ VK_PLAY = 0xFA,
+ VK_ZOOM = 0xFB,
+ VK_NONAME = 0xFC,
+ VK_PA1 = 0xFD,
+ VK_OEM_CLEAR = 0xFE,
+ }
+}
+