Beispiel #1
0
        private static void  GenResfile(List <ResxStrings> list, List <string> langs)
        {
            string path = System.IO.Directory.GetCurrentDirectory();

            path = Path.Combine(path, @"data\resdata");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            else
            {
                Directory.Delete(path, true);
                Directory.CreateDirectory(path);
            }
            string pattern = "Resources";//Path.GetFileNameWithoutExtension(xlsxPath);

            foreach (string lang in langs)
            {
                string resxPath = Path.Combine(path,
                                               pattern + (lang != "DEFAULT" ? "." + lang : string.Empty) + ".resx");
                using (ResXResourceWriter rsxw = new ResXResourceWriter(resxPath))
                {
                    foreach (var data in list)
                    {
                        ResXDataNode node = new ResXDataNode(data.Key, data.Strings[lang]);
                        node.Comment = data.Comment;
                        rsxw.AddResource(node);
                    }
                    rsxw.Generate();
                    rsxw.Close();
                }
            }
        }
Beispiel #2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            EnableControls(false);
            using (SaveFileDialog sfd = new SaveFileDialog())
            {
                if (FilesToDiff?.Length > 0)
                {
                    sfd.InitialDirectory = Path.GetDirectoryName(FilesToDiff[0]);
                }

                sfd.Filter = "Resource files|*.resx|All files|*.*";
                sfd.ShowDialog();

                if (sfd.FileName != "")
                {
                    String savePath = sfd.FileName;
                    dgv.Cursor = Cursors.WaitCursor;

                    try
                    {
                        if (dgv.IsCurrentCellDirty | dgv.IsCurrentRowDirty)
                        {
                            dgv.EndEdit();
                        }

                        dgv.Sort(colKey, ListSortDirection.Ascending);

                        ResXResourceWriter resX = new ResXResourceWriter(Path.Combine(Directory.GetCurrentDirectory(), savePath));

                        for (int i = 0; i <= dgv.RowCount - 1; i++)
                        {
                            if (dgv.Rows[i].IsNewRow)
                            {
                                continue;
                            }
                            if (chkAutoRemoveBaseOnly.Checked && ((ResXSourceType)dgv.Rows[i].Cells[colSourceVal.Index].Value) == ResXSourceType.BASE)
                            {
                                continue;
                            }

                            ResXDataNode n = new ResXDataNode(Convert.ToString(dgv[colKey.Index, i].Value), dgv[colValue.Index, i].Value)
                            {
                                Comment = Convert.ToString(dgv[colComment.Index, i].Value)
                            };
                            resX.AddResource(n);
                        }
                        resX.Generate();
                        resX.Close();

                        Properties.Settings.Default.AutoRemoveBaseOnly = chkAutoRemoveBaseOnly.Checked;
                        Properties.Settings.Default.Save();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show($"The ResX file '{savePath}' failed to save properly: " + ex.Message);
                    }
                }
            }
            EnableControls(true);
        }
        private void ExtensionToResx(string filePath, ResXResourceWriter resourceWriter, int pos)
        {
            var str = File.ReadAllText(filePath);

            str = str.Replace("msgid \"\"\r\n", "msgid ");
            str = str.Replace("\"\r\n\"", " ");

            var regex = new Regex(Expression);
            // Find matches.
            var matches = regex.Matches(str);
            // Report on each match.
            var dico = new Dictionary <string, string>();

            foreach (Match match in matches)
            {
                var groups   = match.Groups;
                var key      = ToCamelCase(groups[1].Value).Trim();
                var lowerKey = key.ToLower();
                if (!string.IsNullOrWhiteSpace(groups[1].Value) && !string.IsNullOrWhiteSpace(key) &&
                    dico.Keys.All(k => k.ToLower() != lowerKey))
                {
                    dico.Add(key, groups[pos].Value);
                }
            }

            foreach (var lst in dico)
            {
                resourceWriter.AddResource(lst.Key, lst.Value);
            }

            ExtensionPluralToResx(filePath, resourceWriter, pos);
            resourceWriter.Generate();
            resourceWriter.Close();
        }
        public static bool AddImageToResources(string name, Image img)
        {
            try {
                var reader = new ResXResourceReader(RESOURCES_FILE_NAME);
                var writer = new ResXResourceWriter(RESOURCES_FILE_NAME);
                var node   = reader.GetEnumerator();

                var nodeKeys = new List <String>();

                while (node.MoveNext())
                {
                    var nodeKey = node.Key.ToString();
                    nodeKeys.Add(nodeKey);
                    writer.AddResource(nodeKey, (Bitmap)node.Value);
                }

                if (!nodeKeys.Contains(name))
                {
                    writer.AddResource(name, img);
                }

                writer.Generate();
                writer.Close();
            } catch {
                return(false);
            }

            return(true);
        }
Beispiel #5
0
        public static void AddRole(string rolename)
        {
            var  reader = new ResXResourceReader(path);
            var  node   = reader.GetEnumerator();
            var  writer = new ResXResourceWriter(path);
            bool roleIn = false;

            while (node.MoveNext())
            {
                if (node.Key.ToString().Equals(rolename))
                {
                    roleIn = true;
                }

                writer.AddResource(node.Key.ToString(), node.Value.ToString());
            }

            if (roleIn)
            {
                Console.Write("Već postoji role {0}, nije", rolename);
            }
            else
            {
                var newNode = new ResXDataNode(rolename, "");
                writer.AddResource(newNode);

                Console.Write("Uspešno dodata role {0},", rolename);
            }
            writer.Generate();
            writer.Close();
        }
Beispiel #6
0
        public void WriteRead1()
        {
            ResXResourceWriter rw  = new ResXResourceWriter("resx.resx");
            serializable       ser = new serializable("aaaaa", "bbbbb");
            ResXDataNode       dn  = new ResXDataNode("test", ser);

            dn.Comment = "comment";
            rw.AddResource(dn);
            rw.Close();

            bool found = false;
            ResXResourceReader    rr = new ResXResourceReader("resx.resx");
            IDictionaryEnumerator en = rr.GetEnumerator();

            while (en.MoveNext())
            {
                serializable o = ((DictionaryEntry)en.Current).Value as serializable;
                if (o != null)
                {
                    found = true;
                    Assert.AreEqual(ser, o, "#A1");
                }
            }
            rr.Close();

            Assert.IsTrue(found, "#A2 - Serialized object not found on resx");
        }
Beispiel #7
0
        public static void RemoveRole(string rolename)
        {
            var  reader = new ResXResourceReader(path);
            var  node   = reader.GetEnumerator();
            var  writer = new ResXResourceWriter(path);
            bool roleIn = false;

            while (node.MoveNext())
            {
                if (!node.Key.ToString().Equals(rolename))
                {
                    writer.AddResource(node.Key.ToString(), node.Value.ToString());
                }
                else
                {
                    roleIn = true;
                }
            }

            if (!roleIn)
            {
                Console.Write("Ne postoji role {0}, nije", rolename);
            }
            else
            {
                Console.Write("Uspesno");
            }

            writer.Generate();
            writer.Close();
        }
Beispiel #8
0
        /// <summary>
        /// Saves current data from GUI to specified file
        /// </summary>
        public override void SaveFile(string path, uint format)
        {
            base.SaveFile(path, format);

            ResXResourceWriter writer = null;

            try {
                // get data from GUI
                Dictionary <string, ResXDataNode> data = UIControl.GetData(true);
                writer          = new ResXResourceWriter(path);
                writer.BasePath = Path.GetDirectoryName(path);

                foreach (var o in data)
                {
                    writer.AddResource(o.Value);
                }
                writer.Generate();

                VLOutputWindow.VisualLocalizerPane.WriteLine("Saved file \"{0}\"", path);
            } catch (Exception ex) {
                VLOutputWindow.VisualLocalizerPane.WriteException(ex);
                VisualLocalizer.Library.Components.MessageBox.ShowException(ex);
                throw;
            } finally {
                if (writer != null)
                {
                    writer.Close();
                }
            }
        }
Beispiel #9
0
        static void Main(string[] args)
        {
            if (args.Length < 2)
            {
                Console.WriteLine("Usage: ResTool <assembly> <resxfile>");
                Environment.Exit(64);
            }
            Assembly           asy  = Assembly.LoadFrom(args[0]);
            ResXResourceWriter resx = new ResXResourceWriter(args[1]);

            foreach (Type t in asy.GetTypes())
            {
                foreach (FieldInfo fi in t.GetFields())
                {
                    if (!fi.IsStatic)
                    {
                        continue;
                    }

                    string n = t.Name + "." + fi.Name;
                    Console.WriteLine(n);

                    resx.AddResource(n, fi.GetValue(null));
                }
            }
            resx.Close();
        }
        /// <summary>
        /// Allow to load pictures in the folder View/Icons in a ressource file
        /// </summary>
        public void loadPictureInResource()
        {
            ResXResourceWriter rw = new ResXResourceWriter("Resources.resx");

            foreach (string s in Directory.EnumerateFiles(@"..\..\View\Icons"))
            {
                FileStream byteStream = new FileStream(s, FileMode.Open);
                byte[]     bytes      = new byte[(int)byteStream.Length];
                byteStream.Read(bytes, 0, (int)byteStream.Length);
                Bitmap bp = new Bitmap(byteStream);
                rw.AddResource(Path.GetFileNameWithoutExtension(s), bp);
                byteStream.Close();
            }
            foreach (string s in Directory.EnumerateFiles(@"..\..\View\Icons\soundTexture"))
            {
                FileStream byteStream = new FileStream(s, FileMode.Open);
                byte[]     bytes      = new byte[(int)byteStream.Length];
                byteStream.Read(bytes, 0, (int)byteStream.Length);
                Bitmap bp = new Bitmap(byteStream);
                rw.AddResource(Path.GetFileNameWithoutExtension(s), bp);
                byteStream.Close();
            }
            foreach (string s in Directory.EnumerateFiles(@"..\..\View\Audience"))
            {
                FileStream byteStream = new FileStream(s, FileMode.Open);
                byte[]     bytes      = new byte[(int)byteStream.Length];
                byteStream.Read(bytes, 0, (int)byteStream.Length);
                Bitmap bp = new Bitmap(byteStream);
                rw.AddResource(Path.GetFileNameWithoutExtension(s), bp);
                byteStream.Close();
            }
            rw.Generate();
            rw.Close();
        }
Beispiel #11
0
        public static void Write(this ProjectItem projectItem, CremaDataTable projectInfoTable)
        {
            if (FindTable(projectItem, projectInfoTable) is CremaDataTable dataTable)
            {
                var cultureInfo = projectItem.GetResourceCulture();
                var valueName   = cultureInfo == null ? "Value" : cultureInfo.Name.Replace('-', '_');
                var path        = projectItem.GetFullPath();
                using (var writer = new ResXResourceWriter(path))
                {
                    foreach (var item in dataTable.Rows)
                    {
                        var name = $"{item["Type"]}" == "None" ? $"{item["Name"]}" : $"{item["Type"]}_{item["Name"]}";
                        var node = new ResXDataNode(name, item[valueName])
                        {
                            Comment = $"{item["Comment"]}",
                        };
                        writer.AddResource(node);
                    }
                    writer.Close();
                }

                if (projectItem.GetCustomTool() == ResXFileCodeGenerator)
                {
                    WriteDesigner(projectItem, dataTable, false);
                }
                else if (projectItem.GetCustomTool() == PublicResXFileCodeGenerator)
                {
                    WriteDesigner(projectItem, dataTable, true);
                }
            }
            else
            {
                throw new Exception("항목을 찾을 수 없습니다.");
            }
        }
Beispiel #12
0
    public static void AddOrUpdateResource(DictionaryEntry newElement, string resourceFilepath)
    {
        var resx = new List <DictionaryEntry>();

        using (var reader = new ResXResourceReader(resourceFilepath))
        {
            resx = reader.Cast <DictionaryEntry>().ToList();
            var existingResource = resx.Where(r => r.Key == newElement.Key).FirstOrDefault();
            if (existingResource.Key == null && existingResource.Value == null) // NEW!
            {
                resx.Add(newElement);
            }
            else // MODIFIED RESOURCE!
            {
                var modifiedResx = new DictionaryEntry()
                {
                    Key = existingResource.Key, Value = newElement.Value
                };
                resx.Remove(existingResource); // REMOVING RESOURCE!
                resx.Add(modifiedResx);        // AND THEN ADDING RESOURCE!
            }
        }
        using (var writer = new ResXResourceWriter(resourceFilepath))
        {
            resx.ForEach(r =>
            {
                // Again Adding all resource to generate with final items
                writer.AddResource(r.Key.ToString(), r.Value.ToString());
            });
            writer.Generate();
            writer.Close();
        }
    }
Beispiel #13
0
        /// <summary>
        /// Записать зничения в файл.
        /// </summary>
        private void SaveNewValue(ResXResourceReader targetResourceReader, ResXResourceWriter targetResourceWriter, Dictionary <string, string> keyValuePairs)
        {
            try
            {
                var node = targetResourceReader.GetEnumerator();
                while (node.MoveNext())
                {
                    targetResourceWriter.AddResource(node.Key.ToString(), node.Value.ToString());
                }

                foreach (var keyValuePair in keyValuePairs)
                {
                    targetResourceWriter.AddResource(new ResXDataNode(keyValuePair.Key, keyValuePair.Value));
                    _logService.AddMessage($"Добавлен ключ: {keyValuePair.Key} со значением: {keyValuePair.Value}");
                }

                targetResourceWriter.Generate();
                targetResourceWriter.Close();

                _logService.AddMessage($"Все значения записаны.");
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
        }
Beispiel #14
0
        public static void AddOrUpdateResource(string resourceFilepath, string newKey, string newValue)
        {
            string resourcesFile = resourceFilepath + @"\Resources.resx";
            var    reader        = new ResXResourceReader(resourcesFile); //same fileName

            reader.BasePath = resourceFilepath;                           // this is very important
            var node = reader.GetEnumerator();

            var writer = new ResXResourceWriter(resourcesFile);//same fileName(not new)

            while (node.MoveNext())
            {
                string nodeKey   = node.Key.ToString();
                string nodeValue = node.Value.ToString();
                if (nodeKey == "alter")
                {
                    nodeValue += "\r\n" + newKey;//add new script name
                }
                writer.AddResource(nodeKey, nodeValue);
            }
            var newNode = new ResXDataNode(newKey, newValue);

            writer.AddResource(newNode);
            writer.Generate();
            writer.Close();
        }
Beispiel #15
0
        private static bool OutputAltResx(string file, string locale)
        {
            Console.WriteLine("Processing: " + file);
            ResXResourceReader resxReader      = new ResXResourceReader(file);
            FileInfo           currentResxFile = new FileInfo(file);
            string             newResxFileName = String.Format("{0}.{1}{2}", currentResxFile.FullName.Substring(0, currentResxFile.FullName.Length - 5), locale, currentResxFile.Extension);
            ResXResourceWriter resxWriter      = new ResXResourceWriter(newResxFileName);

            foreach (DictionaryEntry resource in resxReader)
            {
                if ("Sidebar.WidthInPixels".Equals(resource.Key))
                {
                    resxWriter.AddResource(resource.Key.ToString(), "225");
                    continue;
                }

                if (resource.Value.GetType() == typeof(string))
                {
                    resxWriter.AddResource(resource.Key.ToString(), MungeResource(resource.Value as string, StaticKeyValue(resource.Key.ToString())));
                }
                else
                {
                    resxWriter.AddResource(resource.Key.ToString(), resource.Value);
                }
            }
            resxWriter.Generate();
            resxWriter.Close();
            return(true);
        }
Beispiel #16
0
        private static void PoToResx(string poFilePath)
        {
            var info          = new System.IO.FileInfo(poFilePath);
            var derectoriinfo = new System.IO.DirectoryInfo(poFilePath);
            var str           = System.IO.File.ReadAllText(poFilePath);
            var regex         = new Regex(Expression);
            // Find matches.
            var matches = regex.Matches(str);
            // Report on each match.
            var resourceWriter = new ResXResourceWriter(poFilePath.Replace(".po", $".{derectoriinfo.Parent.Name}.resx"));

            var dico = new Dictionary <string, string>();

            foreach (Match match in matches)
            {
                var groups = match.Groups;
                var key    = ToCamelCase(groups[1].Value);
                if (!string.IsNullOrWhiteSpace(key) && !dico.ContainsKey(key))
                {
                    dico.Add(key, groups[2].Value);
                }
            }

            foreach (var lst in dico)
            {
                resourceWriter.AddResource(lst.Key, lst.Value);
            }

            resourceWriter.Generate();
            resourceWriter.Close();
        }
Beispiel #17
0
        public void SaveResourceFile(String FileName)
        {
            this.FileName = FileName;
            String x = Path.GetExtension(FileName);

            if ((String.Compare(x, ".xml", true) == 0) || (String.Compare(x, ".resX", true) == 0))
            {
                ResXResourceWriter    r = new ResXResourceWriter(FileName);
                IDictionaryEnumerator n = Resource.GetEnumerator();
                while (n.MoveNext())
                {
                    r.AddResource((string)n.Key, (object)n.Value);
                }
                r.Generate();
                r.Close();
            }
            else
            {
                ResourceWriter        r = new ResourceWriter(FileName);
                IDictionaryEnumerator n = Resource.GetEnumerator();
                while (n.MoveNext())
                {
                    r.AddResource((string)n.Key, (object)n.Value);
                }
                r.Generate();
                r.Close();
            }
        }
Beispiel #18
0
        public void WriteResxWithCultureName(string filePath, Hashtable translatedHashTable)
        {
            var path = filePath;

            if (filePath.Contains("aspx.resx"))
            {
                path = filePath.Insert(
                    filePath.LastIndexOf("aspx.", StringComparison.Ordinal) + "aspx.".Length,
                    this.Translator.DestinationLanguage.Value + ".");
            }
            else if (filePath.Contains("aspx." + this.Translator.SourceLanguage.Value + ".resx"))
            {
                path = filePath.Replace("aspx." + this.Translator.SourceLanguage.Value + ".resx", "aspx." + this.Translator.DestinationLanguage.Value + ".resx");
            }

            var resourceWriter = new ResXResourceWriter(path);

            foreach (string key in translatedHashTable.Keys)
            {
                resourceWriter.AddResource(key, translatedHashTable[key]);
            }

            resourceWriter.Generate();
            resourceWriter.Close();
        }
Beispiel #19
0
        private void btnMakeResx_Click(object sender, System.EventArgs e)
        {
            if (txtResxFile.Text.Length == 0 || txtZipFile.Text.Length == 0 ||
                txtResxTag.Text.Length == 0)
            {
                MessageBox.Show("You have left some of the fields empty. FIX THEM!!!");
                return;
            }

            if (!ZipFileOk(txtZipFile.Text))
            {
                MessageBox.Show("Zip file corrupt - try zipping with different tool!");
                return;
            }
            FileStream   fs = new FileStream(txtZipFile.Text, System.IO.FileMode.Open);
            BinaryReader br = new BinaryReader(fs, System.Text.Encoding.ASCII);

            byte[] buff = br.ReadBytes((int)fs.Length);
            fs.Close();

            ResXResourceWriter resource = new ResXResourceWriter(txtResxFile.Text);

            resource.AddResource(txtResxTag.Text, buff);
            resource.Generate();
            resource.Close();

            MessageBox.Show("You're done, so quit the program already.");
        }
Beispiel #20
0
        /// <summary>
        /// 将resources文件转换为resx文件,如果转换成功,返回True
        /// </summary>
        /// <param name="strResources">resources文件的路径,注意请保证路径正确无误</param>
        /// <param name="strResx">res文件的路径,注意请保证路径正确无误</param>
        public static bool ConvertRes(string strResources, string strResx)
        {
            if (string.IsNullOrEmpty(strResources) || string.IsNullOrEmpty(strResx))
            {
                return(false);
            }
            if (File.Exists(strResources) && File.Exists(strResx) == false)
            {
                return(false);
            }

            //开始转换.
            try
            {
                ResourceReader     reader = new ResourceReader(strResources);
                ResXResourceWriter writer = new ResXResourceWriter(strResx);

                foreach (DictionaryEntry en in reader)
                {
                    writer.AddMetadata(en.Key.ToString(), en.Value);
                }
                reader.Close();
                writer.Close();
            }
            catch
            {
                return(false);
            }

            return(true);
        }
Beispiel #21
0
        public void Test()
        {
            Thread.CurrentThread.CurrentCulture       =
                Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");

            ResXResourceWriter w = new ResXResourceWriter(fileName);

            w.AddResource("point", new Point(42, 43));
            w.Generate();
            w.Close();

            int count = 0;
            ResXResourceReader    r = new ResXResourceReader(fileName);
            IDictionaryEnumerator e = r.GetEnumerator();

            while (e.MoveNext())
            {
                if ((string)e.Key == "point")
                {
                    Assert.AreEqual(typeof(Point), e.Value.GetType(), "#1");
                    Point p = (Point)e.Value;
                    Assert.AreEqual(42, p.X, "#2");
                    Assert.AreEqual(43, p.Y, "#3");
                    count++;
                }
            }
            r.Close();
            Assert.AreEqual(1, count, "#100");
        }
        protected void OnSaveClick(object sender, EventArgs e)
        {
            List <string>         resourceNames  = new List <string>();
            ResXResourceReader    resxReader     = new ResXResourceReader(string.Format("{0}/App_Resources/Templates.resx", WebRootPath.Instance.ToString()));
            IDictionaryEnumerator resxEnumerator = resxReader.GetEnumerator();

            while (resxEnumerator.MoveNext())
            {
                resourceNames.Add(resxEnumerator.Key.ToString());
            }
            resxReader.Close();

            ResXResourceWriter resxWriter = new ResXResourceWriter(string.Format("{0}\\App_Resources/Templates.resx", WebRootPath.Instance.ToString()));

            try
            {
                foreach (string name in resourceNames)
                {
                    string value = Request.Form[string.Format("{0}${1}$TxtValue", this.RepResources.UniqueID, name)];
                    resxWriter.AddResource(name, value);
                }
                resxWriter.Close();
            }
            catch (Exception)
            {
            }
        }
Beispiel #23
0
        static int Main(string[] args)
        {
            ArrayList items = new ArrayList();
            ArrayList names = new ArrayList();

            foreach (string arg in args)
            {
                String[] HTMLSet = arg.Split(new char[] { ',' });
                names.Add(HTMLSet[0]);

                FileStream   htmlfile   = new FileStream(HTMLSet[1], FileMode.Open, FileAccess.Read);
                StreamReader r          = new StreamReader(htmlfile);
                String       htmlstring = r.ReadToEnd();
                items.Add(htmlstring);
            }

            ResXResourceWriter rsxw = new ResXResourceWriter("mscorcfghtml.resx");

            IEnumerator e = items.GetEnumerator();

            foreach (string name in names)
            {
                e.MoveNext();
                rsxw.AddResource(name, e.Current);
            }
            rsxw.Close();

            return(0);
        }
Beispiel #24
0
        private void saveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (var sfd = new SaveFileDialog()
            {
                InitialDirectory = Directory.GetCurrentDirectory(),
                Filter = @"resx files (*.resx)|*.resx|All files (*.*)|*.*",
                FilterIndex = 1,
                RestoreDirectory = true
            })
            {
                if (sfd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                var path = sfd.FileName;

                File.Delete(path);

                var res = new ResXResourceWriter(path);
                int i   = 1;

                foreach (DataGridViewRow row in dataGridView.Rows)
                {
                    res.AddResource(i.ToString(), row.Cells["value"].Value);
                    i++;
                }

                res.Generate();
                res.Close();

                MessageBox.Show(@"Vos traductions ont bien étés sauvegardés! Merci!");
            }
        }
Beispiel #25
0
        public void AddResource_WithComment()
        {
            ResXResourceWriter w    = new ResXResourceWriter(fileName);
            ResXDataNode       node = new ResXDataNode("key", "value");

            node.Comment = "comment is preserved";
            w.AddResource(node);
            w.Generate();
            w.Close();

            ResXResourceReader     r       = new ResXResourceReader(fileName);
            ITypeResolutionService typeres = null;

            r.UseResXDataNodes = true;

            int count = 0;

            foreach (DictionaryEntry o in r)
            {
                string key = o.Key.ToString();
                node = (ResXDataNode)o.Value;
                string value   = node.GetValue(typeres).ToString();
                string comment = node.Comment;

                Assert.AreEqual("key", key, "key");
                Assert.AreEqual("value", value, "value");
                Assert.AreEqual("comment is preserved", comment, "comment");
                Assert.AreEqual(0, count, "too many nodes");
                count++;
            }
            r.Close();

            File.Delete(fileName);
        }
Beispiel #26
0
        void DeleteItems(string targetResx)
        {
            var reader = new ResXResourceReader(targetResx);
            var writer = new ResXResourceWriter(targetResx);

            writer.Close();
        }
 public static void EBSresxYazText(string dosyayolu, RichTextBox rc, string Value)
 {
     res = new ResXResourceWriter(dosyayolu);
     res.AddResource(Value, rc.Text);
     res.Generate();
     res.Close();
     MessageBox.Show("Yazı Oluşturuldu.");
 }
        /// <summary>
        /// UPDATE APPLICATION THEME
        /// </summary>
        /// <param name="theme"></param>
        public void SetThemeValue(string theme)
        {
            ResXResourceWriter reswriter = new ResXResourceWriter("../../LocalResources/ThemeSettings.resx");

            reswriter.AddResource("Theme", theme);
            reswriter.Generate();
            reswriter.Close();
        }
Beispiel #29
0
        private void TranslateFile(string filename, string locale, string newDir)
        {
            string shortName      = Path.GetFileName(filename);
            string nameWithoutExt = Path.GetFileNameWithoutExtension(filename);
            string newname        = nameWithoutExt + "." + locale + ".resx";

            newname = newDir + "\\" + newname;

            //if file already exists
            bool fileExists = File.Exists(newname);
            Dictionary <string, string> existing = new Dictionary <string, string>();

            if (fileExists)
            {
                Console.WriteLine("File " + newname + " already exists. Existing resources in it will be preserved.");
                //get existing keys list
                ResXResourceReader readerNewFile = new ResXResourceReader(newname);
                foreach (DictionaryEntry d in readerNewFile)
                {
                    existing.Add(d.Key.ToString(), d.Value.ToString());
                }
                readerNewFile.Close();
            }
            else
            {
                Console.WriteLine("Creating file " + newname);
            }

            Console.WriteLine("Translating file " + shortName + " to " + locale + "....");

            Application.DoEvents();             //I know its bad but can't go multithreading, since I have to update UI

            ResXResourceReader reader = new ResXResourceReader(filename);
            ResXResourceWriter writer = new ResXResourceWriter(newname);

            foreach (DictionaryEntry d in reader)
            {
                //leave existing text intact (if its not empty)
                if (fileExists &&
                    existing.Keys.Contains(d.Key.ToString()) &&
                    !string.IsNullOrEmpty(existing[d.Key.ToString()]))
                {
                    writer.AddResource(d.Key.ToString(), existing[d.Key.ToString()]);
                }
                else
                {
                    string originalString = d.Value.ToString();
                    if (!string.IsNullOrEmpty(originalString.Trim()))
                    {
                        string translatedString = TranslateApi.TranslateText(originalString, LanguageNamesList[locale]);
                        writer.AddResource(d.Key.ToString(), translatedString);
                        Thread.Sleep(500);                         //to prevent spam detector at google
                    }
                }
            }
            writer.Close();
            reader.Close();
        }
Beispiel #30
0
        private void button2_Click(object sender, EventArgs e)
        {
            string ci = "";

            CultureInfo[] temp = System.Globalization.CultureInfo.GetCultures(CultureTypes.AllCultures);

            foreach (CultureInfo cul in temp)
            {
                if ((cul.DisplayName + " " + cul.Name) == comboBox1.Text)
                {
                    Console.WriteLine(cul.Name);
                    ci = cul.Name;
                }
            }

            string fname = "";

            ResXResourceWriter writer = null;

            System.IO.Directory.CreateDirectory("translation");

            StreamWriter sw = new StreamWriter("translation/output.html");

            sw.Write("<html><body><table>");

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                try
                {
                    if (row.Cells[colFile.Index].Value.ToString() != fname)
                    {
                        if (writer != null)
                        {
                            writer.Close();
                        }
                        writer = new ResXResourceWriter("translation/" + row.Cells[colFile.Index].Value.ToString().Replace(".resources", "." + ci + ".resx"));
                    }

                    writer.AddResource(row.Cells[colInternal.Index].Value.ToString(), row.Cells[colOtherLang.Index].Value.ToString());

                    fname = row.Cells[colFile.Index].Value.ToString();
                }
                catch { }
                try
                {
                    sw.Write("<tr><td>" + row.Cells[colFile.Index].Value.ToString() + "</td><td>" + row.Cells[colInternal.Index].Value.ToString() + "</td><td>" + row.Cells[colOtherLang.Index].Value.ToString() + "</td></tr>");
                }
                catch (Exception ex) { try { CustomMessageBox.Show("Failed to save " + row.Cells[colOtherLang.Index].Value.ToString() + " " + ex.ToString()); } catch { } }
            }
            if (writer != null)
            {
                writer.Close();
            }
            sw.Write("</table></html>");
            sw.Close();

            CustomMessageBox.Show("Saved");
        }
Beispiel #31
0
	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 ();
	}