import { safeMod } from "./utils";

export const OPERATORS: {[key: string]: Function} =  {
  "+": (a: number, b: number) => a + b,
  "-": (a: number, b: number) => a - b,
  "*": (a: number, b: number) => a * b,
  "/": (a: number, b: number) => a / b,
  "%": (a: number, b: number) => safeMod(a, b),
  "^": (a: number, b: number) => a ** b,
  "<<": (a: number, b: number) => a << b,
  ">>": (a: number, b: number) => a >> b,
  "&": (a: number, b: number) => a & b,
  "|": (a: number, b: number) => a | b
}

export const DEFAULT_DURATION = 0.25;

export const DEFAULT_OPTIONS = {
    octave: 0,
    key: "C4",
    scale: "MAJOR",
    measure: 0,
    degrees: false,
  };

export const DEFAULT_DURS: { [key: string]: number }  = {
    "m..": 14.0,   // Double dotted maxima
    "m.": 12.0,    // Dotted maxima
    "m": 8.0,      // Maxima
    "l..": 7.0,    // Double dotted long
    "l.": 6.0,     // Dotted long
    "l": 4.0,      // Long
    "d..": 7/2,    // 3.5: Double dotted double whole
    "d.": 3.0,     // Dotted double whole
    "n": 8/3,      // 2.666: Triplet long
    "d": 2.0,      // Double whole
    "w..": 7/4,    // 1.75: Double dotted whole
    "w.": 3/2,     // 1.5: Double dotted whole
    "k": 4/3,      // 1.333: Triplet double whole
    "w": 1.0,      // Whole
    "h..": 7/8,    // 0.875: Double dotted half
    "h.": 3/4,     // 0.75: Dotted half
    "c": 2/3,      // 0.666: Triplet whole
    "h": 1/2,      // 0.5: Half
    "p": 1/3,      // 0.333: Triplet half
    "q..": 7/16,   // 0.4375: Double dotted quarter
    "q.": 3/8,     // 0.375: Dotted quarter
    "q": 0.25,     // Quarter
    "e..": 7/32,   // 0.2187: Double dotted eighth
    "e.": 3/16,    // 0.1875: Dotted eighth
    "g": 1/6,      // 0.1666: Triplet quarter
    "e": 1/8,      // 0.125: 8th note
    "s..": 7/64,   // 0.1093: Double dotted 16th
    "a": 1/12,     // 0.0833: Triplet 8th
    "s.": 3/32,    // 0.0937: Dotted 16th
    "s": 1/16,     // 0.0625: 16th note
    "t..": 7/128,  // 0.0546: Double dotted 32th
    "t.": 3/64,    // 0.0468: Dotted 32th
    "f": 1/24,     // 0.0416: Triplet 16th
    "t": 1/32,     // 0.0312: 32th note
    "u..": 7/256,  // 0.0273: Double dotted 64th
    "u.": 3/128,   // 0.0234: Dotted 64th
    "x": 1/48,     // 0.0208: Triplet 32th
    "u": 1/64,     // 0.0156: 64th note
    "o..": 7/512,  // 0.0136: Double dotted 128th
    "y": 1/96,     // 0.0104: Triplet 64th
    "o.": 3/256,   // 0.0117: Dotted 128th
    "o": 1/128,    // 0.0078: 128th note
    "j": 1/192,    // 0.0052: Triplet 128th
    "z": 0.0,      // 0
};

export const NOTES_TO_INTERVALS: { [key: string]: number } = {
    "C": 0,
    "Cs": 1,
    "D": 2,
    "Eb": 3,
    "E": 4,
    "F": 5,
    "Fs": 6,
    "G": 7,
    "Ab": 8,
    "A": 9,
    "Bb": 10,
    "B": 11,
  };
  
  export const INTERVALS_TO_NOTES: { [key: number]: string } = {
    0: "C",
    1: "Cs",
    2: "D",
    3: "Eb",
    4: "E",
    5: "F",
    6: "Fs",
    7: "G",
    8: "Ab",
    9: "A",
    10: "Bb",
    11: "B",
  };
  
  export const CIRCLE_OF_FIFTHS: string[] = [
    "Gb",
    "Cs",
    "Ab",
    "Eb",
    "Bb",
    "F",
    "C",
    "G",
    "D",
    "A",
    "E",
    "B",
    "Fs",
  ];
  
  export const enum MODE {
    MAJOR = 0,
    IONIAN = 0,
    MINOR = -3,
    AEOLIAN = -3,
    DORIAN = -2,
    PHRYGIAN = -4,
    LYDIAN = 1,
    MIXOLYDIAN = -1,
    LOCRIAN = -5
  }
  
  export const MODE_ACCIDENTALS: { [key: string]: number } = {
    "MAJOR": 0,
    "IONIAN": 0,
    "MINOR": -3,
    "AEOLIAN": -3,
    "DORIAN": -2,
    "PHRYGIAN": -4,
    "LYDIAN": 1,
    "MIXOLYDIAN": -1,
    "LOCRIAN": -5,
  };
  
  export const MODES: string[] = [
    "MAJOR",
    "IONIAN",
    "MINOR",
    "AEOLIAN",
    "DORIAN",
    "PHRYGIAN",
    "LYDIAN",
    "MIXOLYDIAN",
    "LOCRIAN",
  ];

  export const MODIFIERS: { [key: string]: number } = {
    "#": 1,
    "b": -1,
    "s": 1,
  };
  
  export const ROMANS: { [key: string]: number } = {
    "i": 1,
    "v": 5,
    "x": 10,
    "l": 50,
    "c": 100,
    "d": 500,
    "m": 1000,
  };

  // FROM: allthescales.org & common synonyms
  const scales = () => {
    // Scales with multiple names
    const aeolian = [2, 1, 2, 2, 1, 2, 2];
    const ionian = [2, 2, 1, 2, 2, 2, 1];
    const mydian = [2, 1, 2, 2, 1, 3, 1];
    const aerorian = [2, 2, 1, 2, 1, 3, 1];
    const rocritonic = [3, 2, 2, 3, 2];
    const thaptitonic = [2, 3, 2, 3, 2];
    const whole = [2, 2, 2, 2, 2, 2];
    const gycrimic = [2, 1, 1, 3, 2, 3];
    const aeolyphimic = [3, 2, 1, 1, 3, 2];
    const bocrian = [2, 1, 2, 2, 2, 2, 1];
    const stydian = [2, 2, 1, 2, 1, 2, 2];
    const aerylian = [1, 2, 2, 2, 1, 3, 1];
    const thydian = [1, 2, 2, 2, 2, 2, 1];
    const minordimin = [1, 2, 1, 2, 1, 2, 1, 2];
    const ionoptyllic = [2, 2, 1, 2, 1, 1, 2, 1];
    const ionacryllic = [2, 1, 2, 2, 1, 1, 2, 1];
    const aerycryllic = [2, 2, 1, 2, 2, 1, 1, 1];
    // All scales
    const all_scales = {
        "MAJOR": ionian,
        "MINOR": aeolian,
        "HARMONIC MINOR": mydian,
        "HARMONIC MAJOR": aerorian,
        "MINOR PENTATONIC": rocritonic,
        "SUSPENDED PENTATONIC": thaptitonic,
        "BLUES MAJOR": gycrimic,
        "BLUES MINOR": aeolyphimic,
        "WHOLE": whole,
        "MELODIC MINOR": bocrian,
        "MELODIC MAJOR": stydian,
        "MINORIC": [4, 4, 4],
        "THAPTIC": [4, 3, 4, 1],
        "LOTHIC": [3, 4, 1, 4],
        "PHRATIC": [4, 1, 4, 3],
        "AERATHIC": [1, 4, 3, 4],
        "EPATHIC": [4, 3, 2, 3],
        "MYNIC": [3, 2, 3, 4],
        "ROTHIC": [2, 3, 4, 3],
        "EPORIC": [3, 4, 3, 2],
        "ZYPHIC": [4, 4, 3, 1],
        "EPOGIC": [4, 3, 1, 4],
        "LANIC": [3, 1, 4, 4],
        "PYRRIC": [1, 4, 4, 3],
        "AEOLORIC": [4, 4, 1, 3],
        "GONIC": [4, 1, 3, 4],
        "DALIC": [1, 3, 4, 4],
        "DYGIC": [3, 4, 4, 1],
        "DARIC": [4, 3, 3, 2],
        "LONIC": [3, 3, 2, 4],
        "PHRADIC": [3, 2, 4, 3],
        "BOLIC": [2, 4, 3, 3],
        "SARIC": [4, 2, 3, 3],
        "ZOPTIC": [2, 3, 3, 4],
        "AERAPHIC": [3, 3, 4, 2],
        "BYPTIC": [3, 4, 2, 3],
        "AEOLIC": [4, 4, 2, 2],
        "KOPTIC": [4, 2, 2, 4],
        "MIXOLYRIC": [2, 2, 4, 4],
        "LYDIC": [2, 4, 4, 2],
        "STATHIC": [4, 2, 4, 2],
        "DADIC": [2, 4, 2, 4],
        "PHRYNIC": [3, 3, 3, 3],
        "EPATHITONIC": [3, 2, 3, 2, 2],
        "MYNITONIC": [2, 3, 2, 2, 3],
        "ROCRITONIC": rocritonic,
        "PENTATONIC": [2, 2, 3, 2, 3],
        "THAPTITONIC": thaptitonic,
        "MAGITONIC": [4, 3, 2, 2, 1],
        "DADITONIC": [3, 2, 2, 1, 4],
        "AEOLYPHRITONIC": [2, 2, 1, 4, 3],
        "GYCRITONIC": [2, 1, 4, 3, 2],
        "PYRITONIC": [1, 4, 3, 2, 2],
        "GATHITONIC": [4, 2, 3, 2, 1],
        "IONITONIC": [2, 3, 2, 1, 4],
        "PHRYNITONIC": [3, 2, 1, 4, 2],
        "STATHITONIC": [2, 1, 4, 2, 3],
        "THALITONIC": [1, 4, 2, 3, 2],
        "ZOLITONIC": [4, 2, 1, 4, 1],
        "EPOGITONIC": [2, 1, 4, 1, 4],
        "LANITONIC": [1, 4, 1, 4, 2],
        "PAPTITONIC": [4, 1, 4, 2, 1],
        "IONACRITONIC": [1, 4, 2, 1, 4],
        "PHRADITONIC": [4, 1, 4, 1, 2],
        "AEOLORITONIC": [1, 4, 1, 2, 4],
        "GONITONIC": [4, 1, 2, 4, 1],
        "DALITONIC": [1, 2, 4, 1, 4],
        "DYGITONIC": [2, 4, 1, 4, 1],
        "AERACRITONIC": [4, 1, 2, 3, 2],
        "BYPTITONIC": [1, 2, 3, 2, 4],
        "DARITONIC": [2, 3, 2, 4, 1],
        "LONITONIC": [3, 2, 4, 1, 2],
        "IONYCRITONIC": [2, 4, 1, 2, 3],
        "LOTHITONIC": [4, 1, 2, 2, 3],
        "PHRATONIC": [1, 2, 2, 3, 4],
        "AERATHITONIC": [2, 2, 3, 4, 1],
        "SARITONIC": [2, 3, 4, 1, 2],
        "ZOPTITONIC": [3, 4, 1, 2, 2],
        "DOLITONIC": [4, 4, 1, 2, 1],
        "PORITONIC": [4, 1, 2, 1, 4],
        "AERYLITONIC": [1, 2, 1, 4, 4],
        "ZAGITONIC": [2, 1, 4, 4, 1],
        "LAGITONIC": [1, 4, 4, 1, 2],
        "MOLITONIC": [4, 3, 3, 1, 1],
        "STAPTITONIC": [3, 3, 1, 1, 4],
        "MOTHITONIC": [3, 1, 1, 4, 3],
        "AERITONIC": [1, 1, 4, 3, 3],
        "RAGITONIC": [1, 4, 3, 3, 1],
        "IONADITONIC": [4, 3, 2, 1, 2],
        "BOCRITONIC": [3, 2, 1, 2, 4],
        "GYTHITONIC": [2, 1, 2, 4, 3],
        "PAGITONIC": [1, 2, 4, 3, 2],
        "AEOLYTHITONIC": [2, 4, 3, 2, 1],
        "ZACRITONIC": [4, 3, 1, 3, 1],
        "LARITONIC": [3, 1, 3, 1, 4],
        "THACRITONIC": [1, 3, 1, 4, 3],
        "STYDITONIC": [3, 1, 4, 3, 1],
        "LORITONIC": [1, 4, 3, 1, 3],
        "AEOLYRITONIC": [4, 3, 1, 1, 3],
        "GORITONIC": [3, 1, 1, 3, 4],
        "AEOLODITONIC": [1, 1, 3, 4, 3],
        "DOPTITONIC": [1, 3, 4, 3, 1],
        "AERAPHITONIC": [3, 4, 3, 1, 1],
        "ZATHITONIC": [4, 2, 4, 1, 1],
        "RADITONIC": [2, 4, 1, 1, 4],
        "STONITONIC": [4, 1, 1, 4, 2],
        "SYPTITONIC": [1, 1, 4, 2, 4],
        "IONYTHITONIC": [1, 4, 2, 4, 1],
        "AEOLANITONIC": [4, 2, 2, 3, 1],
        "DANITONIC": [2, 2, 3, 1, 4],
        "IONARITONIC": [2, 3, 1, 4, 2],
        "DYNITONIC": [3, 1, 4, 2, 2],
        "ZYDITONIC": [1, 4, 2, 2, 3],
        "AEOLACRITONIC": [4, 2, 1, 2, 3],
        "ZYTHITONIC": [2, 1, 2, 3, 4],
        "DYRITONIC": [1, 2, 3, 4, 2],
        "KOPTITONIC": [2, 3, 4, 2, 1],
        "THOCRITONIC": [3, 4, 2, 1, 2],
        "LYCRITONIC": [4, 1, 3, 3, 1],
        "DAPTITONIC": [1, 3, 3, 1, 4],
        "KYGITONIC": [3, 3, 1, 4, 1],
        "MOCRITONIC": [3, 1, 4, 1, 3],
        "ZYNITONIC": [1, 4, 1, 3, 3],
        "EPYGITONIC": [4, 1, 3, 2, 2],
        "ZAPTITONIC": [1, 3, 2, 2, 4],
        "KAGITONIC": [3, 2, 2, 4, 1],
        "ZOGITONIC": [2, 2, 4, 1, 3],
        "EPYRITONIC": [2, 4, 1, 3, 2],
        "ZOTHITONIC": [4, 1, 3, 1, 3],
        "PHROLITONIC": [1, 3, 1, 3, 4],
        "IONAGITONIC": [3, 1, 3, 4, 1],
        "AEOLAPRITONIC": [1, 3, 4, 1, 3],
        "KYRITONIC": [3, 4, 1, 3, 1],
        "IONYPTITONIC": [4, 1, 1, 3, 3],
        "GYRITONIC": [1, 1, 3, 3, 4],
        "ZALITONIC": [1, 3, 3, 4, 1],
        "STOLITONIC": [3, 3, 4, 1, 1],
        "BYLITONIC": [3, 4, 1, 1, 3],
        "THODITONIC": [3, 3, 2, 3, 1],
        "DOGITONIC": [3, 2, 3, 1, 3],
        "PHRALITONIC": [2, 3, 1, 3, 3],
        "GARITONIC": [3, 1, 3, 3, 2],
        "SOPTITONIC": [1, 3, 3, 2, 3],
        "KATARITONIC": [3, 3, 2, 2, 2],
        "SYLITONIC": [3, 2, 2, 2, 3],
        "THONITONIC": [2, 2, 2, 3, 3],
        "PHROPITONIC": [2, 2, 3, 3, 2],
        "STADITONIC": [2, 3, 3, 2, 2],
        "LYDITONIC": [3, 3, 1, 3, 2],
        "MYTHITONIC": [3, 1, 3, 2, 3],
        "SOGITONIC": [1, 3, 2, 3, 3],
        "GOTHITONIC": [3, 2, 3, 3, 1],
        "ROTHITONIC": [2, 3, 3, 1, 3],
        "ZYLITONIC": [4, 4, 2, 1, 1],
        "ZODITONIC": [4, 2, 1, 1, 4],
        "ZARITONIC": [2, 1, 1, 4, 4],
        "PHRYTHITONIC": [1, 1, 4, 4, 2],
        "ROLITONIC": [1, 4, 4, 2, 1],
        "RANITONIC": [4, 4, 1, 1, 2],
        "LADITONIC": [4, 1, 1, 2, 4],
        "PODITONIC": [1, 1, 2, 4, 4],
        "IONOTHITONIC": [1, 2, 4, 4, 1],
        "KANITONIC": [2, 4, 4, 1, 1],
        "RYPHITONIC": [4, 3, 1, 2, 2],
        "GYLITONIC": [3, 1, 2, 2, 4],
        "AEOLYCRITONIC": [1, 2, 2, 4, 3],
        "PYNITONIC": [2, 2, 4, 3, 1],
        "ZANITONIC": [2, 4, 3, 1, 2],
        "PHRONITONIC": [4, 2, 3, 1, 2],
        "BANITONIC": [2, 3, 1, 2, 4],
        "AERONITONIC": [3, 1, 2, 4, 2],
        "GOLITONIC": [1, 2, 4, 2, 3],
        "DYPTITONIC": [2, 4, 2, 3, 1],
        "AERYNITONIC": [4, 2, 2, 1, 3],
        "PALITONIC": [2, 2, 1, 3, 4],
        "STOTHITONIC": [2, 1, 3, 4, 2],
        "AEROPHITONIC": [1, 3, 4, 2, 2],
        "KATAGITONIC": [3, 4, 2, 2, 1],
        "IONODITONIC": [4, 2, 1, 3, 2],
        "BOGITONIC": [2, 1, 3, 2, 4],
        "MOGITONIC": [1, 3, 2, 4, 2],
        "DOCRITONIC": [3, 2, 4, 2, 1],
        "EPADITONIC": [2, 4, 2, 1, 3],
        "MIXITONIC": [3, 3, 3, 2, 1],
        "PHROTHITONIC": [3, 3, 2, 1, 3],
        "KATYCRITONIC": [3, 2, 1, 3, 3],
        "IONALITONIC": [2, 1, 3, 3, 3],
        "LOPTITONIC": [1, 3, 3, 3, 2],
        "THYRITONIC": [3, 3, 3, 1, 2],
        "THOPTITONIC": [3, 3, 1, 2, 3],
        "BYCRITONIC": [3, 1, 2, 3, 3],
        "PATHITONIC": [1, 2, 3, 3, 3],
        "MYDITONIC": [2, 3, 3, 3, 1],
        "BOLITONIC": [4, 2, 2, 2, 2],
        "BOTHITONIC": [2, 2, 2, 2, 4],
        "KATADITONIC": [2, 2, 2, 4, 2],
        "KODITONIC": [2, 2, 4, 2, 2],
        "THOLITONIC": [2, 4, 2, 2, 2],
        "EPATHIMIC": [3, 2, 2, 1, 2, 2],
        "MYNIMIC": [2, 2, 1, 2, 2, 3],
        "ROCRIMIC": [2, 1, 2, 2, 3, 2],
        "EPORIMIC": [1, 2, 2, 3, 2, 2],
        "THAPTIMIC": [2, 2, 3, 2, 2, 1],
        "LOTHIMIC": [2, 3, 2, 2, 1, 2],
        "DYRIMIC": [4, 2, 1, 2, 2, 1],
        "KOPTIMIC": [2, 1, 2, 2, 1, 4],
        "THOCRIMIC": [1, 2, 2, 1, 4, 2],
        "AEOLANIMIC": [2, 2, 1, 4, 2, 1],
        "DANIMIC": [2, 1, 4, 2, 1, 2],
        "IONARIMIC": [1, 4, 2, 1, 2, 2],
        "DAPTIMIC": [4, 1, 4, 1, 1, 1],
        "KYGIMIC": [1, 4, 1, 1, 1, 4],
        "MOCRIMIC": [4, 1, 1, 1, 4, 1],
        "ZYNIMIC": [1, 1, 1, 4, 1, 4],
        "AEOLIMIC": [1, 1, 4, 1, 4, 1],
        "ZYTHIMIC": [1, 4, 1, 4, 1, 1],
        "EPYGIMIC": [4, 1, 2, 3, 1, 1],
        "ZAPTIMIC": [1, 2, 3, 1, 1, 4],
        "KAGIMIC": [2, 3, 1, 1, 4, 1],
        "ZOGIMIC": [3, 1, 1, 4, 1, 2],
        "EPYRIMIC": [1, 1, 4, 1, 2, 3],
        "LYCRIMIC": [1, 4, 1, 2, 3, 1],
        "BYLIMIC": [4, 1, 2, 2, 2, 1],
        "ZOTHIMIC": [1, 2, 2, 2, 1, 4],
        "PHROLIMIC": [2, 2, 2, 1, 4, 1],
        "IONAGIMIC": [2, 2, 1, 4, 1, 2],
        "AEOLAPHIMIC": [2, 1, 4, 1, 2, 2],
        "KYCRIMIC": [1, 4, 1, 2, 2, 2],
        "GARIMIC": [4, 1, 2, 2, 1, 2],
        "SOPTIMIC": [1, 2, 2, 1, 2, 4],
        "IONYPTIMIC": [2, 2, 1, 2, 4, 1],
        "GYRIMIC": [2, 1, 2, 4, 1, 2],
        "ZALIMIC": [1, 2, 4, 1, 2, 2],
        "STOLIMIC": [2, 4, 1, 2, 2, 1],
        "THONIMIC": [4, 1, 1, 4, 1, 1],
        "STADIMIC": [1, 1, 4, 1, 1, 4],
        "THODIMIC": [1, 4, 1, 1, 4, 1],
        "MYTHIMIC": [4, 1, 1, 3, 2, 1],
        "SOGIMIC": [1, 1, 3, 2, 1, 4],
        "GOGIMIC": [1, 3, 2, 1, 4, 1],
        "ROTHIMIC": [3, 2, 1, 4, 1, 1],
        "KATARIMIC": [2, 1, 4, 1, 1, 3],
        "SYLIMIC": [1, 4, 1, 1, 3, 2],
        "MIXOLIMIC": [3, 2, 3, 2, 1, 1],
        "DADIMIC": [2, 3, 2, 1, 1, 3],
        "AEOLYPHIMIC": [3, 2, 1, 1, 3, 2],
        "GYCRIMIC": gycrimic,
        "PYRIMIC": [1, 1, 3, 2, 3, 2],
        "LYDIMIC": [1, 3, 2, 3, 2, 1],
        "IONACRIMIC": [3, 2, 3, 1, 1, 2],
        "GATHIMIC": [2, 3, 1, 1, 2, 3],
        "IONYNIMIC": [3, 1, 1, 2, 3, 2],
        "PHRYNIMIC": [1, 1, 2, 3, 2, 3],
        "STATHIMIC": [1, 2, 3, 2, 3, 1],
        "THATIMIC": [2, 3, 2, 3, 1, 1],
        "DALIMIC": [3, 2, 2, 3, 1, 1],
        "DYGIMIC": [2, 2, 3, 1, 1, 3],
        "ZOLIMIC": [2, 3, 1, 1, 3, 2],
        "EPOGIMIC": [3, 1, 1, 3, 2, 2],
        "LANIMIC": [1, 1, 3, 2, 2, 3],
        "PAPTIMIC": [1, 3, 2, 2, 3, 1],
        "DARMIC": [3, 2, 2, 2, 1, 2],
        "LONIMIC": [2, 2, 2, 1, 2, 3],
        "IONYCRIMIC": [2, 2, 1, 2, 3, 2],
        "PHRADIMIC": [2, 1, 2, 3, 2, 2],
        "AEOLORIMIC": [1, 2, 3, 2, 2, 2],
        "GONIMIC": [2, 3, 2, 2, 2, 1],
        "PHRACRIMIC": [3, 2, 1, 2, 2, 2],
        "AERATHIMIC": [2, 1, 2, 2, 2, 3],
        "SARIMIC": [1, 2, 2, 2, 3, 2],
        "ZOPTIMIC": [2, 2, 2, 3, 2, 1],
        "ZERACRIMIC": [2, 2, 3, 2, 1, 2],
        "BYPTIMIC": [2, 3, 2, 1, 2, 2],
        "STARIMIC": [4, 3, 2, 1, 1, 1],
        "PHRATHIMIC": [3, 2, 1, 1, 1, 4],
        "SAPTIMIC": [2, 1, 1, 1, 4, 3],
        "AERODIMIC": [1, 1, 1, 4, 3, 2],
        "MACRIMIC": [1, 1, 4, 3, 2, 1],
        "ROGIMIC": [1, 4, 3, 2, 1, 1],
        "BYGIMIC": [4, 3, 1, 1, 2, 1],
        "THYCRIMIC": [3, 1, 1, 2, 1, 4],
        "AEOLADIMIC": [1, 1, 2, 1, 4, 3],
        "DYLIMIC": [1, 2, 1, 4, 3, 1],
        "EPONIMIC": [2, 1, 4, 3, 1, 1],
        "KATYGIMIC": [1, 4, 3, 1, 1, 2],
        "STALIMIC": [4, 2, 3, 1, 1, 1],
        "STOPTIMIC": [2, 3, 1, 1, 1, 4],
        "ZYGIMIC": [3, 1, 1, 1, 4, 2],
        "KATAPTIMIC": [1, 1, 1, 4, 2, 3],
        "AEOLAPTIMIC": [1, 1, 4, 2, 3, 1],
        "POTHIMIC": [1, 4, 2, 3, 1, 1],
        "RYCRIMIC": [4, 2, 2, 1, 2, 1],
        "RONIMIC": [2, 2, 1, 2, 1, 4],
        "STYCRIMIC": [2, 1, 2, 1, 4, 2],
        "KATORIMIC": [1, 2, 1, 4, 2, 2],
        "EPYTHIMIC": [2, 1, 4, 2, 2, 1],
        "KAPTIMIC": [1, 4, 2, 2, 1, 2],
        "KATYTHIMIC": [4, 2, 1, 3, 1, 1],
        "MADIMIC": [2, 1, 3, 1, 1, 4],
        "AERYGIMIC": [1, 3, 1, 1, 4, 2],
        "PYLIMIC": [3, 1, 1, 4, 2, 1],
        "IONATHIMIC": [1, 1, 4, 2, 1, 3],
        "MORIMIC": [1, 4, 2, 1, 3, 1],
        "AERYCRIMIC": [4, 2, 1, 1, 3, 1],
        "GANIMIC": [2, 1, 1, 3, 1, 4],
        "EPARIMIC": [1, 1, 3, 1, 4, 2],
        "LYRIMIC": [1, 3, 1, 4, 2, 1],
        "PHRAPTIMIC": [3, 1, 4, 2, 1, 1],
        "BACRIMIC": [1, 4, 2, 1, 1, 3],
        "PHRALIMIC": [4, 1, 3, 2, 1, 1],
        "PHROGIMIC": [1, 3, 2, 1, 1, 4],
        "RATHIMIC": [3, 2, 1, 1, 4, 1],
        "KATOCRIMIC": [2, 1, 1, 4, 1, 3],
        "PHRYPTIMIC": [1, 1, 4, 1, 3, 2],
        "KATYNIMIC": [1, 4, 1, 3, 2, 1],
        "SOLIMIC": [4, 1, 3, 1, 2, 1],
        "IONOLIMIC": [1, 3, 1, 2, 1, 4],
        "IONOPHIMIC": [3, 1, 2, 1, 4, 1],
        "AEOLOGIMIC": [1, 2, 1, 4, 1, 3],
        "ZADIMIC": [2, 1, 4, 1, 3, 1],
        "SYGIMIC": [1, 4, 1, 3, 1, 2],
        "THOGIMIC": [4, 1, 3, 1, 1, 2],
        "RYTHIMIC": [1, 3, 1, 1, 2, 4],
        "DONIMIC": [3, 1, 1, 2, 4, 1],
        "AEOLOPTIMIC": [1, 1, 2, 4, 1, 3],
        "PANIMIC": [1, 2, 4, 1, 3, 1],
        "LODIMIC": [2, 4, 1, 3, 1, 1],
        "LAPTIMIC": [4, 1, 2, 1, 3, 1],
        "LYGIMIC": [1, 2, 1, 3, 1, 4],
        "LOGIMIC": [2, 1, 3, 1, 4, 1],
        "LALIMIC": [1, 3, 1, 4, 1, 2],
        "SOTHIMIC": [3, 1, 4, 1, 2, 1],
        "PHROCRIMIC": [1, 4, 1, 2, 1, 3],
        "MODIMIC": [4, 1, 2, 1, 2, 2],
        "BARIMIC": [1, 2, 1, 2, 2, 4],
        "POPTIMIC": [2, 1, 2, 2, 4, 1],
        "SAGIMIC": [1, 2, 2, 4, 1, 2],
        "AELOTHIMIC": aeolyphimic,
        "SOCRIMIC": [2, 4, 1, 2, 1, 2],
        "SYRIMIC": [4, 1, 2, 1, 1, 3],
        "STODIMIC": [1, 2, 1, 1, 3, 4],
        "IONOCRIMIC": [2, 1, 1, 3, 4, 1],
        "ZYCRIMIC": [1, 1, 3, 4, 1, 2],
        "IONYGIMIC": [1, 3, 4, 1, 2, 1],
        "KATATHIMIC": [3, 4, 1, 2, 1, 1],
        "BOLIMIC": [4, 1, 1, 3, 1, 2],
        "BOTHIMIC": [1, 1, 3, 1, 2, 4],
        "KATADIMIC": [1, 3, 1, 2, 4, 1],
        "KODIMIC": [3, 1, 2, 4, 1, 1],
        "THOLIMIC": [1, 2, 4, 1, 1, 3],
        "RALIMIC": [2, 4, 1, 1, 3, 1],
        "KANIMIC": [4, 1, 1, 2, 3, 1],
        "ZYLIMIC": [1, 1, 2, 3, 1, 4],
        "ZODIMIC": [1, 2, 3, 1, 4, 1],
        "ZARIMIC": [2, 3, 1, 4, 1, 1],
        "PHRYTHIMIC": [3, 1, 4, 1, 1, 2],
        "RORIMIC": [1, 4, 1, 1, 2, 3],
        "PYNIMIC": [4, 1, 1, 1, 3, 2],
        "ZANIMIC": [1, 1, 1, 3, 2, 4],
        "RANIMIC": [1, 1, 3, 2, 4, 1],
        "LADIMIC": [1, 3, 2, 4, 1, 1],
        "PODIMIC": [3, 2, 4, 1, 1, 1],
        "IONOTHIMIC": [2, 4, 1, 1, 1, 3],
        "KYTRIMIC": [4, 1, 1, 1, 2, 3],
        "GOLIMIC": [1, 1, 1, 2, 3, 4],
        "DYPTIMIC": [1, 1, 2, 3, 4, 1],
        "RYRIMIC": [1, 2, 3, 4, 1, 1],
        "GYLIMIC": [2, 3, 4, 1, 1, 1],
        "AEOLYCRIMIC": [3, 4, 1, 1, 1, 2],
        "PALIMIC": [3, 3, 2, 2, 1, 1],
        "STOTHIMIC": [3, 2, 2, 1, 1, 3],
        "AERONIMIC": [2, 2, 1, 1, 3, 3],
        "KATAGIMIC": [2, 1, 1, 3, 3, 2],
        "PHRONIMIC": [1, 1, 3, 3, 2, 2],
        "BANIMIC": [1, 3, 3, 2, 2, 1],
        "IONODIMIC": [3, 3, 1, 3, 1, 1],
        "BOGIMIC": [3, 1, 3, 1, 1, 3],
        "MOGIMIC": [1, 3, 1, 1, 3, 3],
        "DOCRIMIC": [3, 1, 1, 3, 3, 1],
        "EPADIMIC": [1, 1, 3, 3, 1, 3],
        "AERYNIMIC": [1, 3, 3, 1, 3, 1],
        "MYDIMIC": [3, 3, 1, 1, 3, 1],
        "THYPTIMIC": [3, 1, 1, 3, 1, 3],
        "PHROTHIMIC": [1, 1, 3, 1, 3, 3],
        "KATYCRIMIC": [1, 3, 1, 3, 3, 1],
        "IONALIMIC": [3, 1, 3, 3, 1, 1],
        "LOPTIMIC": [1, 3, 3, 1, 1, 3],
        "ZAGIMIC": [3, 3, 1, 1, 2, 2],
        "LAGIMIC": [3, 1, 1, 2, 2, 3],
        "THYRIMIC": [1, 1, 2, 2, 3, 3],
        "THOTHIMIC": [1, 2, 2, 3, 3, 1],
        "BYCRIMIC": [2, 2, 3, 3, 1, 1],
        "PATHIMIC": [2, 3, 3, 1, 1, 2],
        "MOTHIMIC": [3, 2, 2, 1, 3, 1],
        "AERANIMIC": [2, 2, 1, 3, 1, 3],
        "RAGIMIC": [2, 1, 3, 1, 3, 2],
        "DOLIMIC": [1, 3, 1, 3, 2, 2],
        "PORIMIC": [3, 1, 3, 2, 2, 1],
        "AERYLIMIC": [1, 3, 2, 2, 1, 3],
        "BOCRIMIC": [3, 2, 1, 3, 1, 2],
        "GYTHIMIC": [2, 1, 3, 1, 2, 3],
        "PAGIMIC": [1, 3, 1, 2, 3, 2],
        "AEOLYTHIMIC": [3, 1, 2, 3, 2, 1],
        "MOLIMIC": [1, 2, 3, 2, 1, 3],
        "STAPTIMIC": [2, 3, 2, 1, 3, 1],
        "ZACRIMIC": [3, 2, 1, 2, 3, 1],
        "LARIMIC": [2, 1, 2, 3, 1, 3],
        "THACRIMIC": [1, 2, 3, 1, 3, 2],
        "STYDIMIC": [2, 3, 1, 3, 2, 1],
        "LORIMIC": [3, 1, 3, 2, 1, 2],
        "IONADIMIC": [1, 3, 2, 1, 2, 3],
        "IONYTHIMIC": [3, 1, 3, 1, 3, 1],
        "AERYTHIMIC": [1, 3, 1, 3, 1, 3],
        "DYNIMIC": [3, 1, 3, 1, 2, 2],
        "ZYDIMIC": [1, 3, 1, 2, 2, 3],
        "ZATHIMIC": [3, 1, 2, 2, 3, 1],
        "RADIMIC": [1, 2, 2, 3, 1, 3],
        "STONIMIC": [2, 2, 3, 1, 3, 1],
        "SYPTIMIC": [2, 3, 1, 3, 1, 2],
        "PONIMIC": [4, 4, 1, 1, 1, 1],
        "KADIMIC": [4, 1, 1, 1, 1, 4],
        "GYNIMIC": [1, 1, 1, 1, 4, 4],
        "THYDIMIC": [1, 1, 1, 4, 4, 1],
        "POLIMIC": [1, 1, 4, 4, 1, 1],
        "THANIMIC": [1, 4, 4, 1, 1, 1],
        "LATHIMIC": [4, 3, 1, 2, 1, 1],
        "AERALIMIC": [3, 1, 2, 1, 1, 4],
        "KYNIMIC": [1, 2, 1, 1, 4, 3],
        "STYNIMIC": [2, 1, 1, 4, 3, 1],
        "EPYTIMIC": [1, 1, 4, 3, 1, 2],
        "KATOPTIMIC": [1, 4, 3, 1, 2, 1],
        "GALIMIC": [4, 3, 1, 1, 1, 2],
        "KATHIMIC": [3, 1, 1, 1, 2, 4],
        "LYLIMIC": [1, 1, 1, 2, 4, 3],
        "EPALIMIC": [1, 1, 2, 4, 3, 1],
        "EPACRIMIC": [1, 2, 4, 3, 1, 1],
        "SATHIMIC": [2, 4, 3, 1, 1, 1],
        "KATANIMIC": [4, 2, 2, 2, 1, 1],
        "KATYRIMIC": [2, 2, 2, 1, 1, 4],
        "RYNIMIC": [2, 2, 1, 1, 4, 2],
        "POGIMIC": [2, 1, 1, 4, 2, 2],
        "AERAPTIMIC": [1, 1, 4, 2, 2, 2],
        "EPYLIMIC": [1, 4, 2, 2, 2, 1],
        "MANIMIC": [4, 2, 1, 2, 1, 2],
        "MARIMIC": [2, 1, 2, 1, 2, 4],
        "LOCRIMIC": [1, 2, 1, 2, 4, 2],
        "RYLIMIC": [2, 1, 2, 4, 2, 1],
        "EPATIMIC": [1, 2, 4, 2, 1, 2],
        "BYRIMIC": [2, 4, 2, 1, 2, 1],
        "KOCRIMIC": [4, 2, 1, 1, 1, 3],
        "KORIMIC": [2, 1, 1, 1, 3, 4],
        "LYNIMIC": [1, 1, 1, 3, 4, 2],
        "MALIMIC": [1, 1, 3, 4, 2, 1],
        "SYNIMIC": [1, 3, 4, 2, 1, 1],
        "PHRAGIMIC": [3, 4, 2, 1, 1, 1],
        "MYCRIMIC": [4, 1, 1, 2, 2, 2],
        "IONORIMIC": [1, 1, 2, 2, 2, 4],
        "PHRYDIMIC": [1, 2, 2, 2, 4, 1],
        "ZYPTIMIC": [2, 2, 2, 4, 1, 1],
        "KATOTHIMIC": [2, 2, 4, 1, 1, 2],
        "PHRYLIMIC": [2, 4, 1, 1, 2, 2],
        "AEROTHIMIC": [4, 1, 1, 2, 1, 3],
        "STAGIMIC": [1, 1, 2, 1, 3, 4],
        "DORIMIC": [1, 2, 1, 3, 4, 1],
        "PHRYCRIMIC": [2, 1, 3, 4, 1, 1],
        "KYPTIMIC": [1, 3, 4, 1, 1, 2],
        "IONYLIMIC": [3, 4, 1, 1, 2, 1],
        "EPYNIMIC": [3, 3, 3, 1, 1, 1],
        "IONOGIMIC": [3, 3, 1, 1, 1, 3],
        "KYDIMIC": [3, 1, 1, 1, 3, 3],
        "GAPTIMIC": [1, 1, 1, 3, 3, 3],
        "THARIMIC": [1, 1, 3, 3, 3, 1],
        "IONAPHIMIC": [1, 3, 3, 3, 1, 1],
        "THOPTIMIC": [3, 3, 2, 1, 2, 1],
        "BAGIMIC": [3, 2, 1, 2, 1, 3],
        "KYRIMIC": [2, 1, 2, 1, 3, 3],
        "SONIMIC": [1, 2, 1, 3, 3, 2],
        "AEOLONIMIC": [2, 1, 3, 3, 2, 1],
        "RYGIMIC": [1, 3, 3, 2, 1, 2],
        "THAGIMIC": [3, 3, 2, 1, 1, 2],
        "KOLIMIC": [3, 2, 1, 1, 2, 3],
        "DYCRIMIC": [2, 1, 1, 2, 3, 3],
        "EPYCRIMIC": [1, 1, 2, 3, 3, 2],
        "GOCRIMIC": [1, 2, 3, 3, 2, 1],
        "KATOLIMIC": [2, 3, 3, 2, 1, 1],
        "DAGIMIC": [3, 3, 1, 2, 2, 1],
        "AEOLYDIMIC": [3, 1, 2, 2, 1, 3],
        "PARIMIC": [1, 2, 2, 1, 3, 3],
        "IONAPTIMIC": [2, 2, 1, 3, 3, 1],
        "THYLIMIC": [2, 1, 3, 3, 1, 2],
        "LOLIMIC": [1, 3, 3, 1, 2, 2],
        "THALIMIC": [3, 3, 1, 2, 1, 2],
        "STYGIMIC": [3, 1, 2, 1, 2, 3],
        "AEOLYGIMIC": [1, 2, 1, 2, 3, 3],
        "AEROGIMIC": [2, 1, 2, 3, 3, 1],
        "DACRIMIC": [1, 2, 3, 3, 1, 2],
        "BAPTIMIC": [2, 3, 3, 1, 2, 1],
        "STYTHIMIC": [3, 2, 3, 1, 2, 1],
        "KOTHIMIC": [2, 3, 1, 2, 1, 3],
        "PYGIMIC": [3, 1, 2, 1, 3, 2],
        "RODIMIC": [1, 2, 1, 3, 2, 3],
        "SORIMIC": [2, 1, 3, 2, 3, 1],
        "MONIMIC": [1, 3, 2, 3, 1, 2],
        "AERAGIMIC": [3, 2, 2, 2, 2, 1],
        "EPOTHIMIC": [2, 2, 2, 2, 1, 3],
        "SALIMIC": [2, 2, 2, 1, 3, 2],
        "LYPTIMIC": [2, 2, 1, 3, 2, 2],
        "KATONIMIC": [2, 1, 3, 2, 2, 2],
        "GYGIMIC": [1, 3, 2, 2, 2, 2],
        "AERADIMIC": [3, 2, 1, 3, 2, 1],
        "ZYRIMIC": [2, 1, 3, 2, 1, 3],
        "STYLIMIC": [1, 3, 2, 1, 3, 2],
        "LYTHIMIC": [3, 1, 2, 3, 1, 2],
        "DODIMIC": [1, 2, 3, 1, 2, 3],
        "KATALIMIC": [2, 3, 1, 2, 3, 1],
        "BOPTIMIC": [3, 1, 2, 2, 2, 2],
        "STOGIMIC": [1, 2, 2, 2, 2, 3],
        "THYNIMIC": [2, 2, 2, 2, 3, 1],
        "AEOLATHIMIC": [2, 2, 2, 3, 1, 2],
        "BYTHIMIC": [2, 2, 3, 1, 2, 2],
        "PADIMIC": [2, 3, 1, 2, 2, 2],
        "DATHIMIC": [4, 2, 2, 1, 1, 2],
        "EPAGIMIC": [2, 2, 1, 1, 2, 4],
        "RAPTIMIC": [2, 1, 1, 2, 4, 2],
        "EPOLIMIC": [1, 1, 2, 4, 2, 2],
        "SYTHIMIC": [1, 2, 4, 2, 2, 1],
        "SYDIMIC": [2, 4, 2, 2, 1, 1],
        "GACRIMIC": [4, 2, 1, 1, 2, 2],
        "BORIMIC": [2, 1, 1, 2, 2, 4],
        "SYCRIMIC": [1, 1, 2, 2, 4, 2],
        "GADIMIC": [1, 2, 2, 4, 2, 1],
        "AEOLOCRIMIC": [2, 2, 4, 2, 1, 1],
        "PHRYGIMIC": [2, 4, 2, 1, 1, 2],
        "WHOLETONE": whole,
        "LYDIAN": [2, 2, 2, 1, 2, 2, 1],
        "MIXOLYDIAN": [2, 2, 1, 2, 2, 1, 2],
        "AEOLIAN": aeolian,
        "LOCRIAN": [1, 2, 2, 1, 2, 2, 2],
        "IONIAN": ionian,
        "DORIAN": [2, 1, 2, 2, 2, 1, 2],
        "PHRYGIAN": [1, 2, 2, 2, 1, 2, 2],
        "IONYTHIAN": [4, 1, 2, 2, 1, 1, 1],
        "AEOLYRIAN": [1, 2, 2, 1, 1, 1, 4],
        "GORIAN": [2, 2, 1, 1, 1, 4, 1],
        "AEOLODIAN": [2, 1, 1, 1, 4, 1, 2],
        "DOPTIAN": [1, 1, 1, 4, 1, 2, 2],
        "AERAPHIAN": [1, 1, 4, 1, 2, 2, 1],
        "ZACRIAN": [1, 4, 1, 2, 2, 1, 1],
        "IONARIAN": [4, 1, 1, 3, 1, 1, 1],
        "DYNIAN": [1, 1, 3, 1, 1, 1, 4],
        "ZYDIAN": [1, 3, 1, 1, 1, 4, 1],
        "ZATHIAN": [3, 1, 1, 1, 4, 1, 1],
        "RADIAN": [1, 1, 1, 4, 1, 1, 3],
        "STONIAN": [1, 1, 4, 1, 1, 3, 1],
        "SYPTIAN": [1, 4, 1, 1, 3, 1, 1],
        "AEOLACRIAN": [4, 1, 1, 1, 3, 1, 1],
        "ZYTHIAN": [1, 1, 1, 3, 1, 1, 4],
        "DYRIAN": [1, 1, 3, 1, 1, 4, 1],
        "KOPTIAN": [1, 3, 1, 1, 4, 1, 1],
        "THOCRIAN": [3, 1, 1, 4, 1, 1, 1],
        "AEOLANIAN": [1, 1, 4, 1, 1, 1, 3],
        "DANIAN": [1, 4, 1, 1, 1, 3, 1],
        "ZOGIAN": [4, 1, 1, 1, 2, 2, 1],
        "EPYRIAN": [1, 1, 1, 2, 2, 1, 4],
        "LYCRIAN": [1, 1, 2, 2, 1, 4, 1],
        "DAPTIAN": [1, 2, 2, 1, 4, 1, 1],
        "KYGIAN": [2, 2, 1, 4, 1, 1, 1],
        "MOCRIAN": [2, 1, 4, 1, 1, 1, 2],
        "ZYNIAN": [1, 4, 1, 1, 1, 2, 2],
        "PHROLIAN": [3, 2, 2, 1, 2, 1, 1],
        "IONAGIAN": [2, 2, 1, 2, 1, 1, 3],
        "AEODIAN": [2, 1, 2, 1, 1, 3, 2],
        "KYCRIAN": [1, 2, 1, 1, 3, 2, 2],
        "EPYGIAN": [2, 1, 1, 3, 2, 2, 1],
        "ZAPTIAN": [1, 1, 3, 2, 2, 1, 2],
        "KAGIAN": [1, 3, 2, 2, 1, 2, 1],
        "SOPTIAN": [3, 2, 2, 1, 1, 1, 2],
        "IONYPTIAN": [2, 2, 1, 1, 1, 2, 3],
        "GYRIAN": [2, 1, 1, 1, 2, 3, 2],
        "ZALIAN": [1, 1, 1, 2, 3, 2, 2],
        "STOLIAN": [1, 1, 2, 3, 2, 2, 1],
        "BYLIAN": [1, 2, 3, 2, 2, 1, 1],
        "ZOTHIAN": [2, 3, 2, 2, 1, 1, 1],
        "THONIAN": [3, 2, 1, 2, 2, 1, 1],
        "PHRORIAN": [2, 1, 2, 2, 1, 1, 3],
        "STADIAN": [1, 2, 2, 1, 1, 3, 2],
        "THODIAN": [2, 2, 1, 1, 3, 2, 1],
        "DOGIAN": [2, 1, 1, 3, 2, 1, 2],
        "MIXOPYRIAN": [1, 1, 3, 2, 1, 2, 2],
        "GARIAN": [1, 3, 2, 1, 2, 2, 1],
        "EPATHIAN": [3, 2, 1, 1, 3, 1, 1],
        "MYTHIAN": [2, 1, 1, 3, 1, 1, 3],
        "SOGIAN": [1, 1, 3, 1, 1, 3, 2],
        "GOGIAN": [1, 3, 1, 1, 3, 2, 1],
        "ROTHIAN": [3, 1, 1, 3, 2, 1, 1],
        "KATARIAN": [1, 1, 3, 2, 1, 1, 3],
        "STYLIAN": [1, 3, 2, 1, 1, 3, 1],
        "STATHIAN": [3, 2, 1, 1, 1, 2, 2],
        "MIXONYPHIAN": [2, 1, 1, 1, 2, 2, 3],
        "MAGIAN": [1, 1, 1, 2, 2, 3, 2],
        "DADIAN": [1, 1, 2, 2, 3, 2, 1],
        "AEOLYLIAN": [1, 2, 2, 3, 2, 1, 1],
        "GYCRIAN": [2, 2, 3, 2, 1, 1, 1],
        "PYRIAN": [2, 3, 2, 1, 1, 1, 2],
        "EPOGIAN": [3, 1, 1, 3, 1, 1, 2],
        "LANIAN": [1, 1, 3, 1, 1, 2, 3],
        "PAPTIAN": [1, 3, 1, 1, 2, 3, 1],
        "IONACRIAN": [3, 1, 1, 2, 3, 1, 1],
        "GATHIAN": [1, 1, 2, 3, 1, 1, 3],
        "IONYPHIAN": [1, 2, 3, 1, 1, 3, 1],
        "PHRYNIAN": [2, 3, 1, 1, 3, 1, 1],
        "IONYCRIAN": [3, 1, 1, 2, 2, 1, 2],
        "PHRADIAN": [1, 1, 2, 2, 1, 2, 3],
        "AEOLORIAN": [1, 2, 2, 1, 2, 3, 1],
        "GONIAN": [2, 2, 1, 2, 3, 1, 1],
        "DALIAN": [2, 1, 2, 3, 1, 1, 2],
        "DYGIAN": [1, 2, 3, 1, 1, 2, 2],
        "ZOLIAN": [2, 3, 1, 1, 2, 2, 1],
        "AERATHIAN": [3, 1, 1, 2, 1, 2, 2],
        "SARIAN": [1, 1, 2, 1, 2, 2, 3],
        "ZOPTIAN": [1, 2, 1, 2, 2, 3, 1],
        "AERACRIAN": [2, 1, 2, 2, 3, 1, 1],
        "BYPTIAN": [1, 2, 2, 3, 1, 1, 2],
        "DARIAN": [2, 2, 3, 1, 1, 2, 1],
        "LONIAN": [2, 3, 1, 1, 2, 1, 2],
        "AEOPIAN": [4, 2, 1, 2, 1, 1, 1],
        "RYGIAN": [2, 1, 2, 1, 1, 1, 4],
        "EPYNIAN": [1, 2, 1, 1, 1, 4, 2],
        "IONOGIAN": [2, 1, 1, 1, 4, 2, 1],
        "KYDIAN": [1, 1, 1, 4, 2, 1, 2],
        "GAPTIAN": [1, 1, 4, 2, 1, 2, 1],
        "THARIAN": [1, 4, 2, 1, 2, 1, 1],
        "EPYCRIAN": [4, 2, 1, 1, 1, 2, 1],
        "GOCRIAN": [2, 1, 1, 1, 2, 1, 4],
        "KATOLIAN": [1, 1, 1, 2, 1, 4, 2],
        "THOPTIAN": [1, 1, 2, 1, 4, 2, 1],
        "BAGIAN": [1, 2, 1, 4, 2, 1, 1],
        "KYRIAN": [2, 1, 4, 2, 1, 1, 1],
        "SONIAN": [1, 4, 2, 1, 1, 1, 2],
        "PARIAN": [4, 1, 3, 1, 1, 1, 1],
        "IONAPTIAN": [1, 3, 1, 1, 1, 1, 4],
        "THYLIAN": [3, 1, 1, 1, 1, 4, 1],
        "LOLIAN": [1, 1, 1, 1, 4, 1, 3],
        "THAGIAN": [1, 1, 1, 4, 1, 3, 1],
        "KOLIAN": [1, 1, 4, 1, 3, 1, 1],
        "DYCRIAN": [1, 4, 1, 3, 1, 1, 1],
        "STYGIAN": [4, 1, 2, 1, 2, 1, 1],
        "AEOLYGIAN": [1, 2, 1, 2, 1, 1, 4],
        "AEROGIAN": [2, 1, 2, 1, 1, 4, 1],
        "DACRIAN": [1, 2, 1, 1, 4, 1, 2],
        "BAPTIAN": [2, 1, 1, 4, 1, 2, 1],
        "DAGIAN": [1, 1, 4, 1, 2, 1, 2],
        "AEOLYDIAN": [1, 4, 1, 2, 1, 2, 1],
        "STYTHIAN": [4, 1, 2, 1, 1, 2, 1],
        "KOTHIAN": [1, 2, 1, 1, 2, 1, 4],
        "PYGIAN": [2, 1, 1, 2, 1, 4, 1],
        "RODIAN": [1, 1, 2, 1, 4, 1, 2],
        "SORIAN": [1, 2, 1, 4, 1, 2, 1],
        "MONIAN": [2, 1, 4, 1, 2, 1, 1],
        "THALIAN": [1, 4, 1, 2, 1, 1, 2],
        "ZORIAN": [4, 1, 2, 1, 1, 1, 2],
        "AERAGIAN": [1, 2, 1, 1, 1, 2, 4],
        "EPOTHIAN": [2, 1, 1, 1, 2, 4, 1],
        "SALIAN": [1, 1, 1, 2, 4, 1, 2],
        "LYPTIAN": [1, 1, 2, 4, 1, 2, 1],
        "KATONIAN": [1, 2, 4, 1, 2, 1, 1],
        "GYPHIAN": [2, 4, 1, 2, 1, 1, 1],
        "THACRIAN": [4, 1, 1, 2, 2, 1, 1],
        "DODIAN": [1, 1, 2, 2, 1, 1, 4],
        "AEOLYPTIAN": [1, 2, 2, 1, 1, 4, 1],
        "AEOLONIAN": [2, 2, 1, 1, 4, 1, 1],
        "AERADIAN": [2, 1, 1, 4, 1, 1, 2],
        "AEOLAGIAN": [1, 1, 4, 1, 1, 2, 2],
        "ZYRIAN": [1, 4, 1, 1, 2, 2, 1],
        "AEOLATHIAN": [4, 1, 1, 2, 1, 2, 1],
        "BYTHIAN": [1, 1, 2, 1, 2, 1, 4],
        "PADIAN": [1, 2, 1, 2, 1, 4, 1],
        "ROLIAN": [2, 1, 2, 1, 4, 1, 1],
        "PYDIAN": [1, 2, 1, 4, 1, 1, 2],
        "THYGIAN": [2, 1, 4, 1, 1, 2, 1],
        "KATALIAN": [1, 4, 1, 1, 2, 1, 2],
        "SAPTIAN": [4, 1, 1, 1, 2, 1, 2],
        "AERODIAN": [1, 1, 1, 2, 1, 2, 4],
        "MACRIAN": [1, 1, 2, 1, 2, 4, 1],
        "ROGIAN": [1, 2, 1, 2, 4, 1, 1],
        "BOPTIAN": [2, 1, 2, 4, 1, 1, 1],
        "STOGIAN": [1, 2, 4, 1, 1, 1, 2],
        "THYNIAN": [2, 4, 1, 1, 1, 2, 1],
        "THYCRIAN": [4, 1, 1, 1, 1, 3, 1],
        "AEOLADIAN": [1, 1, 1, 1, 3, 1, 4],
        "DYLIAN": [1, 1, 1, 3, 1, 4, 1],
        "EPONIAN": [1, 1, 3, 1, 4, 1, 1],
        "KATYGIAN": [1, 3, 1, 4, 1, 1, 1],
        "STARIAN": [3, 1, 4, 1, 1, 1, 1],
        "PHRATHIAN": [1, 4, 1, 1, 1, 1, 3],
        "STALIAN": [3, 3, 1, 1, 2, 1, 1],
        "STOPTIAN": [3, 1, 1, 2, 1, 1, 3],
        "ZYGIAN": [1, 1, 2, 1, 1, 3, 3],
        "KATAPTIAN": [1, 2, 1, 1, 3, 3, 1],
        "AEOLAPTIAN": [2, 1, 1, 3, 3, 1, 1],
        "POTHIAN": [1, 1, 3, 3, 1, 1, 2],
        "BYGIAN": [1, 3, 3, 1, 1, 2, 1],
        "MORIAN": [3, 2, 3, 1, 1, 1, 1],
        "RYCRIAN": [2, 3, 1, 1, 1, 1, 3],
        "RONIAN": [3, 1, 1, 1, 1, 3, 2],
        "STYCRIAN": [1, 1, 1, 1, 3, 2, 3],
        "KATORIAN": [1, 1, 1, 3, 2, 3, 1],
        "EPYTHIAN": [1, 1, 3, 2, 3, 1, 1],
        "KAPTIAN": [1, 3, 2, 3, 1, 1, 1],
        "PHRAPTIAN": [3, 2, 2, 2, 1, 1, 1],
        "BACRIAN": [2, 2, 2, 1, 1, 1, 3],
        "KATYTHIAN": [2, 2, 1, 1, 1, 3, 2],
        "MADIAN": [2, 1, 1, 1, 3, 2, 2],
        "AERYGIAN": [1, 1, 1, 3, 2, 2, 2],
        "PYLIAN": [1, 1, 3, 2, 2, 2, 1],
        "IONATHIAN": [1, 3, 2, 2, 2, 1, 1],
        "KATOCRIAN": [3, 2, 1, 3, 1, 1, 1],
        "PHRYPTIAN": [2, 1, 3, 1, 1, 1, 3],
        "KATYNIAN": [1, 3, 1, 1, 1, 3, 2],
        "AERYCRIAN": [3, 1, 1, 1, 3, 2, 1],
        "GANIAN": [1, 1, 1, 3, 2, 1, 3],
        "EPARIAN": [1, 1, 3, 2, 1, 3, 1],
        "LYRIAN": [1, 3, 2, 1, 3, 1, 1],
        "IONOPIAN": [3, 2, 1, 2, 1, 1, 2],
        "AEOLOGIAN": [2, 1, 2, 1, 1, 2, 3],
        "ZADIAN": [1, 2, 1, 1, 2, 3, 2],
        "SYGIAN": [2, 1, 1, 2, 3, 2, 1],
        "PHRALIAN": [1, 1, 2, 3, 2, 1, 2],
        "PHROGIAN": [1, 2, 3, 2, 1, 2, 1],
        "RATHIAN": [2, 3, 2, 1, 2, 1, 1],
        "RYTHIAN": [3, 2, 1, 1, 2, 1, 2],
        "DONIAN": [2, 1, 1, 2, 1, 2, 3],
        "AEOLOPTIAN": [1, 1, 2, 1, 2, 3, 2],
        "PANIAN": [1, 2, 1, 2, 3, 2, 1],
        "LODIAN": [2, 1, 2, 3, 2, 1, 1],
        "SOLIAN": [1, 2, 3, 2, 1, 1, 2],
        "IONOLIAN": [2, 3, 2, 1, 1, 2, 1],
        "LAPTIAN": [3, 2, 1, 1, 1, 3, 1],
        "LYGIAN": [2, 1, 1, 1, 3, 1, 3],
        "LOGIAN": [1, 1, 1, 3, 1, 3, 2],
        "LALIAN": [1, 1, 3, 1, 3, 2, 1],
        "SOTHIAN": [1, 3, 1, 3, 2, 1, 1],
        "PHROCRIAN": [3, 1, 3, 2, 1, 1, 1],
        "THOGIAN": [1, 3, 2, 1, 1, 1, 3],
        "KATATHIAN": [3, 1, 3, 1, 2, 1, 1],
        "MODIAN": [1, 3, 1, 2, 1, 1, 3],
        "BARIAN": [3, 1, 2, 1, 1, 3, 1],
        "MIXOLOCRIAN": [1, 2, 1, 1, 3, 1, 3],
        "SAGIAN": [2, 1, 1, 3, 1, 3, 1],
        "AEOLOTHIAN": [1, 1, 3, 1, 3, 1, 2],
        "SOCRIAN": [1, 3, 1, 3, 1, 2, 1],
        "THOLIAN": [3, 1, 3, 1, 1, 2, 1],
        "RALIAN": [1, 3, 1, 1, 2, 1, 3],
        "SYRIAN": [3, 1, 1, 2, 1, 3, 1],
        "STODIAN": [1, 1, 2, 1, 3, 1, 3],
        "IONOCRIAN": [1, 2, 1, 3, 1, 3, 1],
        "ZYCRIAN": [2, 1, 3, 1, 3, 1, 1],
        "IONYGIAN": [1, 3, 1, 3, 1, 1, 2],
        "ZARIAN": [3, 1, 3, 1, 1, 1, 2],
        "PHRYTHIAN": [1, 3, 1, 1, 1, 2, 3],
        "RORIAN": [3, 1, 1, 1, 2, 3, 1],
        "BOLIAN": [1, 1, 1, 2, 3, 1, 3],
        "BOTHIAN": [1, 1, 2, 3, 1, 3, 1],
        "KATADIAN": [1, 2, 3, 1, 3, 1, 1],
        "KODIAN": [2, 3, 1, 3, 1, 1, 1],
        "RANIAN": [3, 1, 2, 3, 1, 1, 1],
        "LADIAN": [1, 2, 3, 1, 1, 1, 3],
        "PODIAN": [2, 3, 1, 1, 1, 3, 1],
        "IONOTHIAN": [3, 1, 1, 1, 3, 1, 2],
        "KANIAN": [1, 1, 1, 3, 1, 2, 3],
        "ZYLIAN": [1, 1, 3, 1, 2, 3, 1],
        "ZODIAN": [1, 3, 1, 2, 3, 1, 1],
        "GOLIAN": [3, 1, 2, 2, 2, 1, 1],
        "DYPTIAN": [1, 2, 2, 2, 1, 1, 3],
        "RYPHIAN": [2, 2, 2, 1, 1, 3, 1],
        "GYLIAN": [2, 2, 1, 1, 3, 1, 2],
        "AEOLYCRIAN": [2, 1, 1, 3, 1, 2, 2],
        "PYNIAN": [1, 1, 3, 1, 2, 2, 2],
        "ZANIAN": [1, 3, 1, 2, 2, 2, 1],
        "PALIAN": [3, 1, 2, 2, 1, 2, 1],
        "STOTHIAN": [1, 2, 2, 1, 2, 1, 3],
        "AERORIAN": aerorian,
        "KATAGIAN": [2, 1, 2, 1, 3, 1, 2],
        "PHRONIAN": [1, 2, 1, 3, 1, 2, 2],
        "BANIAN": [2, 1, 3, 1, 2, 2, 1],
        "AERONIAN": [1, 3, 1, 2, 2, 1, 2],
        "LOPTIAN": [3, 1, 2, 1, 3, 1, 1],
        "IONODIAN": [1, 2, 1, 3, 1, 1, 3],
        "BOGIAN": [2, 1, 3, 1, 1, 3, 1],
        "MOGIAN": [1, 3, 1, 1, 3, 1, 2],
        "DOCRIAN": [3, 1, 1, 3, 1, 2, 1],
        "EPADIAN": [1, 1, 3, 1, 2, 1, 3],
        "AERYNIAN": [1, 3, 1, 2, 1, 3, 1],
        "BYCRIAN": [3, 1, 2, 1, 2, 2, 1],
        "PATHIAN": [1, 2, 1, 2, 2, 1, 3],
        "MYDIAN": mydian,
        "THYPTIAN": [1, 2, 2, 1, 3, 1, 2],
        "PHROTHIAN": [2, 2, 1, 3, 1, 2, 1],
        "KATYCRIAN": [2, 1, 3, 1, 2, 1, 2],
        "IONALIAN": [1, 3, 1, 2, 1, 2, 2],
        "DOLIAN": [3, 1, 1, 2, 2, 2, 1],
        "PORIAN": [1, 1, 2, 2, 2, 1, 3],
        "AERYLIAN": aerylian,
        "NEOPOLITAN MINOR": aerylian,
        "ZAGIAN": [2, 2, 2, 1, 3, 1, 1],
        "LAGIAN": [2, 2, 1, 3, 1, 1, 2],
        "TYRIAN": [2, 1, 3, 1, 1, 2, 2],
        "MIXONORIAN": [1, 3, 1, 1, 2, 2, 2],
        "PAGIAN": [3, 1, 1, 1, 2, 2, 2],
        "AEOLYTHIAN": [1, 1, 1, 2, 2, 2, 3],
        "MOLIAN": [1, 1, 2, 2, 2, 3, 1],
        "STAPTIAN": [1, 2, 2, 2, 3, 1, 1],
        "MOTHIAN": [2, 2, 2, 3, 1, 1, 1],
        "AERANIAN": [2, 2, 3, 1, 1, 1, 2],
        "RAGIAN": [2, 3, 1, 1, 1, 2, 2],
        "LARIAN": [2, 2, 2, 2, 1, 2, 1],
        "LYTHIAN": [2, 2, 2, 1, 2, 1, 2],
        "STYDIAN": stydian,
        "LORIAN": [2, 1, 2, 1, 2, 2, 2],
        "IONADIAN": [1, 2, 1, 2, 2, 2, 2],
        "BOCRIAN": bocrian,
        "MIXOLYTHIAN": [1, 2, 2, 2, 2, 1, 2],
        "THADIAN": [4, 3, 1, 1, 1, 1, 1],
        "SANIAN": [3, 1, 1, 1, 1, 1, 4],
        "IONYDIAN": [1, 1, 1, 1, 1, 4, 3],
        "EPYDIAN": [1, 1, 1, 1, 4, 3, 1],
        "KATYDIAN": [1, 1, 1, 4, 3, 1, 1],
        "MATHIAN": [1, 1, 4, 3, 1, 1, 1],
        "AERYPTIAN": [1, 4, 3, 1, 1, 1, 1],
        "PYTHIAN": [4, 2, 2, 1, 1, 1, 1],
        "KATYLIAN": [2, 2, 1, 1, 1, 1, 4],
        "BYDIAN": [2, 1, 1, 1, 1, 4, 2],
        "BYNIAN": [1, 1, 1, 1, 4, 2, 2],
        "GALIAN": [1, 1, 1, 4, 2, 2, 1],
        "ZONIAN": [1, 1, 4, 2, 2, 1, 1],
        "MYRIAN": [1, 4, 2, 2, 1, 1, 1],
        "KATOGIAN": [4, 2, 1, 1, 2, 1, 1],
        "STACRIAN": [2, 1, 1, 2, 1, 1, 4],
        "STYRIAN": [1, 1, 2, 1, 1, 4, 2],
        "IONYRIAN": [1, 2, 1, 1, 4, 2, 1],
        "PHRODIAN": [2, 1, 1, 4, 2, 1, 1],
        "PYCRIAN": [1, 1, 4, 2, 1, 1, 2],
        "GYPTIAN": [1, 4, 2, 1, 1, 2, 1],
        "KATACRIAN": [4, 1, 1, 2, 1, 1, 2],
        "SODIAN": [1, 1, 2, 1, 1, 2, 4],
        "BATHIAN": [1, 2, 1, 1, 2, 4, 1],
        "MYLIAN": [2, 1, 1, 2, 4, 1, 1],
        "GODIAN": [1, 1, 2, 4, 1, 1, 2],
        "THORIAN": [1, 2, 4, 1, 1, 2, 1],
        "ZOCRIAN": [2, 4, 1, 1, 2, 1, 1],
        "STANIAN": [4, 1, 1, 1, 1, 2, 2],
        "EPANIAN": [1, 1, 1, 1, 2, 2, 4],
        "KONIAN": [1, 1, 1, 2, 2, 4, 1],
        "STOCRIAN": [1, 1, 2, 2, 4, 1, 1],
        "KALIAN": [1, 2, 2, 4, 1, 1, 1],
        "PHROPTIAN": [2, 2, 4, 1, 1, 1, 1],
        "DYDIAN": [2, 4, 1, 1, 1, 1, 2],
        "KATYPTIAN": [4, 1, 1, 1, 1, 1, 3],
        "EPODIAN": [1, 1, 1, 1, 1, 3, 4],
        "MYGIAN": [1, 1, 1, 1, 3, 4, 1],
        "PACRIAN": [1, 1, 1, 3, 4, 1, 1],
        "AEROCRIAN": [1, 1, 3, 4, 1, 1, 1],
        "AEOLARIAN": [1, 3, 4, 1, 1, 1, 1],
        "KYTHIAN": [3, 4, 1, 1, 1, 1, 1],
        "BONIAN": [3, 3, 2, 1, 1, 1, 1],
        "BADIAN": [3, 2, 1, 1, 1, 1, 3],
        "KATODIAN": [2, 1, 1, 1, 1, 3, 3],
        "SADIAN": [1, 1, 1, 1, 3, 3, 2],
        "DOTHIAN": [1, 1, 1, 3, 3, 2, 1],
        "MOPTIAN": [1, 1, 3, 3, 2, 1, 1],
        "AERYRIAN": [1, 3, 3, 2, 1, 1, 1],
        "EPAGIAN": [3, 3, 1, 2, 1, 1, 1],
        "RAPTIAN": [3, 1, 2, 1, 1, 1, 3],
        "EPOLIAN": [1, 2, 1, 1, 1, 3, 3],
        "SYTHIAN": [2, 1, 1, 1, 3, 3, 1],
        "SYDIAN": [1, 1, 1, 3, 3, 1, 2],
        "EPOCRIAN": [1, 1, 3, 3, 1, 2, 1],
        "KYLIAN": [1, 3, 3, 1, 2, 1, 1],
        "GACRIAN": [3, 3, 1, 1, 1, 2, 1],
        "BORIAN": [3, 1, 1, 1, 2, 1, 3],
        "SYCRIAN": [1, 1, 1, 2, 1, 3, 3],
        "GADIAN": [1, 1, 2, 1, 3, 3, 1],
        "AEOLOCRIAN": [1, 2, 1, 3, 3, 1, 1],
        "MIXODORIAN": [2, 1, 3, 3, 1, 1, 1],
        "DATHIAN": [1, 3, 3, 1, 1, 1, 2],
        "KATOPTIAN": [3, 3, 1, 1, 1, 1, 2],
        "PONIAN": [3, 1, 1, 1, 1, 2, 3],
        "KADIAN": [1, 1, 1, 1, 2, 3, 3],
        "GYNIAN": [1, 1, 1, 2, 3, 3, 1],
        "THYPHIAN": [1, 1, 2, 3, 3, 1, 1],
        "POLIAN": [1, 2, 3, 3, 1, 1, 1],
        "THANIAN": [2, 3, 3, 1, 1, 1, 1],
        "EPACRIAN": [3, 2, 2, 1, 1, 2, 1],
        "SATHIAN": [2, 2, 1, 1, 2, 1, 3],
        "LATHIAN": [2, 1, 1, 2, 1, 3, 2],
        "AERALIAN": [1, 1, 2, 1, 3, 2, 2],
        "KYNIAN": [1, 2, 1, 3, 2, 2, 1],
        "STYNIAN": [2, 1, 3, 2, 2, 1, 1],
        "EPYPHIAN": [1, 3, 2, 2, 1, 1, 2],
        "POGIAN": [3, 2, 1, 2, 1, 2, 1],
        "AERAPTIAN": [2, 1, 2, 1, 2, 1, 3],
        "EPYLIAN": [1, 2, 1, 2, 1, 3, 2],
        "GAMIAN": [2, 1, 2, 1, 3, 2, 1],
        "KATHIAN": [1, 2, 1, 3, 2, 1, 2],
        "LYLIAN": [2, 1, 3, 2, 1, 2, 1],
        "EPALIAN": [1, 3, 2, 1, 2, 1, 2],
        "EPORIAN": [3, 2, 1, 1, 2, 2, 1],
        "RYLIAN": [2, 1, 1, 2, 2, 1, 3],
        "EPAPTIAN": [1, 1, 2, 2, 1, 3, 2],
        "BYRIAN": [1, 2, 2, 1, 3, 2, 1],
        "KATANIAN": [2, 2, 1, 3, 2, 1, 1],
        "KATYRIAN": [2, 1, 3, 2, 1, 1, 2],
        "RYNIAN": [1, 3, 2, 1, 1, 2, 2],
        "KORIAN": [3, 1, 2, 2, 1, 1, 2],
        "LYNIAN": [1, 2, 2, 1, 1, 2, 3],
        "MALIAN": [2, 2, 1, 1, 2, 3, 1],
        "SYNIAN": [2, 1, 1, 2, 3, 1, 2],
        "PHRAGIAN": [1, 1, 2, 3, 1, 2, 2],
        "MANIAN": [1, 2, 3, 1, 2, 2, 1],
        "MARIAN": [2, 3, 1, 2, 2, 1, 1],
        "MYCRIAN": [3, 1, 2, 1, 2, 1, 2],
        "IONORIAN": [1, 2, 1, 2, 1, 2, 3],
        "PHRYDIAN": [2, 1, 2, 1, 2, 3, 1],
        "ZYPTIAN": [1, 2, 1, 2, 3, 1, 2],
        "KATOTHIAN": [2, 1, 2, 3, 1, 2, 1],
        "PHRYLIAN": [1, 2, 3, 1, 2, 1, 2],
        "KOCRIAN": [2, 3, 1, 2, 1, 2, 1],
        "IONANIAN": [3, 1, 2, 1, 1, 2, 2],
        "AEROTHIAN": [1, 2, 1, 1, 2, 2, 3],
        "STAGIAN": [2, 1, 1, 2, 2, 3, 1],
        "LOTHIAN": [1, 1, 2, 2, 3, 1, 2],
        "PHRYCRIAN": [1, 2, 2, 3, 1, 2, 1],
        "KYPTIAN": [2, 2, 3, 1, 2, 1, 1],
        "IONYLIAN": [2, 3, 1, 2, 1, 1, 2],
        "GYDIAN": [4, 2, 1, 1, 1, 1, 2],
        "KOGIAN": [2, 1, 1, 1, 1, 2, 4],
        "RARIAN": [1, 1, 1, 1, 2, 4, 2],
        "AEROLIAN": [1, 1, 1, 2, 4, 2, 1],
        "KARIAN": [1, 1, 2, 4, 2, 1, 1],
        "MYPTIAN": [1, 2, 4, 2, 1, 1, 1],
        "RYDIAN": [2, 4, 2, 1, 1, 1, 1],
        "AEOLYNIAN": [2, 2, 2, 2, 2, 1, 1],
        "AEROPTIAN": [2, 2, 2, 2, 1, 1, 2],
        "PHRYRIAN": [2, 2, 2, 1, 1, 2, 2],
        "GOTHIAN": [2, 2, 1, 1, 2, 2, 2],
        "STORIAN": [2, 1, 1, 2, 2, 2, 2],
        "PYPTIAN": [1, 1, 2, 2, 2, 2, 2],
        "THYDIAN": thydian,
        "NEOPOLITAN MAJOR": thydian,
        "AERYCRYLLIC": aerycryllic,
        "DOMINANT BEBOP": aerycryllic,
        "BEBOP DOMINANT": aerycryllic,
        "GADYLLIC": [2, 1, 2, 2, 1, 1, 1, 2],
        "SOLYLLIC": [1, 2, 2, 1, 1, 1, 2, 2],
        "ZYLYLLIC": [2, 2, 1, 1, 1, 2, 2, 1],
        "MIXODYLLIC": [2, 1, 1, 1, 2, 2, 1, 2],
        "SORYLLIC": [1, 1, 1, 2, 2, 1, 2, 2],
        "GODYLLIC": [1, 1, 2, 2, 1, 2, 2, 1],
        "EPIPHYLLIC": [1, 2, 2, 1, 2, 2, 1, 1],
        "PYNYLLIC": [4, 1, 1, 1, 2, 1, 1, 1],
        "BOCRYLLIC": [1, 1, 1, 2, 1, 1, 1, 4],
        "KOGYLLIC": [1, 1, 2, 1, 1, 1, 4, 1],
        "RARYLLIC": [1, 2, 1, 1, 1, 4, 1, 1],
        "ZYCRYLLIC": [2, 1, 1, 1, 4, 1, 1, 1],
        "MYCRYLLIC": [1, 1, 1, 4, 1, 1, 1, 2],
        "LAPTYLLIC": [1, 1, 4, 1, 1, 1, 2, 1],
        "PYLYLLIC": [1, 4, 1, 1, 1, 2, 1, 1],
        "POTHYLLIC": [3, 2, 1, 1, 1, 2, 1, 1],
        "PHRONYLLIC": [2, 1, 1, 1, 2, 1, 1, 3],
        "STYNYLLIC": [1, 1, 1, 2, 1, 1, 3, 2],
        "RATHYLLIC": [1, 1, 2, 1, 1, 3, 2, 1],
        "AERYPTYLLIC": [1, 2, 1, 1, 3, 2, 1, 1],
        "ZYDYLLIC": [2, 1, 1, 3, 2, 1, 1, 1],
        "KATOLYLLIC": [1, 1, 3, 2, 1, 1, 1, 2],
        "RYTHYLLIC": [1, 3, 2, 1, 1, 1, 2, 1],
        "LOCRYLLIC": [3, 1, 1, 3, 1, 1, 1, 1],
        "BYLYLLIC": [1, 1, 3, 1, 1, 1, 1, 3],
        "SOGYLLIC": [1, 3, 1, 1, 1, 1, 3, 1],
        "IONYCRYLLIC": [3, 1, 1, 1, 1, 3, 1, 1],
        "KOPTYLLIC": [1, 1, 1, 1, 3, 1, 1, 3],
        "EPYRYLLIC": [1, 1, 1, 3, 1, 1, 3, 1],
        "SOPTYLLIC": [1, 1, 3, 1, 1, 3, 1, 1],
        "AEOLYLYLLIC": [1, 3, 1, 1, 3, 1, 1, 1],
        "AERACRYLLIC": [3, 1, 1, 2, 2, 1, 1, 1],
        "EPYGYLLIC": [1, 1, 2, 2, 1, 1, 1, 3],
        "THONYLLIC": [1, 2, 2, 1, 1, 1, 3, 1],
        "LANYLLIC": [2, 2, 1, 1, 1, 3, 1, 1],
        "PHRYNYLLIC": [2, 1, 1, 1, 3, 1, 1, 2],
        "LYCRYLLIC": [1, 1, 1, 3, 1, 1, 2, 2],
        "IONYPTYLLIC": [1, 1, 3, 1, 1, 2, 2, 1],
        "EPATHYLLIC": [1, 3, 1, 1, 2, 2, 1, 1],
        "DYDYLLIC": [3, 1, 1, 2, 1, 2, 1, 1],
        "THOGYLLIC": [1, 1, 2, 1, 2, 1, 1, 3],
        "RYGYLLIC": [1, 2, 1, 2, 1, 1, 3, 1],
        "BYCRYLLIC": [2, 1, 2, 1, 1, 3, 1, 1],
        "ZACRYLLIC": [1, 2, 1, 1, 3, 1, 1, 2],
        "PANYLLIC": [2, 1, 1, 3, 1, 1, 2, 1],
        "DYRYLLIC": [1, 1, 3, 1, 1, 2, 1, 2],
        "ZATHYLLIC": [1, 3, 1, 1, 2, 1, 2, 1],
        "DAGYLLIC": [3, 1, 1, 2, 1, 1, 1, 2],
        "KATALYLLIC": [1, 1, 2, 1, 1, 1, 2, 3],
        "KATORYLLIC": [1, 2, 1, 1, 1, 2, 3, 1],
        "DODYLLIC": [2, 1, 1, 1, 2, 3, 1, 1],
        "ZOGYLLIC": [1, 1, 1, 2, 3, 1, 1, 2],
        "MADYLLIC": [1, 1, 2, 3, 1, 1, 2, 1],
        "DYCRYLLIC": [1, 2, 3, 1, 1, 2, 1, 1],
        "AEOLOGYLLIC": [2, 3, 1, 1, 2, 1, 1, 1],
        "SYDYLLIC": [3, 1, 1, 1, 3, 1, 1, 1],
        "KATOGYLLIC": [1, 1, 1, 3, 1, 1, 1, 3],
        "ZYGYLLIC": [1, 1, 3, 1, 1, 1, 3, 1],
        "AERALYLLIC": [1, 3, 1, 1, 1, 3, 1, 1],
        "BACRYLLIC": [3, 1, 1, 1, 2, 2, 1, 1],
        "AERYGYLLIC": [1, 1, 1, 2, 2, 1, 1, 3],
        "DATHYLLIC": [1, 1, 2, 2, 1, 1, 3, 1],
        "BOPTYLLIC": [1, 2, 2, 1, 1, 3, 1, 1],
        "BAGYLLIC": [2, 2, 1, 1, 3, 1, 1, 1],
        "MATHYLLIC": [2, 1, 1, 3, 1, 1, 1, 2],
        "STYPTYLLIC": [1, 1, 3, 1, 1, 1, 2, 2],
        "ZOLYLLIC": [1, 3, 1, 1, 1, 2, 2, 1],
        "ROCRYLLIC": [2, 2, 2, 1, 2, 1, 1, 1],
        "ZYRYLLIC": [2, 2, 1, 2, 1, 1, 1, 2],
        "SAGYLLIC": [2, 1, 2, 1, 1, 1, 2, 2],
        "EPINYLLIC": [1, 2, 1, 1, 1, 2, 2, 2],
        "KATAGYLLIC": [2, 1, 1, 1, 2, 2, 2, 1],
        "RAGYLLIC": [1, 1, 1, 2, 2, 2, 1, 2],
        "GOTHYLLIC": [1, 1, 2, 2, 2, 1, 2, 1],
        "LYTHYLLIC": [1, 2, 2, 2, 1, 2, 1, 1],
        "IONOCRYLLIC": [2, 2, 2, 1, 1, 1, 2, 1],
        "GOCRYLLIC": [2, 2, 1, 1, 1, 2, 1, 2],
        "EPIRYLLIC": [2, 1, 1, 1, 2, 1, 2, 2],
        "AERADYLLIC": [1, 1, 1, 2, 1, 2, 2, 2],
        "STAPTYLLIC": [1, 1, 2, 1, 2, 2, 2, 1],
        "DANYLLIC": [1, 2, 1, 2, 2, 2, 1, 1],
        "GOPTYLLIC": [2, 1, 2, 2, 2, 1, 1, 1],
        "EPOCRYLLIC": [1, 2, 2, 2, 1, 1, 1, 2],
        "IONOPTYLLIC": ionoptyllic,
        "MARJOR BEBOP": ionoptyllic,
        "BEBOP MAJOR": ionoptyllic,
        "AEOLORYLLIC": [2, 1, 2, 1, 1, 2, 1, 2],
        "THYDYLLIC": [1, 2, 1, 1, 2, 1, 2, 2],
        "GYCRYLLIC": [2, 1, 1, 2, 1, 2, 2, 1],
        "LYRYLLIC": [1, 1, 2, 1, 2, 2, 1, 2],
        "MOGYLLIC": [1, 2, 1, 2, 2, 1, 2, 1],
        "KATODYLLIC": [2, 1, 2, 2, 1, 2, 1, 1],
        "MOPTYLLIC": [1, 2, 2, 1, 2, 1, 1, 2],
        "DOLYLLIC": [4, 1, 2, 1, 1, 1, 1, 1],
        "MORYLLIC": [1, 2, 1, 1, 1, 1, 1, 4],
        "BYDYLLIC": [2, 1, 1, 1, 1, 1, 4, 1],
        "POCRYLLIC": [1, 1, 1, 1, 1, 4, 1, 2],
        "PHRACRYLLIC": [1, 1, 1, 1, 4, 1, 2, 1],
        "GYRYLLIC": [1, 1, 1, 4, 1, 2, 1, 1],
        "PHRYGYLLIC": [1, 1, 4, 1, 2, 1, 1, 1],
        "DOGYLLIC": [1, 4, 1, 2, 1, 1, 1, 1],
        "THAGYLLIC": [4, 1, 1, 2, 1, 1, 1, 1],
        "THOPTYLLIC": [1, 1, 2, 1, 1, 1, 1, 4],
        "PHRAPTYLLIC": [1, 2, 1, 1, 1, 1, 4, 1],
        "GYLYLLIC": [2, 1, 1, 1, 1, 4, 1, 1],
        "PHRALYLLIC": [1, 1, 1, 1, 4, 1, 1, 2],
        "DYGYLLIC": [1, 1, 1, 4, 1, 1, 2, 1],
        "RONYLLIC": [1, 1, 4, 1, 1, 2, 1, 1],
        "EPOGYLLIC": [1, 4, 1, 1, 2, 1, 1, 1],
        "AEOLADYLLIC": [4, 1, 1, 1, 1, 2, 1, 1],
        "KOCRYLLIC": [1, 1, 1, 1, 2, 1, 1, 4],
        "LODYLLIC": [1, 1, 1, 2, 1, 1, 4, 1],
        "BYNYLLIC": [1, 1, 2, 1, 1, 4, 1, 1],
        "KYDYLLIC": [1, 2, 1, 1, 4, 1, 1, 1],
        "BYGYLLIC": [2, 1, 1, 4, 1, 1, 1, 1],
        "PHRYPTYLLIC": [1, 1, 4, 1, 1, 1, 1, 2],
        "IONAYLLIC": [1, 4, 1, 1, 1, 1, 2, 1],
        "PHRORYLLIC": [4, 1, 1, 1, 1, 1, 2, 1],
        "THYPHYLLIC": [1, 1, 1, 1, 1, 2, 1, 4],
        "POPTYLLIC": [1, 1, 1, 1, 2, 1, 4, 1],
        "MIXONYLLIC": [1, 1, 1, 2, 1, 4, 1, 1],
        "PAPTYLLIC": [1, 1, 2, 1, 4, 1, 1, 1],
        "STORYLLIC": [1, 2, 1, 4, 1, 1, 1, 1],
        "PHRYCRYLLIC": [2, 1, 4, 1, 1, 1, 1, 1],
        "PALYLLIC": [1, 4, 1, 1, 1, 1, 1, 2],
        "PHRANYLLIC": [3, 2, 2, 1, 1, 1, 1, 1],
        "STYDYLLIC": [2, 2, 1, 1, 1, 1, 1, 3],
        "ZADYLLIC": [2, 1, 1, 1, 1, 1, 3, 2],
        "ZALYLLIC": [1, 1, 1, 1, 1, 3, 2, 2],
        "ZOCRYLLIC": [1, 1, 1, 1, 3, 2, 2, 1],
        "KATOCRYLLIC": [1, 1, 1, 3, 2, 2, 1, 1],
        "AERATHYLLIC": [1, 1, 3, 2, 2, 1, 1, 1],
        "STOPTYLLIC": [1, 3, 2, 2, 1, 1, 1, 1],
        "LYDYLLIC": [3, 2, 1, 2, 1, 1, 1, 1],
        "RADYLLIC": [2, 1, 2, 1, 1, 1, 1, 3],
        "STAGYLLIC": [1, 2, 1, 1, 1, 1, 3, 2],
        "IONORYLLIC": [2, 1, 1, 1, 1, 3, 2, 1],
        "PHRODYLLIC": [1, 1, 1, 1, 3, 2, 1, 2],
        "AERAGYLLIC": [1, 1, 1, 3, 2, 1, 2, 1],
        "BANYLLIC": [1, 1, 3, 2, 1, 2, 1, 1],
        "EPOTHYLLIC": [1, 3, 2, 1, 2, 1, 1, 1],
        "ZORYLLIC": [3, 2, 1, 1, 2, 1, 1, 1],
        "PHROLYLLIC": [2, 1, 1, 2, 1, 1, 1, 3],
        "KOLYLLIC": [1, 1, 2, 1, 1, 1, 3, 2],
        "THODYLLIC": [1, 2, 1, 1, 1, 3, 2, 1],
        "SOCRYLLIC": [2, 1, 1, 1, 3, 2, 1, 1],
        "AEOLYLLIC": [1, 1, 1, 3, 2, 1, 1, 2],
        "ZYTHYLLIC": [1, 1, 3, 2, 1, 1, 2, 1],
        "AEORYLLIC": [1, 3, 2, 1, 1, 2, 1, 1],
        "MIXOLYDYLLIC": [3, 2, 1, 1, 1, 1, 1, 2],
        "MIXONYPHYLLIC": [2, 1, 1, 1, 1, 1, 2, 3],
        "AEOLANYLLIC": [1, 1, 1, 1, 1, 2, 3, 2],
        "THOCRYLLIC": [1, 1, 1, 1, 2, 3, 2, 1],
        "KYGYLLIC": [1, 1, 1, 2, 3, 2, 1, 1],
        "IONAGYLLIC": [1, 1, 2, 3, 2, 1, 1, 1],
        "GOGYLLIC": [1, 2, 3, 2, 1, 1, 1, 1],
        "PHRADYLLIC": [2, 3, 2, 1, 1, 1, 1, 1],
        "IONIPTYLLIC": [3, 1, 3, 1, 1, 1, 1, 1],
        "KYCRYLLIC": [1, 3, 1, 1, 1, 1, 1, 3],
        "AEOLAPTYLLIC": [3, 1, 1, 1, 1, 1, 3, 1],
        "RODYLLIC": [1, 1, 1, 1, 1, 3, 1, 3],
        "IONATHYLLIC": [1, 1, 1, 1, 3, 1, 3, 1],
        "PYTHYLLIC": [1, 1, 1, 3, 1, 3, 1, 1],
        "ZONYLLIC": [1, 1, 3, 1, 3, 1, 1, 1],
        "RYRYLLIC": [1, 3, 1, 3, 1, 1, 1, 1],
        "AEOLOTHYLLIC": [3, 1, 2, 2, 1, 1, 1, 1],
        "IONYRYLLIC": [1, 2, 2, 1, 1, 1, 1, 3],
        "RYDYLLIC": [2, 2, 1, 1, 1, 1, 3, 1],
        "GONYLLIC": [2, 1, 1, 1, 1, 3, 1, 2],
        "ROLYLLIC": [1, 1, 1, 1, 3, 1, 2, 2],
        "KATYDYLLIC": [1, 1, 1, 3, 1, 2, 2, 1],
        "ZYPTYLLIC": [1, 1, 3, 1, 2, 2, 1, 1],
        "MODYLLIC": [1, 3, 1, 2, 2, 1, 1, 1],
        "MAPTYLLIC": [3, 1, 2, 1, 2, 1, 1, 1],
        "AERAPTYLLIC": [1, 2, 1, 2, 1, 1, 1, 3],
        "KATADYLLIC": [2, 1, 2, 1, 1, 1, 3, 1],
        "MAGYLLIC": [1, 2, 1, 1, 1, 3, 1, 2],
        "PHRYLYLLIC": [2, 1, 1, 1, 3, 1, 2, 1],
        "EPIGYLLIC": [1, 1, 1, 3, 1, 2, 1, 2],
        "MOLYLLIC": [1, 1, 3, 1, 2, 1, 2, 1],
        "PONYLLIC": [1, 3, 1, 2, 1, 2, 1, 1],
        "THYPTYLLIC": [3, 1, 2, 1, 1, 2, 1, 1],
        "IONOGYLLIC": [1, 2, 1, 1, 2, 1, 1, 3],
        "AEOLARYLLIC": [2, 1, 1, 2, 1, 1, 3, 1],
        "KATYGYLLIC": [1, 1, 2, 1, 1, 3, 1, 2],
        "GANYLLIC": [1, 2, 1, 1, 3, 1, 2, 1],
        "KYPTYLLIC": [2, 1, 1, 3, 1, 2, 1, 1],
        "SALYLLIC": [1, 1, 3, 1, 2, 1, 1, 2],
        "SANYLLIC": [1, 3, 1, 2, 1, 1, 2, 1],
        "DOPTYLLIC": [3, 1, 2, 1, 1, 1, 2, 1],
        "IONILYLLIC": [1, 2, 1, 1, 1, 2, 1, 3],
        "MANYLLIC": [2, 1, 1, 1, 2, 1, 3, 1],
        "POLYLLIC": [1, 1, 1, 2, 1, 3, 1, 2],
        "STANYLLIC": [1, 1, 2, 1, 3, 1, 2, 1],
        "MIXOTHARYLLIC": [1, 2, 1, 3, 1, 2, 1, 1],
        "EPORYLLIC": [2, 1, 3, 1, 2, 1, 1, 1],
        "AERYNYLLIC": [1, 3, 1, 2, 1, 1, 1, 2],
        "LONYLLIC": [3, 1, 1, 2, 1, 1, 2, 1],
        "SATHYLLIC": [1, 1, 2, 1, 1, 2, 1, 3],
        "LAYLLIC": [1, 2, 1, 1, 2, 1, 3, 1],
        "SARYLLIC": [2, 1, 1, 2, 1, 3, 1, 1],
        "THACRYLLIC": [1, 1, 2, 1, 3, 1, 1, 2],
        "AEOLYNYLLIC": [1, 2, 1, 3, 1, 1, 2, 1],
        "THADYLLIC": [2, 1, 3, 1, 1, 2, 1, 1],
        "LYNYLLIC": [1, 3, 1, 1, 2, 1, 1, 2],
        "AEOLATHYLLIC": [3, 1, 1, 1, 2, 1, 2, 1],
        "AEOLOCRYLLIC": [1, 1, 1, 2, 1, 2, 1, 3],
        "PHROPTYLLIC": [1, 1, 2, 1, 2, 1, 3, 1],
        "KODYLLIC": [1, 2, 1, 2, 1, 3, 1, 1],
        "EPAPTYLLIC": [2, 1, 2, 1, 3, 1, 1, 1],
        "IONOYLLIC": [1, 2, 1, 3, 1, 1, 1, 2],
        "GYPTYLLIC": [2, 1, 3, 1, 1, 1, 2, 1],
        "AERYTHYLLIC": [1, 3, 1, 1, 1, 2, 1, 2],
        "ZAGYLLIC": [3, 1, 1, 1, 2, 1, 1, 2],
        "EPACRYLLIC": [1, 1, 1, 2, 1, 1, 2, 3],
        "THORCRYLLIC": [1, 1, 2, 1, 1, 2, 3, 1],
        "LOPTYLLIC": [1, 2, 1, 1, 2, 3, 1, 1],
        "KATYLYLLIC": [2, 1, 1, 2, 3, 1, 1, 1],
        "MALYLLIC": [1, 1, 2, 3, 1, 1, 1, 2],
        "MYDYLLIC": [1, 2, 3, 1, 1, 1, 2, 1],
        "THYCRYLLIC": [2, 3, 1, 1, 1, 2, 1, 1],
        "GYTHYLLIC": [3, 1, 1, 1, 1, 2, 2, 1],
        "PYRYLLIC": [1, 1, 1, 1, 2, 2, 1, 3],
        "RYCRYLLIC": [1, 1, 1, 2, 2, 1, 3, 1],
        "PHRATHYLLIC": [1, 1, 2, 2, 1, 3, 1, 1],
        "BADYLLIC": [1, 2, 2, 1, 3, 1, 1, 1],
        "PHROCRYLLIC": [2, 2, 1, 3, 1, 1, 1, 1],
        "STARYLLIC": [2, 1, 3, 1, 1, 1, 1, 2],
        "ZOTHYLLIC": [1, 3, 1, 1, 1, 1, 2, 2],
        "THARYLLIC": [3, 1, 1, 1, 1, 2, 1, 2],
        "SYLYLLIC": [1, 1, 1, 1, 2, 1, 2, 3],
        "LOTHYLLIC": [1, 1, 1, 2, 1, 2, 3, 1],
        "DARYLLIC": [1, 1, 2, 1, 2, 3, 1, 1],
        "MONYLLIC": [1, 2, 1, 2, 3, 1, 1, 1],
        "STYRYLLIC": [2, 1, 2, 3, 1, 1, 1, 1],
        "AEOLACRYLLIC": [1, 2, 3, 1, 1, 1, 1, 2],
        "RAPTYLLIC": [2, 3, 1, 1, 1, 1, 2, 1],
        "KATARYLLIC": [3, 1, 1, 1, 1, 1, 2, 2],
        "AEROCRYLLIC": [1, 1, 1, 1, 1, 2, 2, 3],
        "ZANYLLIC": [1, 1, 1, 1, 2, 2, 3, 1],
        "AEOLONYLLIC": [1, 1, 1, 2, 2, 3, 1, 1],
        "AEONYLLIC": [1, 1, 2, 2, 3, 1, 1, 1],
        "KYRYLLIC": [1, 2, 2, 3, 1, 1, 1, 1],
        "SYTHYLLIC": [2, 2, 3, 1, 1, 1, 1, 1],
        "KATYCRYLLIC": [2, 3, 1, 1, 1, 1, 1, 2],
        "STOGYLLIC": [2, 2, 1, 2, 1, 2, 1, 1],
        "IONIDYLLIC": [2, 1, 2, 1, 2, 1, 1, 2],
        "STONYLLIC": [1, 2, 1, 2, 1, 1, 2, 2],
        "STALYLLIC": [2, 1, 2, 1, 1, 2, 2, 1],
        "PORYLLIC": [1, 2, 1, 1, 2, 2, 1, 2],
        "MOCRYLLIC": [2, 1, 1, 2, 2, 1, 2, 1],
        "AEOLYRYLLIC": [1, 1, 2, 2, 1, 2, 1, 2],
        "BARYLLIC": [1, 2, 2, 1, 2, 1, 2, 1],
        "DALYLLIC": [2, 2, 1, 1, 2, 1, 2, 1],
        "IONYPHYLLIC": [2, 1, 1, 2, 1, 2, 1, 2],
        "ZAPTYLLIC": [1, 1, 2, 1, 2, 1, 2, 2],
        "GARYLLIC": [1, 2, 1, 2, 1, 2, 2, 1],
        "GATHYLLIC": [2, 1, 2, 1, 2, 2, 1, 1],
        "MIXOPYRYLLIC": [1, 2, 1, 2, 2, 1, 1, 2],
        "IONACRYLLIC": ionacryllic,
        "BEBOP MINOR": ionacryllic,
        "MINOR BEBOP": ionacryllic,
        "DORIAN BEBOP": ionacryllic,
        "BEBOP DORIAN": ionacryllic,
        "STYLYLLIC": [1, 2, 2, 1, 1, 2, 1, 2],
        "STYCRYLLIC": [4, 2, 1, 1, 1, 1, 1, 1],
        "IONOTHYLLIC": [2, 1, 1, 1, 1, 1, 1, 4],
        "MYTHYLLIC": [1, 1, 1, 1, 1, 1, 4, 2],
        "AERYLYLLIC": [1, 1, 1, 1, 1, 4, 2, 1],
        "BONYLLIC": [1, 1, 1, 1, 4, 2, 1, 1],
        "THOLYLLIC": [1, 1, 1, 4, 2, 1, 1, 1],
        "KATYRYLLIC": [1, 1, 4, 2, 1, 1, 1, 1],
        "SADYLLIC": [1, 4, 2, 1, 1, 1, 1, 1],
        "STOLYLLIC": [4, 1, 1, 1, 1, 1, 1, 2],
        "LOGYLLIC": [1, 1, 1, 1, 1, 1, 2, 4],
        "DACRYLLIC": [1, 1, 1, 1, 1, 2, 4, 1],
        "THYNYLLIC": [1, 1, 1, 1, 2, 4, 1, 1],
        "GYDYLLIC": [1, 1, 1, 2, 4, 1, 1, 1],
        "EPARYLLIC": [1, 1, 2, 4, 1, 1, 1, 1],
        "DYNYLLIC": [1, 2, 4, 1, 1, 1, 1, 1],
        "IONYLLIC": [2, 4, 1, 1, 1, 1, 1, 1],
        "ZARYLLIC": [3, 3, 1, 1, 1, 1, 1, 1],
        "DYTHYLLIC": [3, 1, 1, 1, 1, 1, 1, 3],
        "IONARYLLIC": [1, 1, 1, 1, 1, 1, 3, 3],
        "LARYLLIC": [1, 1, 1, 1, 1, 3, 3, 1],
        "KATAPTYLLIC": [1, 1, 1, 1, 3, 3, 1, 1],
        "SONYLLIC": [1, 1, 1, 3, 3, 1, 1, 1],
        "PATHYLLIC": [1, 1, 3, 3, 1, 1, 1, 1],
        "LORYLLIC": [1, 3, 3, 1, 1, 1, 1, 1],
        "AERONYLLIC": [3, 2, 1, 1, 1, 1, 2, 1],
        "PYCRYLLIC": [2, 1, 1, 1, 1, 2, 1, 3],
        "MYGYLLIC": [1, 1, 1, 1, 2, 1, 3, 2],
        "LYLYLLIC": [1, 1, 1, 2, 1, 3, 2, 1],
        "DAPTYLLIC": [1, 1, 2, 1, 3, 2, 1, 1],
        "IONINYLLIC": [1, 2, 1, 3, 2, 1, 1, 1],
        "EPAPHYLLIC": [2, 1, 3, 2, 1, 1, 1, 1],
        "LOLYLLIC": [1, 3, 2, 1, 1, 1, 1, 2],
        "STACRYLLIC": [3, 1, 2, 1, 1, 1, 1, 2],
        "DORYLLIC": [1, 2, 1, 1, 1, 1, 2, 3],
        "KADYLLIC": [2, 1, 1, 1, 1, 2, 3, 1],
        "RYNYLLIC": [1, 1, 1, 1, 2, 3, 1, 2],
        "AEROGYLLIC": [1, 1, 1, 2, 3, 1, 2, 1],
        "ROTHYLLIC": [1, 1, 2, 3, 1, 2, 1, 1],
        "KAGYLLIC": [1, 2, 3, 1, 2, 1, 1, 1],
        "STATHYLLIC": [2, 3, 1, 2, 1, 1, 1, 1],
        "THYRYLLIC": [2, 2, 2, 2, 1, 1, 1, 1],
        "GYGYLLIC": [2, 2, 2, 1, 1, 1, 1, 2],
        "SODYLLIC": [2, 2, 1, 1, 1, 1, 2, 2],
        "GORYLLIC": [2, 1, 1, 1, 1, 2, 2, 2],
        "BOTHYLLIC": [1, 1, 1, 1, 2, 2, 2, 2],
        "GYNYLLIC": [1, 1, 1, 2, 2, 2, 2, 1],
        "IONAPTYLLIC": [1, 1, 2, 2, 2, 2, 1, 1],
        "PHRYRYLLIC": [1, 2, 2, 2, 2, 1, 1, 1],
        "RACRYLLIC": [2, 2, 2, 1, 1, 2, 1, 1],
        "EPICRYLLIC": [2, 2, 1, 1, 2, 1, 1, 2],
        "STYGYLLIC": [2, 1, 1, 2, 1, 1, 2, 2],
        "SYRYLLIC": [1, 1, 2, 1, 1, 2, 2, 2],
        "STYTHYLLIC": [1, 2, 1, 1, 2, 2, 2, 1],
        "AEROTHYLLIC": [2, 1, 1, 2, 2, 2, 1, 1],
        "MIXORYLLIC": [1, 1, 2, 2, 2, 1, 1, 2],
        "THANYLLIC": [1, 2, 2, 2, 1, 1, 2, 1],
        "RORYLLIC": [2, 2, 1, 1, 2, 2, 1, 1],
        "EPOTYLLIC": [2, 1, 1, 2, 2, 1, 1, 2],
        "EPIDYLLIC": [1, 1, 2, 2, 1, 1, 2, 2],
        "KAPTYLLIC": [1, 2, 2, 1, 1, 2, 2, 1],
        "MAJORDIMIN": [2, 1, 2, 1, 2, 1, 2, 1],
        "MINORDIMIN": minordimin,
        "OCTATONIC": minordimin,
        "AERYCRYGIC": [2, 2, 1, 1, 1, 2, 1, 1, 1],
        "GADYGIC": [2, 1, 1, 1, 2, 1, 1, 1, 2],
        "SOLYGIC": [1, 1, 1, 2, 1, 1, 1, 2, 2],
        "ZYLYGIC": [1, 1, 2, 1, 1, 1, 2, 2, 1],
        "GARYGIC": [1, 2, 1, 1, 1, 2, 2, 1, 1],
        "SORYGIC": [2, 1, 1, 1, 2, 2, 1, 1, 1],
        "GODYGIC": [1, 1, 1, 2, 2, 1, 1, 1, 2],
        "EPITHYGIC": [1, 1, 2, 2, 1, 1, 1, 2, 1],
        "IONOPTYGIC": [1, 2, 2, 1, 1, 1, 2, 1, 1],
        "KALYGIC": [3, 1, 1, 2, 1, 1, 1, 1, 1],
        "IONODYGIC": [1, 1, 2, 1, 1, 1, 1, 1, 3],
        "BYTHYGIC": [1, 2, 1, 1, 1, 1, 1, 3, 1],
        "EPYGIC": [2, 1, 1, 1, 1, 1, 3, 1, 1],
        "MARYGIC": [1, 1, 1, 1, 1, 3, 1, 1, 2],
        "GAPTYGIC": [1, 1, 1, 1, 3, 1, 1, 2, 1],
        "AEROPTYGIC": [1, 1, 1, 3, 1, 1, 2, 1, 1],
        "MYLYGIC": [1, 1, 3, 1, 1, 2, 1, 1, 1],
        "GALYGIC": [1, 3, 1, 1, 2, 1, 1, 1, 1],
        "MIXOLYDYGIC": [3, 1, 1, 1, 2, 1, 1, 1, 1],
        "IONYCRYGIC": [1, 1, 1, 2, 1, 1, 1, 1, 3],
        "ZOPTYGIC": [1, 1, 2, 1, 1, 1, 1, 3, 1],
        "PHRYGYGIC": [1, 2, 1, 1, 1, 1, 3, 1, 1],
        "LOCRYGIC": [2, 1, 1, 1, 1, 3, 1, 1, 1],
        "GONYGIC": [1, 1, 1, 1, 3, 1, 1, 1, 2],
        "AERACRYGIC": [1, 1, 1, 3, 1, 1, 1, 2, 1],
        "AERATHYGIC": [1, 1, 3, 1, 1, 1, 2, 1, 1],
        "DORYGIC": [1, 3, 1, 1, 1, 2, 1, 1, 1],
        "DYCRYGIC": [3, 1, 1, 1, 1, 2, 1, 1, 1],
        "AEOLYGIC": [1, 1, 1, 1, 2, 1, 1, 1, 3],
        "DYDYGIC": [1, 1, 1, 2, 1, 1, 1, 3, 1],
        "THOLYGIC": [1, 1, 2, 1, 1, 1, 3, 1, 1],
        "RYNYGIC": [1, 2, 1, 1, 1, 3, 1, 1, 1],
        "BYCRYGIC": [2, 1, 1, 1, 3, 1, 1, 1, 1],
        "ZACRYGIC": [1, 1, 1, 3, 1, 1, 1, 1, 2],
        "PANYGIC": [1, 1, 3, 1, 1, 1, 1, 2, 1],
        "DYRYGIC": [1, 3, 1, 1, 1, 1, 2, 1, 1],
        "LOPTYGIC": [3, 1, 1, 1, 1, 1, 2, 1, 1],
        "KATYLYGIC": [1, 1, 1, 1, 1, 2, 1, 1, 3],
        "PHRADYGIC": [1, 1, 1, 1, 2, 1, 1, 3, 1],
        "MIXODYGIC": [1, 1, 1, 2, 1, 1, 3, 1, 1],
        "KATALYGIC": [1, 1, 2, 1, 1, 3, 1, 1, 1],
        "KATORYGIC": [1, 2, 1, 1, 3, 1, 1, 1, 1],
        "DOGYGIC": [2, 1, 1, 3, 1, 1, 1, 1, 1],
        "ZODYGIC": [1, 1, 3, 1, 1, 1, 1, 1, 2],
        "MADYGIC": [1, 3, 1, 1, 1, 1, 1, 2, 1],
        "BAGYGIC": [2, 2, 1, 2, 1, 1, 1, 1, 1],
        "MATHYGIC": [2, 1, 2, 1, 1, 1, 1, 1, 2],
        "STYPTYGIC": [1, 2, 1, 1, 1, 1, 1, 2, 2],
        "ZOLYGIC": [2, 1, 1, 1, 1, 1, 2, 2, 1],
        "SYDYGIC": [1, 1, 1, 1, 1, 2, 2, 1, 2],
        "KATYGIC": [1, 1, 1, 1, 2, 2, 1, 2, 1],
        "ZYPHYGIC": [1, 1, 1, 2, 2, 1, 2, 1, 1],
        "AERALYGIC": [1, 1, 2, 2, 1, 2, 1, 1, 1],
        "RYPTYGIC": [1, 2, 2, 1, 2, 1, 1, 1, 1],
        "APINYGIC": [2, 2, 1, 1, 1, 1, 1, 2, 1],
        "KATAGYGIC": [2, 1, 1, 1, 1, 1, 2, 1, 2],
        "RADYGIC": [1, 1, 1, 1, 1, 2, 1, 2, 2],
        "GOTHYGIC": [1, 1, 1, 1, 2, 1, 2, 2, 1],
        "LYTHYGIC": [1, 1, 1, 2, 1, 2, 2, 1, 1],
        "BACRYGIC": [1, 1, 2, 1, 2, 2, 1, 1, 1],
        "AERYGIC": [1, 2, 1, 2, 2, 1, 1, 1, 1],
        "DATHYGIC": [2, 1, 2, 2, 1, 1, 1, 1, 1],
        "BOPTYGIC": [1, 2, 2, 1, 1, 1, 1, 1, 2],
        "EPYRYGIC": [2, 1, 2, 1, 1, 2, 1, 1, 1],
        "AERADYGIC": [1, 2, 1, 1, 2, 1, 1, 1, 2],
        "STAPTYGIC": [2, 1, 1, 2, 1, 1, 1, 2, 1],
        "DANYGIC": [1, 1, 2, 1, 1, 1, 2, 1, 2],
        "GOPTYGIC": [1, 2, 1, 1, 1, 2, 1, 2, 1],
        "EPOCRYGIC": [2, 1, 1, 1, 2, 1, 2, 1, 1],
        "ROCRYGIC": [1, 1, 1, 2, 1, 2, 1, 1, 2],
        "ZYRYGIC": [1, 1, 2, 1, 2, 1, 1, 2, 1],
        "SADYGIC": [1, 2, 1, 2, 1, 1, 2, 1, 1],
        "AEOLORYGIC": [2, 1, 2, 1, 1, 1, 2, 1, 1],
        "THYDYGIC": [1, 2, 1, 1, 1, 2, 1, 1, 2],
        "GYCRYGIC": [2, 1, 1, 1, 2, 1, 1, 2, 1],
        "LYRYGIC": [1, 1, 1, 2, 1, 1, 2, 1, 2],
        "MODYGIC": [1, 1, 2, 1, 1, 2, 1, 2, 1],
        "KATODYGIC": [1, 2, 1, 1, 2, 1, 2, 1, 1],
        "MOPTYGIC": [2, 1, 1, 2, 1, 2, 1, 1, 1],
        "IONOCRYGIC": [1, 1, 2, 1, 2, 1, 1, 1, 2],
        "GOCRYGIC": [1, 2, 1, 2, 1, 1, 1, 2, 1],
        "MANYGIC": [4, 1, 1, 1, 1, 1, 1, 1, 1],
        "POLYGIC": [1, 1, 1, 1, 1, 1, 1, 1, 4],
        "STANYGIC": [1, 1, 1, 1, 1, 1, 1, 4, 1],
        "THAPTYGIC": [1, 1, 1, 1, 1, 1, 4, 1, 1],
        "EPORYGIC": [1, 1, 1, 1, 1, 4, 1, 1, 1],
        "AERYNYGIC": [1, 1, 1, 1, 4, 1, 1, 1, 1],
        "THYPTYGIC": [1, 1, 1, 4, 1, 1, 1, 1, 1],
        "IONOGYGIC": [1, 1, 4, 1, 1, 1, 1, 1, 1],
        "AEOLARYGIC": [1, 4, 1, 1, 1, 1, 1, 1, 1],
        "SATHYGIC": [3, 2, 1, 1, 1, 1, 1, 1, 1],
        "LADYGIC": [2, 1, 1, 1, 1, 1, 1, 1, 3],
        "SARYGIC": [1, 1, 1, 1, 1, 1, 1, 3, 2],
        "THACRYGIC": [1, 1, 1, 1, 1, 1, 3, 2, 1],
        "AEOLYNYGIC": [1, 1, 1, 1, 1, 3, 2, 1, 1],
        "THADYGIC": [1, 1, 1, 1, 3, 2, 1, 1, 1],
        "LYNYGIC": [1, 1, 1, 3, 2, 1, 1, 1, 1],
        "DOPTYGIC": [1, 1, 3, 2, 1, 1, 1, 1, 1],
        "IONILYGIC": [1, 3, 2, 1, 1, 1, 1, 1, 1],
        "PHRYGIC": [3, 1, 2, 1, 1, 1, 1, 1, 1],
        "AERANYGIC": [1, 2, 1, 1, 1, 1, 1, 1, 3],
        "DOTHYGIC": [2, 1, 1, 1, 1, 1, 1, 3, 1],
        "LYDYGIC": [1, 1, 1, 1, 1, 1, 3, 1, 2],
        "STADYGIC": [1, 1, 1, 1, 1, 3, 1, 2, 1],
        "BYPTYGIC": [1, 1, 1, 1, 3, 1, 2, 1, 1],
        "STODYGIC": [1, 1, 1, 3, 1, 2, 1, 1, 1],
        "ZYNYGIC": [1, 1, 3, 1, 2, 1, 1, 1, 1],
        "LONYGIC": [1, 3, 1, 2, 1, 1, 1, 1, 1],
        "ZOTHYGIC": [3, 1, 1, 1, 1, 1, 1, 2, 1],
        "AEOLATHYGIC": [1, 1, 1, 1, 1, 1, 2, 1, 3],
        "AEOLOCRYGIC": [1, 1, 1, 1, 1, 2, 1, 3, 1],
        "PHROPTYGIC": [1, 1, 1, 1, 2, 1, 3, 1, 1],
        "KODYGIC": [1, 1, 1, 2, 1, 3, 1, 1, 1],
        "EPARYGIC": [1, 1, 2, 1, 3, 1, 1, 1, 1],
        "IONYGIC": [1, 2, 1, 3, 1, 1, 1, 1, 1],
        "GYPTYGIC": [2, 1, 3, 1, 1, 1, 1, 1, 1],
        "AERYTHYGIC": [1, 3, 1, 1, 1, 1, 1, 1, 2],
        "AEOLACRYGIC": [3, 1, 1, 1, 1, 1, 1, 1, 2],
        "RAPTYGIC": [1, 1, 1, 1, 1, 1, 1, 2, 3],
        "GYTHYGIC": [1, 1, 1, 1, 1, 1, 2, 3, 1],
        "PYRYGIC": [1, 1, 1, 1, 1, 2, 3, 1, 1],
        "RYCRYGIC": [1, 1, 1, 1, 2, 3, 1, 1, 1],
        "PHRATHYGIC": [1, 1, 1, 2, 3, 1, 1, 1, 1],
        "BADYGIC": [1, 1, 2, 3, 1, 1, 1, 1, 1],
        "PHROCRYGIC": [1, 2, 3, 1, 1, 1, 1, 1, 1],
        "STARYGIC": [2, 3, 1, 1, 1, 1, 1, 1, 1],
        "KYRYGIC": [2, 2, 2, 1, 1, 1, 1, 1, 1],
        "SYTHYGIC": [2, 2, 1, 1, 1, 1, 1, 1, 2],
        "KATYCRYGIC": [2, 1, 1, 1, 1, 1, 1, 2, 2],
        "THARYGIC": [1, 1, 1, 1, 1, 1, 2, 2, 2],
        "SYLYGIC": [1, 1, 1, 1, 1, 2, 2, 2, 1],
        "LOTHYGIC": [1, 1, 1, 1, 2, 2, 2, 1, 1],
        "DARYGIC": [1, 1, 1, 2, 2, 2, 1, 1, 1],
        "MONYGIC": [1, 1, 2, 2, 2, 1, 1, 1, 1],
        "STYRYGIC": [1, 2, 2, 2, 1, 1, 1, 1, 1],
        "PORYGIC": [2, 2, 1, 1, 2, 1, 1, 1, 1],
        "MOCRYGIC": [2, 1, 1, 2, 1, 1, 1, 1, 2],
        "AEOLYRYGIC": [1, 1, 2, 1, 1, 1, 1, 2, 2],
        "BARYGIC": [1, 2, 1, 1, 1, 1, 2, 2, 1],
        "KATARYGIC": [2, 1, 1, 1, 1, 2, 2, 1, 1],
        "AEROCRYGIC": [1, 1, 1, 1, 2, 2, 1, 1, 2],
        "ZANYGIC": [1, 1, 1, 2, 2, 1, 1, 2, 1],
        "AEOLONYGIC": [1, 1, 2, 2, 1, 1, 2, 1, 1],
        "AEOLANYGIC": [1, 2, 2, 1, 1, 2, 1, 1, 1],
        "KAPTYGIC": [2, 2, 1, 1, 1, 1, 2, 1, 1],
        "SACRYGIC": [2, 1, 1, 1, 1, 2, 1, 1, 2],
        "PADYGIC": [1, 1, 1, 1, 2, 1, 1, 2, 2],
        "EPILYGIC": [1, 1, 1, 2, 1, 1, 2, 2, 1],
        "KYNYGIC": [1, 1, 2, 1, 1, 2, 2, 1, 1],
        "STOPHYGIC": [1, 2, 1, 1, 2, 2, 1, 1, 1],
        "IONIDYGIC": [2, 1, 1, 2, 2, 1, 1, 1, 1],
        "STONYGIC": [1, 1, 2, 2, 1, 1, 1, 1, 2],
        "STALYGIC": [1, 2, 2, 1, 1, 1, 1, 2, 1],
        "KOPTYGIC": [2, 1, 2, 1, 2, 1, 1, 1, 1],
        "RAPHYGIC": [1, 2, 1, 2, 1, 1, 1, 1, 2],
        "ZYCRYGIC": [2, 1, 2, 1, 1, 1, 1, 2, 1],
        "MYCRYGIC": [1, 2, 1, 1, 1, 1, 2, 1, 2],
        "LAPTYGIC": [2, 1, 1, 1, 1, 2, 1, 2, 1],
        "PYLYGIC": [1, 1, 1, 1, 2, 1, 2, 1, 2],
        "RODYGIC": [1, 1, 1, 2, 1, 2, 1, 2, 1],
        "EPOLYGIC": [1, 1, 2, 1, 2, 1, 2, 1, 1],
        "EPIDYGIC": [1, 2, 1, 2, 1, 2, 1, 1, 1],
        "PHRONYGIC": [2, 1, 1, 2, 1, 1, 2, 1, 1],
        "STYNYGIC": [1, 1, 2, 1, 1, 2, 1, 1, 2],
        "ZYDYGIC": [1, 2, 1, 1, 2, 1, 1, 2, 1],
        "AERYCRYLLIAN": [2, 1, 1, 1, 2, 1, 1, 1, 1, 1],
        "GADYLLIAN": [1, 1, 1, 2, 1, 1, 1, 1, 1, 2],
        "SOLYLLIAN": [1, 1, 2, 1, 1, 1, 1, 1, 2, 1],
        "ZYPHYLLIAN": [1, 2, 1, 1, 1, 1, 1, 2, 1, 1],
        "GARYLLIAN": [2, 1, 1, 1, 1, 1, 2, 1, 1, 1],
        "SORYLLIAN": [1, 1, 1, 1, 1, 2, 1, 1, 1, 2],
        "GODYLLIAN": [1, 1, 1, 1, 2, 1, 1, 1, 2, 1],
        "EPITYLLIAN": [1, 1, 1, 2, 1, 1, 1, 2, 1, 1],
        "IONYLLIAN": [1, 1, 2, 1, 1, 1, 2, 1, 1, 1],
        "AEORYLLIAN": [1, 2, 1, 1, 1, 2, 1, 1, 1, 1],
        "KATORYLLIAN": [3, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        "DODYLLIAN": [1, 1, 1, 1, 1, 1, 1, 1, 1, 3],
        "ZOGYLLIAN": [1, 1, 1, 1, 1, 1, 1, 1, 3, 1],
        "MADYLLIAN": [1, 1, 1, 1, 1, 1, 1, 3, 1, 1],
        "DYCRYLLIAN": [1, 1, 1, 1, 1, 1, 3, 1, 1, 1],
        "AEOGYLLIAN": [1, 1, 1, 1, 1, 3, 1, 1, 1, 1],
        "DYDYLLIAN": [1, 1, 1, 1, 3, 1, 1, 1, 1, 1],
        "THOGYLLIAN": [1, 1, 1, 3, 1, 1, 1, 1, 1, 1],
        "RYGYLLIAN": [1, 1, 3, 1, 1, 1, 1, 1, 1, 1],
        "BATHYLLIAN": [1, 3, 1, 1, 1, 1, 1, 1, 1, 1],
        "SYDYLLIAN": [2, 2, 1, 1, 1, 1, 1, 1, 1, 1],
        "KATOGYLLIAN": [2, 1, 1, 1, 1, 1, 1, 1, 1, 2],
        "MIXODYLLIAN": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2],
        "AERADYLLIAN": [1, 1, 1, 1, 1, 1, 1, 2, 2, 1],
        "RYPTYLLIAN": [1, 1, 1, 1, 1, 1, 2, 2, 1, 1],
        "LOPTYLLIAN": [1, 1, 1, 1, 1, 2, 2, 1, 1, 1],
        "KATAPHYLLIAN": [1, 1, 1, 1, 2, 2, 1, 1, 1, 1],
        "PHRADYLLIAN": [1, 1, 1, 2, 2, 1, 1, 1, 1, 1],
        "DAGYLLIAN": [1, 1, 2, 2, 1, 1, 1, 1, 1, 1],
        "KATYLLIAN": [1, 2, 2, 1, 1, 1, 1, 1, 1, 1],
        "GOTHYLLIAN": [2, 1, 2, 1, 1, 1, 1, 1, 1, 1],
        "LYTHYLLIAN": [1, 2, 1, 1, 1, 1, 1, 1, 1, 2],
        "BACRYLLIAN": [2, 1, 1, 1, 1, 1, 1, 1, 2, 1],
        "AERYGYLLIAN": [1, 1, 1, 1, 1, 1, 1, 2, 1, 2],
        "DATHYLLIAN": [1, 1, 1, 1, 1, 1, 2, 1, 2, 1],
        "BOPTYLLIAN": [1, 1, 1, 1, 1, 2, 1, 2, 1, 1],
        "BAGYLLIAN": [1, 1, 1, 1, 2, 1, 2, 1, 1, 1],
        "MATHYLLIAN": [1, 1, 1, 2, 1, 2, 1, 1, 1, 1],
        "STYPTYLLIAN": [1, 1, 2, 1, 2, 1, 1, 1, 1, 1],
        "ZOLYLLIAN": [1, 2, 1, 2, 1, 1, 1, 1, 1, 1],
        "STAPTYLLIAN": [2, 1, 1, 2, 1, 1, 1, 1, 1, 1],
        "DANYLLIAN": [1, 1, 2, 1, 1, 1, 1, 1, 1, 2],
        "GOPTYLLIAN": [1, 2, 1, 1, 1, 1, 1, 1, 2, 1],
        "EPOCRYLLIAN": [2, 1, 1, 1, 1, 1, 1, 2, 1, 1],
        "ROCRYLLIAN": [1, 1, 1, 1, 1, 1, 2, 1, 1, 2],
        "ZYRYLLIAN": [1, 1, 1, 1, 1, 2, 1, 1, 2, 1],
        "SAGYLLIAN": [1, 1, 1, 1, 2, 1, 1, 2, 1, 1],
        "EPINYLLIAN": [1, 1, 1, 2, 1, 1, 2, 1, 1, 1],
        "KATAGYLLIAN": [1, 1, 2, 1, 1, 2, 1, 1, 1, 1],
        "RAGYLLIAN": [1, 2, 1, 1, 2, 1, 1, 1, 1, 1],
        "THYDYLLIAN": [2, 1, 1, 1, 1, 2, 1, 1, 1, 1],
        "EPIRYLLIAN": [1, 1, 1, 1, 2, 1, 1, 1, 1, 2],
        "LYRYLLIAN": [1, 1, 1, 2, 1, 1, 1, 1, 2, 1],
        "MOGYLLIAN": [1, 1, 2, 1, 1, 1, 1, 2, 1, 1],
        "KATODYLLIAN": [1, 2, 1, 1, 1, 1, 2, 1, 1, 1],
        "AERYCRATIC": [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        "MONATIC": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2],
        "SOLATIC": [1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1],
        "ZYLATIC": [1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1],
        "MIXOLATIC": [1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1],
        "SORATIC": [1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1],
        "GODATIC": [1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1],
        "EPTATIC": [1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1],
        "IONATIC": [1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1],
        "AEOLATIC": [1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1],
        "THYDATIC": [1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        "CHROMATIC": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    }
    return all_scales as { [key: string]: number[]};
}

// https://ianring.com/musictheory/scales/
// http://www.pdmusic.org/text/027.txt
// Benjamin Robert Tubb brtubb@pdmusic.org http://www.pdmusic.org/theory.html
// Clint Goss, Comprehensive Scale Catalog, version March 30, 2017, available at http://www.Flutopedia.com/scale_catalog.htm retrieved Jan 15, 2018
// http://www.flutopedia.com/xls/Flutopedia_Scales.txt
// http://www.huygens-fokker.org/docs/modename.html

export const SCALE_NAMES: { [key: string]: string[]} = {
		5: ["Vietnamese ditonic"],
		33: ["Honchoshi"],
		41: ["Vietnamese tritonic"],
		129: ["Niagari"],
		137: ["Ute tritonic","Peruvian tritonic 2"],
		145: ["Raga Malasri","Peruvian tritonic 1"],
		149: ["Eskimo tetratonic"],
		161: ["Raga Sarvasri","Warao tritonic"],
		165: ["Genus Primum"],
		169: ["Vietnamese tetratonic"],
		173: ["Raga Purnalalita","Chad Gadyo","Ghana Pentatonic 1","Nando-kyemyonjo"],
		181: ["Raga Budhamanohari"],
		193: ["Raga Ongkari"],
		195: ["Messiaen truncated mode 5"],
		199: ["Raga Nabhomani"],
		219: ["Istrian"],
		245: ["Raga Dipak"],
		273: ["Augmented Triad"],
		291: ["Raga Lavangi","Gowleeswari"],
		293: ["Raga Haripriya"],
		299: ["Raga Chitthakarshini"],
		301: ["Raga Audav Tukhari"],
		307: ["Raga Megharanjani","Syrian Pentatonic"],
		325: ["Messiaen truncated mode 6"],
		331: ["Raga Chhaya Todi","Locrian Pentatonic 1"],
		395: ["Phrygian Pentatonic","Balinese Pelog","Madenda Modern","Raga Bhupalam","Bhupala Todi","Bibhas", "Balinese"],
		397: ["Aeolian Pentatonic","Hirajoshi","Kata-kumoi","Yona Nuki Minor","Tizita Minor (Half tizita)"],
		403: ["Raga Reva","Revagupti","Ramkali","Vibhas (Bhairava)"],
		405: ["Raga Bhupeshwari","Janasammodini"],
		419: ["Hon-kumoi-joshi","Sakura","Akebono II","Olympos Enharmonic","Raga Salanganata","Saveri","Gunakri (Gunakali)","Latantapriya","Ambassel","japanese (a)"],
		421: ["Han-kumoi","Raga Shobhavari","Sutradhari","japenese (b)"],
		425: ["Raga Kokil Pancham"],
		427: ["Raga Suddha Simantini"],
		433: ["Raga Zilaf"],
		435: ["Raga Purna Pancama","Malahari","Geyahejjajji","Kannadabangala"],
		451: ["Raga Saugandhini","Yashranjani"],
		455: ["Messiaen mode 5","Two-semitone Tritone scale"],
		461: ["Raga Syamalam"],
		467: ["Raga Dhavalangam"],
		529: ["Raga Bilwadala"],
		549: ["Raga Bhavani"],
		557: ["Raga Abhogi"],
		585: ["Diminished Seventh"],
		597: ["Kung"],
		619: ["Double-Phrygian Hexatonic"],
		621: ["Pyramid Hexatonic"],
		637: ["Debussy's Heptatonic"],
		653: ["Dorian Pentatonic","Raga Sivaranjini","Raga Shivranjani","Akebono I","Kumoi"],
		659: ["Raga Rasika Ranjani","Vibhas (Marva)","Scriabin"],
		661: ["Major Pentatonic","Pentatonic Major","Ryosen","Yona Nuki Major","Man Jue","Gong","Raga Bhopali","Raga Bhup","Mohanam","Deskar","Bilahari","Kokila","Jait Kalyan","Peruvian Pentatonic 1","Ghana Pentatonic 2","Tizita Major"],
		665: ["Raga Mohanangi"],
		675: ["Altered Pentatonic","Raga Manaranjani II"],
		677: ["Scottish Pentatonic","Blues Major","Ritusen","Ritsu","Gagaku","Zhi","Zheng","Ujo","P'yongjo","Bac","Lai Soutsanaen","Lai Po Sai","Lai Soi","Raga Devakriya","Durga","Suddha Saveri","Arabhi","Major complement"],
		681: ["Kyemyonjo","Minor added sixth Pentatonic"],
		685: ["Raga Suddha Bangala","Gauri Velavali"],
		689: ["Raga Nagasvaravali","Raga Mand"],
		691: ["Raga Kalavati","Ragamalini"],
		693: ["Arezzo Major Diatonic Hexachord","Raga Kambhoji","Devarangini","Sama","Syama","Scottish Hexatonic"],
		709: ["Raga Shri Kalyan"],
		711: ["Raga Chandrajyoti"],
		715: ["Messiaen truncated mode 2"],
		717: ["Raga Vijayanagari"],
		721: ["Raga Dhavalashri"],
		725: ["Raga Yamuna Kalyani","Kalyani Keseri","Airavati","Ancient Chinese"],
		743: ["Chromatic Hypophrygian inverse"],
		775: ["Raga Putrika"],
		807: ["Raga Suddha Mukhari"],
		819: ["Augmented Inverse","Messiaen truncated mode 3","Prometheus (Liszt)","Six Tone Symmetrical"],
		845: ["Raga Neelangi"],
		851: ["Raga Hejjajji"],
		859: ["Ultralocrian","Superlocrian Diminished","Superlocrian Double-Flat 7","Mixolydian sharp 1","Diminished"],
		871: ["Locrian Double-flat 3 Double-flat 7"],
		875: ["Locrian Double-flat 7"],
		877: ["Moravian Pistalkova","Hungarian Major inverse"],
		915: ["Raga Kalagada","Raga Kalgada"],
		919: ["Chromatic Phrygian Inverse"],
		923: ["Ultraphrygian"],
		925: ["Chromatic Hypodorian","Relative Blues scale","Raga Dvigandharabushini"],
		931: ["Raga Kalakanthi"],
		935: ["Chromatic Dorian","Mela Kanakangi","Raga Kanakambari"],
		939: ["Mela Senavati","Raga Senagrani","Malini"],
		941: ["Mela Jhankaradhvani","Raga Jhankara Bhramavi"],
		945: ["Raga Saravati","Raga Sharavati"],
		947: ["Mela Gayakapriya","Raga Kalakanti","Romani Hexatonic"],
		949: ["Mela Mararanjani","Raga Keseri","Major Bebop Heptatonic"],
		953: ["Mela Yagapriya","Raga Kalahamsa"],
		967: ["Mela Salaga","Mela Salagam"],
		971: ["Mela Gavambodhi","Raga Girvani"],
		973: ["Mela Syamalangi","Raga Shyamalam"],
		975: ["Messiaen mode 4","Tcherepnin Octatonic mode 3"],
		979: ["Mela Dhavalambari","Foulds' Mantra of Will scale"],
		981: ["Mela Kantamani","Raga Kuntala","Srutiranjani"],
		985: ["Mela Sucaritra","Raga Santanamanjari"],
		1025: ["Warao ditonic"],
		1037: ["Warao tetratonic"],
		1057: ["Sansagari"],
		1105: ["Messiaen truncated mode 6 inverse"],
		1113: ["Locrian Pentatonic 2"],
		1115: ["Superlocrian Hexamirror"],
		1123: ["Iwato"],
		1129: ["Raga Jayakauns"],
		1131: ["Honchoshi plagal form"],
		1161: ["Bi Yu"],
		1163: ["Raga Rukmangi"],
		1169: ["Raga Mahathi","Antara Kaishiaki"],
		1171: ["Raga Manaranjani I"],
		1173: ["Dominant Pentatonic"],
		1185: ["Genus Primum Inverse"],
		1187: ["Kokin-joshi","Miyakobushi","Han-Iwato","In Sen","Raga Vibhavari","Bairagi","Lasaki"],
		1189: ["Suspended Pentatonic","Raga Madhyamavati","Madhmat Sarang","Megh","Egyptian","Shang","Rui Bin","Jin Yu","Qing Yu","Yo","Ngu Cung Dao","Yematebela wofe","Egyptian"],
		1193: ["Minor Pentatonic","Pentatonic Minor","Blues Pentatonic","Raga Dhani","Abheri","Udhayaravi Chandrika","Qing Shang","Gu Xian","Jia Zhong","Yu","P'yongjo-kyemyonjo","Minyo","Lai Yai","Lai Noi","Nam","Northern Sa mac","Peruvian Pentatonic 2","Batti Minor"],
		1195: ["Raga Gandharavam","Sabai silt"],
		1197: ["Minor Hexatonic","Raga Manirangu","Nayaki","Palasi","Pushpalithika","Puspalatika","Suha Sughrai","Yo","Eskimo Hexatonic 1"],
		1201: ["Mixolydian Pentatonic","Nam ai","Oan","Raga Savethri"],
		1205: ["Raga Siva Kambhoji","Vivardhini","Andhali"],
		1209: ["Raga Bhanumanjari","Jog"],
		1225: ["Raga Samudhra Priya","Madhukauns"],
		1229: ["Raga Simharava","Raga Sinharavam","Gopikatilaka"],
		1235: ["Messiaen truncated mode 2","Raga Indupriya","Tritone scale"],
		1255: ["Chromatic Mixolydian"],
		1257: ["Blues scale","Blues","Raga Nileshwari"],
		1261: ["Modified Blues"],
		1317: ["Chaio"],
		1321: ["Blues Minor","Raga Malkauns","Raga Malakosh","Raga Hindola","Man Gong","Quan Ming","Yi Ze","Jiao","Shegaye"],
		1323: ["Ritsu","Raga Suddha Todi)"],
		1331: ["Raga Vasantabhairavi"],
		1353: ["Raga Harikauns","Chin"],
		1355: ["Raga Bhavani"],
		1357: ["Takemitsu Tree Line mode 2"],
		1365: ["Whole-tone","Messiaen mode 1","Raga Gopriya","Anhemitonic Hexatonic","auxiliary augmented"],
		1367: ["Leading Whole-Tone inverse"],
		1371: ["Superlocrian","Altered Dominant","Diminished Whole-tone","Locrian flat 4","Pomeroy","Ravel","Dominant Whole-tone Combo","Altered"],
		1387: ["Locrian","Half Diminished Locrian","Greek Mixolydian","Greek Hyperdorian","Medieval Hypophrygian","Medieval Locrian","Greek Medieval Hyperaeolian","Rut biscale descending","Pien chih","Makam Lami","Yishtabach"],
		1389: ["Minor Locrian","Half Diminished","Locrian Sharp 2","Minor Flat 5"],
		1395: ["Asian (a)"],
		1397: ["Major Locrian","Arabian b"],
		1403: ["Espla's scale","Eight-tone Spanish"],
		1417: ["Raga Shailaja","Varini"],
		1419: ["Raga Kashyapi"],
		1421: ["Raga Trimurti"],
		1435: ["Makam Huzzam","Maqam Saba Zamzam","Phrygian Flat 4"],
		1437: ["Sabach ascending"],
		1443: ["Raga Phenadyuti","Insen","Honchoshi","Niagari"],
		1445: ["Raga Navamanohari"],
		1447: ["Mela Ratnangi","Raga Phenadyuti"],
		1449: ["Raga Gopikavasantam","Desya Todi","Jayantasri","Phrygian Hexatonic"],
		1451: ["Phrygian","Greek Dorian","Medieval Phrygian","Greek Medieval Hypoaeolian","Neopolitan Minor","Bhairavi That","Bhairavi Theta","Mela Hanumatodi","Raga Asavari","Raga Asaveri","Bilashkhani Todi","Ghanta","Makam Kurd","Gregorian nr.3","In","Zokuso","Ousak","Major inverse"],
		1453: ["Aeolian","Greek Medieval Hypodorian","Greek Medieval Aeolian","Greek Hyperphrygian","Natural Minor","Pure Minor","Melodic Minor descending","Asavari That","Asavari Theta","Mela Natabhairavi","Raga Jaunpuri","Adana","Darbari","Dhanyasi","Jingla","Gregorian nr.2","Makam Buselik","Nihavend","Peruvian Minor","Se","Chiao","Geez/Ezel","Kiourdi descending","Cushak"],
		1455: ["Phrygian/Aeolian mixed"],
		1457: ["Raga Kamalamanohari"],
		1459: ["Phrygian Dominant","Phrygian Major","Spanish Romani","Mela Vakulabharanam","Raga Jogiya","Ahiri","Vativasantabhairavi","Zilof","Ahava Rabba","Freygish","Maqam Hijaz-Nahawand","Humayun","Dorico Flamenco","Hitzaz","Harmonic Major inverse","Altered Hungarian"],
		1461: ["Major-Minor","Melodic Major","Mischung 6","Mixolydian flat 6","Mela Carukesi","Raga Charukeshi","Tarangini","Hindu","Hindustan","Altered Mixolydian"],
		1465: ["Mela Ragavardhani","Raga Cudamani"],
		1467: ["Spanish Phrygian","altered dominant a"],
		1477: ["Raga Jaganmohanam"],
		1479: ["Mela Jalarnava", "mela jalarnavam"],
		1483: ["Mela Bhavapriya","Raga Bhavani","Kalamurti","Neveseri ascending"],
		1485: ["Minor Romani","Ukrainian Dorian","Mela Sanmukhapriya","Raga Camara","Chinthamani","Lydian Diminished","Aolian Sharp 4","Romani Scale"],
		1489: ["Raga Jyoti"],
		1491: ["Mela Namanarayani","Raga Narmada","Pratapa","Harsh Major-Minor"],
		1493: ["Lydian Minor","Minor Lydian","Mela Risabhapriya","Raga Ratipriya"],
		1495: ["Messiaen mode 6"],
		1497: ["Mela Jyotisvarupini","Raga Jotismatti"],
		1499: ["Bebop Locrian", "Altered Dominant b"],
		1515: ["Phrygian/Locrian mixed"],
		1519: ["Locrian/Aeolian mixed"],
		1573: ["Raga Guhamanohari"],
		1577: ["Raga Chandrakauns (Kafi)","Surya","Varamu"],
		1581: ["Raga Bagesri","Sriranjani","Kapijingla","Jayamanohari"],
		1585: ["Raga Khamaji Durga"],
		1587: ["Raga Rudra Pancama"],
		1589: ["Raga Rageshri","Raga Rageshwari","Nattaikurinji","Natakuranji"],
		1619: ["Prometheus Neapolitan"],
		1621: ["Prometheus (Scriabin)","Mystic","Raga Barbara)"],
		1643: ["Locrian natural 6","Maqam Tarznauyn","Locrian Sharp 6"],
		1645: ["Dorian flat 5","Blues Heptatonic","Makam Karcigar","Maqam Nahawand Murassah","Kiourdi ascending","Kartzihiar"],
		1651: ["Asian","Asian (b)","Raga Ahira-Lalita","Hungarian Minor inverse","Tsinganikos"],
		1653: ["Minor Romani inverse"],
		1659: ["Maqam Shadd'araban"],
		1669: ["Raga Matha Kokila","Raga Matkokil"],
		1675: ["Raga Salagavarali"],
		1677: ["Raga Manavi"],
		1681: ["Raga Valaji"],
		1683: ["Raga Malayamarutam"],
		1697: ["Raga Kuntvarali","Raga Kuntalavarali"],
		1699: ["Raga Rasavali"],
		1701: ["Dominant Seventh","Mixolydian Hexatonic","P'yongjo","Yosen","Raga Darbar","Narayani","Suposhini","Andolika","Gorakh Kalyan"],
		1703: ["Mela Vanaspati","Raga Bhanumati"],
		1705: ["Raga Manohari","Malavasri"],
		1707: ["Mela Natakapriya","Jazz Minor inverse","Phrygian-Mixolydian","Dorian flat 2","Raga Natabharanam","Ahiri Todi","Javanese Pelog","Pelog"],
		1709: ["Dorian","Greek Phrygian","Medieval Dorian","Medieval Hypomixolydian","Kafi That","Kafi Theta","Mela Kharaharapriya","Raga Bageshri","Bhimpalasi","Nayaki Kanada","Sriraga","Ritigaula","Huseni","Kanara","Mischung 5","Gregorian nr.8","Eskimo Heptatonic","Yu","Hyojo","Oshikicho","Banshikicho","Nam"],
		1711: ["Adonai Malakh","Jewish"],
		1713: ["Raga Khamas","Desya Khamas","Bahudari"],
		1715: ["Harmonic Minor inverse","Mela Cakravaka","Mela Chakravakam","Raga Ahir Bhairav","Bindumalini","Vegavahini","Makam Hicaz","Zanjaran"],
		1717: ["Mixolydian","Greek Hypophrygian","Greek Ionian","Greek Iastian","Medieval Mixolydian","Greek Medieval Hypoionian","Hypermixolydian","Khamaj That","Khamaj Theta","Mela Harikambhoji","Raga Harini","Janjhuti","Khambhavati","Surati","Balahamsa","Devamanohari","Mischung 3","Gregorian nr.7","Enharmonic Byzantine Liturgical","Rast descending","Ching","Shang"],
		1721: ["Mela Vagadhisvari","Raga Bhogachayanata","Nandkauns","Ganavaridhi","Chayanata","Bluesy Rock 'n Roll"],
		1723: ["JG Octatonic"],
		1725: ["Minor Bebop","Dorian Bebop","Bebop Dorian","Raga Zilla","Mixolydian/Dorian mixed"],
		1733: ["Raga Sarasvati"],
		1735: ["Mela Navanitam","Raga Nabhomani"],
		1737: ["Raga Madhukauns"],
		1739: ["Mela Sadvidhamargini","Raga Sthavarajam","Tivravahini"],
		1741: ["Altered Dorian","Mela Hemavati","Raga Desisimharavam","Maqam Nakriz","Tunisian","Ukranian Dorian","Romanian Scale","Rumanian Minor","Dorian sharp 4","Misheberekh","Souzinak Minor","Peiraiotikos Minor","Nigriz","Pimenikos","Ukrainian Minor","Kaffa","Gnossiennes"],
		1745: ["Raga Vutari"],
		1747: ["Mela Ramapriya","Raga Ramamanohari","Romanian Major","Petrushka chord"],
		1749: ["Acoustic","Lydian Dominant","Mela Vacaspati","Raga Bhusavati","Bhusavali","Overtone","Overtone Dominant","Lydian-Mixolydian","Lydian-Mixolydian Combo","Bartok"],
		1753: ["Hungarian Major","Mela Nasikabhusani","Raga Nasamani"],
		1755: ["Octatonic","Messiaen mode 2","Dominant Diminished","Diminished Blues","Half-Whole step scale","second mode of limited transposition","auxiliary diminished blues", "dominant"],
		1769: ["Blues Heptatonic II"],
		1773: ["Blues scale II"],
		1783: ["Youlan scale"],
		1789: ["Blues Enneatonic II"],
		1849: ["Chromatic Hypodorian inverse"],
		1911: ["Messiaen mode 3","Tcherepnin Nonatonic mode 3"],
		1965: ["Raga Mukhari","Anandabhairavi","Deshi","Manji","Gregorian nr.1","Dorian/Aeolian mixed"],
		1967: ["Diatonic Dorian mixed"],
		1981: ["Houseini","Modes of Major Pentatonic mixed"],
		1997: ["Raga Cintamani"],
		2015: ["Messiaen mode 7"],
		2029: ["Kiourdi"],
		2043: ["Maqam Tarzanuyn"],
		2099: ["Raga Megharanji"],
		2117: ["Raga Sumukam"],
		2129: ["Raga Nigamagamini"],
		2133: ["Raga Kumurdaki","Raga Kumudki"],
		2145: ["Messiaen truncated mode 5 inverse"],
		2197: ["Raga Hamsadhvani","Raga Hansdhwani","Raga Haunsadhwani"],
		2211: ["Raga Gauri"],
		2213: ["Raga Desh","Tcherepnin Major Pentatonic","Nam xuan"],
		2217: ["Raga Nata","Udayaravicandrika","Madhuranjani"],
		2221: ["Raga Sindhura Kafi"],
		2225: ["Ionian Pentatonic","Raga Gambhiranata","Pelog Degung Modern","Ryukyu","Vong co","Batti Major"],
		2227: ["Raga Gaula"],
		2229: ["Raga Nalinakanti","Kedaram","Vilasini"],
		2245: ["Raga Vaijayanti","Hamsanada"],
		2247: ["Raga Vijayasri"],
		2249: ["Raga Multani","Batti mineur"],
		2253: ["Raga Amarasenapriya"],
		2257: ["Lydian Pentatonic","Raga Amritavarshini","Malashri","Shilangi","Batti Lydian","Hirajoshi","Chinese","Augmented"],
		2259: ["Raga Mandari","Gamakakriya","Hamsanarayani"],
		2261: ["Raga Caturangini","Ratnakanthi"],
		2265: ["Raga Rasamanjari"],
		2275: ["Messiaen Mode 5","Fifth Mode of Limited Transposition"],
		2311: ["Raga Kumarapriya"],
		2339: ["Raga Kshanika"],
		2341: ["Raga Priyadharshini"],
		2345: ["Raga Chandrakauns","Kiravani"],
		2347: ["Raga Viyogavarali"],
		2349: ["Raga Ghantana","Kaushiranjani","Kaishikiranjani"],
		2353: ["Raga Girija","Bacovia","Batti Major sharp 5"],
		2355: ["Raga Lalita","Sohini","Hamsanandi","Lalit Bhairav"],
		2357: ["Raga Sarasanana"],
		2379: ["Raga Gurjari Todi"],
		2381: ["Takemitsu Tree Line mode 1"],
		2389: ["Eskimo Hexatonic 2"],
		2413: ["Locrian nr.2"],
		2419: ["Raga Lalita","Persian","Chromatic Hypolydian inverse","Raga Suddha Pancama","Persian"],
		2435: ["Raga Deshgaur"],
		2451: ["Raga Bauli"],
		2453: ["Raga Latika"],
		2457: ["Major Augmented","Messiaen truncated mode 3 inverse","Genus Tertium","Raga Devamani","Augmented"],
		2465: ["Raga Devaranjani","Raga Devaranji"],
		2467: ["Raga Padi"],
		2469: ["Raga Bhinna Pancama"],
		2471: ["Mela Ganamurti","Raga Ganasamavarali"],
		2473: ["Raga Takka"],
		2475: ["Neapolitan Minor","Minor Neapolitan","Mela Dhenuka","Raga Bhinnasadjam","Dhunibinnashadjam","Kirvanti","Takka","Maqam Shahnaz Kurdi","Hungarian Romani"],
		2477: ["Harmonic Minor","Mischung 4","Pilu That","Mela Kiravani","Raga Kiranavali","Kirvani","Kalyana Vasantha","Deshi(3)","Maqam Bayat-e-Esfahan","Sultani Yakah","Zhalibny Minor","Armoniko minore","Mohammedan"],
		2479: ["Harmonic and Neapolitan Minor mixed"],
		2481: ["Raga Paraju","Raga Paraz","Raga Pharas","Ramamanohari","Sindhu Ramakriya","Kamalamanohari"],
		2483: ["Double Harmonic","Major Romani","Hungarian Romani Persian","Double Harmonic Major","Enigmatic","Byzantine","Flamenco Mode","Bhairav That","Bhairav Theta","Mela Mayamalavagaula","Raga Paraj","Kalingada","Gaulipantu","Lalitapancamam","Chromatic 2nd Byzantine Liturgical","Hitzazkiar","Maqam Zengule","Hijaz Kar","Suzidil"],
		2485: ["Harmonic Major","Mela Sarasangi","Raga Haripriya","Simhavahini","Mischung 2","Ethiopian","Tabahaniotikos"],
		2489: ["Mela Gangeyabhusani","Raga Gangatarangini","Sengiach","Sengah","Romani Hexatonic inverse"],
		2503: ["Mela Jhalavarali","Raga Varali","Jinavali"],
		2507: ["Todi That","Todi Theta","Mela Shubhapantuvarali","Raga Multani","Gamakasamantam","Harsh Minor","Chromatic Lydian inverse","Maqam Athar Kurd"],
		2509: ["Double Harmonic Minor","Hungarian Minor","Egyptian Heptatonic","Mela Simhendramadhyama","Raga Madhava Manohari","Maqam Nawa Athar","Hisar","Flamenco Mode","Niavent"],
		2515: ["Chromatic Hypolydian","Purvi That","Purvi Theta","Mela Kamavardhani","Raga Shri","Pantuvarali","Basant","Kasiramakriya","Suddharamakriya","Puriya Dhanashri","Dhipaka","Pireotikos"],
		2517: ["Harmonic Lydian","Mela Latangi","Raga Gitapriya","Hamsalata"],
		2521: ["Mela Dhatuvardhani","Raga Dhauta Pancama","Devarashtra"],
		2535: ["Messiaen mode 4","Tcherepnin Octatonic mode 2","Fourth mode of limited transposition"],
		2539: ["Half-diminished Bebop"],
		2541: ["Algerian","Sabiren"],
		2547: ["Raga Ramkali","Raga Ramakri)"],
		2581: ["Raga Neroshta"],
		2597: ["Raga Rasranjani"],
		2601: ["Raga Chandrakauns","Marga Hindola","Rajeshwari"],
		2609: ["Raga Bhinna Shadja","Kaushikdhvani","Hindolita"],
		2611: ["Raga Vasanta","Chayavati"],
		2613: ["Raga Hamsa Vinodini"],
		2629: ["Raga Shubravarni"],
		2637: ["Raga Ranjani","Rangini"],
		2641: ["Raga Hindol","Sunada Vinodini","Sanjh ka Hindol"],
		2643: ["Raga Hamsanandi","Marva","Pancama","Puriya","Sohni"],
		2645: ["Raga Mruganandana"],
		2669: ["Jeth's mode"],
		2675: ["Chromatic Lydian","Raga Lalit","Bhankar"],
		2701: ["Hawaiian"],
		2705: ["Raga Mamata"],
		2709: ["Raga Kumud","Sankara","Shankara","Prabhati","Lydian Hexatonic"],
		2721: ["Raga Puruhutika","Purvaholika"],
		2723: ["Raga Jivantika"],
		2725: ["Raga Nagagandhari"],
		2727: ["Mela Manavati","Raga Manoranjani"],
		2731: ["Neapolitan Major","Major Meapolitan","Lydian Major","Mela Kokilapriya","Raga Kokilaravam"],
		2733: ["Melodic Minor ascending","Melodic Minor","Heptatonia Seconda", "Jazz Minor","Minor-Major","Mela Gaurimanohari","Raga Patdip","Velavali","Deshi(2)","Mischung 1","Hawaiian"],
		2737: ["Raga Hari Nata","Genus Secundum"],
		2739: ["Mela Suryakanta","Mela Suryakantam","Bhairubahar That","Raga Supradhipam","Sowrashtram","Jaganmohini","Major-Melodic Phrygian","Hungarian Romani inverse"],
		2741: ["Major","Ionian","Greek Lydian","Medieval Ionian","Medieval Hypolydian","Bilaval That","Bilaval Theta","Mela Shankarabharanam","Mela Dhirasankarabharana","Raga Atana","Ghana Heptatonic","Peruvian Major","Matzore","Rast ascending","4th plagal Byzantine","Ararai","Makam Cargah","Ajam Ashiran","Dastgah-e Mahur","Dastgah-e Rast Panjgah","Xin","DS2"],
		2745: ["Mela Sulini","Raga Sailadesakshi","Raga Trishuli","Houzam"],
		2757: ["Raga Nishadi"],
		2759: ["Mela Pavani","Raga Kumbhini"],
		2763: ["Mela Suvarnangi","Raga Sauviram"],
		2765: ["Lydian Diminished","Mela Dharmavati","Raga Arunajualita","Dumyaraga","Madhuvanti","Ambika"],
		2771: ["Marva That","Marva Theta","Mela Gamanasrama","Raga Partiravam","Puriya","Puriya Kalyan","Purvikalyani","Sohani","Bairari","Harsh-intense Major","Peiraiotikos"],
		2773: ["Lydian","Greek Hypolydian","Medieval Lydian","Greek Medieval Hypolocrian","Rut biscale ascending","Kalyan That","Kalyan Theta","Mela Mecakalyani","Raga Shuddh Kalyan","Ping","Kung","Gu"],
		2777: ["Aeolian Harmonic","Lydian sharp 2","Mela Kosalam","Raga Kusumakaram"],
		2779: ["Shostakovich"],
		2795: ["Van der Horst Octatonic"],
		2803: ["Raga Bhatiyar"],
		2805: ["Ishikotsucho","Raga Yaman Kalyan","Chayanat","Bihag","Hamir Kalyani","Kedar","Gaud Sarang","Genus Diatonicum Veterum Correctum","Gregorian nr.5","Kubilai's Mongol scale","Major/Lydian mixed"],
		2869: ["Ionian Augmented","Ionian sharp 5"],
		2873: ["Ionian Augmented Sharp 2"],
		2901: ["Lydian Augmented","Lydian sharp 5"],
		2905: ["Aeolian flat 1"],
		2907: ["Magen Abot"],
		2917: ["Nohkan Flute scale"],
		2925: ["Diminished","Modus conjunctus","Messiaen mode 2 inverse","Whole-Half step scale","Auxiliary Diminished","Arabian A"],
		2987: ["Neapolitan Major and Minor mixed"],
		2989: ["Bebop Minor","Zirafkend","Melodic Minor Bebop","Minor Bebop"],
		2995: ["Raga Saurashtra"],
		2997: ["Major Bebop","Altered Mixolydian","Bebop Major"],
		2999: ["Chromatic and Permuted Diatonic Dorian mixed"],
		3003: ["Genus Chromaticum","Tcherepnin Nonatonic mode 1","Augmented-9"],
		3037: ["Nine tone scale"],
		3055: ["Messiaen mode 7","seventh mode of limited transposition"],
		3069: ["Maqam Shawq Afza"],
		3185: ["Messiaen mode 5 inverse"],
		3237: ["Raga Brindabani Sarang","Megh","Megh Malhar"],
		3239: ["Mela Tanarupi","Raga Tanukirti"],
		3243: ["Mela Rupavati"],
		3245: ["Mela Varunapriya","Viravasantham"],
		3249: ["Raga Tilang","Savitri","Brindabani Tilang"],
		3251: ["Mela Hatakambari","Raga Jeyasuddhamalavi"],
		3253: ["Mela Naganandini","Raga Nagabharanam","Samanta"],
		3257: ["Mela Calanata","Raga None","Chromatic Dorian inverse"],
		3269: ["Raga Malarani","Hamsanada"],
		3271: ["Mela Raghupriya","Raga Ravikriya","Ghandarva"],
		3273: ["Raga Jivantini","Gaurikriya"],
		3275: ["Mela Divyamani"],
		3277: ["Mela Nitimati","Raga Nisada","Kaikavasi"],
		3281: ["Raga Vijayavasanta"],
		3283: ["Mela Visvambhari","Raga Vamsavathi"],
		3285: ["Mela Citrambari","Raga Chaturangini"],
		3289: ["Lydian Sharp 2 Sharp 6","Mela Rasikapriya","Raga Rasamanjari","Hamsagiri"],
		3301: ["Chromatic Mixolydian inverse"],
		3305: ["Chromatic Hypophrygian","Blues scale III"],
		3315: ["Tcherepnin Octatonic mode 1"],
		3379: ["Verdi's Scala enigmatica descending"],
		3385: ["Chromatic Phrygian"],
		3411: ["Enigmatic","Verdi's Scala enigmatica ascending"],
		3413: ["Leading Whole-tone"],
		3419: ["Magan Abot"],
		3435: ["Prokofiev"],
		3443: ["Verdi's Scala enigmatica"],
		3445: ["Messiaen mode 6 inverse","sixth mode of limited transposition"],
		3485: ["Sabach","Sambah"],
		3499: ["Hamel"],
		3501: ["Maqam Nahawand","Farahfaza","Raga Suha","Raga Suha Kanada","Gregorian nr.4","Utility Minor"],
		3507: ["Maqam Hijaz","Maqam Hedjaz"],
		3515: ["Moorish Phrygian","Phrygian/Double Harmonic Major mixed"],
		3519: ["Raga Sindhi-Bhairavi"],
		3531: ["Neveseri"],
		3549: ["Messiaen mode 3 inverse","Tcherepnin Nonatonic mode 2","third mode of limited transposition"],
		3575: ["Symmetrical Decatonic"],
		3637: ["Raga Rageshri"],
		3705: ["Messiaen mode 4 inverse","Tcherepnin Octatonic mode 4"],
		3749: ["Raga Sorati","Sur Malhar"],
		3757: ["Raga Mian Ki Malhar","Bahar","Sindhura"],
		3761: ["Raga Madhuri"],
		3765: ["Dominant Bebop","Genus Diatonicum","Bebop Dominant","Raga Khamaj","Desh Malhar","Alhaiya Bilaval","Devagandhari","Bihagara","Maqam Shawq Awir","Gregorian nr.6","Major/Mixolydian mixed","Chinese Eight-Tone","Rast"],
		3767: ["Chromatic Bebop"],
		3773: ["Raga Malgunji","Ramdasi Malhar","Major/Dorian mixed","Blues Enneatonic"],
		3829: ["Taishikicho","Ryo","Raga Chayanat","Lydian/Mixolydian mixed"],
		3837: ["Minor Pentatonic with leading tones"],
		3965: ["Messiaen mode 7 inverse"],
		4013: ["Raga Pilu","Full Minor"],
		4021: ["Raga Pahadi"],
		4029: ["Major and Minor mixed"],
		4095: ["Chromatic","Twelve-tone Chromatic"]
	}

export const SCALES: {[key: string]: number[]} = scales();

export const getRandomScale = (): number[] => {
    const keys = Object.keys(SCALES);
    const randomKey = keys[Math.floor(Math.random() * keys.length)];
    return SCALES[randomKey];
}

export const getScale = (scale: string): number[] => {
    return SCALES[scale.toUpperCase()];
}

export const isScale = (scale: string): boolean => {
    return scale.toUpperCase() in SCALES;
}

export const getScaleLength = (scale: string): number => {
    return getScale(scale).length;
}

const buildChords = () => {
  const major = [0, 4, 7];
  const minor = [0, 3, 7];
  const major7 = [0, 4, 7, 11];
  const dom7 = [0, 4, 7, 10];
  const minor7 = [0, 3, 7, 10];
  const aug = [0, 4, 8];
  const dim = [0, 3, 6];
  const dim7 = [0, 3, 6, 9];
  const halfdim = [0, 3, 6, 10];
  const aug7 = [0, 4, 8, 10];
  const aug9 = [0, 4, 10, 14];
  const six = [0, 4, 7, 9];
  
  const allChords = {
      "1": [0],
      "5": [0, 7],
      "+5": [0, 4, 8],
      "m+5": [0, 3, 8],
      "sus2": [0, 2, 7],
      "sus4": [0, 5, 7],
      "6": six,
      "m6": [0, 3, 7, 9],
      "7sus2": [0, 2, 7, 10],
      "7sus4": [0, 5, 7, 10],
      "7-5": [0, 4, 6, 10],
      "7+5": aug7,
      "m7+5": [0, 3, 8, 10],
      "9": [0, 4, 7, 10, 14],
      "m9": [0, 3, 7, 10, 14],
      "m7+9": [0, 3, 7, 10, 14],
      "maj9": [0, 4, 7, 11, 14],
      "9sus4": [0, 5, 7, 10, 14],
      "6*9": [0, 4, 7, 9, 14],
      "m6*9": [0, 3, 7, 9, 14],
      "7-9": [0, 4, 7, 10, 13],
      "m7-9": [0, 3, 7, 10, 13],
      "7-10": [0, 4, 7, 10, 15],
      "7-11": [0, 4, 7, 10, 16],
      "7-13": [0, 4, 7, 10, 20],
      "9+5": [0, 10, 13],
      "m9+5": [0, 10, 14],
      "7+5-9": [0, 4, 8, 10, 13],
      "m7+5-9": [0, 3, 8, 10, 13],
      "11": [0, 4, 7, 10, 14, 17],
      "m11": [0, 3, 7, 10, 14, 17],
      "maj11": [0, 4, 7, 11, 14, 17],
      "11+": [0, 4, 7, 10, 14, 18],
      "m11+": [0, 3, 7, 10, 14, 18],
      "13": [0, 4, 7, 10, 14, 17, 21],
      "m13": [0, 3, 7, 10, 14, 17, 21],
      "add2": [0, 2, 4, 7],
      "add4": [0, 4, 5, 7],
      "add9": [0, 4, 7, 14],
      "add11": [0, 4, 7, 17],
      "add13": [0, 4, 7, 21],
      "madd2": [0, 2, 3, 7],
      "madd4": [0, 3, 5, 7],
      "madd9": [0, 3, 7, 14],
      "madd11": [0, 3, 7, 17],
      "madd13": [0, 3, 7, 21],
      "dim9": [0, 3, 6, 9, 14],
      "dim": dim,
      "hdim7": halfdim,
      "hdim9": [0, 3, 6, 10, 14],
      "hdimb9": [0, 3, 6, 10, 13],
      "augMaj7": [0, 4, 8, 11],
      "minmaj7": [0, 3, 7, 11],
      "five": [0, 7, 12],
      "seven": dom7,
      "nine": aug9,
      "b9": [0, 4, 10, 13],
      "mM9": [0, 3, 11, 14],
      "min7": minor7,
      "min9": [0, 3, 10, 14],
      "b5": [0, 4, 6, 12],
      "mb5": [0, 3, 6, 12],
      "major": major,
      "maj": major,
      "M": major,
      "minor": minor,
      "min": minor,
      "m": minor,
      "major7": major7,
      "dom7": dom7,
      "7": dom7,
      "M7": major7,
      "m7": minor7,
      "augmented": aug,
      "a": aug,
      "aug": aug,
      "diminished": dim,
      "diminished7": dim7,
      "dim7": dim7,
      "halfdim": halfdim,
      "m7b5": halfdim,
      "m7-5": halfdim,
  };
  const allChordsNames: string[] = Object.keys(allChords);
  return [allChords, allChordsNames] as [{[key: string]: number[]}, string[]];
}

export const [CHORDS, CHORD_NAMES]: [{[key: string]: number[]}, string[]] = buildChords();
