summaryrefslogtreecommitdiff
path: root/users/gourdo1/autocorrect
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2023-11-26 18:36:45 +0000
committerGitHub <noreply@github.com>2023-11-27 05:36:45 +1100
commit1ed03f498fa204178c2696c510ac6a2cd8524e2d (patch)
treeb97c1f983b7e4b57c007d0feedadd3ad3e39062b /users/gourdo1/autocorrect
parent4908d4b1ca260efecf3613e6517aa3a6f2034876 (diff)
Remove userspace keymaps (#22544)
Diffstat (limited to 'users/gourdo1/autocorrect')
-rw-r--r--users/gourdo1/autocorrect/autocorrection.c182
-rw-r--r--users/gourdo1/autocorrect/autocorrection.h40
-rw-r--r--users/gourdo1/autocorrect/autocorrection_data.h722
-rw-r--r--users/gourdo1/autocorrect/autocorrection_data.h (large)722
-rw-r--r--users/gourdo1/autocorrect/autocorrection_data.h (small)152
-rw-r--r--users/gourdo1/autocorrect/autocorrection_dict.txt473
-rw-r--r--users/gourdo1/autocorrect/make_autocorrection_data.py303
7 files changed, 0 insertions, 2594 deletions
diff --git a/users/gourdo1/autocorrect/autocorrection.c b/users/gourdo1/autocorrect/autocorrection.c
deleted file mode 100644
index dae62d37a2..0000000000
--- a/users/gourdo1/autocorrect/autocorrection.c
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright 2021-2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// https://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// For full documentation, see
-// https://getreuer.info/posts/keyboards/autocorrection
-
-#include "autocorrection.h"
-
-#include <string.h>
-#include "autocorrection_data.h"
-
-#if AUTOCORRECTION_MIN_LENGTH < 4
-// Odd output or hard locks on the board have been observed when the min typo
-// length is 3 or lower (https://github.com/getreuer/qmk-keymap/issues/2).
-// Additionally, autocorrection entries for short typos are more likely to false
-// trigger, so it is suggested that typos be at least 5 characters.
-#error "Min typo length is less than 4. Autocorrection may behave poorly."
-#endif
-
-bool process_autocorrection(uint16_t keycode, keyrecord_t* record) {
- if (user_config.autocorrect) {
- static uint8_t typo_buffer[AUTOCORRECTION_MAX_LENGTH] = {0};
- static uint8_t typo_buffer_size = 0;
-
- // Ignore key release; we only process key presses.
- if (!record->event.pressed) { return true; }
-
- #ifndef NO_ACTION_ONESHOT
- const uint8_t mods = get_mods() | get_oneshot_mods();
- #else
- const uint8_t mods = get_mods();
- #endif // NO_ACTION_ONESHOT
- // Disable autocorrection while a mod other than shift is active.
- if ((mods & ~MOD_MASK_SHIFT) != 0) {
- typo_buffer_size = 0;
- return true;
- }
-
- // The following switch cases address various kinds of keycodes. This logic is
- // split over two switches rather than merged into one. The first switch may
- // extract a basic keycode which is then further handled by the second switch,
- // e.g. a layer-tap key with Caps Lock `LT(layer, KC_CAPS)`.
- switch (keycode) {
- #ifndef NO_ACTION_TAPPING
- case QK_MOD_TAP ... QK_MOD_TAP_MAX: // Tap-hold keys.
- #ifndef NO_ACTION_LAYER
- case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
- #endif // NO_ACTION_LAYER
- // Ignore when tap-hold keys are held.
- if (record->tap.count == 0) { return true; }
- // Otherwise when tapped, get the basic keycode.
- // Fallthrough intended.
- #endif // NO_ACTION_TAPPING
-
- // Handle shifted keys, e.g. symbols like KC_EXLM = S(KC_1).
- case QK_LSFT ... QK_LSFT + 255:
- case QK_RSFT ... QK_RSFT + 255:
- keycode &= 0xff; // Get the basic keycode.
- break;
-
- // NOTE: Space Cadet keys expose no info to check whether they are being
- // tapped vs. held. This makes autocorrection ambiguous, e.g. SC_LCPO might
- // be '(', which we would treat as a word break, or it might be shift, which
- // we would treat as having no effect. To behave cautiously, we allow Space
- // Cadet keycodes to fall to the logic below and clear autocorrection state.
- }
-
- switch (keycode) {
- // Ignore shifts, Caps Lock, one-shot mods, and layer switch keys.
- case KC_NO:
- case KC_LSFT:
- case KC_RSFT:
- case KC_CAPS:
- case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX:
- case QK_TO ... QK_TO_MAX:
- case QK_MOMENTARY ... QK_MOMENTARY_MAX:
- case QK_DEF_LAYER ... QK_DEF_LAYER_MAX:
- case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX:
- case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:
- case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
- case QK_LAYER_MOD ... QK_LAYER_MOD_MAX:
- return true; // Ignore these keys.
- }
-
- if (keycode == KC_QUOT) {
- // Treat " (shifted ') as a word boundary.
- if ((mods & MOD_MASK_SHIFT) != 0) { keycode = KC_SPC; }
- } else if (!(KC_A <= keycode && keycode <= KC_Z)) {
- if (keycode == KC_BSPC) {
- // Remove last character from the buffer.
- if (typo_buffer_size > 0) { --typo_buffer_size; }
- return true;
- } else if (KC_1 <= keycode && keycode <= KC_SLSH && keycode != KC_ESC) {
- // Set a word boundary if space, period, digit, etc. is pressed.
- // Behave more conservatively for the enter key. Reset, so that enter
- // can't be used on a word ending.
- if (keycode == KC_ENT) { typo_buffer_size = 0; }
- keycode = KC_SPC;
- } else {
- // Clear state if some other non-alpha key is pressed.
- typo_buffer_size = 0;
- return true;
- }
- }
-
- // If the buffer is full, rotate it to discard the oldest character.
- if (typo_buffer_size >= AUTOCORRECTION_MAX_LENGTH) {
- memmove(typo_buffer, typo_buffer + 1, AUTOCORRECTION_MAX_LENGTH - 1);
- typo_buffer_size = AUTOCORRECTION_MAX_LENGTH - 1;
- }
-
- // Append `keycode` to the buffer.
- // NOTE: `keycode` must be a basic keycode (0-255) by this point.
- typo_buffer[typo_buffer_size++] = (uint8_t) keycode;
- // Early return if not many characters have been buffered so far.
- if (typo_buffer_size < AUTOCORRECTION_MIN_LENGTH) { return true; }
-
- // Check whether the buffer ends in a typo. This is done using a trie
- // stored in `autocorrection_data`.
- uint16_t state = 0;
- uint8_t code = pgm_read_byte(autocorrection_data + state);
- for (int i = typo_buffer_size - 1; i >= 0; --i) {
- const uint8_t key_i = typo_buffer[i];
-
- if (code & 64) { // Check for match in node with multiple children.
- code &= 63;
- for (; code != key_i;
- code = pgm_read_byte(autocorrection_data + (state += 3))) {
- if (!code) { return true; }
- }
-
- // Follow link to child node.
- state = (uint16_t)(
- (uint_fast16_t)pgm_read_byte(autocorrection_data + state + 1)
- | (uint_fast16_t)pgm_read_byte(autocorrection_data + state + 2) << 8);
- // Otherwise check for match in node with a single child.
- } else if (code != key_i) {
- return true;
- } else if (!(code = pgm_read_byte(autocorrection_data + (++state)))) {
- ++state;
- }
-
- // Stop if `state` becomes an invalid index. This should not normally
- // happen, it is a safeguard in case of a bug, data corruption, etc.
- if (state >= sizeof(autocorrection_data)) {
- return true;
- }
-
- // Read first byte of the next node.
- code = pgm_read_byte(autocorrection_data + state);
-
- if (code & 128) { // A typo was found! Apply autocorrection.
- const int backspaces = code & 63;
- for (int i = 0; i < backspaces; ++i) { tap_code(KC_BSPC); }
- send_string_P((char const*)(autocorrection_data + state + 1));
-
- if (keycode == KC_SPC) {
- typo_buffer[0] = KC_SPC;
- typo_buffer_size = 1;
- return true;
- } else {
- typo_buffer_size = 0;
- return false;
- }
- }
- }
- return true;
- }
- return true;
-}
diff --git a/users/gourdo1/autocorrect/autocorrection.h b/users/gourdo1/autocorrect/autocorrection.h
deleted file mode 100644
index d344a815f7..0000000000
--- a/users/gourdo1/autocorrect/autocorrection.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2021-2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// https://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// Autocorrection on your keyboard.
-//
-// This library implements rudimentary autocorrection, automatically detecting
-// and fixing some misspellings. Beware that the autocorrection logic is
-// unaware of hotkey or mouse-based cursor movement.
-//
-// For full documentation, see
-// https://getreuer.info/posts/keyboards/autocorrection
-
-#pragma once
-
-#include "quantum.h"
-
-#include "gourdo1.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-bool process_autocorrection(uint16_t keycode, keyrecord_t* record);
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/users/gourdo1/autocorrect/autocorrection_data.h b/users/gourdo1/autocorrect/autocorrection_data.h
deleted file mode 100644
index 66518201e2..0000000000
--- a/users/gourdo1/autocorrect/autocorrection_data.h
+++ /dev/null
@@ -1,722 +0,0 @@
-// Generated code.
-
-// Autocorrection dictionary (400 entries):
-// :acheiv -> achiev
-// :agian -> again
-// :agred -> agreed
-// :ajust -> adjust
-// :alot: -> a lot
-// :andteh -> and the
-// :andthe -> and the
-// :anual -> annual
-// :asign -> assign
-// :aslo: -> also
-// :asthe -> as the
-// :atthe -> at the
-// :casue -> cause
-// :choses -> chooses
-// :eveyr -> every
-// :foudn -> found
-// :gaurd -> guard
-// :goign -> going
-// :gonig -> going
-// :graet -> great
-// :grammer -> grammar
-// :guage -> gauge
-// :haev -> have
-// :hapen -> happen
-// :htere -> there
-// :htikn -> think
-// :htink -> think
-// :hwihc -> which
-// :hwile -> while
-// :idaes -> ideas
-// :jstu: -> just
-// :jsut: -> just
-// :knwo -> know
-// :konw -> know
-// :kwno -> know
-// :moeny -> money
-// :ocuntry -> country
-// :ocur -> occur
-// :olther -> other
-// :otehr -> other
-// :owudl -> would
-// :rference -> reference
-// :sicne -> since
-// :socre -> score
-// :szie -> size
-// :the:the: -> the
-// :theri -> their
-// :thier -> their
-// :thsoe -> those
-// :tothe -> to the
-// :ture -> true
-// :turth -> truth
-// :uesd: -> used
-// :usally -> usually
-// :yaers -> years
-// :yeasr -> years
-// abbout -> about
-// aberation -> aberration
-// abilties -> abilities
-// abilty -> ability
-// abotu -> about
-// abouta -> about a
-// aboutit -> about it
-// aboutthe -> about the
-// abvove -> above
-// accesories -> accessories
-// accomodate -> accommodate
-// accross -> across
-// acommodate -> accommodate
-// acomplish -> accomplish
-// actualy -> actually
-// acurate -> accurate
-// acutally -> actually
-// addtion -> addition
-// adviced -> advised
-// againnst -> against
-// aganist -> against
-// aggreed -> agreed
-// agianst -> against
-// ahppn -> happen
-// aledge -> allege
-// alledge -> allege
-// allign -> align
-// almsot -> almost
-// alomst -> almost
-// alwasy -> always
-// alwyas -> always
-// amature -> amateur
-// anohter -> another
-// anomolous -> anomalous
-// anomoly -> anomaly
-// anytying -> anything
-// aparent -> apparent
-// aparrent -> apparent
-// apparant -> apparent
-// apparrent -> apparent
-// aquire -> acquire
-// aroud -> around
-// arround -> around
-// arund -> around
-// asthetic -> aesthetic
-// auxilary -> auxiliary
-// auxillary -> auxiliary
-// auxilliary -> auxiliary
-// availabe -> available
-// availaible -> available
-// availalbe -> available
-// availble -> available
-// availiable -> available
-// avalable -> available
-// avaliable -> available
-// avilable -> available
-// baceause -> because
-// bandwith -> bandwidth
-// bankrupcy -> bankruptcy
-// baout -> about
-// beacuse -> because
-// becasue -> because
-// beccause -> because
-// becouse -> because
-// becuase -> because
-// bedore -> before
-// beeing -> being
-// befoer -> before
-// begginer -> beginner
-// beleif -> belief
-// beleive -> believe
-// belive -> believe
-// beteen -> between
-// beween -> between
-// bewteen -> between
-// breif -> brief
-// burried -> buried
-// busness -> business
-// bussiness -> business
-// cacheing -> caching
-// calander -> calendar
-// caluclate -> calculate
-// caluculate -> calculate
-// calulate -> calculate
-// catagory -> category
-// cauhgt -> caught
-// ceratin -> certain
-// certian -> certain
-// cheif -> chief
-// chekc -> check
-// childen -> children
-// chnage -> change
-// choosen -> chosen
-// cieling -> ceiling
-// circut -> circuit
-// claer -> clear
-// clasic -> classic
-// cmoputer -> computer
-// coform -> conform
-// cognizent -> cognizant
-// collegue -> colleague
-// comapny -> company
-// comittee -> committee
-// comming: -> coming
-// commitee -> committee
-// competance -> competence
-// competant -> competent
-// complier -> compiler
-// concensus -> consensus
-// considerd -> considered
-// contian -> contain
-// copywrite: -> copyright
-// cosnt -> const
-// coudl -> could
-// dervied -> derived
-// desicion -> decision
-// didnot -> did not
-// diferent -> different
-// diferrent -> different
-// differnt -> different
-// diffrent -> different
-// divison -> division
-// doulbe -> double
-// dyanmic -> dynamic
-// effecient -> efficient
-// elasped -> elapsed
-// eligable -> eligible
-// elpased -> elapsed
-// embarass -> embarrass
-// embeded -> embedded
-// encypt -> encrypt
-// excecut -> execut
-// excercise -> exercise
-// failse -> false
-// fales -> false
-// fasle -> false
-// feild -> field
-// finaly -> finally
-// firend -> friend
-// firts -> first
-// fitler -> filter
-// flase -> false
-// follwo -> follow
-// foriegn -> foreign
-// foward -> forward
-// fraciton -> fraction
-// freind -> friend
-// frequecy -> frequency
-// fromthe -> from the
-// fucntion -> function
-// fufill -> fulfill
-// fullfill -> fulfill
-// futher -> further
-// ganerate -> generate
-// garantee -> guarantee
-// gaurantee -> guarantee
-// generaly -> generally
-// govement -> government
-// govenment -> government
-// goverment -> government
-// governmnet -> government
-// govorment -> government
-// govornment -> government
-// greatful -> grateful
-// guaratee -> guarantee
-// heigher -> higher
-// heigth -> height
-// heirarchy -> hierarchy
-// higest -> highest
-// howver -> however
-// hydogen -> hydrogen
-// hygeine -> hygiene
-// hypocracy -> hypocrisy
-// hypocrasy -> hypocrisy
-// hypocricy -> hypocrisy
-// hypocrit: -> hypocrite
-// iamge -> image
-// importamt -> important
-// inclued -> include
-// indeces -> indices
-// indecies -> indices
-// indicies -> indices
-// inital -> initial
-// insted -> instead
-// interator -> iterator
-// intput -> input
-// intrest -> interest
-// invliad -> invalid
-// laguage -> language
-// largst -> largest
-// learnign -> learning
-// lenght -> length
-// levle -> level
-// liasion -> liaison
-// libary -> library
-// likly -> likely
-// lisense -> license
-// listner -> listener
-// littel -> little
-// looses: -> loses
-// looup -> lookup
-// macthing -> matching
-// maintence -> maintenance
-// manefist -> manifest
-// mesage -> message
-// morgage -> mortgage
-// mysefl -> myself
-// namesapce -> namespace
-// namespcae -> namespace
-// naturual -> natural
-// neccesary -> necessary
-// necesary -> necessary
-// nulltpr -> nullptr
-// occassion -> occasion
-// occured -> occurred
-// operaotr -> operator
-// ouptut -> output
-// ouput -> output
-// overide -> override
-// ovveride -> override
-// pallete -> palette
-// paralel -> parallel
-// parralel -> parallel
-// parrallel -> parallel
-// particualr -> particular
-// paticular -> particular
-// peaple -> people
-// peice -> piece
-// peolpe -> people
-// peopel -> people
-// perhasp -> perhaps
-// perheaps -> perhaps
-// perhpas -> perhaps
-// perphas -> perhaps
-// persue -> pursue
-// poeople -> people
-// poeple -> people
-// poitner -> pointer
-// posess -> possess
-// postion -> position
-// preiod -> period
-// primarly -> primarily
-// priviledge -> privilege
-// privte -> private
-// probablly -> probably
-// probaly -> probably
-// probelm -> problem
-// proccess -> process
-// proeprty -> property
-// prominant -> prominent
-// proove -> prove
-// propery -> property
-// propogate -> propagate
-// psuedo -> pseudo
-// raelly -> really
-// realtion -> relation
-// realy -> really
-// reasearch -> research
-// receiev -> receiv
-// recepient -> recipient
-// reciept -> receipt
-// reciev -> receiv
-// recipiant -> recipient
-// recrod -> record
-// recuring -> recurring
-// referece -> reference
-// refered -> referred
-// regluar -> regular
-// relaly -> really
-// releated -> related
-// relevent -> relevant
-// repitition -> repetition
-// reponse -> response
-// reprot -> report
-// resutl -> result
-// retrun -> return
-// retun -> return
-// reuslt -> result
-// reutrn -> return
-// reveiw -> review
-// saftey -> safety
-// safty -> safety
-// satisifed -> satisfied
-// scheduel -> schedule
-// seperat -> separat
-// sequnce -> sequence
-// shoudl -> should
-// similiar -> similar
-// simmilar -> similar
-// singed -> signed
-// singel -> single
-// slighly -> slightly
-// somehwat -> somewhat
-// spectogram -> spectrogram
-// statment -> statement
-// stirng -> string
-// stregth -> strength
-// strengh -> strength
-// strign -> string
-// succsess -> success
-// sucess -> success
-// sugest -> suggest
-// sumary -> summary
-// supress -> suppress
-// surpress -> suppress
-// swithc -> switch
-// swtich -> switch
-// symetric -> symmetric
-// teamplate -> template
-// tempalte -> template
-// theese -> these
-// therfore -> therefore
-// thign -> thing
-// thigsn -> things
-// thikn -> think
-// thiunk -> think
-// thnigs -> things
-// thresold -> threshold
-// throught -> thought
-// tihkn -> think
-// tkaes -> takes
-// todya -> today
-// toghether -> together
-// tolerence -> tolerance
-// tongiht -> tonight
-// tranpose -> transpose
-// typcial -> typical
-// udpate -> update
-// unkown -> unknown
-// unqiue -> unique
-// ususally -> usually
-// verticies -> vertices
-// virutal -> virtual
-// vitual -> virtual
-// whcih -> which
-// whereever -> wherever
-// wherre -> where
-// whihc -> which
-// whlch -> which
-// widht -> width
-// wierd -> weird
-// wihch -> which
-// woudl -> would
-// yeild -> yield
-
-#define AUTOCORRECTION_MIN_LENGTH 5 // "abotu"
-#define AUTOCORRECTION_MAX_LENGTH 10 // "auxilliary"
-
-static const uint8_t autocorrection_data[5967] PROGMEM = {108, 67, 0, 4, 212, 0,
- 6, 236, 0, 7, 100, 1, 8, 15, 3, 9, 169, 8, 10, 204, 8, 11, 68, 9, 12, 246, 9,
- 14, 0, 10, 15, 28, 10, 16, 79, 11, 17, 129, 11, 18, 175, 13, 19, 227, 13, 21,
- 253, 13, 22, 194, 15, 23, 121, 17, 24, 201, 20, 25, 210, 20, 26, 8, 21, 28,
- 34, 21, 0, 71, 89, 0, 8, 99, 0, 10, 130, 0, 18, 142, 0, 22, 152, 0, 23, 163,
- 0, 24, 202, 0, 0, 22, 8, 24, 44, 0, 131, 115, 101, 100, 0, 75, 106, 0, 23,
- 115, 0, 0, 23, 44, 8, 11, 23, 44, 0, 132, 0, 12, 21, 26, 28, 19, 18, 6, 0,
- 133, 114, 105, 103, 104, 116, 0, 17, 12, 16, 16, 18, 6, 0, 132, 105, 110, 103,
- 0, 15, 22, 4, 44, 0, 131, 108, 115, 111, 0, 8, 22, 18, 18, 15, 0, 132, 115,
- 101, 115, 0, 76, 173, 0, 18, 183, 0, 24, 193, 0, 0, 21, 6, 18, 19, 28, 11, 0,
- 128, 101, 0, 15, 4, 44, 0, 131, 32, 108, 111, 116, 0, 22, 13, 44, 0, 131, 117,
- 115, 116, 0, 23, 22, 13, 44, 0, 131, 117, 115, 116, 0, 87, 219, 0, 28, 228, 0,
- 0, 24, 18, 5, 4, 0, 128, 32, 97, 0, 7, 18, 23, 0, 129, 97, 121, 0, 75, 246, 0,
- 12, 28, 1, 14, 92, 1, 0, 76, 253, 0, 23, 20, 1, 0, 75, 4, 1, 26, 10, 1, 0, 26,
- 0, 129, 99, 104, 0, 11, 44, 0, 132, 119, 104, 105, 99, 104, 0, 12, 26, 22, 0,
- 129, 99, 104, 0, 80, 41, 1, 21, 53, 1, 22, 67, 1, 23, 76, 1, 0, 17, 4, 28, 7,
- 0, 132, 110, 97, 109, 105, 99, 0, 23, 8, 16, 28, 22, 0, 132, 109, 101, 116,
- 114, 105, 99, 0, 4, 15, 6, 0, 129, 115, 105, 99, 0, 8, 11, 23, 22, 4, 0, 134,
- 101, 115, 116, 104, 101, 116, 105, 99, 0, 8, 11, 6, 0, 129, 99, 107, 0, 68,
- 122, 1, 8, 134, 1, 15, 84, 2, 17, 124, 2, 18, 180, 2, 21, 207, 2, 24, 7, 3, 0,
- 12, 15, 25, 17, 12, 0, 131, 97, 108, 105, 100, 0, 70, 168, 1, 7, 178, 1, 8,
- 188, 1, 9, 199, 1, 10, 212, 1, 12, 222, 1, 19, 248, 1, 21, 3, 2, 22, 38, 2,
- 23, 50, 2, 24, 75, 2, 0, 12, 25, 7, 4, 0, 130, 115, 101, 100, 0, 8, 5, 16, 8,
- 0, 129, 100, 101, 100, 0, 21, 10, 10, 4, 0, 132, 114, 101, 101, 100, 0, 12,
- 22, 12, 23, 4, 22, 0, 131, 102, 105, 101, 100, 0, 17, 12, 22, 0, 131, 103,
- 110, 101, 100, 0, 85, 229, 1, 25, 238, 1, 0, 21, 24, 5, 0, 131, 105, 101, 100,
- 0, 21, 8, 7, 0, 131, 105, 118, 101, 100, 0, 22, 4, 15, 8, 0, 131, 112, 115,
- 101, 100, 0, 72, 13, 2, 10, 22, 2, 24, 29, 2, 0, 9, 8, 21, 0, 129, 114, 101,
- 100, 0, 4, 44, 0, 128, 101, 100, 0, 6, 6, 18, 0, 129, 114, 101, 100, 0, 4, 19,
- 15, 8, 0, 132, 97, 112, 115, 101, 100, 0, 68, 57, 2, 22, 68, 2, 0, 8, 15, 8,
- 21, 0, 132, 97, 116, 101, 100, 0, 17, 12, 0, 128, 97, 100, 0, 15, 6, 17, 12,
- 0, 129, 100, 101, 0, 76, 91, 2, 18, 112, 2, 0, 8, 0, 73, 100, 2, 28, 106, 2,
- 0, 131, 105, 101, 108, 100, 0, 131, 105, 101, 108, 100, 0, 22, 8, 21, 11, 23,
- 0, 130, 104, 111, 108, 100, 0, 72, 134, 2, 12, 145, 2, 24, 155, 2, 0, 21, 12,
- 9, 0, 132, 114, 105, 101, 110, 100, 0, 8, 21, 9, 0, 131, 105, 101, 110, 100,
- 0, 82, 162, 2, 21, 172, 2, 0, 21, 21, 4, 0, 132, 111, 117, 110, 100, 0, 4, 0,
- 130, 111, 117, 110, 100, 0, 76, 187, 2, 21, 198, 2, 0, 8, 21, 19, 0, 132, 101,
- 114, 105, 111, 100, 0, 6, 8, 21, 0, 130, 111, 114, 100, 0, 68, 217, 2, 8, 228,
- 2, 24, 253, 2, 0, 26, 18, 9, 0, 131, 114, 119, 97, 114, 100, 0, 71, 235, 2,
- 12, 245, 2, 0, 12, 22, 17, 18, 6, 0, 128, 101, 100, 0, 26, 0, 131, 101, 105,
- 114, 100, 0, 4, 10, 44, 0, 131, 117, 97, 114, 100, 0, 18, 21, 4, 0, 128, 110,
- 100, 0, 68, 67, 3, 5, 80, 3, 6, 123, 3, 7, 251, 3, 8, 23, 4, 10, 107, 4, 11,
- 227, 4, 12, 52, 5, 15, 61, 5, 17, 0, 6, 18, 27, 6, 19, 37, 6, 21, 47, 6, 22,
- 156, 6, 23, 82, 7, 24, 45, 8, 25, 115, 8, 0, 6, 19, 22, 8, 16, 4, 17, 0, 130,
- 97, 99, 101, 0, 68, 87, 3, 15, 97, 3, 0, 15, 12, 4, 25, 4, 0, 128, 108, 101,
- 0, 68, 104, 3, 24, 115, 3, 0, 15, 12, 4, 25, 4, 0, 130, 98, 108, 101, 0, 18,
- 7, 0, 130, 98, 108, 101, 0, 72, 136, 3, 12, 147, 3, 17, 156, 3, 19, 238, 3, 0,
- 21, 8, 9, 8, 21, 0, 129, 110, 99, 101, 0, 8, 19, 0, 131, 105, 101, 99, 101, 0,
- 68, 166, 3, 8, 179, 3, 24, 228, 3, 0, 23, 8, 19, 16, 18, 6, 0, 131, 101, 110,
- 99, 101, 0, 85, 186, 3, 23, 217, 3, 0, 8, 0, 73, 195, 3, 15, 208, 3, 0, 21,
- 44, 0, 134, 101, 102, 101, 114, 101, 110, 99, 101, 0, 18, 23, 0, 131, 97, 110,
- 99, 101, 0, 17, 12, 4, 16, 0, 129, 97, 110, 99, 101, 0, 20, 8, 22, 0, 130,
- 101, 110, 99, 101, 0, 4, 22, 8, 16, 4, 17, 0, 131, 112, 97, 99, 101, 0, 12,
- 21, 8, 25, 0, 82, 7, 4, 25, 13, 4, 0, 130, 114, 105, 100, 101, 0, 18, 0, 133,
- 101, 114, 114, 105, 100, 101, 0, 23, 0, 68, 38, 4, 12, 49, 4, 17, 59, 4, 23,
- 94, 4, 0, 21, 4, 24, 10, 0, 130, 110, 116, 101, 101, 0, 16, 16, 18, 6, 0, 129,
- 116, 101, 101, 0, 4, 21, 0, 68, 69, 4, 24, 81, 4, 0, 10, 0, 134, 117, 97, 114,
- 97, 110, 116, 101, 101, 0, 4, 10, 0, 135, 117, 97, 114, 97, 110, 116, 101,
- 101, 0, 12, 16, 18, 6, 0, 132, 109, 105, 116, 116, 101, 101, 0, 68, 117, 4, 7,
- 184, 4, 16, 218, 4, 0, 74, 130, 4, 17, 141, 4, 22, 150, 4, 24, 159, 4, 0, 21,
- 18, 16, 0, 131, 116, 103, 97, 103, 101, 0, 11, 6, 0, 131, 97, 110, 103, 101,
- 0, 8, 16, 0, 130, 115, 97, 103, 101, 0, 10, 0, 108, 168, 4, 4, 174, 4, 0, 131,
- 97, 117, 103, 101, 0, 15, 0, 132, 110, 103, 117, 97, 103, 101, 0, 8, 15, 0,
- 68, 197, 4, 12, 203, 4, 15, 212, 4, 0, 131, 108, 101, 103, 101, 0, 25, 12, 21,
- 19, 0, 130, 103, 101, 0, 4, 0, 130, 103, 101, 0, 4, 12, 0, 131, 109, 97, 103,
- 101, 0, 23, 0, 71, 245, 4, 16, 255, 4, 18, 9, 5, 22, 18, 5, 23, 27, 5, 0, 17,
- 4, 44, 0, 130, 32, 116, 104, 101, 0, 18, 21, 9, 0, 130, 32, 116, 104, 101, 0,
- 23, 44, 0, 130, 32, 116, 104, 101, 0, 4, 44, 0, 130, 32, 116, 104, 101, 0, 68,
- 34, 5, 24, 42, 5, 0, 44, 0, 130, 32, 116, 104, 101, 0, 18, 5, 4, 0, 130, 32,
- 116, 104, 101, 0, 29, 22, 44, 0, 130, 105, 122, 101, 0, 69, 77, 5, 12, 190, 5,
- 19, 201, 5, 22, 241, 5, 25, 249, 5, 0, 68, 87, 5, 12, 167, 5, 15, 179, 5, 0,
- 74, 97, 5, 12, 107, 5, 15, 137, 5, 0, 12, 15, 8, 0, 131, 105, 98, 108, 101, 0,
- 15, 0, 68, 116, 5, 12, 127, 5, 0, 25, 4, 0, 133, 105, 108, 97, 98, 108, 101,
- 0, 4, 25, 4, 0, 132, 97, 98, 108, 101, 0, 68, 144, 5, 12, 155, 5, 0, 25, 4, 0,
- 132, 105, 108, 97, 98, 108, 101, 0, 25, 4, 0, 133, 97, 105, 108, 97, 98, 108,
- 101, 0, 4, 15, 12, 4, 25, 4, 0, 131, 98, 108, 101, 0, 12, 4, 25, 4, 0, 130,
- 97, 98, 108, 101, 0, 26, 11, 44, 0, 132, 119, 104, 105, 108, 101, 0, 68, 211,
- 5, 8, 220, 5, 18, 230, 5, 0, 8, 19, 0, 131, 111, 112, 108, 101, 0, 18, 19, 0,
- 132, 101, 111, 112, 108, 101, 0, 8, 18, 19, 0, 133, 101, 111, 112, 108, 101,
- 0, 4, 9, 0, 130, 108, 115, 101, 0, 8, 15, 0, 129, 101, 108, 0, 70, 7, 6, 12,
- 16, 6, 0, 12, 22, 44, 0, 130, 110, 99, 101, 0, 8, 10, 28, 11, 0, 131, 105,
- 101, 110, 101, 0, 22, 11, 23, 44, 0, 130, 111, 115, 101, 0, 15, 18, 8, 19, 0,
- 130, 112, 108, 101, 0, 70, 66, 6, 8, 76, 6, 12, 87, 6, 18, 99, 6, 21, 127, 6,
- 24, 134, 6, 0, 18, 22, 44, 0, 131, 99, 111, 114, 101, 0, 23, 11, 44, 0, 132,
- 116, 104, 101, 114, 101, 0, 24, 20, 4, 0, 132, 99, 113, 117, 105, 114, 101, 0,
- 71, 106, 6, 9, 115, 6, 0, 8, 5, 0, 131, 102, 111, 114, 101, 0, 21, 8, 11, 23,
- 0, 131, 101, 102, 111, 114, 101, 0, 8, 11, 26, 0, 129, 101, 0, 23, 0, 108,
- 143, 6, 4, 148, 6, 0, 130, 114, 117, 101, 0, 16, 4, 0, 130, 101, 117, 114, 0,
- 68, 178, 6, 8, 203, 6, 12, 211, 6, 15, 226, 6, 17, 235, 6, 18, 9, 7, 24, 22,
- 7, 0, 79, 185, 6, 24, 193, 6, 0, 9, 0, 131, 97, 108, 115, 101, 0, 6, 8, 5, 0,
- 131, 97, 117, 115, 101, 0, 8, 11, 23, 0, 130, 115, 101, 0, 6, 21, 8, 6, 27, 8,
- 0, 134, 101, 114, 99, 105, 115, 101, 0, 12, 4, 9, 0, 131, 108, 115, 101, 0,
- 72, 242, 6, 18, 253, 6, 0, 22, 12, 15, 0, 132, 99, 101, 110, 115, 101, 0, 19,
- 8, 21, 0, 132, 115, 112, 111, 110, 115, 101, 0, 19, 17, 4, 21, 23, 0, 131,
- 115, 112, 111, 115, 101, 0, 68, 32, 7, 6, 61, 7, 18, 72, 7, 0, 70, 39, 7, 8,
- 49, 7, 0, 6, 8, 5, 0, 132, 97, 117, 115, 101, 0, 6, 4, 5, 0, 134, 101, 99, 97,
- 117, 115, 101, 0, 4, 8, 5, 0, 132, 99, 97, 117, 115, 101, 0, 6, 8, 5, 0, 131,
- 97, 117, 115, 101, 0, 68, 95, 7, 8, 13, 8, 15, 24, 8, 25, 36, 8, 0, 71, 111,
- 7, 10, 148, 7, 15, 161, 7, 19, 228, 7, 21, 238, 7, 0, 18, 16, 0, 80, 121, 7,
- 18, 136, 7, 0, 18, 6, 4, 0, 135, 99, 111, 109, 109, 111, 100, 97, 116, 101, 0,
- 6, 6, 4, 0, 132, 109, 111, 100, 97, 116, 101, 0, 18, 19, 18, 21, 19, 0, 132,
- 97, 103, 97, 116, 101, 0, 70, 171, 7, 19, 184, 7, 24, 197, 7, 0, 24, 15, 4, 6,
- 0, 133, 99, 117, 108, 97, 116, 101, 0, 16, 4, 8, 23, 0, 134, 109, 112, 108,
- 97, 116, 101, 0, 70, 204, 7, 15, 217, 7, 0, 24, 15, 4, 6, 0, 134, 99, 117,
- 108, 97, 116, 101, 0, 4, 6, 0, 132, 99, 117, 108, 97, 116, 101, 0, 7, 24, 0,
- 132, 112, 100, 97, 116, 101, 0, 72, 245, 7, 24, 2, 8, 0, 17, 4, 10, 0, 134,
- 101, 110, 101, 114, 97, 116, 101, 0, 6, 4, 0, 132, 99, 117, 114, 97, 116, 101,
- 0, 15, 15, 4, 19, 0, 131, 101, 116, 116, 101, 0, 4, 19, 16, 8, 23, 0, 131,
- 108, 97, 116, 101, 0, 12, 21, 19, 0, 129, 97, 116, 101, 0, 74, 55, 8, 12, 67,
- 8, 22, 77, 8, 0, 8, 15, 15, 18, 6, 0, 130, 97, 103, 117, 101, 0, 20, 17, 24,
- 0, 131, 105, 113, 117, 101, 0, 68, 84, 8, 21, 105, 8, 0, 6, 0, 108, 93, 8, 8,
- 98, 8, 0, 130, 117, 115, 101, 0, 5, 0, 130, 117, 115, 101, 0, 8, 19, 0, 132,
- 117, 114, 115, 117, 101, 0, 76, 122, 8, 18, 147, 8, 0, 72, 129, 8, 15, 139, 8,
- 0, 15, 8, 5, 0, 131, 105, 101, 118, 101, 0, 8, 5, 0, 129, 101, 118, 101, 0,
- 82, 154, 8, 25, 161, 8, 0, 21, 19, 0, 130, 118, 101, 0, 5, 4, 0, 131, 111,
- 118, 101, 0, 12, 8, 0, 75, 182, 8, 15, 189, 8, 21, 197, 8, 0, 6, 0, 130, 105,
- 101, 102, 0, 8, 5, 0, 130, 105, 101, 102, 0, 5, 0, 130, 105, 101, 102, 0, 76,
- 211, 8, 17, 221, 8, 0, 17, 18, 10, 44, 0, 130, 105, 110, 103, 0, 76, 228, 8,
- 21, 58, 9, 0, 72, 244, 8, 11, 11, 9, 15, 24, 9, 21, 36, 9, 28, 47, 9, 0, 72,
- 251, 8, 11, 2, 9, 0, 5, 0, 131, 105, 110, 103, 0, 6, 4, 6, 0, 131, 105, 110,
- 103, 0, 23, 6, 4, 16, 0, 133, 116, 99, 104, 105, 110, 103, 0, 8, 12, 6, 0,
- 133, 101, 105, 108, 105, 110, 103, 0, 24, 6, 8, 21, 0, 130, 114, 105, 110,
- 103, 0, 23, 28, 17, 4, 0, 131, 104, 105, 110, 103, 0, 12, 23, 22, 0, 131, 114,
- 105, 110, 103, 0, 70, 87, 9, 8, 142, 9, 10, 154, 9, 12, 164, 9, 22, 173, 9,
- 23, 191, 9, 0, 75, 100, 9, 12, 109, 9, 15, 119, 9, 21, 127, 9, 0, 12, 26, 0,
- 131, 104, 105, 99, 104, 0, 23, 26, 22, 0, 131, 105, 116, 99, 104, 0, 11, 26,
- 0, 130, 105, 99, 104, 0, 4, 8, 22, 4, 8, 21, 0, 134, 115, 101, 97, 114, 99,
- 104, 0, 23, 7, 17, 4, 44, 0, 130, 32, 116, 104, 101, 0, 17, 8, 21, 23, 22, 0,
- 128, 116, 104, 0, 6, 11, 26, 0, 130, 105, 99, 104, 0, 12, 15, 19, 16, 18, 6,
- 4, 0, 134, 99, 111, 109, 112, 108, 105, 115, 104, 0, 74, 201, 9, 12, 225, 9,
- 21, 236, 9, 0, 72, 208, 9, 12, 218, 9, 0, 21, 23, 22, 0, 130, 110, 103, 116,
- 104, 0, 8, 11, 0, 129, 104, 116, 0, 26, 7, 17, 4, 5, 0, 129, 100, 116, 104, 0,
- 24, 23, 44, 0, 131, 114, 117, 116, 104, 0, 21, 8, 11, 23, 44, 0, 129, 105,
- 114, 0, 17, 0, 76, 9, 10, 24, 20, 10, 0, 23, 11, 44, 0, 132, 116, 104, 105,
- 110, 107, 0, 12, 11, 23, 0, 130, 110, 107, 0, 68, 50, 10, 7, 134, 10, 8, 177,
- 10, 9, 17, 11, 15, 26, 11, 23, 55, 11, 24, 64, 11, 0, 76, 60, 10, 23, 71, 10,
- 24, 96, 10, 0, 6, 19, 28, 23, 0, 131, 105, 99, 97, 108, 0, 76, 78, 10, 24, 86,
- 10, 0, 17, 12, 0, 129, 105, 97, 108, 0, 21, 12, 25, 0, 131, 116, 117, 97, 108,
- 0, 81, 106, 10, 21, 115, 10, 23, 124, 10, 0, 4, 44, 0, 130, 110, 117, 97, 108,
- 0, 24, 23, 4, 17, 0, 130, 97, 108, 0, 12, 25, 0, 131, 114, 116, 117, 97, 108,
- 0, 24, 0, 82, 143, 10, 26, 167, 10, 0, 70, 153, 10, 11, 157, 10, 26, 163, 10,
- 0, 129, 108, 100, 0, 22, 0, 129, 108, 100, 0, 129, 108, 100, 0, 18, 44, 0,
- 132, 119, 111, 117, 108, 100, 0, 74, 193, 10, 15, 201, 10, 19, 247, 10, 23,
- 255, 10, 24, 7, 11, 0, 17, 12, 22, 0, 129, 108, 101, 0, 68, 208, 10, 15, 234,
- 10, 0, 21, 0, 68, 217, 10, 21, 224, 10, 0, 19, 0, 129, 108, 101, 108, 0, 4,
- 19, 0, 132, 97, 108, 108, 101, 108, 0, 4, 21, 21, 4, 19, 0, 133, 97, 108, 108,
- 101, 108, 0, 18, 8, 19, 0, 129, 108, 101, 0, 23, 12, 15, 0, 129, 108, 101, 0,
- 7, 8, 11, 6, 22, 0, 129, 108, 101, 0, 8, 22, 28, 16, 0, 129, 108, 102, 0, 12,
- 9, 0, 79, 36, 11, 24, 46, 11, 0, 15, 24, 9, 0, 132, 102, 105, 108, 108, 0, 9,
- 0, 131, 108, 102, 105, 108, 108, 0, 24, 22, 8, 21, 0, 129, 108, 116, 0, 9, 23,
- 4, 8, 21, 10, 0, 133, 97, 116, 101, 102, 117, 108, 0, 68, 89, 11, 15, 106, 11,
- 21, 117, 11, 0, 21, 10, 18, 23, 6, 8, 19, 22, 0, 132, 114, 111, 103, 114, 97,
- 109, 0, 8, 5, 18, 21, 19, 0, 130, 108, 101, 109, 0, 18, 9, 18, 6, 0, 131, 110,
- 102, 111, 114, 109, 0, 68, 166, 11, 7, 206, 11, 8, 215, 11, 10, 58, 12, 12,
- 141, 12, 14, 153, 12, 18, 192, 12, 19, 108, 13, 21, 120, 13, 22, 131, 13, 24,
- 141, 13, 26, 164, 13, 0, 12, 0, 74, 175, 11, 23, 183, 11, 0, 4, 44, 0, 130,
- 97, 105, 110, 0, 81, 190, 11, 21, 198, 11, 0, 18, 6, 0, 130, 97, 105, 110, 0,
- 8, 6, 0, 130, 97, 105, 110, 0, 24, 18, 9, 44, 0, 129, 110, 100, 0, 71, 231,
- 11, 8, 241, 11, 10, 27, 12, 19, 39, 12, 22, 48, 12, 0, 15, 12, 11, 6, 0, 129,
- 114, 101, 110, 0, 87, 248, 11, 26, 17, 12, 0, 72, 255, 11, 26, 7, 12, 0, 5, 0,
- 130, 119, 101, 101, 110, 0, 8, 5, 0, 132, 116, 119, 101, 101, 110, 0, 8, 5, 0,
- 131, 116, 119, 101, 101, 110, 0, 18, 7, 28, 11, 0, 131, 114, 111, 103, 101,
- 110, 0, 4, 11, 44, 0, 129, 112, 101, 110, 0, 18, 18, 11, 6, 0, 131, 115, 101,
- 110, 0, 72, 65, 12, 12, 76, 12, 0, 12, 21, 18, 9, 0, 131, 101, 105, 103, 110,
- 0, 75, 95, 12, 15, 101, 12, 17, 109, 12, 18, 118, 12, 21, 125, 12, 22, 132,
- 12, 0, 23, 0, 129, 110, 103, 0, 15, 4, 0, 131, 105, 103, 110, 0, 21, 4, 8, 15,
- 0, 129, 110, 103, 0, 10, 44, 0, 129, 110, 103, 0, 23, 22, 0, 129, 110, 103, 0,
- 4, 44, 0, 130, 115, 105, 103, 110, 0, 23, 4, 21, 8, 6, 0, 131, 116, 97, 105,
- 110, 0, 75, 160, 12, 12, 169, 12, 0, 12, 23, 0, 131, 104, 105, 110, 107, 0,
- 75, 176, 12, 23, 182, 12, 0, 23, 0, 129, 110, 107, 0, 11, 44, 0, 132, 116,
- 104, 105, 110, 107, 0, 76, 202, 12, 22, 86, 13, 23, 96, 13, 0, 70, 212, 12,
- 22, 225, 12, 23, 251, 12, 0, 12, 22, 8, 7, 0, 133, 99, 105, 115, 105, 111,
- 110, 0, 68, 232, 12, 22, 241, 12, 0, 12, 15, 0, 131, 105, 115, 111, 110, 0, 4,
- 6, 6, 18, 0, 131, 105, 111, 110, 0, 68, 14, 13, 7, 27, 13, 12, 37, 13, 15, 52,
- 13, 17, 64, 13, 22, 76, 13, 0, 21, 8, 5, 4, 0, 132, 114, 97, 116, 105, 111,
- 110, 0, 7, 4, 0, 131, 105, 116, 105, 111, 110, 0, 23, 12, 19, 8, 21, 0, 134,
- 101, 116, 105, 116, 105, 111, 110, 0, 4, 8, 21, 0, 133, 108, 97, 116, 105,
- 111, 110, 0, 6, 24, 9, 0, 133, 110, 99, 116, 105, 111, 110, 0, 18, 19, 0, 131,
- 105, 116, 105, 111, 110, 0, 12, 25, 12, 7, 0, 129, 105, 111, 110, 0, 12, 6, 4,
- 21, 9, 0, 131, 116, 105, 111, 110, 0, 19, 11, 4, 0, 132, 104, 97, 112, 112,
- 101, 110, 0, 23, 24, 8, 21, 0, 131, 116, 117, 114, 110, 0, 10, 12, 11, 23, 0,
- 130, 110, 103, 115, 0, 85, 148, 13, 23, 157, 13, 0, 23, 8, 21, 0, 130, 117,
- 114, 110, 0, 8, 21, 0, 128, 114, 110, 0, 18, 14, 17, 24, 0, 130, 110, 111,
- 119, 110, 0, 71, 185, 13, 17, 196, 13, 26, 205, 13, 0, 8, 24, 22, 19, 0, 131,
- 101, 117, 100, 111, 0, 26, 14, 44, 0, 130, 110, 111, 119, 0, 79, 212, 13, 17,
- 220, 13, 0, 15, 18, 9, 0, 129, 111, 119, 0, 14, 44, 0, 129, 111, 119, 0, 86,
- 234, 13, 24, 244, 13, 0, 4, 11, 21, 8, 19, 0, 129, 112, 115, 0, 18, 18, 15, 0,
- 129, 107, 117, 112, 0, 68, 28, 14, 8, 93, 14, 11, 103, 15, 15, 113, 15, 18,
- 127, 15, 19, 144, 15, 22, 155, 15, 23, 164, 15, 24, 176, 15, 28, 185, 15, 0,
- 76, 38, 14, 15, 48, 14, 24, 82, 14, 0, 15, 12, 16, 12, 22, 0, 130, 97, 114, 0,
- 76, 55, 14, 24, 66, 14, 0, 16, 16, 12, 22, 0, 132, 105, 108, 97, 114, 0, 6,
- 12, 23, 4, 19, 0, 134, 114, 116, 105, 99, 117, 108, 97, 114, 0, 15, 10, 8, 21,
- 0, 131, 117, 108, 97, 114, 0, 68, 124, 14, 7, 132, 14, 11, 145, 14, 12, 203,
- 14, 15, 229, 14, 16, 239, 14, 17, 249, 14, 18, 37, 15, 23, 45, 15, 25, 76, 15,
- 0, 15, 6, 0, 130, 101, 97, 114, 0, 17, 4, 15, 4, 6, 0, 132, 101, 110, 100, 97,
- 114, 0, 74, 152, 14, 23, 163, 14, 0, 12, 8, 11, 0, 133, 105, 103, 104, 101,
- 114, 0, 72, 173, 14, 15, 185, 14, 24, 194, 14, 0, 11, 10, 18, 23, 0, 133, 101,
- 116, 104, 101, 114, 0, 18, 44, 0, 132, 116, 104, 101, 114, 0, 9, 0, 131, 114,
- 116, 104, 101, 114, 0, 75, 210, 14, 15, 218, 14, 0, 23, 44, 0, 130, 101, 105,
- 114, 0, 19, 16, 18, 6, 0, 131, 105, 108, 101, 114, 0, 23, 12, 9, 0, 131, 108,
- 116, 101, 114, 0, 16, 4, 21, 10, 44, 0, 129, 97, 114, 0, 76, 0, 15, 23, 12,
- 15, 0, 10, 10, 8, 5, 0, 132, 105, 110, 110, 101, 114, 0, 76, 19, 15, 22, 28,
- 15, 0, 18, 19, 0, 131, 110, 116, 101, 114, 0, 12, 15, 0, 130, 101, 110, 101,
- 114, 0, 9, 8, 5, 0, 129, 114, 101, 0, 75, 52, 15, 24, 62, 15, 0, 18, 17, 4, 0,
- 131, 116, 104, 101, 114, 0, 19, 18, 16, 6, 0, 134, 111, 109, 112, 117, 116,
- 101, 114, 0, 72, 83, 15, 26, 94, 15, 0, 8, 21, 8, 11, 26, 0, 131, 118, 101,
- 114, 0, 18, 11, 0, 130, 101, 118, 101, 114, 0, 8, 23, 18, 44, 0, 130, 104,
- 101, 114, 0, 4, 24, 6, 12, 23, 21, 4, 19, 0, 130, 108, 97, 114, 0, 23, 4, 21,
- 8, 23, 17, 12, 0, 135, 116, 101, 114, 97, 116, 111, 114, 0, 23, 15, 15, 24,
- 17, 0, 130, 112, 116, 114, 0, 4, 8, 28, 44, 0, 129, 114, 115, 0, 18, 4, 21, 8,
- 19, 18, 0, 130, 116, 111, 114, 0, 6, 18, 44, 0, 129, 99, 117, 114, 0, 8, 25,
- 8, 44, 0, 129, 114, 121, 0, 68, 219, 15, 8, 3, 16, 10, 147, 16, 19, 158, 16,
- 21, 170, 16, 22, 181, 16, 23, 77, 17, 24, 85, 17, 0, 75, 229, 15, 19, 240, 15,
- 28, 250, 15, 0, 19, 21, 8, 19, 0, 131, 104, 97, 112, 115, 0, 11, 21, 8, 19, 0,
- 130, 97, 112, 115, 0, 26, 15, 4, 0, 130, 97, 121, 115, 0, 68, 19, 16, 6, 42,
- 16, 12, 53, 16, 15, 129, 16, 22, 136, 16, 0, 71, 26, 16, 14, 34, 16, 0, 12,
- 44, 0, 130, 101, 97, 115, 0, 23, 0, 131, 97, 107, 101, 115, 0, 8, 7, 17, 12,
- 0, 131, 105, 99, 101, 115, 0, 70, 63, 16, 21, 102, 16, 23, 117, 16, 0, 72, 70,
- 16, 12, 80, 16, 0, 7, 17, 12, 0, 132, 105, 99, 101, 115, 0, 71, 87, 16, 23,
- 94, 16, 0, 17, 12, 0, 130, 101, 115, 0, 21, 8, 25, 0, 130, 101, 115, 0, 18,
- 22, 8, 6, 6, 4, 0, 132, 115, 111, 114, 105, 101, 115, 0, 15, 12, 5, 4, 0, 131,
- 105, 116, 105, 101, 115, 0, 4, 9, 0, 129, 115, 101, 0, 18, 11, 6, 44, 0, 130,
- 111, 115, 101, 115, 0, 12, 17, 11, 23, 0, 131, 105, 110, 103, 115, 0, 4, 8,
- 11, 21, 8, 19, 0, 131, 97, 112, 115, 0, 8, 4, 28, 44, 0, 131, 101, 97, 114,
- 115, 0, 68, 191, 16, 8, 203, 16, 18, 66, 17, 0, 21, 4, 5, 16, 8, 0, 130, 114,
- 97, 115, 115, 0, 70, 216, 16, 17, 240, 16, 21, 13, 17, 22, 42, 17, 0, 70, 223,
- 16, 24, 232, 16, 0, 18, 21, 19, 0, 131, 101, 115, 115, 0, 22, 0, 130, 99, 101,
- 115, 115, 0, 76, 247, 16, 22, 3, 17, 0, 22, 22, 24, 5, 0, 133, 105, 110, 101,
- 115, 115, 0, 24, 5, 0, 131, 105, 110, 101, 115, 115, 0, 19, 0, 85, 22, 17, 24,
- 33, 17, 0, 24, 22, 0, 133, 112, 112, 114, 101, 115, 115, 0, 22, 0, 131, 112,
- 114, 101, 115, 115, 0, 70, 49, 17, 18, 58, 17, 0, 6, 24, 22, 0, 131, 101, 115,
- 115, 0, 19, 0, 130, 115, 101, 115, 115, 0, 21, 6, 6, 4, 0, 132, 114, 111, 115,
- 115, 0, 21, 12, 9, 0, 129, 115, 116, 0, 82, 92, 17, 22, 106, 17, 0, 15, 18,
- 16, 18, 17, 4, 0, 132, 97, 108, 111, 117, 115, 0, 17, 8, 6, 17, 18, 6, 0, 133,
- 115, 101, 110, 115, 117, 115, 0, 68, 158, 17, 8, 188, 17, 10, 217, 17, 11,
- 227, 17, 12, 25, 18, 15, 36, 18, 16, 47, 18, 17, 59, 18, 18, 151, 19, 19, 189,
- 19, 22, 217, 19, 24, 107, 20, 0, 85, 165, 17, 26, 176, 17, 0, 8, 19, 8, 22, 0,
- 131, 97, 114, 97, 116, 0, 11, 8, 16, 18, 22, 0, 131, 119, 104, 97, 116, 0, 68,
- 195, 17, 17, 204, 17, 0, 21, 10, 44, 0, 130, 101, 97, 116, 0, 16, 17, 21, 8,
- 25, 18, 10, 0, 130, 101, 110, 116, 0, 11, 24, 4, 6, 0, 130, 103, 104, 116, 0,
- 71, 237, 17, 10, 244, 17, 12, 14, 18, 0, 12, 26, 0, 129, 116, 104, 0, 81, 251,
- 17, 24, 2, 18, 0, 8, 15, 0, 129, 116, 104, 0, 18, 21, 11, 23, 0, 133, 111,
- 117, 103, 104, 116, 0, 10, 17, 18, 23, 0, 131, 105, 103, 104, 116, 0, 23, 24,
- 18, 5, 4, 0, 129, 32, 105, 116, 0, 22, 24, 8, 21, 0, 131, 115, 117, 108, 116,
- 0, 4, 23, 21, 18, 19, 16, 12, 0, 129, 110, 116, 0, 68, 72, 18, 8, 128, 18, 21,
- 132, 19, 22, 143, 19, 0, 76, 85, 18, 17, 96, 18, 21, 107, 18, 23, 117, 18, 0,
- 19, 12, 6, 8, 21, 0, 130, 101, 110, 116, 0, 12, 16, 18, 21, 19, 0, 130, 101,
- 110, 116, 0, 4, 19, 19, 4, 0, 130, 101, 110, 116, 0, 8, 19, 16, 18, 6, 0, 130,
- 101, 110, 116, 0, 76, 144, 18, 16, 177, 18, 21, 21, 19, 25, 111, 19, 29, 121,
- 19, 0, 70, 151, 18, 19, 164, 18, 0, 8, 9, 9, 8, 0, 133, 105, 99, 105, 101,
- 110, 116, 0, 8, 6, 8, 21, 0, 133, 105, 112, 105, 101, 110, 116, 0, 72, 190,
- 18, 17, 202, 18, 21, 235, 18, 23, 10, 19, 0, 25, 18, 10, 0, 131, 114, 110,
- 109, 101, 110, 116, 0, 72, 209, 18, 21, 221, 18, 0, 25, 18, 10, 0, 132, 114,
- 110, 109, 101, 110, 116, 0, 18, 25, 18, 10, 0, 134, 101, 114, 110, 109, 101,
- 110, 116, 0, 72, 242, 18, 18, 253, 18, 0, 25, 18, 10, 0, 131, 110, 109, 101,
- 110, 116, 0, 25, 18, 10, 0, 133, 101, 114, 110, 109, 101, 110, 116, 0, 4, 23,
- 22, 0, 131, 101, 109, 101, 110, 116, 0, 68, 34, 19, 8, 45, 19, 9, 57, 19, 21,
- 68, 19, 0, 19, 4, 0, 132, 112, 97, 114, 101, 110, 116, 0, 9, 12, 7, 0, 132,
- 102, 101, 114, 101, 110, 116, 0, 9, 12, 7, 0, 131, 101, 114, 101, 110, 116, 0,
- 68, 75, 19, 8, 99, 19, 0, 19, 0, 68, 84, 19, 19, 92, 19, 0, 133, 112, 97, 114,
- 101, 110, 116, 0, 4, 0, 131, 101, 110, 116, 0, 9, 12, 7, 0, 133, 102, 101,
- 114, 101, 110, 116, 0, 8, 15, 8, 21, 0, 130, 97, 110, 116, 0, 12, 17, 10, 18,
- 6, 0, 130, 97, 110, 116, 0, 8, 9, 9, 12, 7, 0, 129, 101, 110, 116, 0, 18, 6,
- 0, 130, 110, 115, 116, 0, 81, 161, 19, 21, 171, 19, 22, 180, 19, 0, 7, 12, 7,
- 0, 130, 32, 110, 111, 116, 0, 19, 8, 21, 0, 130, 111, 114, 116, 0, 16, 15, 4,
- 0, 130, 111, 115, 116, 0, 72, 196, 19, 28, 207, 19, 0, 12, 6, 8, 21, 0, 131,
- 101, 105, 112, 116, 0, 6, 17, 8, 0, 130, 114, 121, 112, 116, 0, 72, 236, 19,
- 10, 21, 20, 12, 30, 20, 16, 59, 20, 17, 69, 20, 24, 96, 20, 0, 74, 243, 19,
- 21, 10, 20, 0, 76, 250, 19, 24, 2, 20, 0, 11, 0, 130, 104, 101, 115, 116, 0,
- 22, 0, 130, 103, 101, 115, 116, 0, 23, 17, 12, 0, 131, 101, 114, 101, 115,
- 116, 0, 21, 4, 15, 0, 129, 101, 115, 116, 0, 73, 37, 20, 17, 49, 20, 0, 8, 17,
- 4, 16, 0, 132, 105, 102, 101, 115, 116, 0, 4, 10, 4, 0, 131, 105, 110, 115,
- 116, 0, 18, 15, 4, 0, 131, 109, 111, 115, 116, 0, 68, 76, 20, 17, 87, 20, 0,
- 12, 10, 4, 0, 132, 97, 105, 110, 115, 116, 0, 12, 4, 10, 4, 0, 130, 115, 116,
- 0, 13, 4, 44, 0, 131, 100, 106, 117, 115, 116, 0, 70, 120, 20, 18, 144, 20,
- 19, 168, 20, 23, 191, 20, 0, 72, 127, 20, 21, 137, 20, 0, 6, 27, 8, 0, 132,
- 101, 99, 117, 116, 0, 12, 6, 0, 128, 105, 116, 0, 68, 151, 20, 5, 160, 20, 0,
- 5, 0, 132, 97, 98, 111, 117, 116, 0, 5, 4, 0, 131, 111, 117, 116, 0, 87, 175,
- 20, 24, 183, 20, 0, 17, 12, 0, 131, 112, 117, 116, 0, 18, 0, 130, 116, 112,
- 117, 116, 0, 19, 24, 18, 0, 131, 116, 112, 117, 116, 0, 23, 18, 5, 4, 0, 129,
- 117, 116, 0, 72, 217, 20, 12, 253, 20, 0, 68, 224, 20, 12, 231, 20, 0, 11, 44,
- 0, 129, 118, 101, 0, 70, 238, 20, 8, 246, 20, 0, 8, 21, 0, 130, 101, 105, 118,
- 0, 6, 8, 21, 0, 129, 118, 0, 8, 11, 6, 4, 44, 0, 130, 105, 101, 118, 0, 76,
- 15, 21, 17, 25, 21, 0, 8, 25, 8, 21, 0, 130, 105, 101, 119, 0, 18, 14, 44, 0,
- 130, 110, 111, 119, 0, 70, 59, 21, 8, 118, 21, 11, 128, 21, 15, 146, 21, 17,
- 87, 22, 21, 114, 22, 22, 12, 23, 23, 39, 23, 0, 68, 72, 21, 8, 84, 21, 12, 95,
- 21, 19, 106, 21, 0, 21, 6, 18, 19, 28, 11, 0, 130, 105, 115, 121, 0, 24, 20,
- 8, 21, 9, 0, 129, 110, 99, 121, 0, 21, 6, 18, 19, 28, 11, 0, 129, 115, 121, 0,
- 24, 21, 14, 17, 4, 5, 0, 129, 116, 99, 121, 0, 23, 9, 4, 22, 0, 130, 101, 116,
- 121, 0, 6, 21, 4, 21, 12, 8, 11, 0, 135, 105, 101, 114, 97, 114, 99, 104, 121,
- 0, 68, 165, 21, 11, 232, 21, 14, 242, 21, 15, 250, 21, 18, 66, 22, 21, 76, 22,
- 0, 69, 184, 21, 8, 193, 21, 15, 199, 21, 17, 208, 21, 21, 215, 21, 24, 224,
- 21, 0, 18, 21, 19, 0, 129, 98, 108, 121, 0, 21, 0, 128, 108, 121, 0, 8, 21, 0,
- 131, 97, 108, 108, 121, 0, 12, 9, 0, 128, 108, 121, 0, 8, 17, 8, 10, 0, 128,
- 108, 121, 0, 23, 6, 4, 0, 128, 108, 121, 0, 10, 12, 15, 22, 0, 129, 116, 108,
- 121, 0, 12, 15, 0, 129, 101, 108, 121, 0, 68, 4, 22, 5, 47, 22, 8, 56, 22, 0,
- 86, 11, 22, 23, 35, 22, 0, 24, 0, 108, 20, 22, 22, 27, 22, 0, 131, 117, 97,
- 108, 108, 121, 0, 24, 0, 132, 97, 108, 108, 121, 0, 24, 6, 4, 0, 133, 116,
- 117, 97, 108, 108, 121, 0, 4, 5, 18, 21, 19, 0, 129, 121, 0, 4, 21, 0, 132,
- 101, 97, 108, 108, 121, 0, 16, 18, 17, 4, 0, 130, 97, 108, 121, 0, 4, 16, 12,
- 21, 19, 0, 129, 105, 108, 121, 0, 72, 94, 22, 19, 103, 22, 0, 18, 16, 44, 0,
- 130, 110, 101, 121, 0, 4, 16, 18, 6, 0, 131, 112, 97, 110, 121, 0, 68, 127,
- 22, 8, 231, 22, 18, 240, 22, 23, 253, 22, 0, 69, 143, 22, 12, 152, 22, 15,
- 165, 22, 16, 193, 22, 22, 202, 22, 0, 12, 15, 0, 130, 114, 97, 114, 121, 0,
- 15, 15, 12, 27, 24, 4, 0, 132, 105, 97, 114, 121, 0, 76, 172, 22, 15, 182, 22,
- 0, 27, 24, 4, 0, 130, 105, 97, 114, 121, 0, 12, 27, 24, 4, 0, 131, 105, 97,
- 114, 121, 0, 24, 22, 0, 130, 109, 97, 114, 121, 0, 8, 6, 0, 70, 212, 22, 8,
- 223, 22, 0, 8, 17, 0, 133, 101, 115, 115, 97, 114, 121, 0, 17, 0, 130, 115,
- 97, 114, 121, 0, 19, 18, 21, 19, 0, 128, 116, 121, 0, 10, 4, 23, 4, 6, 0, 132,
- 101, 103, 111, 114, 121, 0, 17, 24, 6, 18, 44, 0, 134, 99, 111, 117, 110, 116,
- 114, 121, 0, 4, 0, 85, 21, 23, 26, 32, 23, 0, 6, 18, 19, 28, 11, 0, 130, 105,
- 115, 121, 0, 15, 4, 0, 129, 121, 115, 0, 73, 49, 23, 15, 57, 23, 21, 66, 23,
- 0, 4, 22, 0, 129, 101, 116, 121, 0, 12, 5, 4, 0, 129, 105, 116, 121, 0, 19, 8,
- 18, 21, 19, 0, 132, 112, 101, 114, 116, 121, 0};
-
diff --git a/users/gourdo1/autocorrect/autocorrection_data.h (large) b/users/gourdo1/autocorrect/autocorrection_data.h (large)
deleted file mode 100644
index 66518201e2..0000000000
--- a/users/gourdo1/autocorrect/autocorrection_data.h (large)
+++ /dev/null
@@ -1,722 +0,0 @@
-// Generated code.
-
-// Autocorrection dictionary (400 entries):
-// :acheiv -> achiev
-// :agian -> again
-// :agred -> agreed
-// :ajust -> adjust
-// :alot: -> a lot
-// :andteh -> and the
-// :andthe -> and the
-// :anual -> annual
-// :asign -> assign
-// :aslo: -> also
-// :asthe -> as the
-// :atthe -> at the
-// :casue -> cause
-// :choses -> chooses
-// :eveyr -> every
-// :foudn -> found
-// :gaurd -> guard
-// :goign -> going
-// :gonig -> going
-// :graet -> great
-// :grammer -> grammar
-// :guage -> gauge
-// :haev -> have
-// :hapen -> happen
-// :htere -> there
-// :htikn -> think
-// :htink -> think
-// :hwihc -> which
-// :hwile -> while
-// :idaes -> ideas
-// :jstu: -> just
-// :jsut: -> just
-// :knwo -> know
-// :konw -> know
-// :kwno -> know
-// :moeny -> money
-// :ocuntry -> country
-// :ocur -> occur
-// :olther -> other
-// :otehr -> other
-// :owudl -> would
-// :rference -> reference
-// :sicne -> since
-// :socre -> score
-// :szie -> size
-// :the:the: -> the
-// :theri -> their
-// :thier -> their
-// :thsoe -> those
-// :tothe -> to the
-// :ture -> true
-// :turth -> truth
-// :uesd: -> used
-// :usally -> usually
-// :yaers -> years
-// :yeasr -> years
-// abbout -> about
-// aberation -> aberration
-// abilties -> abilities
-// abilty -> ability
-// abotu -> about
-// abouta -> about a
-// aboutit -> about it
-// aboutthe -> about the
-// abvove -> above
-// accesories -> accessories
-// accomodate -> accommodate
-// accross -> across
-// acommodate -> accommodate
-// acomplish -> accomplish
-// actualy -> actually
-// acurate -> accurate
-// acutally -> actually
-// addtion -> addition
-// adviced -> advised
-// againnst -> against
-// aganist -> against
-// aggreed -> agreed
-// agianst -> against
-// ahppn -> happen
-// aledge -> allege
-// alledge -> allege
-// allign -> align
-// almsot -> almost
-// alomst -> almost
-// alwasy -> always
-// alwyas -> always
-// amature -> amateur
-// anohter -> another
-// anomolous -> anomalous
-// anomoly -> anomaly
-// anytying -> anything
-// aparent -> apparent
-// aparrent -> apparent
-// apparant -> apparent
-// apparrent -> apparent
-// aquire -> acquire
-// aroud -> around
-// arround -> around
-// arund -> around
-// asthetic -> aesthetic
-// auxilary -> auxiliary
-// auxillary -> auxiliary
-// auxilliary -> auxiliary
-// availabe -> available
-// availaible -> available
-// availalbe -> available
-// availble -> available
-// availiable -> available
-// avalable -> available
-// avaliable -> available
-// avilable -> available
-// baceause -> because
-// bandwith -> bandwidth
-// bankrupcy -> bankruptcy
-// baout -> about
-// beacuse -> because
-// becasue -> because
-// beccause -> because
-// becouse -> because
-// becuase -> because
-// bedore -> before
-// beeing -> being
-// befoer -> before
-// begginer -> beginner
-// beleif -> belief
-// beleive -> believe
-// belive -> believe
-// beteen -> between
-// beween -> between
-// bewteen -> between
-// breif -> brief
-// burried -> buried
-// busness -> business
-// bussiness -> business
-// cacheing -> caching
-// calander -> calendar
-// caluclate -> calculate
-// caluculate -> calculate
-// calulate -> calculate
-// catagory -> category
-// cauhgt -> caught
-// ceratin -> certain
-// certian -> certain
-// cheif -> chief
-// chekc -> check
-// childen -> children
-// chnage -> change
-// choosen -> chosen
-// cieling -> ceiling
-// circut -> circuit
-// claer -> clear
-// clasic -> classic
-// cmoputer -> computer
-// coform -> conform
-// cognizent -> cognizant
-// collegue -> colleague
-// comapny -> company
-// comittee -> committee
-// comming: -> coming
-// commitee -> committee
-// competance -> competence
-// competant -> competent
-// complier -> compiler
-// concensus -> consensus
-// considerd -> considered
-// contian -> contain
-// copywrite: -> copyright
-// cosnt -> const
-// coudl -> could
-// dervied -> derived
-// desicion -> decision
-// didnot -> did not
-// diferent -> different
-// diferrent -> different
-// differnt -> different
-// diffrent -> different
-// divison -> division
-// doulbe -> double
-// dyanmic -> dynamic
-// effecient -> efficient
-// elasped -> elapsed
-// eligable -> eligible
-// elpased -> elapsed
-// embarass -> embarrass
-// embeded -> embedded
-// encypt -> encrypt
-// excecut -> execut
-// excercise -> exercise
-// failse -> false
-// fales -> false
-// fasle -> false
-// feild -> field
-// finaly -> finally
-// firend -> friend
-// firts -> first
-// fitler -> filter
-// flase -> false
-// follwo -> follow
-// foriegn -> foreign
-// foward -> forward
-// fraciton -> fraction
-// freind -> friend
-// frequecy -> frequency
-// fromthe -> from the
-// fucntion -> function
-// fufill -> fulfill
-// fullfill -> fulfill
-// futher -> further
-// ganerate -> generate
-// garantee -> guarantee
-// gaurantee -> guarantee
-// generaly -> generally
-// govement -> government
-// govenment -> government
-// goverment -> government
-// governmnet -> government
-// govorment -> government
-// govornment -> government
-// greatful -> grateful
-// guaratee -> guarantee
-// heigher -> higher
-// heigth -> height
-// heirarchy -> hierarchy
-// higest -> highest
-// howver -> however
-// hydogen -> hydrogen
-// hygeine -> hygiene
-// hypocracy -> hypocrisy
-// hypocrasy -> hypocrisy
-// hypocricy -> hypocrisy
-// hypocrit: -> hypocrite
-// iamge -> image
-// importamt -> important
-// inclued -> include
-// indeces -> indices
-// indecies -> indices
-// indicies -> indices
-// inital -> initial
-// insted -> instead
-// interator -> iterator
-// intput -> input
-// intrest -> interest
-// invliad -> invalid
-// laguage -> language
-// largst -> largest
-// learnign -> learning
-// lenght -> length
-// levle -> level
-// liasion -> liaison
-// libary -> library
-// likly -> likely
-// lisense -> license
-// listner -> listener
-// littel -> little
-// looses: -> loses
-// looup -> lookup
-// macthing -> matching
-// maintence -> maintenance
-// manefist -> manifest
-// mesage -> message
-// morgage -> mortgage
-// mysefl -> myself
-// namesapce -> namespace
-// namespcae -> namespace
-// naturual -> natural
-// neccesary -> necessary
-// necesary -> necessary
-// nulltpr -> nullptr
-// occassion -> occasion
-// occured -> occurred
-// operaotr -> operator
-// ouptut -> output
-// ouput -> output
-// overide -> override
-// ovveride -> override
-// pallete -> palette
-// paralel -> parallel
-// parralel -> parallel
-// parrallel -> parallel
-// particualr -> particular
-// paticular -> particular
-// peaple -> people
-// peice -> piece
-// peolpe -> people
-// peopel -> people
-// perhasp -> perhaps
-// perheaps -> perhaps
-// perhpas -> perhaps
-// perphas -> perhaps
-// persue -> pursue
-// poeople -> people
-// poeple -> people
-// poitner -> pointer
-// posess -> possess
-// postion -> position
-// preiod -> period
-// primarly -> primarily
-// priviledge -> privilege
-// privte -> private
-// probablly -> probably
-// probaly -> probably
-// probelm -> problem
-// proccess -> process
-// proeprty -> property
-// prominant -> prominent
-// proove -> prove
-// propery -> property
-// propogate -> propagate
-// psuedo -> pseudo
-// raelly -> really
-// realtion -> relation
-// realy -> really
-// reasearch -> research
-// receiev -> receiv
-// recepient -> recipient
-// reciept -> receipt
-// reciev -> receiv
-// recipiant -> recipient
-// recrod -> record
-// recuring -> recurring
-// referece -> reference
-// refered -> referred
-// regluar -> regular
-// relaly -> really
-// releated -> related
-// relevent -> relevant
-// repitition -> repetition
-// reponse -> response
-// reprot -> report
-// resutl -> result
-// retrun -> return
-// retun -> return
-// reuslt -> result
-// reutrn -> return
-// reveiw -> review
-// saftey -> safety
-// safty -> safety
-// satisifed -> satisfied
-// scheduel -> schedule
-// seperat -> separat
-// sequnce -> sequence
-// shoudl -> should
-// similiar -> similar
-// simmilar -> similar
-// singed -> signed
-// singel -> single
-// slighly -> slightly
-// somehwat -> somewhat
-// spectogram -> spectrogram
-// statment -> statement
-// stirng -> string
-// stregth -> strength
-// strengh -> strength
-// strign -> string
-// succsess -> success
-// sucess -> success
-// sugest -> suggest
-// sumary -> summary
-// supress -> suppress
-// surpress -> suppress
-// swithc -> switch
-// swtich -> switch
-// symetric -> symmetric
-// teamplate -> template
-// tempalte -> template
-// theese -> these
-// therfore -> therefore
-// thign -> thing
-// thigsn -> things
-// thikn -> think
-// thiunk -> think
-// thnigs -> things
-// thresold -> threshold
-// throught -> thought
-// tihkn -> think
-// tkaes -> takes
-// todya -> today
-// toghether -> together
-// tolerence -> tolerance
-// tongiht -> tonight
-// tranpose -> transpose
-// typcial -> typical
-// udpate -> update
-// unkown -> unknown
-// unqiue -> unique
-// ususally -> usually
-// verticies -> vertices
-// virutal -> virtual
-// vitual -> virtual
-// whcih -> which
-// whereever -> wherever
-// wherre -> where
-// whihc -> which
-// whlch -> which
-// widht -> width
-// wierd -> weird
-// wihch -> which
-// woudl -> would
-// yeild -> yield
-
-#define AUTOCORRECTION_MIN_LENGTH 5 // "abotu"
-#define AUTOCORRECTION_MAX_LENGTH 10 // "auxilliary"
-
-static const uint8_t autocorrection_data[5967] PROGMEM = {108, 67, 0, 4, 212, 0,
- 6, 236, 0, 7, 100, 1, 8, 15, 3, 9, 169, 8, 10, 204, 8, 11, 68, 9, 12, 246, 9,
- 14, 0, 10, 15, 28, 10, 16, 79, 11, 17, 129, 11, 18, 175, 13, 19, 227, 13, 21,
- 253, 13, 22, 194, 15, 23, 121, 17, 24, 201, 20, 25, 210, 20, 26, 8, 21, 28,
- 34, 21, 0, 71, 89, 0, 8, 99, 0, 10, 130, 0, 18, 142, 0, 22, 152, 0, 23, 163,
- 0, 24, 202, 0, 0, 22, 8, 24, 44, 0, 131, 115, 101, 100, 0, 75, 106, 0, 23,
- 115, 0, 0, 23, 44, 8, 11, 23, 44, 0, 132, 0, 12, 21, 26, 28, 19, 18, 6, 0,
- 133, 114, 105, 103, 104, 116, 0, 17, 12, 16, 16, 18, 6, 0, 132, 105, 110, 103,
- 0, 15, 22, 4, 44, 0, 131, 108, 115, 111, 0, 8, 22, 18, 18, 15, 0, 132, 115,
- 101, 115, 0, 76, 173, 0, 18, 183, 0, 24, 193, 0, 0, 21, 6, 18, 19, 28, 11, 0,
- 128, 101, 0, 15, 4, 44, 0, 131, 32, 108, 111, 116, 0, 22, 13, 44, 0, 131, 117,
- 115, 116, 0, 23, 22, 13, 44, 0, 131, 117, 115, 116, 0, 87, 219, 0, 28, 228, 0,
- 0, 24, 18, 5, 4, 0, 128, 32, 97, 0, 7, 18, 23, 0, 129, 97, 121, 0, 75, 246, 0,
- 12, 28, 1, 14, 92, 1, 0, 76, 253, 0, 23, 20, 1, 0, 75, 4, 1, 26, 10, 1, 0, 26,
- 0, 129, 99, 104, 0, 11, 44, 0, 132, 119, 104, 105, 99, 104, 0, 12, 26, 22, 0,
- 129, 99, 104, 0, 80, 41, 1, 21, 53, 1, 22, 67, 1, 23, 76, 1, 0, 17, 4, 28, 7,
- 0, 132, 110, 97, 109, 105, 99, 0, 23, 8, 16, 28, 22, 0, 132, 109, 101, 116,
- 114, 105, 99, 0, 4, 15, 6, 0, 129, 115, 105, 99, 0, 8, 11, 23, 22, 4, 0, 134,
- 101, 115, 116, 104, 101, 116, 105, 99, 0, 8, 11, 6, 0, 129, 99, 107, 0, 68,
- 122, 1, 8, 134, 1, 15, 84, 2, 17, 124, 2, 18, 180, 2, 21, 207, 2, 24, 7, 3, 0,
- 12, 15, 25, 17, 12, 0, 131, 97, 108, 105, 100, 0, 70, 168, 1, 7, 178, 1, 8,
- 188, 1, 9, 199, 1, 10, 212, 1, 12, 222, 1, 19, 248, 1, 21, 3, 2, 22, 38, 2,
- 23, 50, 2, 24, 75, 2, 0, 12, 25, 7, 4, 0, 130, 115, 101, 100, 0, 8, 5, 16, 8,
- 0, 129, 100, 101, 100, 0, 21, 10, 10, 4, 0, 132, 114, 101, 101, 100, 0, 12,
- 22, 12, 23, 4, 22, 0, 131, 102, 105, 101, 100, 0, 17, 12, 22, 0, 131, 103,
- 110, 101, 100, 0, 85, 229, 1, 25, 238, 1, 0, 21, 24, 5, 0, 131, 105, 101, 100,
- 0, 21, 8, 7, 0, 131, 105, 118, 101, 100, 0, 22, 4, 15, 8, 0, 131, 112, 115,
- 101, 100, 0, 72, 13, 2, 10, 22, 2, 24, 29, 2, 0, 9, 8, 21, 0, 129, 114, 101,
- 100, 0, 4, 44, 0, 128, 101, 100, 0, 6, 6, 18, 0, 129, 114, 101, 100, 0, 4, 19,
- 15, 8, 0, 132, 97, 112, 115, 101, 100, 0, 68, 57, 2, 22, 68, 2, 0, 8, 15, 8,
- 21, 0, 132, 97, 116, 101, 100, 0, 17, 12, 0, 128, 97, 100, 0, 15, 6, 17, 12,
- 0, 129, 100, 101, 0, 76, 91, 2, 18, 112, 2, 0, 8, 0, 73, 100, 2, 28, 106, 2,
- 0, 131, 105, 101, 108, 100, 0, 131, 105, 101, 108, 100, 0, 22, 8, 21, 11, 23,
- 0, 130, 104, 111, 108, 100, 0, 72, 134, 2, 12, 145, 2, 24, 155, 2, 0, 21, 12,
- 9, 0, 132, 114, 105, 101, 110, 100, 0, 8, 21, 9, 0, 131, 105, 101, 110, 100,
- 0, 82, 162, 2, 21, 172, 2, 0, 21, 21, 4, 0, 132, 111, 117, 110, 100, 0, 4, 0,
- 130, 111, 117, 110, 100, 0, 76, 187, 2, 21, 198, 2, 0, 8, 21, 19, 0, 132, 101,
- 114, 105, 111, 100, 0, 6, 8, 21, 0, 130, 111, 114, 100, 0, 68, 217, 2, 8, 228,
- 2, 24, 253, 2, 0, 26, 18, 9, 0, 131, 114, 119, 97, 114, 100, 0, 71, 235, 2,
- 12, 245, 2, 0, 12, 22, 17, 18, 6, 0, 128, 101, 100, 0, 26, 0, 131, 101, 105,
- 114, 100, 0, 4, 10, 44, 0, 131, 117, 97, 114, 100, 0, 18, 21, 4, 0, 128, 110,
- 100, 0, 68, 67, 3, 5, 80, 3, 6, 123, 3, 7, 251, 3, 8, 23, 4, 10, 107, 4, 11,
- 227, 4, 12, 52, 5, 15, 61, 5, 17, 0, 6, 18, 27, 6, 19, 37, 6, 21, 47, 6, 22,
- 156, 6, 23, 82, 7, 24, 45, 8, 25, 115, 8, 0, 6, 19, 22, 8, 16, 4, 17, 0, 130,
- 97, 99, 101, 0, 68, 87, 3, 15, 97, 3, 0, 15, 12, 4, 25, 4, 0, 128, 108, 101,
- 0, 68, 104, 3, 24, 115, 3, 0, 15, 12, 4, 25, 4, 0, 130, 98, 108, 101, 0, 18,
- 7, 0, 130, 98, 108, 101, 0, 72, 136, 3, 12, 147, 3, 17, 156, 3, 19, 238, 3, 0,
- 21, 8, 9, 8, 21, 0, 129, 110, 99, 101, 0, 8, 19, 0, 131, 105, 101, 99, 101, 0,
- 68, 166, 3, 8, 179, 3, 24, 228, 3, 0, 23, 8, 19, 16, 18, 6, 0, 131, 101, 110,
- 99, 101, 0, 85, 186, 3, 23, 217, 3, 0, 8, 0, 73, 195, 3, 15, 208, 3, 0, 21,
- 44, 0, 134, 101, 102, 101, 114, 101, 110, 99, 101, 0, 18, 23, 0, 131, 97, 110,
- 99, 101, 0, 17, 12, 4, 16, 0, 129, 97, 110, 99, 101, 0, 20, 8, 22, 0, 130,
- 101, 110, 99, 101, 0, 4, 22, 8, 16, 4, 17, 0, 131, 112, 97, 99, 101, 0, 12,
- 21, 8, 25, 0, 82, 7, 4, 25, 13, 4, 0, 130, 114, 105, 100, 101, 0, 18, 0, 133,
- 101, 114, 114, 105, 100, 101, 0, 23, 0, 68, 38, 4, 12, 49, 4, 17, 59, 4, 23,
- 94, 4, 0, 21, 4, 24, 10, 0, 130, 110, 116, 101, 101, 0, 16, 16, 18, 6, 0, 129,
- 116, 101, 101, 0, 4, 21, 0, 68, 69, 4, 24, 81, 4, 0, 10, 0, 134, 117, 97, 114,
- 97, 110, 116, 101, 101, 0, 4, 10, 0, 135, 117, 97, 114, 97, 110, 116, 101,
- 101, 0, 12, 16, 18, 6, 0, 132, 109, 105, 116, 116, 101, 101, 0, 68, 117, 4, 7,
- 184, 4, 16, 218, 4, 0, 74, 130, 4, 17, 141, 4, 22, 150, 4, 24, 159, 4, 0, 21,
- 18, 16, 0, 131, 116, 103, 97, 103, 101, 0, 11, 6, 0, 131, 97, 110, 103, 101,
- 0, 8, 16, 0, 130, 115, 97, 103, 101, 0, 10, 0, 108, 168, 4, 4, 174, 4, 0, 131,
- 97, 117, 103, 101, 0, 15, 0, 132, 110, 103, 117, 97, 103, 101, 0, 8, 15, 0,
- 68, 197, 4, 12, 203, 4, 15, 212, 4, 0, 131, 108, 101, 103, 101, 0, 25, 12, 21,
- 19, 0, 130, 103, 101, 0, 4, 0, 130, 103, 101, 0, 4, 12, 0, 131, 109, 97, 103,
- 101, 0, 23, 0, 71, 245, 4, 16, 255, 4, 18, 9, 5, 22, 18, 5, 23, 27, 5, 0, 17,
- 4, 44, 0, 130, 32, 116, 104, 101, 0, 18, 21, 9, 0, 130, 32, 116, 104, 101, 0,
- 23, 44, 0, 130, 32, 116, 104, 101, 0, 4, 44, 0, 130, 32, 116, 104, 101, 0, 68,
- 34, 5, 24, 42, 5, 0, 44, 0, 130, 32, 116, 104, 101, 0, 18, 5, 4, 0, 130, 32,
- 116, 104, 101, 0, 29, 22, 44, 0, 130, 105, 122, 101, 0, 69, 77, 5, 12, 190, 5,
- 19, 201, 5, 22, 241, 5, 25, 249, 5, 0, 68, 87, 5, 12, 167, 5, 15, 179, 5, 0,
- 74, 97, 5, 12, 107, 5, 15, 137, 5, 0, 12, 15, 8, 0, 131, 105, 98, 108, 101, 0,
- 15, 0, 68, 116, 5, 12, 127, 5, 0, 25, 4, 0, 133, 105, 108, 97, 98, 108, 101,
- 0, 4, 25, 4, 0, 132, 97, 98, 108, 101, 0, 68, 144, 5, 12, 155, 5, 0, 25, 4, 0,
- 132, 105, 108, 97, 98, 108, 101, 0, 25, 4, 0, 133, 97, 105, 108, 97, 98, 108,
- 101, 0, 4, 15, 12, 4, 25, 4, 0, 131, 98, 108, 101, 0, 12, 4, 25, 4, 0, 130,
- 97, 98, 108, 101, 0, 26, 11, 44, 0, 132, 119, 104, 105, 108, 101, 0, 68, 211,
- 5, 8, 220, 5, 18, 230, 5, 0, 8, 19, 0, 131, 111, 112, 108, 101, 0, 18, 19, 0,
- 132, 101, 111, 112, 108, 101, 0, 8, 18, 19, 0, 133, 101, 111, 112, 108, 101,
- 0, 4, 9, 0, 130, 108, 115, 101, 0, 8, 15, 0, 129, 101, 108, 0, 70, 7, 6, 12,
- 16, 6, 0, 12, 22, 44, 0, 130, 110, 99, 101, 0, 8, 10, 28, 11, 0, 131, 105,
- 101, 110, 101, 0, 22, 11, 23, 44, 0, 130, 111, 115, 101, 0, 15, 18, 8, 19, 0,
- 130, 112, 108, 101, 0, 70, 66, 6, 8, 76, 6, 12, 87, 6, 18, 99, 6, 21, 127, 6,
- 24, 134, 6, 0, 18, 22, 44, 0, 131, 99, 111, 114, 101, 0, 23, 11, 44, 0, 132,
- 116, 104, 101, 114, 101, 0, 24, 20, 4, 0, 132, 99, 113, 117, 105, 114, 101, 0,
- 71, 106, 6, 9, 115, 6, 0, 8, 5, 0, 131, 102, 111, 114, 101, 0, 21, 8, 11, 23,
- 0, 131, 101, 102, 111, 114, 101, 0, 8, 11, 26, 0, 129, 101, 0, 23, 0, 108,
- 143, 6, 4, 148, 6, 0, 130, 114, 117, 101, 0, 16, 4, 0, 130, 101, 117, 114, 0,
- 68, 178, 6, 8, 203, 6, 12, 211, 6, 15, 226, 6, 17, 235, 6, 18, 9, 7, 24, 22,
- 7, 0, 79, 185, 6, 24, 193, 6, 0, 9, 0, 131, 97, 108, 115, 101, 0, 6, 8, 5, 0,
- 131, 97, 117, 115, 101, 0, 8, 11, 23, 0, 130, 115, 101, 0, 6, 21, 8, 6, 27, 8,
- 0, 134, 101, 114, 99, 105, 115, 101, 0, 12, 4, 9, 0, 131, 108, 115, 101, 0,
- 72, 242, 6, 18, 253, 6, 0, 22, 12, 15, 0, 132, 99, 101, 110, 115, 101, 0, 19,
- 8, 21, 0, 132, 115, 112, 111, 110, 115, 101, 0, 19, 17, 4, 21, 23, 0, 131,
- 115, 112, 111, 115, 101, 0, 68, 32, 7, 6, 61, 7, 18, 72, 7, 0, 70, 39, 7, 8,
- 49, 7, 0, 6, 8, 5, 0, 132, 97, 117, 115, 101, 0, 6, 4, 5, 0, 134, 101, 99, 97,
- 117, 115, 101, 0, 4, 8, 5, 0, 132, 99, 97, 117, 115, 101, 0, 6, 8, 5, 0, 131,
- 97, 117, 115, 101, 0, 68, 95, 7, 8, 13, 8, 15, 24, 8, 25, 36, 8, 0, 71, 111,
- 7, 10, 148, 7, 15, 161, 7, 19, 228, 7, 21, 238, 7, 0, 18, 16, 0, 80, 121, 7,
- 18, 136, 7, 0, 18, 6, 4, 0, 135, 99, 111, 109, 109, 111, 100, 97, 116, 101, 0,
- 6, 6, 4, 0, 132, 109, 111, 100, 97, 116, 101, 0, 18, 19, 18, 21, 19, 0, 132,
- 97, 103, 97, 116, 101, 0, 70, 171, 7, 19, 184, 7, 24, 197, 7, 0, 24, 15, 4, 6,
- 0, 133, 99, 117, 108, 97, 116, 101, 0, 16, 4, 8, 23, 0, 134, 109, 112, 108,
- 97, 116, 101, 0, 70, 204, 7, 15, 217, 7, 0, 24, 15, 4, 6, 0, 134, 99, 117,
- 108, 97, 116, 101, 0, 4, 6, 0, 132, 99, 117, 108, 97, 116, 101, 0, 7, 24, 0,
- 132, 112, 100, 97, 116, 101, 0, 72, 245, 7, 24, 2, 8, 0, 17, 4, 10, 0, 134,
- 101, 110, 101, 114, 97, 116, 101, 0, 6, 4, 0, 132, 99, 117, 114, 97, 116, 101,
- 0, 15, 15, 4, 19, 0, 131, 101, 116, 116, 101, 0, 4, 19, 16, 8, 23, 0, 131,
- 108, 97, 116, 101, 0, 12, 21, 19, 0, 129, 97, 116, 101, 0, 74, 55, 8, 12, 67,
- 8, 22, 77, 8, 0, 8, 15, 15, 18, 6, 0, 130, 97, 103, 117, 101, 0, 20, 17, 24,
- 0, 131, 105, 113, 117, 101, 0, 68, 84, 8, 21, 105, 8, 0, 6, 0, 108, 93, 8, 8,
- 98, 8, 0, 130, 117, 115, 101, 0, 5, 0, 130, 117, 115, 101, 0, 8, 19, 0, 132,
- 117, 114, 115, 117, 101, 0, 76, 122, 8, 18, 147, 8, 0, 72, 129, 8, 15, 139, 8,
- 0, 15, 8, 5, 0, 131, 105, 101, 118, 101, 0, 8, 5, 0, 129, 101, 118, 101, 0,
- 82, 154, 8, 25, 161, 8, 0, 21, 19, 0, 130, 118, 101, 0, 5, 4, 0, 131, 111,
- 118, 101, 0, 12, 8, 0, 75, 182, 8, 15, 189, 8, 21, 197, 8, 0, 6, 0, 130, 105,
- 101, 102, 0, 8, 5, 0, 130, 105, 101, 102, 0, 5, 0, 130, 105, 101, 102, 0, 76,
- 211, 8, 17, 221, 8, 0, 17, 18, 10, 44, 0, 130, 105, 110, 103, 0, 76, 228, 8,
- 21, 58, 9, 0, 72, 244, 8, 11, 11, 9, 15, 24, 9, 21, 36, 9, 28, 47, 9, 0, 72,
- 251, 8, 11, 2, 9, 0, 5, 0, 131, 105, 110, 103, 0, 6, 4, 6, 0, 131, 105, 110,
- 103, 0, 23, 6, 4, 16, 0, 133, 116, 99, 104, 105, 110, 103, 0, 8, 12, 6, 0,
- 133, 101, 105, 108, 105, 110, 103, 0, 24, 6, 8, 21, 0, 130, 114, 105, 110,
- 103, 0, 23, 28, 17, 4, 0, 131, 104, 105, 110, 103, 0, 12, 23, 22, 0, 131, 114,
- 105, 110, 103, 0, 70, 87, 9, 8, 142, 9, 10, 154, 9, 12, 164, 9, 22, 173, 9,
- 23, 191, 9, 0, 75, 100, 9, 12, 109, 9, 15, 119, 9, 21, 127, 9, 0, 12, 26, 0,
- 131, 104, 105, 99, 104, 0, 23, 26, 22, 0, 131, 105, 116, 99, 104, 0, 11, 26,
- 0, 130, 105, 99, 104, 0, 4, 8, 22, 4, 8, 21, 0, 134, 115, 101, 97, 114, 99,
- 104, 0, 23, 7, 17, 4, 44, 0, 130, 32, 116, 104, 101, 0, 17, 8, 21, 23, 22, 0,
- 128, 116, 104, 0, 6, 11, 26, 0, 130, 105, 99, 104, 0, 12, 15, 19, 16, 18, 6,
- 4, 0, 134, 99, 111, 109, 112, 108, 105, 115, 104, 0, 74, 201, 9, 12, 225, 9,
- 21, 236, 9, 0, 72, 208, 9, 12, 218, 9, 0, 21, 23, 22, 0, 130, 110, 103, 116,
- 104, 0, 8, 11, 0, 129, 104, 116, 0, 26, 7, 17, 4, 5, 0, 129, 100, 116, 104, 0,
- 24, 23, 44, 0, 131, 114, 117, 116, 104, 0, 21, 8, 11, 23, 44, 0, 129, 105,
- 114, 0, 17, 0, 76, 9, 10, 24, 20, 10, 0, 23, 11, 44, 0, 132, 116, 104, 105,
- 110, 107, 0, 12, 11, 23, 0, 130, 110, 107, 0, 68, 50, 10, 7, 134, 10, 8, 177,
- 10, 9, 17, 11, 15, 26, 11, 23, 55, 11, 24, 64, 11, 0, 76, 60, 10, 23, 71, 10,
- 24, 96, 10, 0, 6, 19, 28, 23, 0, 131, 105, 99, 97, 108, 0, 76, 78, 10, 24, 86,
- 10, 0, 17, 12, 0, 129, 105, 97, 108, 0, 21, 12, 25, 0, 131, 116, 117, 97, 108,
- 0, 81, 106, 10, 21, 115, 10, 23, 124, 10, 0, 4, 44, 0, 130, 110, 117, 97, 108,
- 0, 24, 23, 4, 17, 0, 130, 97, 108, 0, 12, 25, 0, 131, 114, 116, 117, 97, 108,
- 0, 24, 0, 82, 143, 10, 26, 167, 10, 0, 70, 153, 10, 11, 157, 10, 26, 163, 10,
- 0, 129, 108, 100, 0, 22, 0, 129, 108, 100, 0, 129, 108, 100, 0, 18, 44, 0,
- 132, 119, 111, 117, 108, 100, 0, 74, 193, 10, 15, 201, 10, 19, 247, 10, 23,
- 255, 10, 24, 7, 11, 0, 17, 12, 22, 0, 129, 108, 101, 0, 68, 208, 10, 15, 234,
- 10, 0, 21, 0, 68, 217, 10, 21, 224, 10, 0, 19, 0, 129, 108, 101, 108, 0, 4,
- 19, 0, 132, 97, 108, 108, 101, 108, 0, 4, 21, 21, 4, 19, 0, 133, 97, 108, 108,
- 101, 108, 0, 18, 8, 19, 0, 129, 108, 101, 0, 23, 12, 15, 0, 129, 108, 101, 0,
- 7, 8, 11, 6, 22, 0, 129, 108, 101, 0, 8, 22, 28, 16, 0, 129, 108, 102, 0, 12,
- 9, 0, 79, 36, 11, 24, 46, 11, 0, 15, 24, 9, 0, 132, 102, 105, 108, 108, 0, 9,
- 0, 131, 108, 102, 105, 108, 108, 0, 24, 22, 8, 21, 0, 129, 108, 116, 0, 9, 23,
- 4, 8, 21, 10, 0, 133, 97, 116, 101, 102, 117, 108, 0, 68, 89, 11, 15, 106, 11,
- 21, 117, 11, 0, 21, 10, 18, 23, 6, 8, 19, 22, 0, 132, 114, 111, 103, 114, 97,
- 109, 0, 8, 5, 18, 21, 19, 0, 130, 108, 101, 109, 0, 18, 9, 18, 6, 0, 131, 110,
- 102, 111, 114, 109, 0, 68, 166, 11, 7, 206, 11, 8, 215, 11, 10, 58, 12, 12,
- 141, 12, 14, 153, 12, 18, 192, 12, 19, 108, 13, 21, 120, 13, 22, 131, 13, 24,
- 141, 13, 26, 164, 13, 0, 12, 0, 74, 175, 11, 23, 183, 11, 0, 4, 44, 0, 130,
- 97, 105, 110, 0, 81, 190, 11, 21, 198, 11, 0, 18, 6, 0, 130, 97, 105, 110, 0,
- 8, 6, 0, 130, 97, 105, 110, 0, 24, 18, 9, 44, 0, 129, 110, 100, 0, 71, 231,
- 11, 8, 241, 11, 10, 27, 12, 19, 39, 12, 22, 48, 12, 0, 15, 12, 11, 6, 0, 129,
- 114, 101, 110, 0, 87, 248, 11, 26, 17, 12, 0, 72, 255, 11, 26, 7, 12, 0, 5, 0,
- 130, 119, 101, 101, 110, 0, 8, 5, 0, 132, 116, 119, 101, 101, 110, 0, 8, 5, 0,
- 131, 116, 119, 101, 101, 110, 0, 18, 7, 28, 11, 0, 131, 114, 111, 103, 101,
- 110, 0, 4, 11, 44, 0, 129, 112, 101, 110, 0, 18, 18, 11, 6, 0, 131, 115, 101,
- 110, 0, 72, 65, 12, 12, 76, 12, 0, 12, 21, 18, 9, 0, 131, 101, 105, 103, 110,
- 0, 75, 95, 12, 15, 101, 12, 17, 109, 12, 18, 118, 12, 21, 125, 12, 22, 132,
- 12, 0, 23, 0, 129, 110, 103, 0, 15, 4, 0, 131, 105, 103, 110, 0, 21, 4, 8, 15,
- 0, 129, 110, 103, 0, 10, 44, 0, 129, 110, 103, 0, 23, 22, 0, 129, 110, 103, 0,
- 4, 44, 0, 130, 115, 105, 103, 110, 0, 23, 4, 21, 8, 6, 0, 131, 116, 97, 105,
- 110, 0, 75, 160, 12, 12, 169, 12, 0, 12, 23, 0, 131, 104, 105, 110, 107, 0,
- 75, 176, 12, 23, 182, 12, 0, 23, 0, 129, 110, 107, 0, 11, 44, 0, 132, 116,
- 104, 105, 110, 107, 0, 76, 202, 12, 22, 86, 13, 23, 96, 13, 0, 70, 212, 12,
- 22, 225, 12, 23, 251, 12, 0, 12, 22, 8, 7, 0, 133, 99, 105, 115, 105, 111,
- 110, 0, 68, 232, 12, 22, 241, 12, 0, 12, 15, 0, 131, 105, 115, 111, 110, 0, 4,
- 6, 6, 18, 0, 131, 105, 111, 110, 0, 68, 14, 13, 7, 27, 13, 12, 37, 13, 15, 52,
- 13, 17, 64, 13, 22, 76, 13, 0, 21, 8, 5, 4, 0, 132, 114, 97, 116, 105, 111,
- 110, 0, 7, 4, 0, 131, 105, 116, 105, 111, 110, 0, 23, 12, 19, 8, 21, 0, 134,
- 101, 116, 105, 116, 105, 111, 110, 0, 4, 8, 21, 0, 133, 108, 97, 116, 105,
- 111, 110, 0, 6, 24, 9, 0, 133, 110, 99, 116, 105, 111, 110, 0, 18, 19, 0, 131,
- 105, 116, 105, 111, 110, 0, 12, 25, 12, 7, 0, 129, 105, 111, 110, 0, 12, 6, 4,
- 21, 9, 0, 131, 116, 105, 111, 110, 0, 19, 11, 4, 0, 132, 104, 97, 112, 112,
- 101, 110, 0, 23, 24, 8, 21, 0, 131, 116, 117, 114, 110, 0, 10, 12, 11, 23, 0,
- 130, 110, 103, 115, 0, 85, 148, 13, 23, 157, 13, 0, 23, 8, 21, 0, 130, 117,
- 114, 110, 0, 8, 21, 0, 128, 114, 110, 0, 18, 14, 17, 24, 0, 130, 110, 111,
- 119, 110, 0, 71, 185, 13, 17, 196, 13, 26, 205, 13, 0, 8, 24, 22, 19, 0, 131,
- 101, 117, 100, 111, 0, 26, 14, 44, 0, 130, 110, 111, 119, 0, 79, 212, 13, 17,
- 220, 13, 0, 15, 18, 9, 0, 129, 111, 119, 0, 14, 44, 0, 129, 111, 119, 0, 86,
- 234, 13, 24, 244, 13, 0, 4, 11, 21, 8, 19, 0, 129, 112, 115, 0, 18, 18, 15, 0,
- 129, 107, 117, 112, 0, 68, 28, 14, 8, 93, 14, 11, 103, 15, 15, 113, 15, 18,
- 127, 15, 19, 144, 15, 22, 155, 15, 23, 164, 15, 24, 176, 15, 28, 185, 15, 0,
- 76, 38, 14, 15, 48, 14, 24, 82, 14, 0, 15, 12, 16, 12, 22, 0, 130, 97, 114, 0,
- 76, 55, 14, 24, 66, 14, 0, 16, 16, 12, 22, 0, 132, 105, 108, 97, 114, 0, 6,
- 12, 23, 4, 19, 0, 134, 114, 116, 105, 99, 117, 108, 97, 114, 0, 15, 10, 8, 21,
- 0, 131, 117, 108, 97, 114, 0, 68, 124, 14, 7, 132, 14, 11, 145, 14, 12, 203,
- 14, 15, 229, 14, 16, 239, 14, 17, 249, 14, 18, 37, 15, 23, 45, 15, 25, 76, 15,
- 0, 15, 6, 0, 130, 101, 97, 114, 0, 17, 4, 15, 4, 6, 0, 132, 101, 110, 100, 97,
- 114, 0, 74, 152, 14, 23, 163, 14, 0, 12, 8, 11, 0, 133, 105, 103, 104, 101,
- 114, 0, 72, 173, 14, 15, 185, 14, 24, 194, 14, 0, 11, 10, 18, 23, 0, 133, 101,
- 116, 104, 101, 114, 0, 18, 44, 0, 132, 116, 104, 101, 114, 0, 9, 0, 131, 114,
- 116, 104, 101, 114, 0, 75, 210, 14, 15, 218, 14, 0, 23, 44, 0, 130, 101, 105,
- 114, 0, 19, 16, 18, 6, 0, 131, 105, 108, 101, 114, 0, 23, 12, 9, 0, 131, 108,
- 116, 101, 114, 0, 16, 4, 21, 10, 44, 0, 129, 97, 114, 0, 76, 0, 15, 23, 12,
- 15, 0, 10, 10, 8, 5, 0, 132, 105, 110, 110, 101, 114, 0, 76, 19, 15, 22, 28,
- 15, 0, 18, 19, 0, 131, 110, 116, 101, 114, 0, 12, 15, 0, 130, 101, 110, 101,
- 114, 0, 9, 8, 5, 0, 129, 114, 101, 0, 75, 52, 15, 24, 62, 15, 0, 18, 17, 4, 0,
- 131, 116, 104, 101, 114, 0, 19, 18, 16, 6, 0, 134, 111, 109, 112, 117, 116,
- 101, 114, 0, 72, 83, 15, 26, 94, 15, 0, 8, 21, 8, 11, 26, 0, 131, 118, 101,
- 114, 0, 18, 11, 0, 130, 101, 118, 101, 114, 0, 8, 23, 18, 44, 0, 130, 104,
- 101, 114, 0, 4, 24, 6, 12, 23, 21, 4, 19, 0, 130, 108, 97, 114, 0, 23, 4, 21,
- 8, 23, 17, 12, 0, 135, 116, 101, 114, 97, 116, 111, 114, 0, 23, 15, 15, 24,
- 17, 0, 130, 112, 116, 114, 0, 4, 8, 28, 44, 0, 129, 114, 115, 0, 18, 4, 21, 8,
- 19, 18, 0, 130, 116, 111, 114, 0, 6, 18, 44, 0, 129, 99, 117, 114, 0, 8, 25,
- 8, 44, 0, 129, 114, 121, 0, 68, 219, 15, 8, 3, 16, 10, 147, 16, 19, 158, 16,
- 21, 170, 16, 22, 181, 16, 23, 77, 17, 24, 85, 17, 0, 75, 229, 15, 19, 240, 15,
- 28, 250, 15, 0, 19, 21, 8, 19, 0, 131, 104, 97, 112, 115, 0, 11, 21, 8, 19, 0,
- 130, 97, 112, 115, 0, 26, 15, 4, 0, 130, 97, 121, 115, 0, 68, 19, 16, 6, 42,
- 16, 12, 53, 16, 15, 129, 16, 22, 136, 16, 0, 71, 26, 16, 14, 34, 16, 0, 12,
- 44, 0, 130, 101, 97, 115, 0, 23, 0, 131, 97, 107, 101, 115, 0, 8, 7, 17, 12,
- 0, 131, 105, 99, 101, 115, 0, 70, 63, 16, 21, 102, 16, 23, 117, 16, 0, 72, 70,
- 16, 12, 80, 16, 0, 7, 17, 12, 0, 132, 105, 99, 101, 115, 0, 71, 87, 16, 23,
- 94, 16, 0, 17, 12, 0, 130, 101, 115, 0, 21, 8, 25, 0, 130, 101, 115, 0, 18,
- 22, 8, 6, 6, 4, 0, 132, 115, 111, 114, 105, 101, 115, 0, 15, 12, 5, 4, 0, 131,
- 105, 116, 105, 101, 115, 0, 4, 9, 0, 129, 115, 101, 0, 18, 11, 6, 44, 0, 130,
- 111, 115, 101, 115, 0, 12, 17, 11, 23, 0, 131, 105, 110, 103, 115, 0, 4, 8,
- 11, 21, 8, 19, 0, 131, 97, 112, 115, 0, 8, 4, 28, 44, 0, 131, 101, 97, 114,
- 115, 0, 68, 191, 16, 8, 203, 16, 18, 66, 17, 0, 21, 4, 5, 16, 8, 0, 130, 114,
- 97, 115, 115, 0, 70, 216, 16, 17, 240, 16, 21, 13, 17, 22, 42, 17, 0, 70, 223,
- 16, 24, 232, 16, 0, 18, 21, 19, 0, 131, 101, 115, 115, 0, 22, 0, 130, 99, 101,
- 115, 115, 0, 76, 247, 16, 22, 3, 17, 0, 22, 22, 24, 5, 0, 133, 105, 110, 101,
- 115, 115, 0, 24, 5, 0, 131, 105, 110, 101, 115, 115, 0, 19, 0, 85, 22, 17, 24,
- 33, 17, 0, 24, 22, 0, 133, 112, 112, 114, 101, 115, 115, 0, 22, 0, 131, 112,
- 114, 101, 115, 115, 0, 70, 49, 17, 18, 58, 17, 0, 6, 24, 22, 0, 131, 101, 115,
- 115, 0, 19, 0, 130, 115, 101, 115, 115, 0, 21, 6, 6, 4, 0, 132, 114, 111, 115,
- 115, 0, 21, 12, 9, 0, 129, 115, 116, 0, 82, 92, 17, 22, 106, 17, 0, 15, 18,
- 16, 18, 17, 4, 0, 132, 97, 108, 111, 117, 115, 0, 17, 8, 6, 17, 18, 6, 0, 133,
- 115, 101, 110, 115, 117, 115, 0, 68, 158, 17, 8, 188, 17, 10, 217, 17, 11,
- 227, 17, 12, 25, 18, 15, 36, 18, 16, 47, 18, 17, 59, 18, 18, 151, 19, 19, 189,
- 19, 22, 217, 19, 24, 107, 20, 0, 85, 165, 17, 26, 176, 17, 0, 8, 19, 8, 22, 0,
- 131, 97, 114, 97, 116, 0, 11, 8, 16, 18, 22, 0, 131, 119, 104, 97, 116, 0, 68,
- 195, 17, 17, 204, 17, 0, 21, 10, 44, 0, 130, 101, 97, 116, 0, 16, 17, 21, 8,
- 25, 18, 10, 0, 130, 101, 110, 116, 0, 11, 24, 4, 6, 0, 130, 103, 104, 116, 0,
- 71, 237, 17, 10, 244, 17, 12, 14, 18, 0, 12, 26, 0, 129, 116, 104, 0, 81, 251,
- 17, 24, 2, 18, 0, 8, 15, 0, 129, 116, 104, 0, 18, 21, 11, 23, 0, 133, 111,
- 117, 103, 104, 116, 0, 10, 17, 18, 23, 0, 131, 105, 103, 104, 116, 0, 23, 24,
- 18, 5, 4, 0, 129, 32, 105, 116, 0, 22, 24, 8, 21, 0, 131, 115, 117, 108, 116,
- 0, 4, 23, 21, 18, 19, 16, 12, 0, 129, 110, 116, 0, 68, 72, 18, 8, 128, 18, 21,
- 132, 19, 22, 143, 19, 0, 76, 85, 18, 17, 96, 18, 21, 107, 18, 23, 117, 18, 0,
- 19, 12, 6, 8, 21, 0, 130, 101, 110, 116, 0, 12, 16, 18, 21, 19, 0, 130, 101,
- 110, 116, 0, 4, 19, 19, 4, 0, 130, 101, 110, 116, 0, 8, 19, 16, 18, 6, 0, 130,
- 101, 110, 116, 0, 76, 144, 18, 16, 177, 18, 21, 21, 19, 25, 111, 19, 29, 121,
- 19, 0, 70, 151, 18, 19, 164, 18, 0, 8, 9, 9, 8, 0, 133, 105, 99, 105, 101,
- 110, 116, 0, 8, 6, 8, 21, 0, 133, 105, 112, 105, 101, 110, 116, 0, 72, 190,
- 18, 17, 202, 18, 21, 235, 18, 23, 10, 19, 0, 25, 18, 10, 0, 131, 114, 110,
- 109, 101, 110, 116, 0, 72, 209, 18, 21, 221, 18, 0, 25, 18, 10, 0, 132, 114,
- 110, 109, 101, 110, 116, 0, 18, 25, 18, 10, 0, 134, 101, 114, 110, 109, 101,
- 110, 116, 0, 72, 242, 18, 18, 253, 18, 0, 25, 18, 10, 0, 131, 110, 109, 101,
- 110, 116, 0, 25, 18, 10, 0, 133, 101, 114, 110, 109, 101, 110, 116, 0, 4, 23,
- 22, 0, 131, 101, 109, 101, 110, 116, 0, 68, 34, 19, 8, 45, 19, 9, 57, 19, 21,
- 68, 19, 0, 19, 4, 0, 132, 112, 97, 114, 101, 110, 116, 0, 9, 12, 7, 0, 132,
- 102, 101, 114, 101, 110, 116, 0, 9, 12, 7, 0, 131, 101, 114, 101, 110, 116, 0,
- 68, 75, 19, 8, 99, 19, 0, 19, 0, 68, 84, 19, 19, 92, 19, 0, 133, 112, 97, 114,
- 101, 110, 116, 0, 4, 0, 131, 101, 110, 116, 0, 9, 12, 7, 0, 133, 102, 101,
- 114, 101, 110, 116, 0, 8, 15, 8, 21, 0, 130, 97, 110, 116, 0, 12, 17, 10, 18,
- 6, 0, 130, 97, 110, 116, 0, 8, 9, 9, 12, 7, 0, 129, 101, 110, 116, 0, 18, 6,
- 0, 130, 110, 115, 116, 0, 81, 161, 19, 21, 171, 19, 22, 180, 19, 0, 7, 12, 7,
- 0, 130, 32, 110, 111, 116, 0, 19, 8, 21, 0, 130, 111, 114, 116, 0, 16, 15, 4,
- 0, 130, 111, 115, 116, 0, 72, 196, 19, 28, 207, 19, 0, 12, 6, 8, 21, 0, 131,
- 101, 105, 112, 116, 0, 6, 17, 8, 0, 130, 114, 121, 112, 116, 0, 72, 236, 19,
- 10, 21, 20, 12, 30, 20, 16, 59, 20, 17, 69, 20, 24, 96, 20, 0, 74, 243, 19,
- 21, 10, 20, 0, 76, 250, 19, 24, 2, 20, 0, 11, 0, 130, 104, 101, 115, 116, 0,
- 22, 0, 130, 103, 101, 115, 116, 0, 23, 17, 12, 0, 131, 101, 114, 101, 115,
- 116, 0, 21, 4, 15, 0, 129, 101, 115, 116, 0, 73, 37, 20, 17, 49, 20, 0, 8, 17,
- 4, 16, 0, 132, 105, 102, 101, 115, 116, 0, 4, 10, 4, 0, 131, 105, 110, 115,
- 116, 0, 18, 15, 4, 0, 131, 109, 111, 115, 116, 0, 68, 76, 20, 17, 87, 20, 0,
- 12, 10, 4, 0, 132, 97, 105, 110, 115, 116, 0, 12, 4, 10, 4, 0, 130, 115, 116,
- 0, 13, 4, 44, 0, 131, 100, 106, 117, 115, 116, 0, 70, 120, 20, 18, 144, 20,
- 19, 168, 20, 23, 191, 20, 0, 72, 127, 20, 21, 137, 20, 0, 6, 27, 8, 0, 132,
- 101, 99, 117, 116, 0, 12, 6, 0, 128, 105, 116, 0, 68, 151, 20, 5, 160, 20, 0,
- 5, 0, 132, 97, 98, 111, 117, 116, 0, 5, 4, 0, 131, 111, 117, 116, 0, 87, 175,
- 20, 24, 183, 20, 0, 17, 12, 0, 131, 112, 117, 116, 0, 18, 0, 130, 116, 112,
- 117, 116, 0, 19, 24, 18, 0, 131, 116, 112, 117, 116, 0, 23, 18, 5, 4, 0, 129,
- 117, 116, 0, 72, 217, 20, 12, 253, 20, 0, 68, 224, 20, 12, 231, 20, 0, 11, 44,
- 0, 129, 118, 101, 0, 70, 238, 20, 8, 246, 20, 0, 8, 21, 0, 130, 101, 105, 118,
- 0, 6, 8, 21, 0, 129, 118, 0, 8, 11, 6, 4, 44, 0, 130, 105, 101, 118, 0, 76,
- 15, 21, 17, 25, 21, 0, 8, 25, 8, 21, 0, 130, 105, 101, 119, 0, 18, 14, 44, 0,
- 130, 110, 111, 119, 0, 70, 59, 21, 8, 118, 21, 11, 128, 21, 15, 146, 21, 17,
- 87, 22, 21, 114, 22, 22, 12, 23, 23, 39, 23, 0, 68, 72, 21, 8, 84, 21, 12, 95,
- 21, 19, 106, 21, 0, 21, 6, 18, 19, 28, 11, 0, 130, 105, 115, 121, 0, 24, 20,
- 8, 21, 9, 0, 129, 110, 99, 121, 0, 21, 6, 18, 19, 28, 11, 0, 129, 115, 121, 0,
- 24, 21, 14, 17, 4, 5, 0, 129, 116, 99, 121, 0, 23, 9, 4, 22, 0, 130, 101, 116,
- 121, 0, 6, 21, 4, 21, 12, 8, 11, 0, 135, 105, 101, 114, 97, 114, 99, 104, 121,
- 0, 68, 165, 21, 11, 232, 21, 14, 242, 21, 15, 250, 21, 18, 66, 22, 21, 76, 22,
- 0, 69, 184, 21, 8, 193, 21, 15, 199, 21, 17, 208, 21, 21, 215, 21, 24, 224,
- 21, 0, 18, 21, 19, 0, 129, 98, 108, 121, 0, 21, 0, 128, 108, 121, 0, 8, 21, 0,
- 131, 97, 108, 108, 121, 0, 12, 9, 0, 128, 108, 121, 0, 8, 17, 8, 10, 0, 128,
- 108, 121, 0, 23, 6, 4, 0, 128, 108, 121, 0, 10, 12, 15, 22, 0, 129, 116, 108,
- 121, 0, 12, 15, 0, 129, 101, 108, 121, 0, 68, 4, 22, 5, 47, 22, 8, 56, 22, 0,
- 86, 11, 22, 23, 35, 22, 0, 24, 0, 108, 20, 22, 22, 27, 22, 0, 131, 117, 97,
- 108, 108, 121, 0, 24, 0, 132, 97, 108, 108, 121, 0, 24, 6, 4, 0, 133, 116,
- 117, 97, 108, 108, 121, 0, 4, 5, 18, 21, 19, 0, 129, 121, 0, 4, 21, 0, 132,
- 101, 97, 108, 108, 121, 0, 16, 18, 17, 4, 0, 130, 97, 108, 121, 0, 4, 16, 12,
- 21, 19, 0, 129, 105, 108, 121, 0, 72, 94, 22, 19, 103, 22, 0, 18, 16, 44, 0,
- 130, 110, 101, 121, 0, 4, 16, 18, 6, 0, 131, 112, 97, 110, 121, 0, 68, 127,
- 22, 8, 231, 22, 18, 240, 22, 23, 253, 22, 0, 69, 143, 22, 12, 152, 22, 15,
- 165, 22, 16, 193, 22, 22, 202, 22, 0, 12, 15, 0, 130, 114, 97, 114, 121, 0,
- 15, 15, 12, 27, 24, 4, 0, 132, 105, 97, 114, 121, 0, 76, 172, 22, 15, 182, 22,
- 0, 27, 24, 4, 0, 130, 105, 97, 114, 121, 0, 12, 27, 24, 4, 0, 131, 105, 97,
- 114, 121, 0, 24, 22, 0, 130, 109, 97, 114, 121, 0, 8, 6, 0, 70, 212, 22, 8,
- 223, 22, 0, 8, 17, 0, 133, 101, 115, 115, 97, 114, 121, 0, 17, 0, 130, 115,
- 97, 114, 121, 0, 19, 18, 21, 19, 0, 128, 116, 121, 0, 10, 4, 23, 4, 6, 0, 132,
- 101, 103, 111, 114, 121, 0, 17, 24, 6, 18, 44, 0, 134, 99, 111, 117, 110, 116,
- 114, 121, 0, 4, 0, 85, 21, 23, 26, 32, 23, 0, 6, 18, 19, 28, 11, 0, 130, 105,
- 115, 121, 0, 15, 4, 0, 129, 121, 115, 0, 73, 49, 23, 15, 57, 23, 21, 66, 23,
- 0, 4, 22, 0, 129, 101, 116, 121, 0, 12, 5, 4, 0, 129, 105, 116, 121, 0, 19, 8,
- 18, 21, 19, 0, 132, 112, 101, 114, 116, 121, 0};
-
diff --git a/users/gourdo1/autocorrect/autocorrection_data.h (small) b/users/gourdo1/autocorrect/autocorrection_data.h (small)
deleted file mode 100644
index f98471bb08..0000000000
--- a/users/gourdo1/autocorrect/autocorrection_data.h (small)
+++ /dev/null
@@ -1,152 +0,0 @@
-// Copyright 2021-2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// https://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Generated code.
-
-// Autocorrection dictionary (71 entries):
-// :guage -> gauge
-// :the:the: -> the
-// :thier -> their
-// :ture -> true
-// accomodate -> accommodate
-// acommodate -> accommodate
-// aparent -> apparent
-// aparrent -> apparent
-// apparant -> apparent
-// apparrent -> apparent
-// aquire -> acquire
-// becuase -> because
-// cauhgt -> caught
-// cheif -> chief
-// choosen -> chosen
-// cieling -> ceiling
-// collegue -> colleague
-// concensus -> consensus
-// contians -> contains
-// cosnt -> const
-// dervied -> derived
-// dosen't -> doesn't
-// fales -> false
-// fasle -> false
-// fitler -> filter
-// flase -> false
-// foward -> forward
-// frequecy -> frequency
-// gaurantee -> guarantee
-// guaratee -> guarantee
-// heigth -> height
-// heirarchy -> hierarchy
-// inclued -> include
-// interator -> iterator
-// intput -> input
-// invliad -> invalid
-// lenght -> length
-// liasion -> liaison
-// libary -> library
-// listner -> listener
-// looses: -> loses
-// looup -> lookup
-// manefist -> manifest
-// namesapce -> namespace
-// namespcae -> namespace
-// occassion -> occasion
-// occured -> occurred
-// ouptut -> output
-// ouput -> output
-// overide -> override
-// postion -> position
-// priviledge -> privilege
-// psuedo -> pseudo
-// recieve -> receive
-// refered -> referred
-// relevent -> relevant
-// repitition -> repetition
-// retrun -> return
-// retun -> return
-// reuslt -> result
-// reutrn -> return
-// saftey -> safety
-// seperate -> separate
-// singed -> signed
-// stirng -> string
-// strign -> string
-// swithc -> switch
-// swtich -> switch
-// thresold -> threshold
-// udpate -> update
-// widht -> width
-
-#define AUTOCORRECTION_MIN_LENGTH 5 // ":ture"
-#define AUTOCORRECTION_MAX_LENGTH 10 // "accomodate"
-
-static const uint8_t autocorrection_data[1120] PROGMEM = {108, 43, 0, 6, 71, 0,
- 7, 81, 0, 8, 199, 0, 9, 240, 1, 10, 250, 1, 11, 26, 2, 17, 53, 2, 18, 190, 2,
- 19, 202, 2, 21, 212, 2, 22, 20, 3, 23, 67, 3, 28, 32, 4, 0, 72, 50, 0, 22, 60,
- 0, 0, 11, 23, 44, 8, 11, 23, 44, 0, 132, 0, 8, 22, 18, 18, 15, 0, 132, 115,
- 101, 115, 0, 11, 23, 12, 26, 22, 0, 129, 99, 104, 0, 68, 94, 0, 8, 106, 0, 15,
- 174, 0, 21, 187, 0, 0, 12, 15, 25, 17, 12, 0, 131, 97, 108, 105, 100, 0, 74,
- 119, 0, 12, 129, 0, 21, 140, 0, 24, 165, 0, 0, 17, 12, 22, 0, 131, 103, 110,
- 101, 100, 0, 25, 21, 8, 7, 0, 131, 105, 118, 101, 100, 0, 72, 147, 0, 24, 156,
- 0, 0, 9, 8, 21, 0, 129, 114, 101, 100, 0, 6, 6, 18, 0, 129, 114, 101, 100, 0,
- 15, 6, 17, 12, 0, 129, 100, 101, 0, 18, 22, 8, 21, 11, 23, 0, 130, 104, 111,
- 108, 100, 0, 4, 26, 18, 9, 0, 131, 114, 119, 97, 114, 100, 0, 68, 233, 0, 6,
- 246, 0, 7, 4, 1, 8, 16, 1, 10, 52, 1, 15, 81, 1, 21, 90, 1, 22, 117, 1, 23,
- 144, 1, 24, 215, 1, 25, 228, 1, 0, 6, 19, 22, 8, 16, 4, 17, 0, 130, 97, 99,
- 101, 0, 19, 4, 22, 8, 16, 4, 17, 0, 131, 112, 97, 99, 101, 0, 12, 21, 8, 25,
- 18, 0, 130, 114, 105, 100, 101, 0, 23, 0, 68, 25, 1, 17, 36, 1, 0, 21, 4, 24,
- 10, 0, 130, 110, 116, 101, 101, 0, 4, 21, 24, 4, 10, 0, 135, 117, 97, 114, 97,
- 110, 116, 101, 101, 0, 68, 59, 1, 7, 69, 1, 0, 24, 10, 44, 0, 131, 97, 117,
- 103, 101, 0, 8, 15, 12, 25, 12, 21, 19, 0, 130, 103, 101, 0, 22, 4, 9, 0, 130,
- 108, 115, 101, 0, 76, 97, 1, 24, 109, 1, 0, 24, 20, 4, 0, 132, 99, 113, 117,
- 105, 114, 101, 0, 23, 44, 0, 130, 114, 117, 101, 0, 4, 0, 79, 126, 1, 24, 134,
- 1, 0, 9, 0, 131, 97, 108, 115, 101, 0, 6, 8, 5, 0, 131, 97, 117, 115, 101, 0,
- 4, 0, 71, 156, 1, 19, 193, 1, 21, 203, 1, 0, 18, 16, 0, 80, 166, 1, 18, 181,
- 1, 0, 18, 6, 4, 0, 135, 99, 111, 109, 109, 111, 100, 97, 116, 101, 0, 6, 6, 4,
- 0, 132, 109, 111, 100, 97, 116, 101, 0, 7, 24, 0, 132, 112, 100, 97, 116, 101,
- 0, 8, 19, 8, 22, 0, 132, 97, 114, 97, 116, 101, 0, 10, 8, 15, 15, 18, 6, 0,
- 130, 97, 103, 117, 101, 0, 8, 12, 6, 8, 21, 0, 131, 101, 105, 118, 101, 0, 12,
- 8, 11, 6, 0, 130, 105, 101, 102, 0, 17, 0, 76, 3, 2, 21, 16, 2, 0, 15, 8, 12,
- 6, 0, 133, 101, 105, 108, 105, 110, 103, 0, 12, 23, 22, 0, 131, 114, 105, 110,
- 103, 0, 70, 33, 2, 23, 44, 2, 0, 12, 23, 26, 22, 0, 131, 105, 116, 99, 104, 0,
- 10, 12, 8, 11, 0, 129, 104, 116, 0, 72, 69, 2, 10, 80, 2, 18, 89, 2, 21, 156,
- 2, 24, 167, 2, 0, 22, 18, 18, 11, 6, 0, 131, 115, 101, 110, 0, 12, 21, 23, 22,
- 0, 129, 110, 103, 0, 12, 0, 86, 98, 2, 23, 124, 2, 0, 68, 105, 2, 22, 114, 2,
- 0, 12, 15, 0, 131, 105, 115, 111, 110, 0, 4, 6, 6, 18, 0, 131, 105, 111, 110,
- 0, 76, 131, 2, 22, 146, 2, 0, 23, 12, 19, 8, 21, 0, 134, 101, 116, 105, 116,
- 105, 111, 110, 0, 18, 19, 0, 131, 105, 116, 105, 111, 110, 0, 23, 24, 8, 21,
- 0, 131, 116, 117, 114, 110, 0, 85, 174, 2, 23, 183, 2, 0, 23, 8, 21, 0, 130,
- 117, 114, 110, 0, 8, 21, 0, 128, 114, 110, 0, 7, 8, 24, 22, 19, 0, 131, 101,
- 117, 100, 111, 0, 24, 18, 18, 15, 0, 129, 107, 117, 112, 0, 72, 219, 2, 18, 3,
- 3, 0, 76, 229, 2, 15, 238, 2, 17, 248, 2, 0, 11, 23, 44, 0, 130, 101, 105,
- 114, 0, 23, 12, 9, 0, 131, 108, 116, 101, 114, 0, 23, 22, 12, 15, 0, 130, 101,
- 110, 101, 114, 0, 23, 4, 21, 8, 23, 17, 12, 0, 135, 116, 101, 114, 97, 116,
- 111, 114, 0, 72, 30, 3, 17, 38, 3, 24, 51, 3, 0, 15, 4, 9, 0, 129, 115, 101,
- 0, 4, 12, 23, 17, 18, 6, 0, 131, 97, 105, 110, 115, 0, 22, 17, 8, 6, 17, 18,
- 6, 0, 133, 115, 101, 110, 115, 117, 115, 0, 116, 89, 3, 10, 102, 3, 11, 112,
- 3, 15, 134, 3, 17, 145, 3, 22, 234, 3, 24, 248, 3, 0, 17, 8, 22, 18, 7, 0,
- 132, 101, 115, 110, 39, 116, 0, 11, 24, 4, 6, 0, 130, 103, 104, 116, 0, 71,
- 119, 3, 10, 126, 3, 0, 12, 26, 0, 129, 116, 104, 0, 17, 8, 15, 0, 129, 116,
- 104, 0, 22, 24, 8, 21, 0, 131, 115, 117, 108, 116, 0, 68, 155, 3, 8, 166, 3,
- 22, 226, 3, 0, 21, 4, 19, 19, 4, 0, 130, 101, 110, 116, 0, 85, 173, 3, 25,
- 216, 3, 0, 68, 180, 3, 21, 191, 3, 0, 19, 4, 0, 132, 112, 97, 114, 101, 110,
- 116, 0, 4, 19, 0, 68, 201, 3, 19, 209, 3, 0, 133, 112, 97, 114, 101, 110, 116,
- 0, 4, 0, 131, 101, 110, 116, 0, 8, 15, 8, 21, 0, 130, 97, 110, 116, 0, 18, 6,
- 0, 130, 110, 115, 116, 0, 12, 9, 8, 17, 4, 16, 0, 132, 105, 102, 101, 115,
- 116, 0, 83, 255, 3, 23, 22, 4, 0, 87, 6, 4, 24, 14, 4, 0, 17, 12, 0, 131, 112,
- 117, 116, 0, 18, 0, 130, 116, 112, 117, 116, 0, 19, 24, 18, 0, 131, 116, 112,
- 117, 116, 0, 70, 45, 4, 8, 57, 4, 11, 67, 4, 21, 85, 4, 0, 8, 24, 20, 8, 21,
- 9, 0, 129, 110, 99, 121, 0, 23, 9, 4, 22, 0, 130, 101, 116, 121, 0, 6, 21, 4,
- 21, 12, 8, 11, 0, 135, 105, 101, 114, 97, 114, 99, 104, 121, 0, 4, 5, 12, 15,
- 0, 130, 114, 97, 114, 121, 0};
-
diff --git a/users/gourdo1/autocorrect/autocorrection_dict.txt b/users/gourdo1/autocorrect/autocorrection_dict.txt
deleted file mode 100644
index b5f293d96c..0000000000
--- a/users/gourdo1/autocorrect/autocorrection_dict.txt
+++ /dev/null
@@ -1,473 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# This is a larger example typo dictionary containing 400 entries. It builds to
-# a table of about 6000 bytes, so you'll need a keyboard with a generous
-# amount of free firmware space to use the full dictionary. Alternatively, pick
-# out a subset of entries to a separate file, then build a table from that.
-#
-# Dictionary syntax:
-# Each line of this file defines one typo correction entry with the syntax
-# "typo -> correction". Typos and corrections are case insensitive, and any
-# whitespace before or after the typo and correction is ignored. The typo must be
-# only the letters a-z, or the special character : representing a word break.
-#
-# For documentation about how to use this dictionary, see
-# https://getreuer.info/posts/keyboards/autocorrection
-#
-# Further resources:
-# * Wikipedia has a large list of common typos at
-# https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
-#
-# * EmacsWiki has another list of typos at
-# https://www.emacswiki.org/emacs/autocorrection_abbrev_defs
-#
-# * You can find data on English word frequencies at
-# https://www.wordfrequency.info/samples.asp
-
-
-## 10 most common words.
-# The words "there", "about", "their", "would", "people", "which", "could",
-# "think", "other", and "because" are among the most common words in English
-# that are 5 letters or longer. (We don't include entries for words shorter than
-# that to avoid false triggering.)
-:htere -> there
-abbout -> about
-abotu -> about
-baout -> about
-:theri -> their
-:thier -> their
-:owudl -> would
-woudl -> would
-peaple -> people
-peolpe -> people
-peopel -> people
-poeple -> people
-poeople -> people
-:hwihc -> which
-whcih -> which
-whihc -> which
-whlch -> which
-wihch -> which
-coudl -> could
-:htikn -> think
-:htink -> think
-thikn -> think
-thiunk -> think
-tihkn -> think
-:olther -> other
-:otehr -> other
-baceause -> because
-beacuse -> because
-becasue -> because
-beccause -> because
-becouse -> because
-becuase -> because
-
-## Common words, 11-20.
-theese -> these
-:goign -> going
-:gonig -> going
-:yaers -> years
-:yeasr -> years
-:thsoe -> those
-shoudl -> should
-raelly -> really
-realy -> really
-relaly -> really
-bedore -> before
-befoer -> before
-littel -> little
-beeing -> being
-:hwile -> while
-
-## Common words, 21-30.
-aroud -> around
-arround -> around
-arund -> around
-thign -> thing
-thigsn -> things
-thnigs -> things
-anohter -> another
-beteen -> between
-beween -> between
-bewteen -> between
-:eveyr -> every
-:graet -> great
-:agian -> again
-:sicne -> since
-alwasy -> always
-alwyas -> always
-throught -> thought
-
-
-## Words especially susceptible to skipping or transposing a letter.
-# These entries are for words that are easy enough to spell, but not necessarily
-# easy to press the keys in the right order.
-# Catch misspellings of "achieves", "achieving", etc.
-:acheiv -> achiev
-almsot -> almost
-alomst -> almost
-chnage -> change
-chekc -> check
-childen -> children
-claer -> clear
-comapny -> company
-contian -> contain
-elasped -> elapsed
-feild -> field
-fitler -> filter
-firts -> first
-follwo -> follow
-:foudn -> found
-frequecy -> frequency
-firend -> friend
-freind -> friend
-heigth -> height
-iamge -> image
-inital -> initial
-intput -> input
-laguage -> language
-lenght -> length
-levle -> level
-libary -> library
-:moeny -> money
-mysefl -> myself
-ouptut -> output
-ouput -> output
-probaly -> probably
-probelm -> problem
-recrod -> record
-reponse -> response
-reprot -> report
-singel -> single
-stregth -> strength
-strengh -> strength
-tkaes -> takes
-therfore -> therefore
-todya -> today
-toghether -> together
-unkown -> unknown
-unqiue -> unique
-widht -> width
-
-
-## Words with tricky spelling.
-# If you are a good speller, you could drop this section.
-aberation -> aberration
-accross -> across
-adviced -> advised
-aledge -> allege
-alledge -> allege
-amature -> amateur
-anomolous -> anomalous
-anomoly -> anomaly
-aparent -> apparent
-aparrent -> apparent
-apparant -> apparent
-apparrent -> apparent
-asthetic -> aesthetic
-auxilary -> auxiliary
-auxillary -> auxiliary
-auxilliary -> auxiliary
-bankrupcy -> bankruptcy
-busness -> business
-bussiness -> business
-calander -> calendar
-commitee -> committee
-comittee -> committee
-competance -> competence
-competant -> competent
-concensus -> consensus
-cognizent -> cognizant
-copywrite: -> copyright
-choosen -> chosen
-collegue -> colleague
-excercise -> exercise
-:grammer -> grammar
-:guage -> gauge
-govement -> government
-govenment -> government
-goverment -> government
-governmnet -> government
-govorment -> government
-govornment -> government
-guaratee -> guarantee
-garantee -> guarantee
-gaurantee -> guarantee
-heirarchy -> hierarchy
-hygeine -> hygiene
-hypocracy -> hypocrisy
-hypocrasy -> hypocrisy
-hypocricy -> hypocrisy
-hypocrit: -> hypocrite
-looses: -> loses
-maintence -> maintenance
-morgage -> mortgage
-neccesary -> necessary
-necesary -> necessary
-pallete -> palette
-paralel -> parallel
-parralel -> parallel
-parrallel -> parallel
-priviledge -> privilege
-probablly -> probably
-prominant -> prominent
-propogate -> propagate
-proove -> prove
-psuedo -> pseudo
-reciept -> receipt
-# Catch misspellings of "receives", "receiving", etc.
-receiev -> receiv
-reciev -> receiv
-recepient -> recipient
-recipiant -> recipient
-relevent -> relevant
-repitition -> repetition
-safty -> safety
-saftey -> safety
-# Catch misspellings of "separate", "separating", etc.
-seperat -> separat
-spectogram -> spectrogram
-symetric -> symmetric
-tolerence -> tolerance
-
-
-## Words particularly for coding.
-# Entries for common code keywords ("const") and terminology ("lookup").
-cacheing -> caching
-complier -> compiler
-doulbe -> double
-dyanmic -> dynamic
-# As in "execute", "executable", "executing", ...
-excecut -> execut
-failse -> false
-fales -> false
-fasle -> false
-flase -> false
-indeces -> indices
-indecies -> indices
-indicies -> indices
-interator -> iterator
-looup -> lookup
-namesapce -> namespace
-namespcae -> namespace
-nulltpr -> nullptr
-operaotr -> operator
-overide -> override
-ovveride -> override
-poitner -> pointer
-:rference -> reference
-referece -> reference
-singed -> signed
-stirng -> string
-strign -> string
-swithc -> switch
-swtich -> switch
-teamplate -> template
-tempalte -> template
-:ture -> true
-retrun -> return
-retun -> return
-reutrn -> return
-cosnt -> const
-virutal -> virtual
-vitual -> virtual
-yeild -> yield
-
-
-## Catch skipped spaces between common words.
-:alot: -> a lot
-:andteh -> and the
-:andthe -> and the
-:asthe -> as the
-:atthe -> at the
-abouta -> about a
-aboutit -> about it
-aboutthe -> about the
-:tothe -> to the
-didnot -> did not
-fromthe -> from the
-
-
-## Various additional entries.
-:agred -> agreed
-:ajust -> adjust
-:anual -> annual
-:asign -> assign
-:aslo: -> also
-:casue -> cause
-:choses -> chooses
-:gaurd -> guard
-:haev -> have
-:hapen -> happen
-:idaes -> ideas
-:jsut: -> just
-:jstu: -> just
-:knwo -> know
-:konw -> know
-:kwno -> know
-:ocuntry -> country
-:ocur -> occur
-:socre -> score
-:szie -> size
-:the:the: -> the
-:turth -> truth
-:uesd: -> used
-:usally -> usually
-abilties -> abilities
-abilty -> ability
-abvove -> above
-accesories -> accessories
-accomodate -> accommodate
-acommodate -> accommodate
-acomplish -> accomplish
-actualy -> actually
-acurate -> accurate
-acutally -> actually
-addtion -> addition
-againnst -> against
-aganist -> against
-aggreed -> agreed
-agianst -> against
-ahppn -> happen
-allign -> align
-anytying -> anything
-aquire -> acquire
-availabe -> available
-availaible -> available
-availalbe -> available
-availble -> available
-availiable -> available
-avalable -> available
-avaliable -> available
-avilable -> available
-bandwith -> bandwidth
-begginer -> beginner
-beleif -> belief
-beleive -> believe
-belive -> believe
-breif -> brief
-burried -> buried
-caluclate -> calculate
-caluculate -> calculate
-calulate -> calculate
-catagory -> category
-cauhgt -> caught
-ceratin -> certain
-certian -> certain
-cheif -> chief
-cieling -> ceiling
-circut -> circuit
-clasic -> classic
-cmoputer -> computer
-coform -> conform
-comming: -> coming
-considerd -> considered
-dervied -> derived
-desicion -> decision
-diferent -> different
-diferrent -> different
-differnt -> different
-diffrent -> different
-divison -> division
-effecient -> efficient
-eligable -> eligible
-elpased -> elapsed
-embarass -> embarrass
-embeded -> embedded
-encypt -> encrypt
-finaly -> finally
-foriegn -> foreign
-foward -> forward
-fraciton -> fraction
-fucntion -> function
-fufill -> fulfill
-fullfill -> fulfill
-futher -> further
-ganerate -> generate
-generaly -> generally
-greatful -> grateful
-heigher -> higher
-higest -> highest
-howver -> however
-hydogen -> hydrogen
-importamt -> important
-inclued -> include
-insted -> instead
-intrest -> interest
-invliad -> invalid
-largst -> largest
-learnign -> learning
-liasion -> liaison
-likly -> likely
-lisense -> license
-listner -> listener
-macthing -> matching
-manefist -> manifest
-mesage -> message
-naturual -> natural
-occassion -> occasion
-occured -> occurred
-particualr -> particular
-paticular -> particular
-peice -> piece
-perhasp -> perhaps
-perheaps -> perhaps
-perhpas -> perhaps
-perphas -> perhaps
-persue -> pursue
-posess -> possess
-postion -> position
-preiod -> period
-primarly -> primarily
-privte -> private
-proccess -> process
-proeprty -> property
-propery -> property
-realtion -> relation
-reasearch -> research
-recuring -> recurring
-refered -> referred
-regluar -> regular
-releated -> related
-resutl -> result
-reuslt -> result
-reveiw -> review
-satisifed -> satisfied
-scheduel -> schedule
-sequnce -> sequence
-similiar -> similar
-simmilar -> similar
-slighly -> slightly
-somehwat -> somewhat
-statment -> statement
-sucess -> success
-succsess -> success
-sugest -> suggest
-sumary -> summary
-supress -> suppress
-surpress -> suppress
-thresold -> threshold
-tongiht -> tonight
-tranpose -> transpose
-typcial -> typical
-udpate -> update
-ususally -> usually
-verticies -> vertices
-whereever -> wherever
-wherre -> where
-wierd -> weird
-
diff --git a/users/gourdo1/autocorrect/make_autocorrection_data.py b/users/gourdo1/autocorrect/make_autocorrection_data.py
deleted file mode 100644
index 8e0bcf9e8e..0000000000
--- a/users/gourdo1/autocorrect/make_autocorrection_data.py
+++ /dev/null
@@ -1,303 +0,0 @@
-# Copyright 2021-2022 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Python program to make autocorrection_data.h.
-
-This program reads "autocorrection_dict.txt" and generates a C source file
-"autocorrection_data.h" with a serialized trie embedded as an array. Run this
-program without arguments like
-
-$ python3 make_autocorrection_data.py
-
-Or to read from a different typo dict file, pass it as the first argument like
-
-$ python3 make_autocorrection_data.py dict.txt
-
-Each line of the dict file defines one typo and its correction with the syntax
-"typo -> correction". Blank lines or lines starting with '#' are ignored.
-Example:
-
- :thier -> their
- dosen't -> doesn't
- fitler -> filter
- lenght -> length
- ouput -> output
- widht -> width
-
-See autocorrection_dict_extra.txt for a larger example.
-
-For full documentation, see
-https://getreuer.info/posts/keyboards/autocorrection
-"""
-
-import sys
-import textwrap
-from typing import Any, Dict, Iterator, List, Tuple
-
-try:
- from english_words import english_words_lower_alpha_set as CORRECT_WORDS
-except ImportError:
- print('Autocorrection will falsely trigger when a typo is a substring of a '
- 'correctly spelled word. To check for this, install the english_words '
- 'package and rerun this script:\n\n pip install english_words\n')
- # Use a minimal word list as a fallback.
- CORRECT_WORDS = ('apparent', 'association', 'available', 'classification',
- 'effect', 'entertainment', 'fantastic', 'information',
- 'integrate', 'international', 'language', 'loosest',
- 'manual', 'nothing', 'provides', 'reference', 'statehood',
- 'technology', 'virtually', 'wealthier', 'wonderful')
-
-KC_A = 4
-KC_SPC = 0x2c
-KC_QUOT = 0x34
-
-TYPO_CHARS = dict(
- [
- ("'", KC_QUOT),
- (':', KC_SPC), # "Word break" character.
- ] +
- # Characters a-z.
- [(chr(c), c + KC_A - ord('a')) for c in range(ord('a'), ord('z') + 1)]
-)
-
-
-def parse_file(file_name: str) -> List[Tuple[str, str]]:
- """Parses autocorrections dictionary file.
-
- Each line of the file defines one typo and its correction with the syntax
- "typo -> correction". Blank lines or lines starting with '#' are ignored. The
- function validates that typos only have characters in TYPO_CHARS, that
- typos are not substrings of other typos, and checking that typos don't trigger
- on CORRECT_WORDS.
-
- Args:
- file_name: String, path of the autocorrections dictionary.
- Returns:
- List of (typo, correction) tuples.
- """
-
- autocorrections = []
- typos = set()
- for line_number, typo, correction in parse_file_lines(file_name):
- if typo in typos:
- print(f'Warning:{line_number}: Ignoring duplicate typo: "{typo}"')
- continue
-
- # Check that `typo` is valid.
- if not(all([c in TYPO_CHARS for c in typo])):
- print(f'Error:{line_number}: Typo "{typo}" has '
- 'characters other than ' + ''.join(TYPO_CHARS.keys()))
- sys.exit(1)
- for other_typo in typos:
- if typo in other_typo or other_typo in typo:
- print(f'Error:{line_number}: Typos may not be substrings of one '
- f'another, otherwise the longer typo would never trigger: '
- f'"{typo}" vs. "{other_typo}".')
- sys.exit(1)
- if len(typo) < 5:
- print(f'Warning:{line_number}: It is suggested that typos are at '
- f'least 5 characters long to avoid false triggers: "{typo}"')
-
- check_typo_against_dictionary(line_number, typo)
-
- autocorrections.append((typo, correction))
- typos.add(typo)
-
- return autocorrections
-
-
-def make_trie(autocorrections: List[Tuple[str, str]]) -> Dict[str, Any]:
- """Makes a trie from the the typos, writing in reverse.
-
- Args:
- autocorrections: List of (typo, correction) tuples.
- Returns:
- Dict of dict, representing the trie.
- """
- trie = {}
- for typo, correction in autocorrections:
- node = trie
- for letter in typo[::-1]:
- node = node.setdefault(letter, {})
- node['LEAF'] = (typo, correction)
-
- return trie
-
-
-def parse_file_lines(file_name: str) -> Iterator[Tuple[int, str, str]]:
- """Parses lines read from `file_name` into typo-correction pairs."""
-
- line_number = 0
- for line in open(file_name, 'rt'):
- line_number += 1
- line = line.strip()
- if line and line[0] != '#':
- # Parse syntax "typo -> correction", using strip to ignore indenting.
- tokens = [token.strip() for token in line.split('->', 1)]
- if len(tokens) != 2 or not tokens[0]:
- print(f'Error:{line_number}: Invalid syntax: "{line}"')
- sys.exit(1)
-
- typo, correction = tokens
- typo = typo.lower() # Force typos to lowercase.
- typo = typo.replace(' ', ':')
-
- yield line_number, typo, correction
-
-
-def check_typo_against_dictionary(line_number: int, typo: str) -> None:
- """Checks `typo` against English dictionary words."""
-
- if typo.startswith(':') and typo.endswith(':'):
- if typo[1:-1] in CORRECT_WORDS:
- print(f'Warning:{line_number}: Typo "{typo}" is a correctly spelled '
- 'dictionary word.')
- elif typo.startswith(':') and not typo.endswith(':'):
- for word in CORRECT_WORDS:
- if word.startswith(typo[1:]):
- print(f'Warning:{line_number}: Typo "{typo}" would falsely trigger '
- f'on correctly spelled word "{word}".')
- elif not typo.startswith(':') and typo.endswith(':'):
- for word in CORRECT_WORDS:
- if word.endswith(typo[:-1]):
- print(f'Warning:{line_number}: Typo "{typo}" would falsely trigger '
- f'on correctly spelled word "{word}".')
- elif not typo.startswith(':') and not typo.endswith(':'):
- for word in CORRECT_WORDS:
- if typo in word:
- print(f'Warning:{line_number}: Typo "{typo}" would falsely trigger '
- f'on correctly spelled word "{word}".')
-
-
-def serialize_trie(autocorrections: List[Tuple[str, str]],
- trie: Dict[str, Any]) -> List[int]:
- """Serializes trie and correction data in a form readable by the C code.
-
- Args:
- autocorrections: List of (typo, correction) tuples.
- trie: Dict of dicts.
- Returns:
- List of ints in the range 0-255.
- """
- table = []
-
- # Traverse trie in depth first order.
- def traverse(trie_node: Dict[str, Any]) -> Dict[str, Any]:
- if 'LEAF' in trie_node: # Handle a leaf trie node.
- typo, correction = trie_node['LEAF']
- word_boundary_ending = typo[-1] == ':'
- typo = typo.strip(':')
- i = 0 # Make the autocorrection data for this entry and serialize it.
- while i < min(len(typo), len(correction)) and typo[i] == correction[i]:
- i += 1
- backspaces = len(typo) - i - 1 + word_boundary_ending
- assert 0 <= backspaces <= 63
- correction = correction[i:]
- data = [backspaces + 128] + list(bytes(correction, 'ascii')) + [0]
-
- entry = {'data': data, 'links': [], 'byte_offset': 0}
- table.append(entry)
- elif len(trie_node) == 1: # Handle trie node with a single child.
- c, trie_node = next(iter(trie_node.items()))
- entry = {'chars': c, 'byte_offset': 0}
-
- # It's common for a trie to have long chains of single-child nodes. We
- # find the whole chain so that we can serialize it more efficiently.
- while len(trie_node) == 1 and 'LEAF' not in trie_node:
- c, trie_node = next(iter(trie_node.items()))
- entry['chars'] += c
-
- table.append(entry)
- entry['links'] = [traverse(trie_node)]
- else: # Handle trie node with multiple children.
- entry = {'chars': ''.join(sorted(trie_node.keys())), 'byte_offset': 0}
- table.append(entry)
- entry['links'] = [traverse(trie_node[c]) for c in entry['chars']]
- return entry
-
- traverse(trie)
-
- def serialize(e: Dict[str, Any]) -> List[int]:
- if not e['links']: # Handle a leaf table entry.
- return e['data']
- elif len(e['links']) == 1: # Handle a chain table entry.
- return [TYPO_CHARS[c] for c in e['chars']] + [0]
- else: # Handle a branch table entry.
- data = []
- for c, link in zip(e['chars'], e['links']):
- data += [TYPO_CHARS[c] | (0 if data else 64)] + encode_link(link)
- return data + [0]
-
- byte_offset = 0
- for e in table: # To encode links, first compute byte offset of each entry.
- e['byte_offset'] = byte_offset
- byte_offset += len(serialize(e))
-
- return [b for e in table for b in serialize(e)] # Serialize final table.
-
-
-def encode_link(link: Dict[str, Any]) -> List[int]:
- """Encodes a node link as two bytes."""
- byte_offset = link['byte_offset']
- if not (0 <= byte_offset <= 0xffff):
- print('Error: The autocorrection table is too large, a node link exceeds '
- '64KB limit. Try reducing the autocorrection dict to fewer entries.')
- sys.exit(1)
- return [byte_offset & 255, byte_offset >> 8]
-
-
-def write_generated_code(autocorrections: List[Tuple[str, str]],
- data: List[int],
- file_name: str) -> None:
- """Writes autocorrection data as generated C code to `file_name`.
-
- Args:
- autocorrections: List of (typo, correction) tuples.
- data: List of ints in 0-255, the serialized trie.
- file_name: String, path of the output C file.
- """
- assert all(0 <= b <= 255 for b in data)
-
- def typo_len(e: Tuple[str, str]) -> int:
- return len(e[0])
-
- min_typo = min(autocorrections, key=typo_len)[0]
- max_typo = max(autocorrections, key=typo_len)[0]
- generated_code = ''.join([
- '// Generated code.\n\n',
- f'// Autocorrection dictionary ({len(autocorrections)} entries):\n',
- ''.join(sorted(f'// {typo:<{len(max_typo)}} -> {correction}\n'
- for typo, correction in autocorrections)),
- f'\n#define AUTOCORRECTION_MIN_LENGTH {len(min_typo)} // "{min_typo}"\n',
- f'#define AUTOCORRECTION_MAX_LENGTH {len(max_typo)} // "{max_typo}"\n\n',
- textwrap.fill('static const uint8_t autocorrection_data[%d] PROGMEM = {%s};' % (
- len(data), ', '.join(map(str, data))), width=80, subsequent_indent=' '),
- '\n\n'])
-
- with open(file_name, 'wt') as f:
- f.write(generated_code)
-
-
-def main(argv):
- dict_file = argv[1] if len(argv) > 1 else 'autocorrection_dict.txt'
- autocorrections = parse_file(dict_file)
- trie = make_trie(autocorrections)
- data = serialize_trie(autocorrections, trie)
- print(f'Processed %d autocorrection entries to table with %d bytes.'
- % (len(autocorrections), len(data)))
- write_generated_code(autocorrections, data, 'autocorrection_data.h')
-
-
-if __name__ == '__main__':
- main(sys.argv)