aboutsummaryrefslogtreecommitdiff
path: root/gen/liturgy_ef.h
diff options
context:
space:
mode:
authorlectio <lukasz@arcofasiagroup.com>2026-07-28 22:07:21 +0200
committerlectio <lukasz@arcofasiagroup.com>2026-07-28 22:07:45 +0200
commit42fd9a69fa2bc9ef11c65c169a58ff40c9cb0fa1 (patch)
treeeb135eae4d3374973c08b27956a6e067a95e56bc /gen/liturgy_ef.h
downloadclectio-42fd9a69fa2bc9ef11c65c169a58ff40c9cb0fa1.tar.gz
clectio-42fd9a69fa2bc9ef11c65c169a58ff40c9cb0fa1.zip
clectio: tiny suckless C daily readings, all readings compiled in
clectio prints the Catholic liturgical day and its Mass readings for a date with a single table lookup -- no computation, config file, network, or deps beyond libc. The calendar, reading citations and scripture text are all compiled in; the whole shipped package fits on a 1.44 MB floppy (~1.29 MiB) and the binary is ~0.9 MB (OF) / ~0.3 MB (EF). - suckless config.h: FORM_OF/FORM_EF, SIGLA_ENGLISH/SIGLA_LATIN, COLOR. - Bring your own Bible: `make CORPUS=mybible.tsv` recompiles with any Vulgate-numbered 6-column TSV; only the ~12k cited verses are embedded. - The hard liturgical logic stays in lectio (Go, oracle-validated); its clectio-gen emits the corpus-independent tables in gen/. The scripture text is LZSS-packed (lz.h) to fit; mktext/bin2h resolve+embed it at build time. - Verified byte-identical to lectio's readings; day names match 157/157 over a 3-year sample. Default text: public-domain Latin Vulgate. ISC-licensed. Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
Diffstat (limited to 'gen/liturgy_ef.h')
-rw-r--r--gen/liturgy_ef.h3353
1 files changed, 3353 insertions, 0 deletions
diff --git a/gen/liturgy_ef.h b/gen/liturgy_ef.h
new file mode 100644
index 0000000..7e85c8c
--- /dev/null
+++ b/gen/liturgy_ef.h
@@ -0,0 +1,3353 @@
+/* generated by clectio-gen -- do not edit */
+#ifndef LITURGY_EF_H
+#define LITURGY_EF_H
+
+#define EPOCH_Y 2025
+#define EPOCH_M 1
+#define EPOCH_D 1
+#define NDAYS 10957
+
+static const char *const names[] = {
+ "The Circumcision of the Lord",
+ "Thursday of Christmas",
+ "Friday of Christmas",
+ "Saturday of Christmas",
+ "0th Sunday of Christmas",
+ "The Epiphany of the Lord",
+ "Tuesday of the 1st Week after Epiphany",
+ "Wednesday of the 1st Week after Epiphany",
+ "Thursday of the 1st Week after Epiphany",
+ "Friday of the 1st Week after Epiphany",
+ "Saturday of the 1st Week after Epiphany",
+ "1st Sunday after Epiphany",
+ "Commemoration of the Baptism of the Lord",
+ "St. Hilary",
+ "St. Paul, the First Hermit",
+ "St. Marcellus I",
+ "St. Anthony",
+ "Saturday of the 2nd Week after Epiphany",
+ "2nd Sunday after Epiphany",
+ "Sts. Fabian & Sebastian",
+ "St. Agnes",
+ "Sts. Vincent & Anastasius",
+ "St. Raymond of PeƱafort",
+ "St. Timothy",
+ "Conversion of St. Paul",
+ "3rd Sunday after Epiphany",
+ "St. John Chrysostom",
+ "St. Peter Nolasco",
+ "St. Francis de Sales",
+ "St. Martina",
+ "St. John Bosco",
+ "St. Ignatius of Antioch",
+ "Purification of the Blessed Virgin Mary",
+ "Monday of the 5th Week after Epiphany",
+ "St. Andrew Corsini",
+ "St. Agatha",
+ "St. Titus",
+ "St. Romuald",
+ "St. John of Matha",
+ "5th Sunday after Epiphany",
+ "St. Scholastica",
+ "Our Lady of Lourdes",
+ "Seven Holy Servite Founders",
+ "Thursday of the 6th Week after Epiphany",
+ "Friday of the 6th Week after Epiphany",
+ "Saturday of the 6th Week after Epiphany",
+ "1st Sunday of Septuagesima",
+ "Monday of the 1st Week of Septuagesima",
+ "Tuesday of the 1st Week of Septuagesima",
+ "Wednesday of the 1st Week of Septuagesima",
+ "Thursday of the 1st Week of Septuagesima",
+ "Friday of the 1st Week of Septuagesima",
+ "Chair of St. Peter",
+ "2nd Sunday of Septuagesima",
+ "St. Matthias",
+ "Tuesday of the 2nd Week of Septuagesima",
+ "Wednesday of the 2nd Week of Septuagesima",
+ "St. Gabriel of Our Lady of Sorrows",
+ "Friday of the 2nd Week of Septuagesima",
+ "Saturday of the 2nd Week of Septuagesima",
+ "3rd Sunday of Septuagesima",
+ "Monday of the 3rd Week of Septuagesima",
+ "St. Casimir",
+ "Ash Wednesday",
+ "Thursday after Ash Wednesday",
+ "Friday after Ash Wednesday",
+ "Saturday after Ash Wednesday",
+ "1st Sunday of Lent",
+ "Monday of the 1st Week of Lent",
+ "Tuesday of the 1st Week of Lent",
+ "Wednesday of the 1st Week of Lent",
+ "Thursday of the 1st Week of Lent",
+ "Friday of the 1st Week of Lent",
+ "Saturday of the 1st Week of Lent",
+ "2nd Sunday of Lent",
+ "Monday of the 2nd Week of Lent",
+ "Tuesday of the 2nd Week of Lent",
+ "St. Joseph, Spouse of the Bl. Virgin Mary",
+ "Thursday of the 2nd Week of Lent",
+ "Friday of the 2nd Week of Lent",
+ "Saturday of the 2nd Week of Lent",
+ "3rd Sunday of Lent",
+ "Monday of the 3rd Week of Lent",
+ "Annunciation of the Blessed Virgin Mary",
+ "Wednesday of the 3rd Week of Lent",
+ "Thursday of the 3rd Week of Lent",
+ "Friday of the 3rd Week of Lent",
+ "Saturday of the 3rd Week of Lent",
+ "4th Sunday of Lent",
+ "Monday of the 4th Week of Lent",
+ "Tuesday of the 4th Week of Lent",
+ "Wednesday of the 4th Week of Lent",
+ "Thursday of the 4th Week of Lent",
+ "Friday of the 4th Week of Lent",
+ "Saturday of the 4th Week of Lent",
+ "Passion Sunday",
+ "Monday of Passion Week",
+ "Tuesday of Passion Week",
+ "Wednesday of Passion Week",
+ "Thursday of Passion Week",
+ "Friday of Passion Week",
+ "Saturday of Passion Week",
+ "Palm Sunday",
+ "Easter Sunday",
+ "Monday of the 1st Week of Easter",
+ "Tuesday of the 1st Week of Easter",
+ "Wednesday of the 1st Week of Easter",
+ "Thursday of the 1st Week of Easter",
+ "Friday of the 1st Week of Easter",
+ "Saturday of the 1st Week of Easter",
+ "Second Sunday of Easter",
+ "St. Paul of the Cross",
+ "St. Peter of Verona",
+ "St. Catherine of Siena",
+ "St. Joseph the Workman",
+ "St. Athanasius",
+ "Saturday of the 2nd Week of Easter",
+ "3rd Sunday of Easter",
+ "St. Pius V",
+ "Tuesday of the 3rd Week of Easter",
+ "St. Stanislaus",
+ "Thursday of the 3rd Week of Easter",
+ "St. Gregory of Nazianzen",
+ "St. Antoninus",
+ "4th Sunday of Easter",
+ "Sts. Nereus, Achilleus, Domitilla, & Pancras",
+ "St. Robert Bellarmine",
+ "Wednesday of the 4th Week of Easter",
+ "St. John Baptist de la Salle",
+ "Friday of the 4th Week of Easter",
+ "St. Paschal Baylon",
+ "5th Sunday of Easter",
+ "St. Peter Celestine",
+ "St. Bernardine of Siena",
+ "Wednesday of the 5th Week of Easter",
+ "Thursday of the 5th Week of Easter",
+ "Friday of the 5th Week of Easter",
+ "Saturday of the 5th Week of Easter",
+ "6th Sunday of Easter",
+ "St. Philip Neri",
+ "St. Bede the Venerable",
+ "Vigil of the Ascension",
+ "The Ascension of the Lord",
+ "Friday of the 6th Week of Easter",
+ "Queenship of the Blessed Virgin Mary",
+ "7th Sunday of Easter",
+ "Monday of the 7th Week of Easter",
+ "Tuesday of the 7th Week of Easter",
+ "St. Francis Caracciolo",
+ "St. Boniface",
+ "St. Norbert",
+ "Vigil of Pentecost",
+ "Pentecost Sunday",
+ "Monday of the 8th Week of Easter",
+ "Tuesday of the 8th Week of Easter",
+ "Wednesday of the 8th Week of Easter",
+ "Thursday of the 8th Week of Easter",
+ "Friday of the 8th Week of Easter",
+ "Saturday of the 8th Week of Easter",
+ "Trinity Sunday",
+ "Monday of the 1st Week after Pentecost",
+ "St. Gregory Barbarigo",
+ "St. Ephrem of Syria",
+ "The Body and Blood of Christ",
+ "Friday of the 1st Week after Pentecost",
+ "St. Aloysius Gongzaga",
+ "2nd Sunday after Pentecost",
+ "Vigil of the Nativity of St. John the Baptist",
+ "Nativity of St. John the Baptist",
+ "St. William",
+ "Sts. John & Paul",
+ "The Most Sacred Heart of Jesus",
+ "Vigil of Sts. Peter & Paul",
+ "Sts. Peter & Paul",
+ "In Commemoratione Sancti Pauli Apostoli",
+ "The Precious Blood of Our Lord Jesus Christ",
+ "Visitation of the Blessed Virgin Mary",
+ "St. Irenaeus",
+ "Friday of the 3rd Week after Pentecost",
+ "St. Anthony Mary Zaccariah",
+ "4th Sunday after Pentecost",
+ "Sts. Cyril & Methodius",
+ "St. Elizabeth of Portugal",
+ "Wednesday of the 4th Week after Pentecost",
+ "Seven Holy Brothers and Sts. Rufina & Secunda",
+ "Friday of the 4th Week after Pentecost",
+ "St. John Gualbert",
+ "5th Sunday after Pentecost",
+ "St. Bonaventure",
+ "St. Henry the Emperor",
+ "Wednesday of the 5th Week after Pentecost",
+ "Thursday of the 5th Week after Pentecost",
+ "Camillus de Lellis",
+ "St. Vincent de Paul",
+ "6th Sunday after Pentecost",
+ "St. Laurence of Brindisi",
+ "St. Mary Magdalene",
+ "St. Apollinaris",
+ "Thursday of the 6th Week after Pentecost",
+ "St. James the Greater",
+ "St. Anne, Mother of the Blessed Virgin",
+ "7th Sunday after Pentecost",
+ "Sts. Nazarius & Celsus, St. Victor I & St. Innocent I",
+ "St. Martha",
+ "Wednesday of the 7th Week after Pentecost",
+ "St. Ignatius Loyola",
+ "Friday of the 7th Week after Pentecost",
+ "St. Alphonsus Liguori",
+ "8th Sunday after Pentecost",
+ "St. Dominic",
+ "Dedication of the Basilica of St. Mary Major",
+ "Transfiguration of Our Lord",
+ "St. Cajetan",
+ "St. John Mary Vianney",
+ "Vigil of St. Lawrence",
+ "9th Sunday after Pentecost",
+ "Monday of the 9th Week after Pentecost",
+ "St. Clare",
+ "Wednesday of the 9th Week after Pentecost",
+ "Vigil of the Assumption",
+ "Assumption of the Blessed Virgin Mary",
+ "St. Joachim, Father of the Blessed Virgin",
+ "10th Sunday after Pentecost",
+ "Monday of the 10th Week after Pentecost",
+ "St. John Eudes",
+ "St. Bernard of Clairvaux",
+ "St. Jane Frances de Chantal",
+ "Immaculate Heart of Mary",
+ "St. Philip Benizi",
+ "11th Sunday after Pentecost",
+ "St. Louis IX",
+ "Tuesday of the 11th Week after Pentecost",
+ "St. Joseph Calasance",
+ "St. Augustine",
+ "Beheading of St. John the Baptist",
+ "St. Rose of Lima",
+ "12th Sunday after Pentecost",
+ "Monday of the 12th Week after Pentecost",
+ "St. Stephen of Hungary",
+ "St. Pius X",
+ "Thursday of the 12th Week after Pentecost",
+ "St. Lawrence Justinian",
+ "Saturday of the 12th Week after Pentecost",
+ "13th Sunday after Pentecost",
+ "Nativity of the Blessed Virgin Mary",
+ "Tuesday of the 13th Week after Pentecost",
+ "St. Nicholas of Tolentino",
+ "Thursday of the 13th Week after Pentecost",
+ "Most Holy Name of Mary",
+ "Saturday of the 13th Week after Pentecost",
+ "Exaltation of the Holy Cross",
+ "Seven Sorrows of the Blessed Virgin Mary",
+ "Sts. Cornelius & Cyprian",
+ "Wednesday of the 14th Week after Pentecost",
+ "St. Joseph of Cupertino",
+ "St. Januarius & Companions",
+ "Saturday of the 14th Week after Pentecost",
+ "15th Sunday after Pentecost",
+ "St. Thomas of Villanova",
+ "St. Linus",
+ "Ember Wednesday of September",
+ "Thursday of the 15th Week after Pentecost",
+ "Ember Friday of September",
+ "Ember Saturday of September",
+ "16th Sunday after Pentecost",
+ "Dedication of St. Michael the Archangel",
+ "St. Jerome",
+ "Wednesday of the 16th Week after Pentecost",
+ "Holy Guardian Angels",
+ "St. Theresa of the Infant Jesus",
+ "St. Francis of Assisi",
+ "17th Sunday after Pentecost",
+ "St. Bruno",
+ "Our Lady of the Rosary",
+ "St. Bridget of Sweden",
+ "St. John Leonardi",
+ "St. Francis Borgia",
+ "Maternity of the Blessed Virgin Mary",
+ "18th Sunday after Pentecost",
+ "St. Edward",
+ "St. Callistus I",
+ "St. Teresa of Avila",
+ "St. Hedwig",
+ "St. Margaret Mary Alacoque",
+ "St. Luke the Evangelist",
+ "19th Sunday after Pentecost",
+ "St. John Cantius",
+ "Tuesday of the 19th Week after Pentecost",
+ "Wednesday of the 19th Week after Pentecost",
+ "St. Anthony Mary Claret",
+ "St. Raphael the Archangel",
+ "Saturday of the 19th Week after Pentecost",
+ "Our Lord Jesus Christ, King of the Universe",
+ "Monday of the 20th Week after Pentecost",
+ "Sts. Simon & Jude",
+ "Wednesday of the 20th Week after Pentecost",
+ "Thursday of the 20th Week after Pentecost",
+ "Friday of the 20th Week after Pentecost",
+ "All Saints",
+ "21st Sunday after Pentecost",
+ "Commemoration of All Souls",
+ "St. Charles Borromeo",
+ "Wednesday of the 21st Week after Pentecost",
+ "Thursday of the 21st Week after Pentecost",
+ "Friday of the 21st Week after Pentecost",
+ "Saturday of the 21st Week after Pentecost",
+ "Dedication of the Archbasilica of Our Holy Savior",
+ "St. Andrew Avellino",
+ "St. Martin of Tours",
+ "St. Martin I",
+ "Thursday of the 22nd Week after Pentecost",
+ "St. Josaphat",
+ "St. Albert the Great",
+ "23rd Sunday after Pentecost",
+ "St. Gregory the Wonderworker",
+ "Dedication of the Basilicas of Sts. Peter & Paul",
+ "St. Elizabeth of Hungary",
+ "St. Felix of Valois",
+ "Presentation of the Blessed Virgin Mary",
+ "St. Cecilia",
+ "24th Sunday after Pentecost",
+ "St. John of the Cross",
+ "St. Catherine of Alexandria",
+ "St. Sylvester",
+ "Thursday of the 24th Week after Pentecost",
+ "Friday of the 24th Week after Pentecost",
+ "Saturday of the 24th Week after Pentecost",
+ "1st Sunday of Advent",
+ "Monday of the 1st Week of Advent",
+ "St. Vivian",
+ "St. Francis Xavier",
+ "St. Peter Chrysologus",
+ "Friday of the 1st Week of Advent",
+ "St. Nicholas",
+ "2nd Sunday of Advent",
+ "Immaculate Conception of the Blessed Virgin Mary",
+ "Tuesday of the 2nd Week of Advent",
+ "Wednesday of the 2nd Week of Advent",
+ "St. Damasus I",
+ "Friday of the 2nd Week of Advent",
+ "St. Lucy",
+ "3rd Sunday of Advent",
+ "Monday of the 3rd Week of Advent",
+ "St. Eusebius",
+ "Ember Wednesday of Advent",
+ "Thursday of the 3rd Week of Advent",
+ "Ember Friday of Advent",
+ "Ember Saturday of Advent",
+ "4th Sunday of Advent",
+ "Monday of the 4th Week of Advent",
+ "Tuesday of the 4th Week of Advent",
+ "Vigil of Christmas",
+ "The Nativity of the Lord",
+ "St. Stephen",
+ "St. John the Evangelist",
+ "Monday of Christmas",
+ "Tuesday of Christmas",
+ "Wednesday of Christmas",
+ "Monday of the 1st Week after Epiphany",
+ "Monday of the 2nd Week after Epiphany",
+ "St. Polycarp",
+ "St. Cyril of Alexandria",
+ "Tuesday of the 3rd Week of Septuagesima",
+ "Wednesday of the 2nd Week of Lent",
+ "Tuesday of the 3rd Week of Lent",
+ "St. Hermenegild",
+ "St. Justin",
+ "Wednesday of the 2nd Week of Easter",
+ "Thursday of the 2nd Week of Easter",
+ "Friday of the 2nd Week of Easter",
+ "Monday of the 3rd Week of Easter",
+ "St. Anselm",
+ "Sts. Soter & Caius",
+ "St. Fidelis of Sigmaringen",
+ "St. Mark",
+ "St. Peter Canisius",
+ "St. Monica",
+ "Sts. Philip & James",
+ "Saturday of the 6th Week of Easter",
+ "St. Venantius",
+ "Thursday of the 7th Week of Easter",
+ "Friday of the 7th Week of Easter",
+ "St. Angela Merici",
+ "Tuesday of the 1st Week after Pentecost",
+ "Wednesday of the 1st Week after Pentecost",
+ "Monday of the 2nd Week after Pentecost",
+ "Tuesday of the 2nd Week after Pentecost",
+ "St. Margaret of Scotland",
+ "St. Barnabas",
+ "St. Anthony of Padua",
+ "3rd Sunday after Pentecost",
+ "Monday of the 3rd Week after Pentecost",
+ "Tuesday of the 3rd Week after Pentecost",
+ "St. Julia of Falconieri",
+ "Saturday of the 3rd Week after Pentecost",
+ "St. Paulinus of Nola",
+ "Saturday of the 4th Week after Pentecost",
+ "Saturday of the 5th Week after Pentecost",
+ "Monday of the 6th Week after Pentecost",
+ "Saturday of the 6th Week after Pentecost",
+ "Monday of the 7th Week after Pentecost",
+ "Thursday of the 7th Week after Pentecost",
+ "St. Jerome Emiliani",
+ "Friday of the 8th Week after Pentecost",
+ "Thursday of the 9th Week after Pentecost",
+ "Saturday of the 9th Week after Pentecost",
+ "St. Lawrence",
+ "Thursday of the 11th Week after Pentecost",
+ "St. Hyacinth",
+ "Tuesday of the 12th Week after Pentecost",
+ "St. Bartholomew",
+ "Wednesday of the 13th Week after Pentecost",
+ "14th Sunday after Pentecost",
+ "St. Raymond Nonnatus",
+ "Tuesday of the 14th Week after Pentecost",
+ "Friday of the 14th Week after Pentecost",
+ "Monday of the 15th Week after Pentecost",
+ "Wednesday of the 15th Week after Pentecost",
+ "Friday of the 15th Week after Pentecost",
+ "Thursday of the 16th Week after Pentecost",
+ "St. Matthew",
+ "Thursday of the 17th Week after Pentecost",
+ "St. Wenceslaus",
+ "Thursday of the 18th Week after Pentecost",
+ "Monday of the 19th Week after Pentecost",
+ "20th Sunday after Pentecost",
+ "St. Peter of Alcantara",
+ "Monday of the 22nd Week after Pentecost",
+ "Tuesday of the 22nd Week after Pentecost",
+ "Friday of the 22nd Week after Pentecost",
+ "Saturday of the 22nd Week after Pentecost",
+ "Tuesday of the 23rd Week after Pentecost",
+ "Thursday of the 23rd Week after Pentecost",
+ "Friday of the 23rd Week after Pentecost",
+ "Saturday of the 23rd Week after Pentecost",
+ "6th Sunday after Epiphany",
+ "St. Gertrude the Great",
+ "St. Clement I",
+ "Friday of the 26th Week after Pentecost",
+ "Saturday of the 26th Week after Pentecost",
+ "St. Andrew",
+ "Tuesday of the 1st Week of Advent",
+ "Saturday of the 1st Week of Advent",
+ "St. Ambrose",
+ "Thursday of the 2nd Week of Advent",
+ "Saturday of the 2nd Week of Advent",
+ "Tuesday of the 3rd Week of Advent",
+ "St. Thomas",
+ "Wednesday of the 4th Week of Advent",
+ "Holy Innocents",
+ "Tuesday of the 2nd Week after Epiphany",
+ "Tuesday of the 2nd Week of Easter",
+ "Friday of the 3rd Week of Easter",
+ "Saturday of the 3rd Week of Easter",
+ "Monday of the 4th Week of Easter",
+ "Tuesday of the 4th Week of Easter",
+ "Sts. Cletus & Marcellinus",
+ "Monday of the 6th Week of Easter",
+ "St. Gregory VII",
+ "St. Augustine of Canterbury",
+ "St. Mary Magdalene de Pazzi",
+ "Wednesday of the 2nd Week after Pentecost",
+ "Thursday of the 2nd Week after Pentecost",
+ "Wednesday of the 3rd Week after Pentecost",
+ "St. John of San Fecundo",
+ "St. Basil the Great",
+ "Tuesday of the 4th Week after Pentecost",
+ "Tuesday of the 7th Week after Pentecost",
+ "Tuesday of the 8th Week after Pentecost",
+ "Saturday of the 8th Week after Pentecost",
+ "Tuesday of the 10th Week after Pentecost",
+ "Friday of the 10th Week after Pentecost",
+ "Wednesday of the 12th Week after Pentecost",
+ "Friday of the 12th Week after Pentecost",
+ "Thursday of the 14th Week after Pentecost",
+ "Saturday of the 15th Week after Pentecost",
+ "Monday of the 16th Week after Pentecost",
+ "Tuesday of the 16th Week after Pentecost",
+ "Saturday of the 16th Week after Pentecost",
+ "Monday of the 17th Week after Pentecost",
+ "Friday of the 17th Week after Pentecost",
+ "Monday of the 18th Week after Pentecost",
+ "Sts. Cosmas & Damian",
+ "Friday of the 19th Week after Pentecost",
+ "Tuesday of the 20th Week after Pentecost",
+ "Tuesday of the 21st Week after Pentecost",
+ "22nd Sunday after Pentecost",
+ "Monday of the 23rd Week after Pentecost",
+ "Wednesday of the 23rd Week after Pentecost",
+ "Wednesday of the 24th Week after Pentecost",
+ "Monday of the 25th Week after Pentecost",
+ "Saturday of the 25th Week after Pentecost",
+ "Saturday of the 27th Week after Pentecost",
+ "Wednesday of the 1st Week of Advent",
+ "Thursday of the 4th Week of Advent",
+ "Wednesday of the 2nd Week after Epiphany",
+ "4th Sunday after Epiphany",
+ "Thursday of the 5th Week after Epiphany",
+ "Saturday of the 1st Week of Septuagesima",
+ "Monday of the 2nd Week of Septuagesima",
+ "St. Peter Damien",
+ "Wednesday of the 3rd Week of Easter",
+ "Tuesday of the 5th Week of Easter",
+ "Tuesday of the 6th Week of Easter",
+ "Thursday of the 4th Week after Pentecost",
+ "Tuesday of the 5th Week after Pentecost",
+ "Thursday of the 8th Week after Pentecost",
+ "Friday of the 9th Week after Pentecost",
+ "Saturday of the 11th Week after Pentecost",
+ "Monday of the 13th Week after Pentecost",
+ "Monday of the 14th Week after Pentecost",
+ "Monday of the 21st Week after Pentecost",
+ "Wednesday of the 22nd Week after Pentecost",
+ "Tuesday of the 25th Week after Pentecost",
+ "Wednesday of the 25th Week after Pentecost",
+ "Friday of the 25th Week after Pentecost",
+ "Thursday of the 2nd Week after Epiphany",
+ "Friday of the 2nd Week after Epiphany",
+ "St. Leo the Great",
+ "Wednesday of the 7th Week of Easter",
+ "Saturday of the 1st Week after Pentecost",
+ "Saturday of the 2nd Week after Pentecost",
+ "Wednesday of the 6th Week after Pentecost",
+ "Friday of the 6th Week after Pentecost",
+ "Monday of the 8th Week after Pentecost",
+ "Tuesday of the 9th Week after Pentecost",
+ "Wednesday of the 10th Week after Pentecost",
+ "Tuesday of the 15th Week after Pentecost",
+ "Tuesday of the 18th Week after Pentecost",
+ "Wednesday of the 18th Week after Pentecost",
+ "Monday of the 24th Week after Pentecost",
+ "Tuesday of the 24th Week after Pentecost",
+ "Tuesday of the 27th Week after Pentecost",
+ "Wednesday of the 27th Week after Pentecost",
+ "Thursday of the 27th Week after Pentecost",
+ "Monday of the 2nd Week of Advent",
+ "Wednesday of the 6th Week after Epiphany",
+ "Thursday of the 2nd Week of Septuagesima",
+ "Thursday of the 4th Week of Easter",
+ "Thursday of the 3rd Week after Pentecost",
+ "Saturday of the 7th Week after Pentecost",
+ "Monday of the 11th Week after Pentecost",
+ "Friday of the 13th Week after Pentecost",
+ "Saturday of the 17th Week after Pentecost",
+ "Thursday of the 1st Week of Advent",
+ "Friday of the 5th Week after Pentecost",
+ "Wednesday of the 8th Week after Pentecost",
+ "Wednesday of the 17th Week after Pentecost",
+ "Saturday of the 20th Week after Pentecost",
+ "Thursday of the 25th Week after Pentecost",
+ "Saturday of the 4th Week of Easter",
+ "Monday of the 5th Week of Easter",
+ "Monday of the 4th Week after Pentecost",
+ "Monday of the 5th Week after Pentecost",
+ "Thursday of the 10th Week after Pentecost",
+ "Friday of the 11th Week after Pentecost",
+ "Friday of the 4th Week of Advent",
+ "Friday of the 5th Week after Epiphany",
+ "Monday of the 2nd Week of Easter",
+ "Tuesday of the 6th Week after Pentecost",
+ "Tuesday of the 17th Week after Pentecost",
+ "Thursday of the 19th Week after Pentecost",
+ "Monday of the 26th Week after Pentecost",
+ "Tuesday of the 26th Week after Pentecost",
+ "Wednesday of the 26th Week after Pentecost",
+ "Wednesday of the 11th Week after Pentecost",
+ "Friday of the 16th Week after Pentecost",
+ "Tuesday of the 28th Week after Pentecost",
+ "Wednesday of the 28th Week after Pentecost",
+ "Thursday of the 28th Week after Pentecost",
+ "Saturday of the 28th Week after Pentecost",
+ "Wednesday of the 5th Week after Epiphany",
+ "Monday of the 6th Week after Epiphany",
+ "Tuesday of the 6th Week after Epiphany",
+ "Wednesday of the 7th Week after Epiphany",
+ "Thursday of the 7th Week after Epiphany",
+ "Friday of the 7th Week after Epiphany",
+ "Saturday of the 7th Week after Epiphany",
+ "Friday of the 18th Week after Pentecost",
+ "Saturday of the 10th Week after Pentecost",
+ "Thursday of the 26th Week after Pentecost",
+ "Friday of the 27th Week after Pentecost",
+ "Saturday of the 18th Week after Pentecost",
+ "Monday of the 27th Week after Pentecost",
+ "Saturday of the 5th Week after Epiphany",
+};
+
+static const char *const parts[] = {
+ "Epistle",
+ "Gospel",
+};
+
+static const char *const cites_en[] = {
+ "Ti 2:11-15",
+ "Lk 2:21",
+ "Gal 4:1-7",
+ "Lk 2:33-40",
+ "Isa 60:1-6",
+ "Matt 2:1-12",
+ "Col 3:12-17",
+ "Lk 2:42-52",
+ "Jn 1:29-34",
+ "2 Tim 4:1-8",
+ "Matt 5:13-19",
+ "Phil 3:7-12",
+ "Matt 11:25-30",
+ "1 Pet 5:1-4,10-11",
+ "Matt 16:13-19",
+ "Lk 12:35-40",
+ "Rom 12:6-16",
+ "Jn 2:1-11",
+ "Heb 11:33-39",
+ "Lk 6:17-23",
+ "Sir 51:1-8,12",
+ "Matt 25:1-13",
+ "Wis 3:1-8",
+ "Lk 21:9-19",
+ "Sir 31:8-11",
+ "1 Tim 6:11-16",
+ "Lk 14:26-33",
+ "Acts 9:1-22",
+ "Matt 19:27-29",
+ "Rom 12:16-21",
+ "Matt 8:1-13",
+ "1 Cor 4:9-14",
+ "Lk 12:32-34",
+ "Phil 4:4-9",
+ "Matt 18:1-5",
+ "Rom 8:35-39",
+ "Jn 12:24-26",
+ "Mal 3:1-4",
+ "Lk 2:22-32",
+ "Rom 13:8-10",
+ "Matt 8:23-27",
+ "Sir 44:16-27; 45:3-20",
+ "Matt 25:14-23",
+ "1 Cor 1:26-31",
+ "Matt 19:3-12",
+ "Lk 10:1-9",
+ "Matt 13:24-30",
+ "2 Cor 10:17-18; 11:1-2",
+ "Lk 1:26-31",
+ "1 Cor 9:24-27; 10:1-5",
+ "Matt 20:1-16",
+ "1 Pet 1:1-7",
+ "2 Cor 11:19-33; 12:1-9",
+ "Lk 8:4-15",
+ "Acts 1:15-26",
+ "1 Jn 2:14-17",
+ "Mk 10:13-21",
+ "1 Cor 13:1-13",
+ "Lk 18:31-43",
+ "Jl 2:12-19",
+ "Matt 6:16-21",
+ "Isa 38:1-6",
+ "Matt 8:5-13",
+ "Isa 58:1-9",
+ "Matt 5:43-48; 6:1-4",
+ "Isa 58:9-14",
+ "Mk 6:47-56",
+ "2 Cor 6:1-10",
+ "Matt 4:1-11",
+ "Matt 25:31-46",
+ "Isa 55:6-11",
+ "Matt 21:10-17",
+ "Matt 12:38-50",
+ "Matt 15:21-28",
+ "Jn 5:1-15",
+ "1 Thess 5:14-23",
+ "Matt 17:1-9",
+ "1 Thess 4:1-7",
+ "Dan 9:15-19",
+ "Jn 8:21-29",
+ "Matt 23:1-12",
+ "Matt 1:18-21",
+ "Jer 17:5-10",
+ "Lk 16:19-31",
+ "Gen 37:6-22",
+ "Matt 21:33-46",
+ "Gen 27:6-40",
+ "Lk 15:11-32",
+ "Eph 5:1-9",
+ "Lk 11:14-28",
+ "Lk 4:23-30",
+ "Isa 7:10-15",
+ "Lk 1:26-38",
+ "Ex 20:12-24",
+ "Matt 15:1-20",
+ "Jer 7:1-7",
+ "Lk 4:38-44",
+ "Num 20:1,3,6-13",
+ "Jn 4:5-42",
+ "Dan 13:1-9,15-17,19-30,33-62",
+ "Jn 8:1-11",
+ "Gal 4:22-31",
+ "Jn 6:1-15",
+ "Jn 2:13-25",
+ "Ex 32:7-14",
+ "Jn 7:14-31",
+ "Isa 1:16-19",
+ "Jn 9:1-38",
+ "Lk 7:11-16",
+ "Jn 11:1-45",
+ "Isa 49:8-15",
+ "Jn 8:12-20",
+ "Heb 9:11-15",
+ "Jn 8:46-59",
+ "Jn 7:32-39",
+ "Jer 11:18-20",
+ "Mk 14:32-72,15,1-46",
+ "Lev 19:1-2,11-19,25",
+ "Jn 10:22-38",
+ "Dan 3:25,34-45",
+ "Lk 7:36-50",
+ "Jer 17:13-18",
+ "Jn 11:47-54",
+ "Jer 18:18-23",
+ "Jn 12:10-36",
+ "Phil 2:5-11",
+ "Matt 26:36-75; 27:1-60",
+ "1 Cor 5:7-8",
+ "Mk 16:1-7",
+ "Acts 10:37-43",
+ "Lk 24:13-35",
+ "Acts 13:16,26-33",
+ "Lk 24:36-47",
+ "Acts 3:13-15,17-19",
+ "Jn 21:1-14",
+ "Acts 8:26-40",
+ "Jn 20:11-18",
+ "1 Pet 3:18-22",
+ "Matt 28:16-20",
+ "1 Pet 2:1-10",
+ "Jn 20:1-9",
+ "1 Jn 5:4-10",
+ "Jn 20:19-31",
+ "1 Cor 1:17-25",
+ "2 Tim 2:8-10; 3:10-12",
+ "Matt 10:34-42",
+ "Col 3:14-15,17,23-24",
+ "Matt 13:54-58",
+ "2 Cor 4:5-14",
+ "Matt 10:23-28",
+ "Jn 19:25-27",
+ "1 Pet 2:21-25",
+ "Jn 10:11-16",
+ "Wis 5:1-5",
+ "Jn 15:1-7",
+ "1 Pet 2:11-19",
+ "Jn 16:16-22",
+ "Jn 4:46-53",
+ "Wis 7:7-14",
+ "Jas 1:17-21",
+ "Jn 16:5-14",
+ "Jas 1:22-27",
+ "Jn 16:23-30",
+ "Eph 4:7-13",
+ "Jn 17:1-11",
+ "Acts 1:1-11",
+ "Mk 16:14-20",
+ "Lk 1:26-33",
+ "1 Pet 4:7-11",
+ "Jn 15:26-27; 16:1-4",
+ "Wis 4:7-14",
+ "Matt 5:1-12",
+ "Acts 19:1-8",
+ "Jn 14:15-21",
+ "Acts 2:1-11",
+ "Jn 14:23-31",
+ "Acts 10:34,42-48",
+ "Jn 3:16-21",
+ "Acts 8:14-17",
+ "Jn 10:1-10",
+ "Acts 5:12-16",
+ "Jn 6:44-52",
+ "Acts 8:5-8",
+ "Lk 9:1-6",
+ "Jl 2:23-24,26-27",
+ "Lk 5:17-26",
+ "Rom 5:1-5",
+ "Rom 11:33-36",
+ "Matt 28:18-20",
+ "Matt 22:29-40",
+ "1 Jn 3:13-18",
+ "Lk 14:16-24",
+ "Jer 1:4-10",
+ "Lk 1:5-17",
+ "Isa 49:1-3,5-7",
+ "Lk 1:57-68",
+ "Lk 12:1-8",
+ "Acts 3:1-10",
+ "Jn 21:15-19",
+ "Acts 12:1-11",
+ "Gal 1:11-20",
+ "Matt 10:16-22",
+ "Jn 19:30-35",
+ "Song 2:8-14",
+ "Lk 1:39-47",
+ "2 Tim 3:14-17; 4:1-5",
+ "Matt 10:28-33",
+ "1 Pet 5:6-11",
+ "Lk 15:1-10",
+ "1 Tim 4:8-16",
+ "Mk 10:15-21",
+ "Rom 8:18-23",
+ "Lk 5:1-11",
+ "Heb 7:23-27",
+ "Prov 31:10-31",
+ "Matt 13:44-52",
+ "Matt 12:46-50",
+ "Matt 5:43-48",
+ "1 Pet 3:8-15",
+ "Matt 5:20-24",
+ "Jn 15:12-16",
+ "Rom 6:3-11",
+ "Mk 8:1-9",
+ "Song 3:2-5; 8:6-7",
+ "1 Pet 5:1-11",
+ "Lk 22:24-30",
+ "1 Cor 4:9-15",
+ "Matt 20:20-23",
+ "Rom 6:19-23",
+ "Matt 7:15-21",
+ "Wis 10:17-20",
+ "Lk 10:38-42",
+ "2 Tim 2:1-7",
+ "Rom 8:12-17",
+ "Lk 16:1-9",
+ "Lk 11:27-28",
+ "2 Pet 1:16-19",
+ "Matt 6:24-33",
+ "Matt 16:24-27",
+ "1 Cor 10:6-13",
+ "Lk 19:41-47",
+ "Sir 24:23-31",
+ "Jdt 13:22-25,15,10",
+ "Lk 1:41-50",
+ "Matt 1:1-16",
+ "1 Cor 12:2-11",
+ "Lk 18:9-14",
+ "1 Cor 15:1-10",
+ "Mk 7:31-37",
+ "Wis 10:10-14",
+ "Lk 19:12-26",
+ "Jer 1:17-19",
+ "Mk 6:17-29",
+ "2 Cor 3:4-9",
+ "Lk 10:23-37",
+ "1 Thess 2:2-8",
+ "Jn 21:15-17",
+ "Gal 3:16-22",
+ "Lk 17:11-19",
+ "Prov 8:22-35",
+ "Jn 12:31-36",
+ "Jdt 13:22,25",
+ "Gal 5:16-24",
+ "1 Cor 13:1-8",
+ "Matt 22:1-14",
+ "Heb 10:32-38",
+ "Matt 24:3-13",
+ "Gal 5:25-26; 6:1-10",
+ "Mk 9:16-28",
+ "Ezek 1:10-14",
+ "Matt 9:9-13",
+ "Eph 3:13-21",
+ "Lk 14:1-11",
+ "Rev 1:1-5",
+ "Matt 18:1-10",
+ "Ex 23:20-23",
+ "Isa 66:12-14",
+ "Matt 18:1-4",
+ "Gal 6:14-18",
+ "Eph 4:1-6",
+ "Matt 22:34-46",
+ "Prov 8:22-24,32-35",
+ "1 Tim 5:3-10",
+ "2 Cor 4:1-6,15-18",
+ "Lk 2:43-51",
+ "1 Cor 1:4-8",
+ "Matt 9:1-8",
+ "Eph 3:8-9,14-19",
+ "2 Cor 8:16-24",
+ "Eph 4:23-28",
+ "Jas 2:12-17",
+ "Matt 24:42-47",
+ "Tob 12:7-15",
+ "Jn 5:1-4",
+ "Col 1:12-20",
+ "Jn 18:33-37",
+ "Jn 15:17-25",
+ "Eph 6:10-17",
+ "Matt 18:23-35",
+ "1 Cor 15:51-57",
+ "Jn 5:25-29",
+ "Rev 21:2-5",
+ "Lk 19:1-10",
+ "Lk 11:33-36",
+ "Phil 1:6-11",
+ "Matt 22:15-21",
+ "Heb 5:1-6",
+ "Phil 3:17-21; 4:1-3",
+ "Matt 9:18-26",
+ "Mk 11:22-24",
+ "Sir 51:13-17",
+ "Col 1:9-14",
+ "Matt 24:15-35",
+ "Rom 13:11-14",
+ "Lk 21:25-33",
+ "Rom 10:10-18",
+ "Mk 16:15-18",
+ "Heb 13:7-17",
+ "Rom 15:4-13",
+ "Matt 11:2-10",
+ "Lk 1:26-28",
+ "Phil 4:4-7",
+ "Jn 1:19-28",
+ "2 Cor 1:3-7",
+ "Isa 11:1-5",
+ "Eph 2:19-22",
+ "Jn 20:24-29",
+ "1 Cor 4:1-5",
+ "Lk 3:1-6",
+ "Rom 1:1-6",
+ "Heb 1:1-12",
+ "Jn 1:1-14",
+ "Acts 6:8-10; 7:54-59",
+ "Matt 23:34-39",
+ "Jn 21:19-24",
+ "1 Jn 3:10-16",
+ "Matt 10:26-32",
+ "Esth 13:8-11,15-17",
+ "Matt 20:17-28",
+ "Matt 18:15-22",
+ "1 Cor 1:18-25,30",
+ "Lk 12:2-8",
+ "Jn 14:1-13",
+ "Acts 11:21-26; 13:1-3",
+ "2 Cor 8:9-15",
+ "Isa 58:7-11",
+ "Matt 19:13-21",
+ "2 Cor 9:6-10",
+ "1 Cor 12:27-31",
+ "Lk 6:12-19",
+ "Eph 5:15-21",
+ "1 Thess 1:2-10",
+ "Matt 13:31-35",
+ "Matt 4:18-22",
+ "Matt 2:13-18",
+ "1 Thess 2:2-9",
+ "Lk 14:26-35",
+ "Wis 5:16-20",
+};
+
+static const char *const cites_la[] = {
+ "Tit 2:11-15",
+ "Luc 2:21",
+ "Gal 4:1-7",
+ "Luc 2:33-40",
+ "Is 60:1-6",
+ "Matt 2:1-12",
+ "Col 3:12-17",
+ "Luc 2:42-52",
+ "Ioann 1:29-34",
+ "2 Tim 4:1-8",
+ "Matt 5:13-19",
+ "Phil 3:7-12",
+ "Matt 11:25-30",
+ "1 Pet 5:1-4,10-11",
+ "Matt 16:13-19",
+ "Luc 12:35-40",
+ "Rom 12:6-16",
+ "Ioann 2:1-11",
+ "Hebr 11:33-39",
+ "Luc 6:17-23",
+ "Eccli 51:1-8,12",
+ "Matt 25:1-13",
+ "Sap 3:1-8",
+ "Luc 21:9-19",
+ "Eccli 31:8-11",
+ "1 Tim 6:11-16",
+ "Luc 14:26-33",
+ "Act 9:1-22",
+ "Matt 19:27-29",
+ "Rom 12:16-21",
+ "Matt 8:1-13",
+ "1 Cor 4:9-14",
+ "Luc 12:32-34",
+ "Phil 4:4-9",
+ "Matt 18:1-5",
+ "Rom 8:35-39",
+ "Ioann 12:24-26",
+ "Mal 3:1-4",
+ "Luc 2:22-32",
+ "Rom 13:8-10",
+ "Matt 8:23-27",
+ "Eccli 44:16-27; 45:3-20",
+ "Matt 25:14-23",
+ "1 Cor 1:26-31",
+ "Matt 19:3-12",
+ "Luc 10:1-9",
+ "Matt 13:24-30",
+ "2 Cor 10:17-18; 11:1-2",
+ "Luc 1:26-31",
+ "1 Cor 9:24-27; 10:1-5",
+ "Matt 20:1-16",
+ "1 Pet 1:1-7",
+ "2 Cor 11:19-33; 12:1-9",
+ "Luc 8:4-15",
+ "Act 1:15-26",
+ "1 Ioann 2:14-17",
+ "Marc 10:13-21",
+ "1 Cor 13:1-13",
+ "Luc 18:31-43",
+ "Ioel 2:12-19",
+ "Matt 6:16-21",
+ "Is 38:1-6",
+ "Matt 8:5-13",
+ "Is 58:1-9",
+ "Matt 5:43-48; 6:1-4",
+ "Is 58:9-14",
+ "Marc 6:47-56",
+ "2 Cor 6:1-10",
+ "Matt 4:1-11",
+ "Matt 25:31-46",
+ "Is 55:6-11",
+ "Matt 21:10-17",
+ "Matt 12:38-50",
+ "Matt 15:21-28",
+ "Ioann 5:1-15",
+ "1 Thess 5:14-23",
+ "Matt 17:1-9",
+ "1 Thess 4:1-7",
+ "Dan 9:15-19",
+ "Ioann 8:21-29",
+ "Matt 23:1-12",
+ "Matt 1:18-21",
+ "Ier 17:5-10",
+ "Luc 16:19-31",
+ "Gen 37:6-22",
+ "Matt 21:33-46",
+ "Gen 27:6-40",
+ "Luc 15:11-32",
+ "Eph 5:1-9",
+ "Luc 11:14-28",
+ "Luc 4:23-30",
+ "Is 7:10-15",
+ "Luc 1:26-38",
+ "Ex 20:12-24",
+ "Matt 15:1-20",
+ "Ier 7:1-7",
+ "Luc 4:38-44",
+ "Num 20:1,3,6-13",
+ "Ioann 4:5-42",
+ "Dan 13:1-9,15-17,19-30,33-62",
+ "Ioann 8:1-11",
+ "Gal 4:22-31",
+ "Ioann 6:1-15",
+ "Ioann 2:13-25",
+ "Ex 32:7-14",
+ "Ioann 7:14-31",
+ "Is 1:16-19",
+ "Ioann 9:1-38",
+ "Luc 7:11-16",
+ "Ioann 11:1-45",
+ "Is 49:8-15",
+ "Ioann 8:12-20",
+ "Hebr 9:11-15",
+ "Ioann 8:46-59",
+ "Ioann 7:32-39",
+ "Ier 11:18-20",
+ "Marc 14:32-72,15,1-46",
+ "Lev 19:1-2,11-19,25",
+ "Ioann 10:22-38",
+ "Dan 3:25,34-45",
+ "Luc 7:36-50",
+ "Ier 17:13-18",
+ "Ioann 11:47-54",
+ "Ier 18:18-23",
+ "Ioann 12:10-36",
+ "Phil 2:5-11",
+ "Matt 26:36-75; 27:1-60",
+ "1 Cor 5:7-8",
+ "Marc 16:1-7",
+ "Act 10:37-43",
+ "Luc 24:13-35",
+ "Act 13:16,26-33",
+ "Luc 24:36-47",
+ "Act 3:13-15,17-19",
+ "Ioann 21:1-14",
+ "Act 8:26-40",
+ "Ioann 20:11-18",
+ "1 Pet 3:18-22",
+ "Matt 28:16-20",
+ "1 Pet 2:1-10",
+ "Ioann 20:1-9",
+ "1 Ioann 5:4-10",
+ "Ioann 20:19-31",
+ "1 Cor 1:17-25",
+ "2 Tim 2:8-10; 3:10-12",
+ "Matt 10:34-42",
+ "Col 3:14-15,17,23-24",
+ "Matt 13:54-58",
+ "2 Cor 4:5-14",
+ "Matt 10:23-28",
+ "Ioann 19:25-27",
+ "1 Pet 2:21-25",
+ "Ioann 10:11-16",
+ "Sap 5:1-5",
+ "Ioann 15:1-7",
+ "1 Pet 2:11-19",
+ "Ioann 16:16-22",
+ "Ioann 4:46-53",
+ "Sap 7:7-14",
+ "Iac 1:17-21",
+ "Ioann 16:5-14",
+ "Iac 1:22-27",
+ "Ioann 16:23-30",
+ "Eph 4:7-13",
+ "Ioann 17:1-11",
+ "Act 1:1-11",
+ "Marc 16:14-20",
+ "Luc 1:26-33",
+ "1 Pet 4:7-11",
+ "Ioann 15:26-27; 16:1-4",
+ "Sap 4:7-14",
+ "Matt 5:1-12",
+ "Act 19:1-8",
+ "Ioann 14:15-21",
+ "Act 2:1-11",
+ "Ioann 14:23-31",
+ "Act 10:34,42-48",
+ "Ioann 3:16-21",
+ "Act 8:14-17",
+ "Ioann 10:1-10",
+ "Act 5:12-16",
+ "Ioann 6:44-52",
+ "Act 8:5-8",
+ "Luc 9:1-6",
+ "Ioel 2:23-24,26-27",
+ "Luc 5:17-26",
+ "Rom 5:1-5",
+ "Rom 11:33-36",
+ "Matt 28:18-20",
+ "Matt 22:29-40",
+ "1 Ioann 3:13-18",
+ "Luc 14:16-24",
+ "Ier 1:4-10",
+ "Luc 1:5-17",
+ "Is 49:1-3,5-7",
+ "Luc 1:57-68",
+ "Luc 12:1-8",
+ "Act 3:1-10",
+ "Ioann 21:15-19",
+ "Act 12:1-11",
+ "Gal 1:11-20",
+ "Matt 10:16-22",
+ "Ioann 19:30-35",
+ "Cant 2:8-14",
+ "Luc 1:39-47",
+ "2 Tim 3:14-17; 4:1-5",
+ "Matt 10:28-33",
+ "1 Pet 5:6-11",
+ "Luc 15:1-10",
+ "1 Tim 4:8-16",
+ "Marc 10:15-21",
+ "Rom 8:18-23",
+ "Luc 5:1-11",
+ "Hebr 7:23-27",
+ "Prov 31:10-31",
+ "Matt 13:44-52",
+ "Matt 12:46-50",
+ "Matt 5:43-48",
+ "1 Pet 3:8-15",
+ "Matt 5:20-24",
+ "Ioann 15:12-16",
+ "Rom 6:3-11",
+ "Marc 8:1-9",
+ "Cant 3:2-5; 8:6-7",
+ "1 Pet 5:1-11",
+ "Luc 22:24-30",
+ "1 Cor 4:9-15",
+ "Matt 20:20-23",
+ "Rom 6:19-23",
+ "Matt 7:15-21",
+ "Sap 10:17-20",
+ "Luc 10:38-42",
+ "2 Tim 2:1-7",
+ "Rom 8:12-17",
+ "Luc 16:1-9",
+ "Luc 11:27-28",
+ "2 Pet 1:16-19",
+ "Matt 6:24-33",
+ "Matt 16:24-27",
+ "1 Cor 10:6-13",
+ "Luc 19:41-47",
+ "Eccli 24:23-31",
+ "Idt 13:22-25,15,10",
+ "Luc 1:41-50",
+ "Matt 1:1-16",
+ "1 Cor 12:2-11",
+ "Luc 18:9-14",
+ "1 Cor 15:1-10",
+ "Marc 7:31-37",
+ "Sap 10:10-14",
+ "Luc 19:12-26",
+ "Ier 1:17-19",
+ "Marc 6:17-29",
+ "2 Cor 3:4-9",
+ "Luc 10:23-37",
+ "1 Thess 2:2-8",
+ "Ioann 21:15-17",
+ "Gal 3:16-22",
+ "Luc 17:11-19",
+ "Prov 8:22-35",
+ "Ioann 12:31-36",
+ "Idt 13:22,25",
+ "Gal 5:16-24",
+ "1 Cor 13:1-8",
+ "Matt 22:1-14",
+ "Hebr 10:32-38",
+ "Matt 24:3-13",
+ "Gal 5:25-26; 6:1-10",
+ "Marc 9:16-28",
+ "Ez 1:10-14",
+ "Matt 9:9-13",
+ "Eph 3:13-21",
+ "Luc 14:1-11",
+ "Apoc 1:1-5",
+ "Matt 18:1-10",
+ "Ex 23:20-23",
+ "Is 66:12-14",
+ "Matt 18:1-4",
+ "Gal 6:14-18",
+ "Eph 4:1-6",
+ "Matt 22:34-46",
+ "Prov 8:22-24,32-35",
+ "1 Tim 5:3-10",
+ "2 Cor 4:1-6,15-18",
+ "Luc 2:43-51",
+ "1 Cor 1:4-8",
+ "Matt 9:1-8",
+ "Eph 3:8-9,14-19",
+ "2 Cor 8:16-24",
+ "Eph 4:23-28",
+ "Iac 2:12-17",
+ "Matt 24:42-47",
+ "Tob 12:7-15",
+ "Ioann 5:1-4",
+ "Col 1:12-20",
+ "Ioann 18:33-37",
+ "Ioann 15:17-25",
+ "Eph 6:10-17",
+ "Matt 18:23-35",
+ "1 Cor 15:51-57",
+ "Ioann 5:25-29",
+ "Apoc 21:2-5",
+ "Luc 19:1-10",
+ "Luc 11:33-36",
+ "Phil 1:6-11",
+ "Matt 22:15-21",
+ "Hebr 5:1-6",
+ "Phil 3:17-21; 4:1-3",
+ "Matt 9:18-26",
+ "Marc 11:22-24",
+ "Eccli 51:13-17",
+ "Col 1:9-14",
+ "Matt 24:15-35",
+ "Rom 13:11-14",
+ "Luc 21:25-33",
+ "Rom 10:10-18",
+ "Marc 16:15-18",
+ "Hebr 13:7-17",
+ "Rom 15:4-13",
+ "Matt 11:2-10",
+ "Luc 1:26-28",
+ "Phil 4:4-7",
+ "Ioann 1:19-28",
+ "2 Cor 1:3-7",
+ "Is 11:1-5",
+ "Eph 2:19-22",
+ "Ioann 20:24-29",
+ "1 Cor 4:1-5",
+ "Luc 3:1-6",
+ "Rom 1:1-6",
+ "Hebr 1:1-12",
+ "Ioann 1:1-14",
+ "Act 6:8-10; 7:54-59",
+ "Matt 23:34-39",
+ "Ioann 21:19-24",
+ "1 Ioann 3:10-16",
+ "Matt 10:26-32",
+ "Esth 13:8-11,15-17",
+ "Matt 20:17-28",
+ "Matt 18:15-22",
+ "1 Cor 1:18-25,30",
+ "Luc 12:2-8",
+ "Ioann 14:1-13",
+ "Act 11:21-26; 13:1-3",
+ "2 Cor 8:9-15",
+ "Is 58:7-11",
+ "Matt 19:13-21",
+ "2 Cor 9:6-10",
+ "1 Cor 12:27-31",
+ "Luc 6:12-19",
+ "Eph 5:15-21",
+ "1 Thess 1:2-10",
+ "Matt 13:31-35",
+ "Matt 4:18-22",
+ "Matt 2:13-18",
+ "1 Thess 2:2-9",
+ "Luc 14:26-35",
+ "Sap 5:16-20",
+};
+
+static const unsigned short vpool[] = {
+ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
+ 32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
+ 48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,
+ 64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,
+ 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,
+ 96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,
+ 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
+ 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
+ 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
+ 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
+ 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
+ 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
+ 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
+ 224,225,226,227,118,228,229,230,231,232,233,234,235,236,237,238,
+ 239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,
+ 255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,
+ 271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,
+ 287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,
+ 303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,
+ 319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,
+ 335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,
+ 351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,
+ 367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,
+ 383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,
+ 399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,
+ 415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,
+ 431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,
+ 447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,
+ 463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,
+ 479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,
+ 495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,
+ 511,512,513,514,515,516,517,237,238,239,240,241,242,243,244,245,
+ 518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,
+ 534,535,536,526,537,538,539,540,541,542,543,544,545,546,547,548,
+ 549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,
+ 565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,
+ 581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,
+ 597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,
+ 613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,
+ 629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,
+ 645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,
+ 661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,
+ 677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,
+ 693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,
+ 709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,
+ 725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,
+ 741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,
+ 757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,
+ 773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,
+ 789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,
+ 805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,
+ 821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,
+ 837,838,839,373,374,375,376,377,378,840,841,842,843,844,845,846,
+ 847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,
+ 863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,
+ 879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,
+ 895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,
+ 911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,
+ 927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,
+ 943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,
+ 959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,
+ 975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,
+ 991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,
+ 1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,
+ 1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,
+ 1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,
+ 1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,
+ 1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,
+ 1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,
+ 1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,
+ 1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,
+ 1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,
+ 1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,
+ 1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,
+ 1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,
+ 1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,
+ 1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,
+ 1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,
+ 1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,
+ 1263,1264,1265,1266,1252,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,
+ 1278,1279,1280,1281,1282,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,
+ 1222,1223,1224,1225,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,
+ 1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,
+ 1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,
+ 1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,
+ 1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,
+ 1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,271,
+ 272,273,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,
+ 1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,
+ 1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,
+ 1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,
+ 1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,
+ 1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,
+ 1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,
+ 1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,
+ 1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,
+ 1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,
+ 1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,
+ 1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,
+ 1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,
+ 1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,
+ 1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,
+ 1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,
+ 1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,
+ 1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,
+ 1660,1661,1662,1663,1664,1665,1666,41,42,44,1667,1668,1669,1670,1671,1672,
+ 1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,
+ 1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,
+ 1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,
+ 1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,
+ 1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,
+ 1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,
+ 1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,
+ 1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,
+ 1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,373,374,375,376,
+ 377,378,840,841,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,
+ 1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,
+ 1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,
+ 1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,
+ 1873,1874,1875,1876,1877,1878,1879,1505,1506,1880,1881,1882,1883,1884,1885,1886,
+ 1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,
+ 1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,
+ 1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,
+ 1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,
+ 1951,1601,1602,1603,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,
+ 1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,
+ 1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,
+ 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,
+ 2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,
+ 2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,
+ 2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,
+ 2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,
+ 2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,
+ 2092,2093,62,63,64,65,66,1689,2094,2095,2096,2097,2098,2099,2100,2101,
+ 2102,93,94,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,
+ 2116,2117,2118,2119,2120,2121,465,466,467,468,469,470,471,2122,2123,2124,
+ 2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,
+ 2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,
+ 2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,
+ 2173,2174,611,612,613,614,615,527,528,529,530,531,532,2175,2176,2177,
+ 2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,
+ 2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,
+ 2210,2211,2212,2213,2214,2215,2216,89,90,91,92,2217,2099,2100,2101,2102,
+ 93,94,2218,2219,2220,2221,2222,2223,2224,246,247,248,249,250,251,2225,
+ 2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,
+ 2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,
+ 2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,824,
+ 825,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285,2286,2287,
+ 2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302,2303,
+ 2304,2305,2306,2307,2308,2309,2310,2311,2312,2313,2314,2315,2316,2317,2318,2319,
+ 2320,2083,2084,2085,2086,2087,2088,2089,2321,2322,2323,2324,2325,2326,2327,2328,
+ 2329,2330,2331,2332,2333,2334,2335,2336,2337,2338,2339,2340,2341,2342,2343,2344,
+ 2345,2346,2347,2348,2349,2350,2351,2352,2353,2354,2355,2356,2357,2358,2359,2360,
+ 2361,2362,2363,2364,2365,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,
+ 2377,2378,2379,2380,2381,2382,2383,2384,2385,2386,2387,2388,2389,2390,2391,2392,
+ 2393,2394,2395,2396,2397,2398,2399,2400,2401,2402,2403,2404,2405,2406,2407,2408,
+ 2409,2410,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421,2422,2423,2424,
+ 2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2035,2036,2037,2437,
+ 2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,2451,2452,2453,
+ 2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,1378,1379,1380,
+ 1381,1382,1383,2315,2318,2467,2468,2469,2470,2471,2472,2473,2474,2475,472,473,
+ 474,475,476,477,478,479,2476,2477,2478,2479,2480,2481,2482,2483,2484,2485,
+ 2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,2496,2497,2498,2499,2500,2501,
+ 2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513,2514,2515,2516,2517,
+ 2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530,2531,2532,2533,
+ 2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2545,2546,2547,2548,2549,
+ 2550,2551,2552,2553,2554,2555,2556,2557,2558,2559,2560,2561,2562,2563,2564,2565,
+ 2566,2567,261,262,263,264,265,2568,2569,2570,2571,2572,2573,2574,2575,2576,
+ 2577,2578,2579,261,262,263,264,2580,2581,2582,2583,2584,2585,2586,2587,2588,
+ 2589,2590,1957,1958,1959,1960,1961,1962,1963,2591,2592,2593,2594,2595,2596,2453,
+ 2454,2455,2463,2464,2465,2466,2597,2598,2599,2600,2601,2602,2603,2604,2605,2606,
+ 2607,2608,1674,1675,2609,2610,2611,2612,46,47,48,49,50,51,52,53,
+ 54,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,
+ 2544,2545,2546,2547,2548,2549,2628,2629,2630,2631,2632,2633,2634,2635,2636,2637,
+ 2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,
+ 2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,624,625,626,627,2664,2665,
+ 2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681,
+ 2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697,
+ 2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713,
+ 2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2727,2728,2729,
+ 2730,2731,2732,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2745,
+ 2746,2747,2748,2749,2750,2751,2752,2753,2754,2755,2756,2757,2758,2759,2760,2761,
+ 2762,2763,2764,2765,2766,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,
+ 2778,2779,2780,2781,2782,2783,2784,2664,2665,2666,2785,2786,2787,2788,2789,2790,
+ 2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801,2802,2803,2804,2805,2806,
+ 2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,
+ 2823,2824,2825,2826,2827,1807,1808,1809,1810,2828,2829,2830,2831,2832,2833,2834,
+ 2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845,2846,2847,2848,2849,2850,
+ 2851,2852,2853,2854,2855,2856,2857,373,374,375,255,256,257,258,2858,2859,
+ 2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,
+ 2876,2877,2878,2879,2880,2881,1635,1636,1637,1638,1639,1640,2882,2883,2884,2885,
+ 2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,
+ 2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,
+ 2918,2919,2920,2921,2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,
+ 2934,2935,2936,2937,2938,2939,2039,2940,2941,2942,2943,2944,2945,2946,2947,1964,
+ 1965,1966,1967,1687,1688,1689,2094,2095,2096,2097,2948,2949,2950,2951,2952,2953,
+ 2954,2955,2956,2957,2226,2227,2228,2229,2958,2959,2960,2961,2962,2963,2964,2965,
+ 2966,2967,2968,2969,2970,1644,1645,1646,1647,1648,1649,1650,1651,341,2018,2019,
+ 2020,2021,2022,2023,2024,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,
+ 2982,2983,2984,2985,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,2996,2997,
+ 2998,2999,524,525,526,537,538,3000,3001,3002,3003,3004,3005,3006,3007,3008,
+ 3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,137,
+ 138,139,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,
+ 3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,
+ 3054,3055,2430,2431,2432,2433,2434,2435,2436,3056,195,196,197,198,199,200,
+ 201,202,3057,3058,3059,3060,3061,3062,3063,
+};
+
+typedef struct { unsigned short part, cite, voff, vlen; } Reading;
+static const Reading readings[] = {
+ {0,0,0,5},
+ {1,1,5,1},
+ {0,2,6,7},
+ {1,3,13,8},
+ {0,4,21,6},
+ {1,5,27,12},
+ {0,6,39,6},
+ {1,7,45,11},
+ {1,8,56,6},
+ {0,9,62,8},
+ {1,10,70,7},
+ {0,11,77,6},
+ {1,12,83,6},
+ {0,13,89,6},
+ {1,14,95,7},
+ {1,15,102,6},
+ {0,16,108,11},
+ {1,17,119,11},
+ {0,18,130,7},
+ {1,19,137,7},
+ {0,20,144,9},
+ {1,21,153,13},
+ {0,22,166,8},
+ {1,23,174,11},
+ {0,24,185,4},
+ {0,25,189,6},
+ {1,26,195,8},
+ {0,27,203,22},
+ {1,28,225,3},
+ {0,29,228,6},
+ {1,30,234,13},
+ {0,31,247,6},
+ {1,32,253,3},
+ {0,33,256,6},
+ {1,34,262,5},
+ {0,35,267,5},
+ {1,36,272,3},
+ {0,37,275,4},
+ {1,38,279,11},
+ {0,39,290,3},
+ {1,40,293,5},
+ {0,41,298,30},
+ {1,42,328,10},
+ {0,43,338,6},
+ {1,44,344,10},
+ {1,45,354,9},
+ {1,46,363,7},
+ {0,47,370,4},
+ {1,48,374,6},
+ {0,49,380,9},
+ {1,50,389,16},
+ {0,51,405,7},
+ {0,52,412,24},
+ {1,53,436,12},
+ {0,54,448,12},
+ {0,55,460,4},
+ {1,56,464,9},
+ {0,57,473,13},
+ {1,58,486,13},
+ {0,59,499,8},
+ {1,60,507,6},
+ {0,61,513,6},
+ {1,62,519,9},
+ {0,63,528,9},
+ {1,64,537,10},
+ {0,65,547,6},
+ {1,66,553,10},
+ {0,67,563,10},
+ {1,68,573,11},
+ {1,69,584,16},
+ {0,70,600,6},
+ {1,71,606,8},
+ {1,72,614,13},
+ {1,73,627,8},
+ {1,74,635,15},
+ {0,75,650,10},
+ {1,76,660,9},
+ {0,77,669,7},
+ {0,78,676,5},
+ {1,79,681,9},
+ {1,80,690,12},
+ {1,81,702,4},
+ {0,82,706,6},
+ {1,83,712,13},
+ {0,84,725,17},
+ {1,85,742,14},
+ {0,86,756,35},
+ {1,87,791,22},
+ {0,88,813,9},
+ {1,89,822,15},
+ {1,90,837,8},
+ {0,91,845,6},
+ {1,92,851,13},
+ {0,93,864,13},
+ {1,94,877,20},
+ {0,95,897,7},
+ {1,96,904,7},
+ {0,97,911,10},
+ {1,98,921,38},
+ {0,99,959,54},
+ {1,100,1013,11},
+ {0,101,1024,10},
+ {1,102,1034,15},
+ {1,103,1049,13},
+ {0,104,1062,8},
+ {1,105,1070,18},
+ {0,106,1088,4},
+ {1,107,1092,38},
+ {1,108,1130,6},
+ {1,109,1136,45},
+ {0,110,1181,8},
+ {1,111,1189,9},
+ {0,112,1198,5},
+ {1,113,1203,14},
+ {1,114,1217,8},
+ {0,115,1225,3},
+ {1,116,1228,88},
+ {0,117,1316,12},
+ {1,118,1328,17},
+ {0,119,1345,13},
+ {1,120,1358,15},
+ {0,121,1373,6},
+ {1,122,1379,8},
+ {0,123,1387,6},
+ {1,124,1393,27},
+ {0,125,1420,7},
+ {1,126,1427,100},
+ {0,127,1527,2},
+ {1,128,1529,7},
+ {0,129,1536,7},
+ {1,130,1543,23},
+ {0,131,1566,9},
+ {1,132,1575,12},
+ {0,133,1587,6},
+ {1,134,1593,14},
+ {0,135,1607,15},
+ {1,136,1622,8},
+ {0,137,1630,5},
+ {1,138,1635,5},
+ {0,139,1640,10},
+ {1,140,1650,9},
+ {0,141,1659,7},
+ {1,142,1666,13},
+ {0,143,1679,9},
+ {0,144,1688,6},
+ {1,145,1694,9},
+ {0,146,1703,5},
+ {1,147,1708,5},
+ {0,148,1713,10},
+ {1,149,1723,6},
+ {1,150,1729,3},
+ {0,151,1732,5},
+ {1,152,1737,6},
+ {0,153,1743,5},
+ {1,154,1748,7},
+ {0,155,1755,9},
+ {1,156,1764,7},
+ {1,157,1771,8},
+ {0,158,1779,8},
+ {0,159,1787,5},
+ {1,160,1792,10},
+ {0,161,1802,6},
+ {1,162,1808,8},
+ {0,163,1816,7},
+ {1,164,1823,11},
+ {0,165,1834,11},
+ {1,166,1845,7},
+ {1,167,1852,8},
+ {0,168,1860,5},
+ {1,169,1865,6},
+ {0,170,1871,8},
+ {1,171,1879,12},
+ {0,172,1891,8},
+ {1,173,1899,7},
+ {0,174,1906,11},
+ {1,175,1917,9},
+ {0,176,1926,8},
+ {1,177,1934,6},
+ {0,178,1940,4},
+ {1,179,1944,10},
+ {0,180,1954,5},
+ {1,181,1959,9},
+ {0,182,1968,4},
+ {1,183,1972,6},
+ {0,184,1978,4},
+ {1,185,1982,10},
+ {0,186,1992,5},
+ {0,187,1997,4},
+ {1,188,2001,3},
+ {1,189,2004,12},
+ {0,190,2016,6},
+ {1,191,2022,9},
+ {0,192,2031,7},
+ {1,193,2038,13},
+ {0,194,2051,6},
+ {1,195,2057,12},
+ {1,196,2069,8},
+ {0,197,2077,10},
+ {1,198,2087,5},
+ {0,199,2092,11},
+ {0,200,2103,10},
+ {1,201,2113,7},
+ {1,202,2120,6},
+ {0,203,2126,7},
+ {1,204,2133,9},
+ {0,205,2142,9},
+ {1,206,2151,6},
+ {0,207,2157,6},
+ {1,208,2163,10},
+ {0,209,2173,9},
+ {1,210,2182,7},
+ {0,211,2189,6},
+ {1,212,2195,11},
+ {0,213,2206,5},
+ {0,214,2211,22},
+ {1,215,2233,9},
+ {1,216,2242,5},
+ {1,217,2247,6},
+ {0,218,2253,8},
+ {1,219,2261,5},
+ {1,220,2266,5},
+ {0,221,2271,9},
+ {1,222,2280,9},
+ {0,223,2289,6},
+ {0,224,2295,11},
+ {1,225,2306,7},
+ {0,226,2313,7},
+ {1,227,2320,4},
+ {0,228,2324,5},
+ {1,229,2329,7},
+ {0,230,2336,4},
+ {1,231,2340,5},
+ {0,232,2345,7},
+ {0,233,2352,6},
+ {1,234,2358,9},
+ {1,235,2367,2},
+ {0,236,2369,4},
+ {1,237,2373,10},
+ {1,238,2383,4},
+ {0,239,2387,8},
+ {1,240,2395,7},
+ {0,241,2402,9},
+ {0,242,2411,6},
+ {1,243,2417,10},
+ {1,244,2427,16},
+ {0,245,2443,10},
+ {1,246,2453,6},
+ {0,247,2459,10},
+ {1,248,2469,7},
+ {0,249,2476,5},
+ {1,250,2481,15},
+ {0,251,2496,3},
+ {1,252,2499,13},
+ {0,253,2512,6},
+ {1,254,2518,15},
+ {0,255,2533,7},
+ {1,256,2540,3},
+ {0,257,2543,7},
+ {1,258,2550,9},
+ {0,259,2559,14},
+ {1,260,2573,6},
+ {0,261,2579,2},
+ {0,262,2581,9},
+ {0,263,2590,8},
+ {1,264,2598,14},
+ {0,265,2612,7},
+ {1,266,2619,11},
+ {0,267,2630,12},
+ {1,268,2642,13},
+ {0,269,2655,5},
+ {1,270,2660,5},
+ {0,271,2665,9},
+ {1,272,2674,11},
+ {0,273,2685,5},
+ {1,274,2690,10},
+ {0,275,2700,4},
+ {0,276,2704,3},
+ {1,277,2707,4},
+ {0,278,2711,5},
+ {0,279,2716,6},
+ {1,280,2722,13},
+ {0,281,2735,7},
+ {0,282,2742,8},
+ {0,283,2750,10},
+ {1,284,2760,9},
+ {0,285,2769,5},
+ {1,286,2774,8},
+ {0,287,2782,8},
+ {0,288,2790,9},
+ {0,289,2799,6},
+ {0,290,2805,6},
+ {1,291,2811,6},
+ {0,292,2817,9},
+ {1,293,2826,4},
+ {0,294,2830,9},
+ {1,295,2839,5},
+ {1,296,2844,9},
+ {0,297,2853,8},
+ {1,298,2861,13},
+ {0,299,2874,7},
+ {1,300,2881,5},
+ {0,301,2886,4},
+ {1,302,2890,10},
+ {1,303,2900,4},
+ {0,304,2904,6},
+ {1,305,2910,7},
+ {0,306,2917,6},
+ {0,307,2923,8},
+ {1,308,2931,9},
+ {1,309,2940,3},
+ {0,310,2943,5},
+ {0,311,2948,6},
+ {1,312,2954,21},
+ {0,313,2975,4},
+ {1,314,2979,9},
+ {0,315,2988,9},
+ {1,316,2997,4},
+ {0,317,3001,11},
+ {0,318,3012,10},
+ {1,319,3022,9},
+ {1,320,3031,3},
+ {0,321,3034,4},
+ {1,322,3038,10},
+ {0,323,3048,5},
+ {0,324,3053,5},
+ {0,325,3058,4},
+ {1,326,3062,6},
+ {0,327,3068,5},
+ {1,328,3073,6},
+ {0,329,3079,6},
+ {0,330,3085,12},
+ {1,331,3097,14},
+ {0,332,3111,9},
+ {1,333,3120,6},
+ {1,334,3126,6},
+ {0,335,3132,7},
+ {1,336,3139,7},
+ {0,337,3146,7},
+ {1,338,3153,12},
+ {1,339,3165,8},
+ {0,340,3173,9},
+ {1,341,3182,7},
+ {1,342,3189,13},
+ {0,343,3202,9},
+ {0,344,3211,7},
+ {0,345,3218,5},
+ {1,346,3223,9},
+ {0,347,3232,5},
+ {0,348,3237,5},
+ {1,349,3242,8},
+ {0,350,3250,7},
+ {0,351,3257,9},
+ {1,352,3266,5},
+ {1,353,3271,5},
+ {1,354,3276,6},
+ {0,355,3282,8},
+ {1,356,3290,10},
+ {0,357,3300,5},
+};
+
+static const unsigned short readings_cite_la[] = {
+ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
+ 32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
+ 48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,
+ 64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,
+ 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,
+ 96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,
+ 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
+ 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
+ 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
+ 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
+ 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
+ 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
+ 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
+ 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
+ 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,
+ 256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,
+ 272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,
+ 288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,
+ 304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,
+ 320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,
+ 336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,
+ 352,353,354,355,356,357,
+};
+
+static const unsigned short rpool[] = {
+ 0,1,2,3,2,3,2,3,2,3,4,5,2,3,2,3,
+ 2,3,2,3,2,3,6,7,4,8,9,10,11,12,13,14,
+ 15,6,7,16,17,18,19,20,21,22,23,24,15,25,26,27,
+ 28,29,30,9,10,31,32,9,10,20,21,33,34,35,36,37,
+ 38,39,40,41,42,43,44,41,45,28,24,15,6,46,47,21,
+ 48,28,6,46,6,46,6,46,49,50,49,50,49,50,49,50,
+ 49,50,49,50,51,14,52,53,54,12,52,53,52,53,55,56,
+ 52,53,52,53,57,58,57,58,24,15,59,60,61,62,63,64,
+ 65,66,67,68,69,70,71,72,73,74,75,76,77,76,78,79,
+ 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,
+ 96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,
+ 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
+ 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
+ 45,144,145,47,21,146,147,148,149,150,151,152,13,14,151,152,
+ 153,154,151,152,10,41,42,155,156,153,157,158,10,155,156,24,
+ 34,155,156,24,15,159,160,13,14,24,28,159,160,159,160,159,
+ 160,150,161,162,158,15,9,10,163,164,165,166,161,162,167,168,
+ 169,168,169,168,169,170,15,171,41,42,172,173,174,175,176,177,
+ 178,179,180,181,182,183,184,185,186,96,187,188,187,188,41,42,
+ 9,10,187,188,187,188,24,189,190,191,192,193,194,195,28,196,
+ 190,191,197,198,199,14,200,201,112,202,203,204,205,206,207,208,
+ 209,210,211,212,213,45,214,215,211,212,214,216,211,212,217,218,
+ 219,9,10,24,15,218,219,218,219,190,220,31,45,221,222,9,
+ 10,223,120,224,225,221,222,226,227,214,215,228,229,230,23,47,
+ 231,228,229,144,45,228,229,232,45,233,234,9,15,235,236,76,
+ 24,237,24,15,238,239,240,239,240,47,21,239,240,241,235,242,
+ 243,24,244,245,246,245,246,24,15,10,214,215,241,150,31,32,
+ 247,248,249,250,247,248,249,34,9,10,251,252,47,21,253,254,
+ 253,254,24,250,255,256,253,254,41,42,253,254,257,258,259,244,
+ 257,258,31,32,257,258,241,92,257,258,125,260,261,150,22,23,
+ 262,237,263,264,265,266,262,237,267,108,41,42,13,14,268,267,
+ 108,120,269,270,271,272,273,274,9,10,271,272,275,274,276,277,
+ 278,12,279,280,24,15,281,92,282,215,283,45,28,241,284,285,
+ 286,24,15,13,14,47,21,214,215,287,12,288,45,289,264,290,
+ 15,289,264,289,264,213,291,292,293,289,264,294,295,294,295,163,
+ 296,294,295,294,295,294,295,171,297,298,299,300,41,42,297,298,
+ 297,298,297,298,297,298,301,302,24,15,41,303,13,14,304,305,
+ 306,152,9,10,307,308,41,309,301,302,214,215,31,32,235,310,
+ 21,311,312,9,10,20,21,28,311,312,311,312,311,312,313,314,
+ 313,314,310,215,315,316,9,10,313,314,317,42,318,319,259,320,
+ 318,319,318,319,13,14,318,319,47,215,321,322,321,322,323,238,
+ 91,92,321,322,324,204,325,326,327,328,327,328,327,328,329,81,
+ 330,331,332,333,334,2,3,2,3,2,3,6,7,16,17,335,
+ 336,9,10,57,58,337,338,339,249,26,340,341,141,142,141,142,
+ 141,142,151,152,9,10,13,14,153,154,269,45,9,10,282,108,
+ 153,342,150,153,154,168,169,168,169,47,21,187,188,187,188,190,
+ 191,190,191,214,215,343,201,9,10,207,208,207,208,207,208,47,
+ 21,207,208,344,32,211,212,218,219,221,222,221,222,228,229,228,
+ 229,345,346,233,234,239,240,239,240,347,36,247,248,24,15,253,
+ 254,348,349,257,258,262,237,24,15,262,237,262,237,267,108,267,
+ 108,267,108,271,272,269,270,279,280,249,145,285,286,289,264,350,
+ 157,350,157,11,32,294,295,294,295,294,295,294,295,294,295,307,
+ 308,307,308,307,308,307,308,6,46,351,352,47,21,307,14,311,
+ 312,311,312,315,353,313,314,313,314,9,10,318,319,318,319,321,
+ 322,325,326,327,328,354,6,7,16,17,141,142,151,152,150,155,
+ 156,155,156,13,14,161,162,13,14,355,45,47,21,190,191,190,
+ 191,207,208,24,15,9,356,211,212,228,229,233,234,233,234,245,
+ 246,245,246,253,254,253,254,262,237,267,108,271,272,271,272,271,
+ 272,279,280,279,280,285,286,357,19,289,264,350,157,297,298,304,
+ 305,304,305,307,308,307,308,294,295,294,295,294,295,6,46,6,
+ 46,311,312,313,314,327,328,6,7,16,17,39,40,39,40,49,
+ 50,52,53,9,10,151,152,159,160,161,162,211,212,218,219,233,
+ 234,239,240,247,248,257,258,262,237,350,157,350,157,350,157,294,
+ 295,294,295,294,295,304,305,304,305,304,305,311,312,311,312,311,
+ 312,311,312,327,328,327,328,6,7,6,7,16,17,16,17,13,
+ 14,168,169,187,188,190,191,221,222,221,222,233,234,239,240,245,
+ 246,267,108,285,286,285,286,304,305,294,295,294,295,294,295,294,
+ 295,39,40,39,40,39,40,39,40,6,46,311,312,311,312,311,
+ 312,318,319,4,5,4,5,4,5,4,5,4,5,4,5,16,
+ 17,351,352,351,352,351,352,351,352,52,53,155,156,207,208,228,
+ 229,247,248,257,258,279,280,294,295,311,312,313,314,218,219,233,
+ 234,279,280,350,157,294,295,294,295,311,312,311,312,155,156,159,
+ 160,211,212,218,219,245,246,247,248,294,295,327,328,330,331,330,
+ 331,330,331,0,1,0,1,0,1,0,1,0,1,39,40,141,
+ 142,221,222,279,280,289,264,6,46,311,312,311,312,311,312,247,
+ 248,271,272,294,295,294,295,39,40,39,40,39,40,39,40,6,
+ 46,311,312,311,312,311,312,311,312,39,40,351,352,351,352,351,
+ 352,351,352,351,352,351,352,285,286,294,295,297,298,311,312,245,
+ 246,294,295,6,46,311,312,294,295,294,295,39,40,39,40,6,
+ 46,311,312,285,286,311,312,39,40,
+};
+
+typedef struct { unsigned short name; unsigned char colour; unsigned short roff, rlen; } Day;
+static const Day days[] = {
+ {0,1,0,2},
+ {1,1,2,2},
+ {2,1,4,2},
+ {3,1,6,2},
+ {4,1,8,2},
+ {5,1,10,2},
+ {6,0,12,2},
+ {7,0,14,2},
+ {8,0,16,2},
+ {9,0,18,2},
+ {10,0,20,2},
+ {11,0,22,2},
+ {12,1,24,2},
+ {13,1,26,2},
+ {14,1,28,2},
+ {15,2,30,2},
+ {16,1,32,1},
+ {17,0,33,2},
+ {18,0,35,2},
+ {19,2,37,2},
+ {20,2,39,2},
+ {21,2,41,2},
+ {22,1,43,2},
+ {23,2,45,2},
+ {24,1,47,2},
+ {25,0,49,2},
+ {26,1,51,2},
+ {27,1,53,2},
+ {28,1,55,2},
+ {29,2,57,2},
+ {30,1,59,2},
+ {31,2,61,2},
+ {32,1,63,2},
+ {33,0,65,2},
+ {34,1,67,2},
+ {35,2,69,2},
+ {36,1,71,2},
+ {37,1,73,1},
+ {38,1,74,2},
+ {39,0,76,2},
+ {40,1,78,2},
+ {41,1,80,1},
+ {42,1,81,1},
+ {43,0,82,2},
+ {44,0,84,2},
+ {45,0,86,2},
+ {46,3,88,2},
+ {47,3,90,2},
+ {48,3,92,2},
+ {49,3,94,2},
+ {50,3,96,2},
+ {51,3,98,2},
+ {52,1,100,2},
+ {53,3,102,2},
+ {54,2,104,2},
+ {55,3,106,2},
+ {56,3,108,2},
+ {57,1,110,2},
+ {58,3,112,2},
+ {59,3,114,2},
+ {60,3,116,2},
+ {61,3,118,2},
+ {62,1,120,2},
+ {63,3,122,2},
+ {64,3,124,2},
+ {65,3,126,2},
+ {66,3,128,2},
+ {67,3,130,2},
+ {68,3,132,1},
+ {69,3,133,2},
+ {70,3,135,1},
+ {71,3,136,1},
+ {72,3,137,1},
+ {73,3,138,2},
+ {74,3,140,2},
+ {75,3,142,2},
+ {76,3,144,1},
+ {77,1,145,1},
+ {78,3,146,2},
+ {79,3,148,2},
+ {80,3,150,2},
+ {81,3,152,2},
+ {82,3,154,1},
+ {83,1,155,2},
+ {84,3,157,2},
+ {85,3,159,2},
+ {86,3,161,2},
+ {87,3,163,2},
+ {88,3,165,2},
+ {89,3,167,1},
+ {90,3,168,2},
+ {91,3,170,2},
+ {92,3,172,1},
+ {93,3,173,1},
+ {94,3,174,2},
+ {95,3,176,2},
+ {96,3,178,1},
+ {97,3,179,2},
+ {98,3,181,2},
+ {99,3,183,2},
+ {100,3,185,2},
+ {101,3,187,2},
+ {102,3,189,2},
+ {103,1,191,2},
+ {104,1,193,2},
+ {105,1,195,2},
+ {106,1,197,2},
+ {107,1,199,2},
+ {108,1,201,2},
+ {109,1,203,2},
+ {110,1,205,2},
+ {111,1,207,2},
+ {112,2,209,2},
+ {113,1,211,2},
+ {114,1,213,2},
+ {115,1,215,2},
+ {116,1,217,1},
+ {117,1,218,2},
+ {118,1,220,2},
+ {119,1,222,2},
+ {120,2,224,2},
+ {121,1,226,2},
+ {122,1,228,1},
+ {123,1,229,2},
+ {124,1,231,2},
+ {125,2,233,2},
+ {126,1,235,2},
+ {127,1,237,2},
+ {128,1,239,2},
+ {129,1,241,2},
+ {130,1,243,2},
+ {131,1,245,2},
+ {132,1,247,2},
+ {133,1,249,2},
+ {134,1,251,2},
+ {135,1,253,2},
+ {136,1,255,2},
+ {137,1,257,1},
+ {138,1,258,2},
+ {139,1,260,2},
+ {140,1,262,2},
+ {141,1,264,2},
+ {142,1,266,2},
+ {143,1,268,2},
+ {144,1,270,1},
+ {145,1,271,2},
+ {146,1,273,2},
+ {147,1,275,2},
+ {148,1,277,2},
+ {149,2,279,1},
+ {150,1,280,2},
+ {151,2,282,2},
+ {152,2,284,2},
+ {153,2,286,2},
+ {154,2,288,2},
+ {155,2,290,2},
+ {156,2,292,2},
+ {157,2,294,2},
+ {158,2,296,2},
+ {159,1,298,2},
+ {160,0,300,2},
+ {161,1,302,2},
+ {162,2,304,2},
+ {163,1,306,2},
+ {164,0,308,2},
+ {165,1,310,2},
+ {166,0,312,2},
+ {167,3,314,2},
+ {168,1,316,2},
+ {169,1,318,1},
+ {170,2,319,1},
+ {171,1,320,2},
+ {172,3,322,2},
+ {173,2,324,2},
+ {174,2,326,2},
+ {175,2,328,2},
+ {176,1,330,2},
+ {177,2,332,2},
+ {178,0,334,2},
+ {179,1,336,2},
+ {180,0,338,2},
+ {181,1,340,2},
+ {182,1,342,2},
+ {183,0,344,2},
+ {184,2,346,2},
+ {185,0,348,2},
+ {186,2,350,1},
+ {187,0,351,2},
+ {188,1,353,2},
+ {189,1,355,2},
+ {190,0,357,2},
+ {191,0,359,2},
+ {192,2,361,2},
+ {193,1,363,2},
+ {194,0,365,2},
+ {195,1,367,2},
+ {196,1,369,2},
+ {197,1,371,2},
+ {198,0,373,2},
+ {199,2,375,2},
+ {200,1,377,2},
+ {201,0,379,2},
+ {202,2,381,2},
+ {203,2,383,2},
+ {204,0,385,2},
+ {205,1,387,2},
+ {206,0,389,2},
+ {207,2,391,2},
+ {208,0,393,2},
+ {209,1,395,2},
+ {210,1,397,1},
+ {211,1,398,2},
+ {212,1,400,2},
+ {213,1,402,2},
+ {214,2,404,1},
+ {215,0,405,2},
+ {216,0,407,2},
+ {217,1,409,2},
+ {218,0,411,2},
+ {219,1,413,2},
+ {220,1,415,2},
+ {221,1,417,2},
+ {222,0,419,2},
+ {223,0,421,2},
+ {224,1,423,2},
+ {225,1,425,1},
+ {226,1,426,2},
+ {227,1,428,2},
+ {228,1,430,2},
+ {229,0,432,2},
+ {230,1,434,2},
+ {231,0,436,2},
+ {232,1,438,2},
+ {233,2,440,2},
+ {234,2,442,2},
+ {235,2,444,2},
+ {236,0,446,2},
+ {237,0,448,2},
+ {238,1,450,2},
+ {239,1,452,2},
+ {240,0,454,2},
+ {241,1,456,2},
+ {242,0,458,2},
+ {243,0,460,2},
+ {244,1,462,2},
+ {245,0,464,2},
+ {246,1,466,2},
+ {247,0,468,2},
+ {248,1,470,2},
+ {249,0,472,2},
+ {250,2,474,2},
+ {251,1,476,2},
+ {252,2,478,2},
+ {253,0,480,2},
+ {254,1,482,2},
+ {255,2,484,2},
+ {256,0,486,2},
+ {257,0,488,2},
+ {258,1,490,2},
+ {259,2,492,2},
+ {260,3,494,1},
+ {261,0,495,2},
+ {262,3,497,1},
+ {263,3,498,2},
+ {264,0,500,2},
+ {265,1,502,2},
+ {266,1,504,2},
+ {267,0,506,2},
+ {268,1,508,2},
+ {269,1,510,2},
+ {270,1,512,2},
+ {271,0,514,2},
+ {272,1,516,2},
+ {273,1,518,2},
+ {274,1,520,2},
+ {275,1,522,2},
+ {276,1,524,1},
+ {277,1,525,2},
+ {278,0,527,2},
+ {279,1,529,2},
+ {280,2,531,2},
+ {281,1,533,2},
+ {282,1,535,2},
+ {283,1,537,2},
+ {284,2,539,2},
+ {285,0,541,2},
+ {286,1,543,2},
+ {287,0,545,2},
+ {288,0,547,2},
+ {289,1,549,2},
+ {290,1,551,2},
+ {291,0,553,2},
+ {292,1,555,2},
+ {293,0,557,2},
+ {294,2,559,2},
+ {295,0,561,2},
+ {296,0,563,2},
+ {297,0,565,2},
+ {298,1,567,1},
+ {299,0,568,2},
+ {300,5,570,2},
+ {301,1,572,2},
+ {302,0,574,2},
+ {303,0,576,2},
+ {304,0,578,2},
+ {305,0,580,2},
+ {306,1,582,2},
+ {307,1,584,2},
+ {308,1,586,2},
+ {309,2,588,2},
+ {310,0,590,2},
+ {311,1,592,2},
+ {312,1,594,2},
+ {313,0,596,2},
+ {314,1,598,2},
+ {315,1,600,2},
+ {316,1,602,2},
+ {317,1,604,2},
+ {318,1,606,1},
+ {319,2,607,2},
+ {320,0,609,2},
+ {321,1,611,2},
+ {322,2,613,2},
+ {323,1,615,1},
+ {324,0,616,2},
+ {325,0,618,2},
+ {326,0,620,2},
+ {327,3,622,2},
+ {328,3,624,2},
+ {329,2,626,2},
+ {330,1,628,2},
+ {331,1,630,2},
+ {332,3,632,2},
+ {333,1,634,2},
+ {334,3,636,2},
+ {335,1,638,2},
+ {336,3,640,2},
+ {337,3,642,2},
+ {338,1,644,2},
+ {339,3,646,2},
+ {340,2,648,2},
+ {341,3,650,2},
+ {342,3,652,2},
+ {343,2,654,2},
+ {344,3,656,2},
+ {345,3,658,2},
+ {346,3,660,2},
+ {347,3,662,2},
+ {348,3,664,2},
+ {349,3,666,2},
+ {350,3,668,2},
+ {351,3,670,2},
+ {352,1,672,2},
+ {353,2,674,2},
+ {354,1,676,1},
+ {355,1,677,2},
+ {356,1,679,2},
+ {357,1,681,2},
+ {358,0,683,2},
+ {359,0,685,2},
+ {360,2,687,2},
+ {361,1,689,2},
+ {362,3,691,2},
+ {363,3,693,2},
+ {364,3,695,1},
+ {365,2,696,2},
+ {366,2,698,2},
+ {367,1,700,2},
+ {368,1,702,2},
+ {369,1,704,2},
+ {370,1,706,2},
+ {371,1,708,2},
+ {372,2,710,2},
+ {373,2,712,2},
+ {374,2,714,2},
+ {375,1,716,2},
+ {376,1,718,2},
+ {377,2,720,2},
+ {378,1,722,1},
+ {379,2,723,2},
+ {380,1,725,2},
+ {381,1,727,2},
+ {382,1,729,2},
+ {383,0,731,2},
+ {384,0,733,2},
+ {385,0,735,2},
+ {386,0,737,2},
+ {387,1,739,2},
+ {388,2,741,2},
+ {389,1,743,2},
+ {390,0,745,2},
+ {391,0,747,2},
+ {392,0,749,2},
+ {393,2,751,2},
+ {394,0,753,2},
+ {395,1,755,2},
+ {396,0,757,2},
+ {397,0,759,2},
+ {398,0,761,2},
+ {399,0,763,2},
+ {400,0,765,2},
+ {401,0,767,2},
+ {402,2,769,2},
+ {403,0,771,2},
+ {404,0,773,2},
+ {405,0,775,2},
+ {406,2,777,2},
+ {407,0,779,2},
+ {408,1,781,2},
+ {409,0,783,2},
+ {410,2,785,2},
+ {411,0,787,2},
+ {412,0,789,2},
+ {413,1,791,2},
+ {414,0,793,2},
+ {415,0,795,2},
+ {416,0,797,2},
+ {417,0,799,2},
+ {418,0,801,2},
+ {419,0,803,2},
+ {420,2,805,2},
+ {421,0,807,2},
+ {422,2,809,2},
+ {423,0,811,2},
+ {424,0,813,2},
+ {425,0,815,2},
+ {293,0,817,2},
+ {426,1,819,2},
+ {427,0,821,2},
+ {428,0,823,2},
+ {310,0,825,2},
+ {429,0,827,2},
+ {430,0,829,2},
+ {431,0,831,2},
+ {432,0,833,2},
+ {433,0,835,2},
+ {434,0,837,2},
+ {325,0,839,2},
+ {435,0,841,2},
+ {436,1,843,2},
+ {437,2,845,2},
+ {438,0,847,2},
+ {439,0,849,2},
+ {440,2,851,2},
+ {441,3,853,2},
+ {442,3,855,2},
+ {443,1,857,2},
+ {444,3,859,2},
+ {445,3,861,2},
+ {446,3,863,2},
+ {447,2,865,2},
+ {448,3,867,2},
+ {449,2,869,1},
+ {6,0,870,2},
+ {450,0,872,2},
+ {451,1,874,2},
+ {452,1,876,2},
+ {453,1,878,1},
+ {454,1,879,2},
+ {455,1,881,2},
+ {456,2,883,2},
+ {457,1,885,2},
+ {458,1,887,2},
+ {459,1,889,2},
+ {460,1,891,2},
+ {461,0,893,2},
+ {462,0,895,2},
+ {463,0,897,2},
+ {464,2,899,2},
+ {465,1,901,2},
+ {466,0,903,2},
+ {467,0,905,2},
+ {468,0,907,2},
+ {469,0,909,2},
+ {470,0,911,2},
+ {471,0,913,2},
+ {472,0,915,2},
+ {473,0,917,2},
+ {474,0,919,2},
+ {475,0,921,2},
+ {476,0,923,2},
+ {477,0,925,2},
+ {478,0,927,2},
+ {479,0,929,2},
+ {480,0,931,2},
+ {481,0,933,2},
+ {482,2,935,2},
+ {483,0,937,2},
+ {484,0,939,2},
+ {485,0,941,2},
+ {486,0,943,2},
+ {429,0,945,2},
+ {487,0,947,2},
+ {488,0,949,2},
+ {489,0,951,2},
+ {325,0,953,2},
+ {326,0,955,2},
+ {490,0,957,2},
+ {491,0,959,2},
+ {492,0,961,2},
+ {493,3,963,2},
+ {494,3,965,2},
+ {7,0,967,2},
+ {495,0,969,2},
+ {496,0,971,2},
+ {497,0,973,2},
+ {498,3,975,2},
+ {499,3,977,2},
+ {500,1,979,2},
+ {501,1,981,2},
+ {502,1,983,2},
+ {503,1,985,2},
+ {504,0,987,2},
+ {505,0,989,2},
+ {506,0,991,2},
+ {507,0,993,2},
+ {508,0,995,2},
+ {509,0,997,2},
+ {510,0,999,2},
+ {295,0,1001,2},
+ {296,0,1003,2},
+ {297,0,1005,2},
+ {511,0,1007,2},
+ {485,0,1009,2},
+ {304,0,1011,2},
+ {427,0,1013,2},
+ {428,0,1015,2},
+ {512,0,1017,2},
+ {490,0,1019,2},
+ {513,0,1021,2},
+ {514,0,1023,2},
+ {515,0,1025,2},
+ {2,1,1027,2},
+ {3,1,1029,2},
+ {8,0,1031,2},
+ {9,0,1033,2},
+ {516,0,1035,2},
+ {517,0,1037,2},
+ {518,1,1039,2},
+ {519,1,1041,2},
+ {520,0,1043,2},
+ {521,0,1045,2},
+ {522,0,1047,2},
+ {523,0,1049,2},
+ {524,0,1051,2},
+ {525,0,1053,2},
+ {526,0,1055,2},
+ {527,0,1057,2},
+ {528,0,1059,2},
+ {529,0,1061,2},
+ {430,0,1063,2},
+ {487,0,1065,2},
+ {431,0,1067,2},
+ {488,0,1069,2},
+ {434,0,1071,2},
+ {530,0,1073,2},
+ {531,0,1075,2},
+ {489,0,1077,2},
+ {324,0,1079,2},
+ {513,0,1081,2},
+ {532,0,1083,2},
+ {533,0,1085,2},
+ {534,0,1087,2},
+ {535,3,1089,2},
+ {358,0,1091,2},
+ {6,0,1093,2},
+ {7,0,1095,2},
+ {8,0,1097,2},
+ {9,0,1099,2},
+ {10,0,1101,2},
+ {17,0,1103,2},
+ {536,0,1105,2},
+ {43,0,1107,2},
+ {44,0,1109,2},
+ {45,0,1111,2},
+ {537,3,1113,2},
+ {538,1,1115,2},
+ {539,0,1117,2},
+ {540,0,1119,2},
+ {541,0,1121,2},
+ {542,0,1123,2},
+ {543,0,1125,2},
+ {484,0,1127,2},
+ {489,0,1129,2},
+ {544,3,1131,2},
+ {545,0,1133,2},
+ {546,0,1135,2},
+ {547,0,1137,2},
+ {548,0,1139,2},
+ {302,0,1141,2},
+ {303,0,1143,2},
+ {549,0,1145,2},
+ {491,0,1147,2},
+ {550,1,1149,2},
+ {551,1,1151,2},
+ {552,0,1153,2},
+ {553,0,1155,2},
+ {554,0,1157,2},
+ {555,0,1159,2},
+ {305,0,1161,2},
+ {556,3,1163,2},
+ {1,1,1165,2},
+ {2,1,1167,2},
+ {3,1,1169,2},
+ {355,1,1171,2},
+ {356,1,1173,2},
+ {357,1,1175,2},
+ {1,1,1177,2},
+ {10,0,1179,2},
+ {557,0,1181,2},
+ {558,1,1183,2},
+ {559,0,1185,2},
+ {560,0,1187,2},
+ {561,0,1189,2},
+ {530,0,1191,2},
+ {562,0,1193,2},
+ {563,0,1195,2},
+ {564,0,1197,2},
+ {565,0,1199,2},
+ {566,0,1201,2},
+ {530,0,1203,2},
+ {531,0,1205,2},
+ {490,0,1207,2},
+ {513,0,1209,2},
+ {514,0,1211,2},
+ {549,0,1213,2},
+ {563,0,1215,2},
+ {567,0,1217,2},
+ {568,0,1219,2},
+ {569,0,1221,2},
+ {570,0,1223,2},
+ {571,0,1225,2},
+ {572,0,1227,2},
+ {573,0,1229,2},
+ {574,0,1231,2},
+ {575,0,1233,2},
+ {576,0,1235,2},
+ {577,0,1237,2},
+ {578,0,1239,2},
+ {548,0,1241,2},
+ {511,0,1243,2},
+ {434,0,1245,2},
+ {579,0,1247,2},
+ {512,0,1249,2},
+ {324,0,1251,2},
+ {580,0,1253,2},
+ {432,0,1255,2},
+ {433,0,1257,2},
+ {325,0,1259,2},
+ {326,0,1261,2},
+ {515,0,1263,2},
+ {581,0,1265,2},
+ {582,0,1267,2},
+ {583,0,1269,2},
+ {584,0,1271,2},
+};
+
+static const unsigned short cal[NDAYS] = {
+ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
+ 32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
+ 48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,
+ 64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,
+ 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,
+ 96,97,98,99,100,101,102,96,97,98,99,100,101,103,104,105,
+ 106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,
+ 122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,
+ 138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,
+ 154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,
+ 170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,
+ 186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,
+ 202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,
+ 218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,
+ 234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,
+ 250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,
+ 266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,
+ 282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,
+ 298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,
+ 314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,
+ 330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,
+ 346,347,348,349,350,351,352,353,354,4,355,356,357,0,2,3,
+ 4,355,5,7,8,9,10,11,358,12,13,14,15,16,18,359,
+ 19,20,21,22,23,25,360,26,27,28,29,30,46,32,48,34,
+ 35,36,37,53,361,40,41,42,58,59,60,61,362,63,64,65,
+ 66,67,68,54,70,71,72,73,74,75,76,363,78,79,80,81,
+ 82,364,84,85,86,87,88,89,90,91,77,93,94,95,96,97,
+ 83,99,100,101,102,96,97,98,99,100,101,103,104,105,106,107,
+ 108,109,110,365,366,367,368,369,116,117,370,371,372,121,373,374,
+ 124,375,111,112,113,114,115,131,376,118,134,120,136,122,138,377,
+ 125,141,142,128,378,145,379,132,133,380,381,151,152,153,154,155,
+ 156,157,158,159,382,383,384,163,149,150,166,385,386,387,388,171,
+ 389,390,391,392,161,162,393,394,180,395,167,168,169,170,396,187,
+ 173,174,175,176,177,397,194,398,181,182,198,184,399,201,400,188,
+ 189,401,206,192,208,402,195,196,197,403,199,215,216,202,203,404,
+ 205,405,222,223,209,210,211,212,213,229,406,231,217,407,219,220,
+ 236,408,409,224,225,226,227,243,410,230,411,232,233,234,412,413,
+ 414,238,239,415,241,257,416,244,417,246,418,248,264,250,251,252,
+ 419,254,255,271,420,258,260,421,262,263,278,422,265,266,423,268,
+ 269,285,424,272,273,274,275,276,425,426,279,280,281,282,283,299,
+ 427,286,302,303,289,290,292,428,429,294,430,431,432,298,300,433,
+ 301,434,435,436,39,306,307,308,309,437,311,438,439,314,315,316,
+ 317,318,320,440,321,322,323,441,442,327,443,444,329,330,331,445,
+ 334,446,335,337,447,338,448,341,342,449,344,345,346,347,348,450,
+ 350,451,351,352,353,4,452,356,357,1,0,3,4,355,356,5,
+ 8,9,10,11,358,453,12,13,14,15,18,359,454,19,20,21,
+ 22,46,24,360,26,27,28,29,53,31,32,56,34,35,36,60,
+ 38,361,63,64,65,66,67,68,69,70,71,72,73,74,52,76,
+ 54,78,79,80,81,82,364,84,85,86,87,88,89,90,91,92,
+ 93,94,95,96,97,98,99,77,101,102,96,97,98,99,100,101,
+ 103,104,105,106,107,108,109,110,83,455,367,368,369,116,117,370,
+ 365,366,121,456,457,124,458,459,371,372,129,373,131,460,375,111,
+ 112,113,114,138,461,376,141,142,120,378,145,123,377,125,126,381,
+ 151,152,153,154,155,156,157,158,159,160,462,139,163,463,464,166,
+ 144,382,465,466,171,149,390,391,392,467,387,388,468,180,469,470,
+ 183,161,162,393,187,165,395,167,168,169,170,194,172,173,174,175,
+ 176,177,201,179,471,181,182,206,184,208,186,472,188,189,403,473,
+ 215,193,402,195,196,197,405,222,200,474,202,203,475,205,229,207,
+ 231,209,210,211,212,236,214,406,476,217,477,219,220,221,408,411,
+ 224,225,226,412,228,410,230,478,232,233,257,235,413,417,238,239,
+ 479,264,480,481,244,419,246,482,271,483,250,251,252,484,254,278,
+ 485,420,260,259,262,263,285,486,422,265,266,487,268,425,270,488,
+ 272,273,274,275,299,277,489,279,280,281,282,490,284,427,286,310,
+ 491,289,313,492,433,493,294,435,436,292,298,300,494,301,495,496,
+ 39,497,306,307,308,309,498,438,312,439,314,315,316,317,320,319,
+ 440,321,322,323,499,327,328,443,500,329,330,331,334,333,446,335,
+ 447,339,338,341,340,449,344,343,346,347,348,349,450,451,501,351,
+ 352,4,354,452,357,1,2,0,4,355,356,357,5,9,10,11,
+ 358,453,502,12,13,14,18,16,454,503,19,20,21,25,23,24,
+ 360,26,27,28,504,30,31,32,505,34,35,39,37,38,361,40,
+ 41,42,46,47,48,49,50,51,506,53,507,52,508,54,58,59,
+ 60,61,362,63,64,65,66,67,68,69,70,71,72,73,74,75,
+ 76,363,78,79,80,77,82,364,84,85,86,83,88,89,90,91,
+ 92,93,94,95,96,97,98,99,100,101,102,96,97,98,99,100,
+ 101,103,104,105,106,107,108,109,110,373,374,460,375,111,112,117,
+ 114,115,509,376,118,457,124,458,122,123,377,125,126,131,128,510,
+ 130,379,132,133,138,461,511,141,142,139,140,145,464,147,144,382,
+ 381,151,152,153,154,155,156,157,158,159,468,389,469,163,164,161,
+ 166,393,386,165,395,171,168,390,170,392,172,173,174,175,180,177,
+ 470,179,512,181,182,187,184,513,186,191,188,189,194,398,192,193,
+ 402,195,196,201,400,199,200,401,202,203,208,205,472,207,514,209,
+ 210,211,212,213,214,406,515,217,222,219,220,221,408,475,224,229,
+ 226,227,228,410,230,516,236,233,234,235,413,477,238,243,517,241,
+ 411,247,244,249,412,518,248,253,250,251,252,257,254,255,260,420,
+ 262,263,264,480,481,486,422,265,266,271,268,269,270,421,272,273,
+ 278,275,276,277,423,279,280,285,282,283,284,427,286,291,425,289,
+ 290,519,520,521,294,292,522,523,298,300,524,301,490,525,526,527,
+ 306,307,308,313,492,311,312,439,314,315,438,317,318,319,440,321,
+ 322,320,528,529,530,443,531,329,327,331,444,333,446,335,445,334,
+ 338,336,340,447,339,343,341,342,449,344,450,346,347,351,352,353,
+ 354,452,532,533,4,0,356,357,1,2,5,11,358,453,502,534,
+ 535,12,18,14,15,16,536,537,19,25,21,22,23,24,360,26,
+ 46,28,29,30,31,32,506,53,35,36,37,38,361,40,60,42,
+ 362,63,64,65,66,67,68,69,70,52,72,54,74,75,76,363,
+ 78,79,80,81,82,364,84,85,86,87,88,89,90,91,92,93,
+ 94,95,77,97,98,99,100,101,102,96,97,98,99,100,101,103,
+ 104,105,106,107,108,109,110,83,455,538,368,365,366,117,370,119,
+ 509,121,456,371,124,458,373,374,460,375,111,131,113,114,115,135,
+ 376,118,138,120,511,141,142,377,125,145,146,128,539,130,379,151,
+ 152,153,154,155,156,157,158,159,463,464,384,163,382,540,166,148,
+ 149,150,466,171,541,390,388,468,389,469,178,394,180,162,393,183,
+ 165,395,167,168,169,170,190,172,173,174,175,176,177,542,179,543,
+ 181,201,400,184,204,186,206,188,208,544,472,192,193,402,195,215,
+ 197,545,199,200,515,202,222,223,205,546,207,475,209,229,211,212,
+ 213,214,406,516,236,237,219,220,221,408,242,243,225,226,227,228,
+ 410,230,412,232,233,234,235,413,256,257,239,547,241,261,418,244,
+ 264,246,481,248,419,250,251,271,483,254,260,421,262,263,278,485,
+ 548,549,486,422,265,285,424,268,269,270,487,272,425,274,275,276,
+ 277,521,279,299,281,282,283,284,427,286,490,525,289,290,310,491,
+ 550,292,551,552,553,298,300,554,504,555,556,557,558,306,307,39,
+ 309,559,311,312,439,314,438,316,317,318,319,440,321,320,323,560,
+ 561,562,443,499,327,330,331,500,333,446,335,334,563,338,337,340,
+ 339,448,341,342,449,344,345,346,347,348,351,352,353,354,452,533,
+ 4,355,0,357,1,2,3,5,564,565,566,567,568,569,18,13,
+ 14,15,16,537,570,25,20,21,22,23,24,360,504,27,28,29,
+ 30,31,32,39,34,35,36,37,38,361,438,41,42,571,572,573,
+ 574,46,47,48,49,50,52,508,53,507,55,57,575,58,59,60,
+ 62,362,63,64,65,66,67,68,69,70,71,72,73,74,75,77,
+ 363,78,79,80,81,83,364,84,85,86,87,88,89,90,91,92,
+ 93,94,95,96,97,98,99,100,101,102,96,97,98,99,100,101,
+ 103,104,105,106,107,108,109,110,112,113,114,115,369,376,117,370,
+ 120,509,122,123,377,124,126,459,128,576,130,379,131,133,510,134,
+ 135,136,462,138,140,463,141,142,144,382,145,146,148,149,150,381,
+ 151,152,153,154,155,156,157,158,159,161,162,393,163,165,395,166,
+ 168,169,170,466,171,173,390,175,176,177,577,179,394,180,182,470,
+ 184,512,186,396,187,189,513,190,192,193,402,194,196,197,542,199,
+ 200,399,201,203,471,205,401,207,578,208,210,211,212,213,214,406,
+ 215,217,545,219,220,221,408,222,224,225,226,227,228,410,229,579,
+ 232,233,234,235,413,236,238,239,476,241,477,242,243,517,246,411,
+ 248,580,250,412,252,414,260,255,262,263,257,259,547,417,261,486,
+ 422,265,266,481,268,269,270,482,271,273,274,275,276,277,581,278,
+ 280,281,282,283,284,427,285,424,287,289,290,487,291,292,294,582,
+ 295,296,298,300,299,301,489,302,303,304,306,490,308,309,527,311,
+ 312,439,313,315,316,317,318,319,440,320,322,323,583,324,325,443,
+ 327,329,330,331,584,333,446,335,563,336,338,447,340,448,341,343,
+ 449,344,345,346,347,348,349,351,352,353,354,452,4,355,356,0,
+ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
+ 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,
+ 33,34,35,36,37,38,46,40,41,42,50,51,506,53,507,55,
+ 56,575,58,52,60,54,362,63,64,65,66,67,68,69,70,71,
+ 72,73,74,75,76,363,78,79,80,81,82,364,77,85,86,87,
+ 88,89,83,91,92,93,94,95,96,97,98,99,100,101,102,96,
+ 97,98,99,100,101,103,104,105,106,107,108,109,110,371,372,367,
+ 373,374,460,117,111,112,113,114,115,457,124,118,459,120,576,122,
+ 123,131,125,126,134,128,136,130,138,132,133,141,142,143,378,145,
+ 139,140,463,464,381,151,152,153,154,155,156,157,158,159,160,387,
+ 388,163,389,469,166,385,161,162,393,171,165,390,167,168,169,170,
+ 178,172,173,174,175,176,177,185,179,187,181,182,190,184,585,186,
+ 194,188,189,542,198,192,193,201,195,196,197,401,199,200,208,202,
+ 203,586,205,403,207,215,209,210,211,212,213,214,222,223,217,546,
+ 219,220,221,229,579,224,225,226,227,228,236,230,409,232,233,234,
+ 235,243,517,238,239,247,241,249,412,244,414,246,478,248,256,250,
+ 251,252,417,254,255,479,264,258,259,260,419,262,263,271,265,266,
+ 587,268,269,270,278,272,273,274,275,276,277,285,279,280,281,282,
+ 283,284,425,286,488,519,289,290,588,292,522,294,589,590,524,298,
+ 490,300,301,527,310,491,550,306,307,308,309,434,311,312,438,314,
+ 315,316,317,318,319,320,321,322,323,591,531,592,327,328,329,330,
+ 331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,
+ 347,348,349,350,351,352,353,354,4,355,356,357,0,2,3,4,
+ 355,5,7,8,9,10,11,358,12,13,14,15,16,18,359,19,
+ 20,21,22,23,46,360,26,27,28,29,30,53,32,55,34,35,
+ 36,37,60,361,40,63,64,65,66,67,68,69,70,71,72,73,
+ 74,75,54,363,78,79,80,81,82,364,84,85,86,87,88,89,
+ 90,91,92,93,94,95,96,97,98,99,77,101,102,96,97,98,
+ 99,100,101,103,104,105,106,107,108,109,110,83,455,367,368,369,
+ 116,117,370,365,366,121,456,457,124,458,459,371,372,129,373,131,
+ 460,375,111,112,113,114,138,461,376,141,142,120,378,145,123,377,
+ 125,126,381,151,152,153,154,155,156,157,158,159,160,462,139,163,
+ 463,464,166,144,382,465,466,171,149,390,391,392,467,387,388,468,
+ 180,469,470,183,161,162,393,187,165,395,167,168,169,170,194,172,
+ 173,174,175,176,177,201,179,471,181,182,206,184,208,186,472,188,
+ 189,403,473,215,193,402,195,196,197,405,222,200,474,202,203,475,
+ 205,229,207,231,209,210,211,212,236,214,406,476,217,477,219,220,
+ 221,408,411,224,225,226,412,228,410,230,478,232,233,257,235,413,
+ 417,238,239,479,264,480,481,244,419,246,482,271,483,250,251,252,
+ 484,254,278,485,420,260,259,262,263,285,486,422,265,266,487,268,
+ 425,270,488,272,273,274,275,299,277,489,279,280,281,282,490,284,
+ 427,286,310,491,289,313,492,433,493,294,435,436,292,298,300,494,
+ 301,495,496,39,497,306,307,308,309,498,438,312,439,314,315,316,
+ 317,320,319,440,321,322,323,499,327,328,443,500,329,330,331,334,
+ 333,446,335,447,339,338,341,340,449,344,343,346,347,348,349,450,
+ 451,501,351,352,4,354,452,357,1,2,0,4,355,356,357,5,
+ 9,10,11,358,453,502,12,13,14,18,16,454,503,19,20,21,
+ 25,23,24,360,26,27,28,504,30,31,32,505,34,35,39,37,
+ 38,361,40,41,42,46,47,48,49,50,51,506,53,507,52,508,
+ 54,58,59,60,61,362,63,64,65,66,67,68,69,70,71,72,
+ 73,74,75,76,363,78,79,77,81,82,364,84,85,83,87,88,
+ 89,90,91,92,93,94,95,96,97,98,99,100,101,102,96,97,
+ 98,99,100,101,103,104,105,106,107,108,109,110,374,460,375,111,
+ 112,113,114,115,119,376,118,456,120,124,122,123,377,125,126,593,
+ 131,594,130,379,132,133,137,138,461,511,141,142,140,463,145,146,
+ 144,382,380,381,151,152,153,154,155,156,157,158,159,389,469,384,
+ 163,161,162,166,385,165,395,167,171,168,390,391,172,173,174,175,
+ 176,180,595,179,183,181,182,396,187,596,186,190,188,189,397,194,
+ 192,193,402,195,196,197,201,199,200,204,202,203,578,208,544,207,
+ 586,209,210,211,215,213,214,406,404,217,405,222,220,221,408,597,
+ 224,225,229,227,228,410,230,598,232,236,234,235,413,240,238,239,
+ 243,241,245,411,244,580,246,412,248,414,250,251,252,256,257,255,
+ 547,260,258,262,263,264,480,486,422,265,266,482,271,269,270,587,
+ 272,273,274,278,276,277,549,279,280,281,285,283,284,427,286,487,
+ 291,425,290,488,519,520,294,588,292,522,298,300,590,301,599,490,
+ 525,526,306,307,308,309,313,311,312,439,314,315,316,320,318,319,
+ 440,321,322,323,327,328,444,443,584,329,330,334,563,333,446,335,
+ 339,448,341,342,340,344,345,346,347,348,349,350,450,501,600,351,
+ 352,353,354,452,601,602,603,0,604,605,606,607,5,608,11,358,
+ 453,502,534,12,13,18,15,16,503,536,19,20,25,22,23,24,
+ 360,26,27,504,29,30,31,32,609,34,46,36,37,38,361,40,
+ 41,53,507,55,56,575,58,59,60,61,362,63,64,54,66,67,
+ 68,69,70,71,72,73,74,75,76,363,78,79,80,81,82,364,
+ 84,85,86,87,77,89,90,91,92,93,83,95,96,97,98,99,
+ 100,101,102,96,97,98,99,100,101,103,104,105,106,107,108,109,
+ 110,610,455,367,368,371,372,117,373,374,460,375,111,112,124,114,
+ 115,127,376,118,593,131,594,122,123,377,125,126,138,128,511,141,
+ 142,132,133,145,146,147,539,462,139,151,152,153,154,155,156,157,
+ 158,159,149,150,384,163,164,387,166,468,389,469,466,171,161,390,
+ 393,392,165,395,167,168,180,170,470,172,173,174,175,187,177,513,
+ 179,191,181,182,194,184,611,186,198,188,189,201,400,192,193,402,
+ 195,196,208,544,199,200,514,202,203,215,205,545,207,404,209,210,
+ 211,212,213,214,406,475,217,229,219,220,221,408,598,224,236,226,
+ 227,228,410,230,242,243,233,234,235,413,580,238,412,518,241,253,
+ 478,244,256,257,416,248,417,250,251,252,264,254,255,260,420,262,
+ 263,271,483,612,486,422,265,266,278,268,269,270,423,272,273,285,
+ 275,276,277,613,279,280,425,282,283,284,427,286,588,299,289,290,
+ 302,303,304,294,292,428,429,298,300,431,301,313,492,433,493,306,
+ 307,308,39,614,311,312,439,314,315,438,317,318,319,440,321,322,
+ 320,615,616,617,443,441,329,327,331,444,333,446,335,445,334,338,
+ 336,340,447,339,343,341,342,449,344,450,346,347,351,352,353,354,
+ 452,532,533,4,0,356,357,1,2,5,11,358,453,502,534,535,
+ 12,18,14,15,16,536,537,19,46,21,22,23,24,360,26,53,
+ 28,29,30,31,32,59,60,35,36,63,64,65,66,67,68,69,
+ 70,71,72,73,74,75,76,363,52,79,54,81,82,364,84,85,
+ 86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,
+ 102,96,97,98,99,100,101,103,104,105,106,107,108,109,110,83,
+ 455,367,368,369,116,117,370,119,538,121,365,366,124,458,459,127,
+ 576,129,371,131,594,373,374,460,375,111,138,113,114,141,142,376,
+ 118,145,120,147,122,123,377,151,152,153,154,155,156,157,158,159,
+ 160,383,384,163,462,139,166,463,464,465,144,171,541,390,148,149,
+ 150,577,178,394,180,388,468,389,469,185,396,187,162,393,190,165,
+ 395,167,168,169,170,542,172,173,174,175,176,177,204,179,206,181,
+ 208,544,184,586,186,403,188,215,216,545,192,193,402,195,222,197,
+ 474,199,200,475,202,229,579,205,618,207,598,209,236,211,212,213,
+ 214,406,242,243,517,219,220,221,408,249,412,225,226,227,228,410,
+ 230,257,232,233,234,235,413,479,264,239,481,241,419,619,244,271,
+ 246,612,248,421,250,251,278,485,254,260,423,262,263,285,424,287,
+ 288,486,422,265,425,426,268,269,270,521,272,299,274,275,276,277,
+ 304,279,490,281,282,283,284,427,286,313,492,289,290,434,435,436,
+ 292,620,621,494,298,300,496,504,622,623,624,625,306,307,39,309,
+ 626,311,312,439,314,438,316,317,318,319,440,321,320,323,627,628,
+ 629,443,630,327,330,331,500,333,446,335,334,563,338,337,340,339,
+ 448,341,342,449,344,345,346,347,348,351,352,353,354,452,533,4,
+ 355,0,357,1,2,3,5,564,565,566,567,568,569,18,13,14,
+ 15,16,537,570,25,20,21,22,23,24,360,504,27,28,29,30,
+ 31,32,39,34,35,36,37,38,361,46,41,42,49,50,51,506,
+ 53,507,55,56,575,52,508,60,61,362,63,64,65,66,67,68,
+ 69,70,71,72,73,74,75,76,363,78,79,80,81,82,364,77,
+ 85,86,87,88,89,83,91,92,93,94,95,96,97,98,99,100,
+ 101,102,96,97,98,99,100,101,103,104,105,106,107,108,109,110,
+ 371,372,367,373,374,460,117,111,112,113,114,115,457,124,118,459,
+ 120,576,122,123,131,125,126,134,128,136,130,138,132,133,141,142,
+ 143,378,145,139,140,463,464,381,151,152,153,154,155,156,157,158,
+ 159,160,387,388,163,389,469,166,385,161,162,393,171,165,390,167,
+ 168,169,170,178,172,173,174,175,176,177,185,179,187,181,182,190,
+ 184,585,186,194,188,189,542,198,192,193,201,195,196,197,401,199,
+ 200,208,202,203,586,205,403,207,215,209,210,211,212,213,214,222,
+ 223,217,546,219,220,221,229,579,224,225,226,227,228,236,230,409,
+ 232,233,234,235,243,517,238,239,247,241,249,412,244,414,246,478,
+ 248,256,250,251,252,417,254,255,479,264,258,259,260,419,262,263,
+ 271,265,266,587,268,269,270,278,272,273,274,275,276,277,285,279,
+ 280,281,282,283,284,425,286,488,519,289,290,588,292,522,294,589,
+ 590,524,298,490,300,301,527,310,491,550,306,307,308,309,434,311,
+ 312,438,314,315,316,317,318,319,320,321,322,323,591,531,592,327,
+ 328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,
+ 344,345,346,347,348,349,350,351,352,353,354,4,355,356,357,0,
+ 2,3,4,355,5,7,8,9,10,11,358,12,13,14,15,16,
+ 18,359,19,20,21,22,23,25,360,26,27,28,29,30,46,32,
+ 48,34,35,36,37,53,361,40,41,42,58,59,60,61,362,63,
+ 64,65,66,67,68,54,70,71,72,73,74,75,76,363,78,79,
+ 80,81,82,364,84,85,86,87,88,89,90,91,77,93,94,95,
+ 96,97,83,99,100,101,102,96,97,98,99,100,101,103,104,105,
+ 106,107,108,109,110,365,366,367,368,369,116,117,370,371,372,121,
+ 373,374,124,375,111,112,113,114,115,131,376,118,134,120,136,122,
+ 138,377,125,141,142,128,378,145,379,132,133,380,381,151,152,153,
+ 154,155,156,157,158,159,382,383,384,163,149,150,166,385,386,387,
+ 388,171,389,390,391,392,161,162,393,394,180,395,167,168,169,170,
+ 396,187,173,174,175,176,177,397,194,398,181,182,198,184,399,201,
+ 400,188,189,401,206,192,208,402,195,196,197,403,199,215,216,202,
+ 203,404,205,405,222,223,209,210,211,212,213,229,406,231,217,407,
+ 219,220,236,408,409,224,225,226,227,243,410,230,411,232,233,234,
+ 412,413,414,238,239,415,241,257,416,244,417,246,418,248,264,250,
+ 251,252,419,254,255,271,420,258,260,421,262,263,278,422,265,266,
+ 423,268,269,285,424,272,273,274,275,276,425,426,279,280,281,282,
+ 283,299,427,286,302,303,289,290,292,428,429,294,430,431,432,298,
+ 300,433,301,434,435,436,39,306,307,308,309,437,311,438,439,314,
+ 315,316,317,318,320,440,321,322,323,441,442,327,443,444,329,330,
+ 331,445,334,446,335,337,447,338,448,341,342,449,344,345,346,347,
+ 348,450,350,451,351,352,353,4,452,356,357,1,0,3,4,355,
+ 356,5,8,9,10,11,358,453,12,13,14,15,18,359,454,19,
+ 20,21,22,25,24,360,26,27,28,29,504,31,32,631,34,35,
+ 36,39,38,361,40,41,42,45,438,632,633,634,635,636,637,46,
+ 52,508,54,50,51,57,53,507,55,56,62,58,59,60,61,362,
+ 63,64,65,66,67,68,69,70,71,77,73,74,75,76,363,83,
+ 79,80,81,82,364,84,85,86,87,88,89,90,91,92,93,94,
+ 95,96,97,98,99,100,101,102,96,97,98,99,100,101,103,104,
+ 105,106,107,108,109,110,114,376,118,368,120,116,117,123,377,125,
+ 126,456,128,124,130,379,132,133,129,593,131,594,462,139,140,463,
+ 464,138,144,382,141,142,148,149,145,146,147,539,387,388,151,152,
+ 153,154,155,156,157,158,159,165,395,167,163,168,170,166,172,173,
+ 174,175,171,177,390,179,392,181,182,178,184,180,186,470,188,189,
+ 185,396,187,193,402,195,196,197,397,194,200,611,202,203,543,205,
+ 201,207,471,209,210,211,212,208,214,406,586,217,403,219,220,221,
+ 408,218,224,225,226,222,228,410,230,597,232,233,229,235,413,618,
+ 238,239,516,236,237,409,244,240,246,242,243,517,250,251,252,580,
+ 254,412,518,420,260,259,262,263,257,486,422,265,266,418,268,264,
+ 270,481,272,273,274,275,271,277,612,279,280,281,282,278,284,427,
+ 286,423,638,289,285,424,287,288,294,487,291,292,298,300,295,301,
+ 297,639,299,640,306,307,308,309,305,490,312,439,314,315,316,317,
+ 320,319,440,321,322,323,641,327,328,443,500,329,330,331,334,333,
+ 446,335,447,339,338,341,340,449,344,343,346,347,348,349,450,451,
+ 501,351,352,4,354,452,357,1,2,0,4,355,356,357,5,9,
+ 10,11,358,453,502,12,13,14,18,16,454,503,19,20,21,25,
+ 23,24,360,26,27,28,504,30,31,32,505,34,35,46,37,38,
+ 361,40,41,42,53,507,55,56,575,58,59,60,61,52,63,54,
+ 65,66,67,68,69,70,71,72,73,74,75,76,363,78,79,80,
+ 81,82,364,84,85,86,77,88,89,90,91,92,83,94,95,96,
+ 97,98,99,100,101,102,96,97,98,99,100,101,103,104,105,106,
+ 107,108,109,110,610,455,367,371,372,116,117,374,460,375,111,112,
+ 113,114,115,459,376,118,129,120,131,122,123,377,125,126,137,138,
+ 461,130,141,142,133,378,145,146,147,462,139,140,151,152,153,154,
+ 155,156,157,158,159,150,383,384,163,387,388,166,389,469,465,466,
+ 171,162,390,391,165,395,167,168,169,180,595,172,173,174,175,176,
+ 187,596,179,190,181,182,397,194,398,186,542,188,189,399,201,192,
+ 193,402,195,196,197,208,199,200,586,202,203,473,215,216,207,218,
+ 209,210,211,222,213,214,406,597,217,642,229,220,221,408,407,224,
+ 225,236,227,228,410,230,477,232,243,234,235,413,247,238,239,412,
+ 241,414,253,244,415,246,257,248,547,250,251,252,479,264,255,481,
+ 260,258,262,263,271,483,486,422,265,266,581,278,269,270,549,272,
+ 273,274,285,276,277,288,279,280,281,425,283,284,427,286,521,588,
+ 299,290,489,302,303,294,305,292,428,298,300,430,301,432,313,492,
+ 433,306,307,308,309,438,311,312,439,314,315,316,320,318,319,440,
+ 321,322,323,327,328,444,443,584,329,330,334,563,333,446,335,339,
+ 448,341,342,340,344,345,346,347,348,349,350,450,501,600,351,352,
+ 353,354,452,601,602,603,0,604,605,606,607,5,608,11,358,453,
+ 502,534,12,13,18,15,16,503,536,19,20,25,22,23,24,360,
+ 26,27,46,29,30,31,32,51,34,53,36,37,38,361,40,41,
+ 60,61,362,63,64,65,66,67,68,69,52,71,54,73,74,75,
+ 76,363,78,79,80,81,82,364,84,85,86,87,88,89,90,91,
+ 92,93,94,95,77,97,98,99,100,101,102,96,97,98,99,100,
+ 101,103,104,105,106,107,108,109,110,83,455,538,368,365,366,117,
+ 370,119,509,121,456,371,124,458,373,374,460,375,111,131,113,114,
+ 115,135,376,118,138,120,511,141,142,377,125,145,146,128,539,130,
+ 379,151,152,153,154,155,156,157,158,159,463,464,384,163,382,540,
+ 166,148,149,150,466,171,541,390,388,468,389,469,178,394,180,162,
+ 393,183,165,395,167,168,169,170,190,172,173,174,175,176,177,542,
+ 179,543,181,201,400,184,204,186,206,188,208,544,472,192,193,402,
+ 195,215,197,545,199,200,515,202,222,223,205,546,207,475,209,229,
+ 211,212,213,214,406,516,236,237,219,220,221,408,242,243,225,226,
+ 227,228,410,230,412,232,233,234,235,413,256,257,239,547,241,261,
+ 418,244,264,246,481,248,419,250,251,271,483,254,260,421,262,263,
+ 278,485,548,549,486,422,265,285,424,268,269,270,487,272,425,274,
+ 275,276,277,521,279,299,281,282,283,284,427,286,490,525,289,290,
+ 310,491,550,292,551,552,553,298,300,554,504,555,556,557,558,306,
+ 307,39,309,559,311,312,439,314,438,316,317,318,319,440,321,320,
+ 323,560,561,562,443,499,327,330,331,500,333,446,335,334,563,338,
+ 337,340,339,448,341,342,449,344,345,346,347,348,351,352,353,354,
+ 452,533,4,355,0,357,1,2,3,5,564,565,566,567,568,569,
+ 18,13,14,15,16,537,570,25,20,21,22,23,24,360,504,27,
+ 28,29,30,31,32,39,34,35,36,37,38,361,438,41,42,571,
+ 572,573,574,46,47,48,49,50,52,508,53,507,55,57,575,58,
+ 59,60,62,362,63,64,65,66,67,68,69,70,71,72,73,74,
+ 75,77,363,78,79,80,81,83,364,84,85,86,87,88,89,90,
+ 91,92,93,94,95,96,97,98,99,100,101,102,96,97,98,99,
+ 100,101,103,104,105,106,107,108,109,110,112,113,114,115,369,376,
+ 117,370,120,509,122,123,377,124,126,459,128,576,130,379,131,133,
+ 510,134,135,136,462,138,140,463,141,142,144,382,145,146,148,149,
+ 150,381,151,152,153,154,155,156,157,158,159,161,162,393,163,165,
+ 395,166,168,169,170,466,171,173,390,175,176,177,577,179,394,180,
+ 182,470,184,512,186,396,187,189,513,190,192,193,402,194,196,197,
+ 542,199,200,399,201,203,471,205,401,207,578,208,210,211,212,213,
+ 214,406,215,217,545,219,220,221,408,222,224,225,226,227,228,410,
+ 229,579,232,233,234,235,413,236,238,239,476,241,477,242,243,517,
+ 246,411,248,580,250,412,252,414,260,255,262,263,257,259,547,417,
+ 261,486,422,265,266,481,268,269,270,482,271,273,274,275,276,277,
+ 581,278,280,281,282,283,284,427,285,424,287,289,290,487,291,292,
+ 294,582,295,296,298,300,299,301,489,302,303,304,306,490,308,309,
+ 527,311,312,439,313,315,316,317,318,319,440,320,322,323,583,324,
+ 325,443,327,329,330,331,584,333,446,335,563,336,338,447,340,448,
+ 341,343,449,344,345,346,347,348,349,351,352,353,354,452,4,355,
+ 356,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
+ 15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
+ 31,32,47,34,35,36,37,38,53,40,41,42,575,58,59,60,
+ 61,362,63,64,65,52,67,54,69,70,71,72,73,74,75,76,
+ 363,78,79,80,81,82,364,84,85,86,87,88,89,90,77,92,
+ 93,94,95,96,83,98,99,100,101,102,96,97,98,99,100,101,
+ 103,104,105,106,107,108,109,110,366,455,367,368,369,116,117,371,
+ 372,509,373,374,460,124,111,112,113,114,115,593,131,118,510,120,
+ 135,122,123,138,125,126,141,142,143,130,145,132,133,539,380,381,
+ 151,152,153,154,155,156,157,158,159,160,383,148,163,150,540,166,
+ 385,387,388,468,171,469,390,391,161,162,393,178,165,180,167,168,
+ 169,170,185,172,173,174,175,176,177,585,179,194,181,182,542,184,
+ 543,186,201,188,189,204,401,192,193,208,195,196,197,514,199,200,
+ 215,202,203,218,205,515,207,222,209,210,211,212,213,214,229,579,
+ 217,618,219,220,221,236,237,224,225,226,227,228,243,230,245,232,
+ 233,234,235,412,518,238,239,478,241,256,257,244,547,246,261,248,
+ 479,250,251,252,267,254,255,482,271,258,259,260,421,262,263,278,
+ 265,266,549,268,269,270,285,272,273,274,275,276,277,425,279,280,
+ 281,282,283,284,299,286,489,302,289,290,305,292,428,294,643,430,
+ 431,298,313,300,301,493,434,435,436,306,307,308,309,644,311,312,
+ 438,314,315,316,317,318,319,320,321,322,323,645,441,442,327,328,
+ 329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,
+ 345,346,347,348,349,350,351,352,353,354,4,355,356,357,0,2,
+ 3,4,355,5,7,8,9,10,11,358,12,13,14,15,16,18,
+ 359,19,20,21,22,23,46,360,26,27,28,29,30,53,32,55,
+ 34,35,36,37,60,361,40,63,64,65,66,67,68,69,70,71,
+ 72,73,74,75,54,363,78,79,80,81,82,364,84,85,86,87,
+ 88,89,90,91,92,93,94,95,96,97,98,77,100,101,102,96,
+ 97,98,99,100,101,103,104,105,106,107,108,109,110,83,455,367,
+ 368,369,538,117,365,366,509,121,456,457,124,458,371,372,576,373,
+ 374,131,375,111,112,113,114,115,138,376,118,141,142,143,122,145,
+ 377,125,126,380,128,151,152,153,154,155,156,157,158,159,462,139,
+ 140,163,464,540,166,382,386,465,148,171,150,390,391,392,387,388,
+ 468,389,180,595,470,161,162,393,396,187,395,167,168,169,170,397,
+ 194,173,174,175,176,177,399,201,400,181,182,401,184,578,208,544,
+ 188,189,514,403,192,215,402,195,196,197,515,199,222,223,202,203,
+ 597,205,642,229,579,209,210,211,212,213,236,406,409,217,240,219,
+ 220,243,408,245,224,225,226,227,412,410,230,253,232,233,234,257,
+ 413,547,238,239,418,241,264,480,244,267,246,619,248,271,250,251,
+ 252,421,254,255,278,420,258,260,423,262,263,285,422,265,266,613,
+ 268,269,425,426,272,273,274,275,276,299,640,279,280,281,282,283,
+ 490,427,286,527,310,289,290,292,551,552,294,646,647,554,298,300,
+ 556,301,558,648,649,39,306,307,308,309,650,311,438,439,314,315,
+ 316,317,318,320,440,321,322,323,651,499,327,443,444,329,330,331,
+ 445,334,446,335,337,447,338,448,341,342,449,344,345,346,347,348,
+ 450,350,451,351,352,353,4,452,356,357,1,0,3,4,355,356,
+ 5,8,9,10,11,358,453,12,13,14,15,18,359,454,19,20,
+ 21,22,25,24,360,26,27,28,29,504,31,32,631,34,35,36,
+ 39,38,361,40,41,42,45,46,47,48,49,50,51,506,53,52,
+ 508,54,575,58,57,60,61,362,63,64,65,66,67,68,69,70,
+ 71,72,73,74,75,76,363,78,79,77,81,82,364,84,85,83,
+ 87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,
+ 96,97,98,99,100,101,103,104,105,106,107,108,109,110,374,460,
+ 375,111,112,113,114,115,119,376,118,456,120,124,122,123,377,125,
+ 126,593,131,594,130,379,132,133,137,138,461,511,141,142,140,463,
+ 145,146,144,382,380,381,151,152,153,154,155,156,157,158,159,389,
+ 469,384,163,161,162,166,385,165,395,167,171,168,390,391,172,173,
+ 174,175,176,180,595,179,183,181,182,396,187,596,186,190,188,189,
+ 397,194,192,193,402,195,196,197,201,199,200,204,202,203,578,208,
+ 544,207,586,209,210,211,215,213,214,406,404,217,405,222,220,221,
+ 408,597,224,225,229,227,228,410,230,598,232,236,234,235,413,240,
+ 238,239,243,241,245,411,244,580,246,412,248,414,250,251,252,256,
+ 257,255,547,260,258,262,263,264,480,486,422,265,266,482,271,269,
+ 270,587,272,273,274,278,276,277,549,279,280,281,285,283,284,427,
+ 286,487,291,425,290,488,519,520,294,588,292,522,298,300,590,301,
+ 599,490,525,526,306,307,308,309,313,311,312,439,314,315,316,320,
+ 318,319,440,321,322,323,327,328,444,443,584,329,330,334,563,333,
+ 446,335,339,448,341,342,340,344,345,346,347,348,349,350,450,501,
+ 600,351,352,353,354,452,601,602,603,0,604,605,606,607,5,608,
+ 11,358,453,502,534,12,13,18,15,16,503,536,19,20,25,22,
+ 23,24,360,26,27,504,29,30,31,32,609,34,46,36,37,38,
+ 361,40,41,53,507,55,56,575,58,59,60,61,362,63,64,54,
+ 66,67,68,69,70,71,72,73,74,75,76,363,78,79,80,81,
+ 82,364,84,85,86,87,77,89,90,91,92,93,83,95,96,97,
+ 98,99,100,101,102,96,97,98,99,100,101,103,104,105,106,107,
+ 108,109,110,610,455,367,368,371,372,117,373,374,460,375,111,112,
+ 124,114,115,127,376,118,593,131,594,122,123,377,125,126,138,128,
+ 511,141,142,132,133,145,146,147,539,462,139,151,152,153,154,155,
+ 156,157,158,159,149,150,384,163,164,387,166,468,389,469,466,171,
+ 161,390,393,392,165,395,167,168,180,170,470,172,173,174,175,187,
+ 177,513,179,191,181,182,194,184,611,186,198,188,189,201,400,192,
+ 193,402,195,196,208,544,199,200,514,202,203,215,205,545,207,404,
+ 209,210,211,212,213,214,406,475,217,229,219,220,221,408,598,224,
+ 236,226,227,228,410,230,242,243,233,234,235,413,580,238,412,518,
+ 241,253,478,244,256,257,416,248,417,250,251,252,264,254,255,260,
+ 420,262,263,271,483,612,486,422,265,266,278,268,269,270,423,272,
+ 273,285,275,276,277,613,279,280,425,282,283,284,427,286,588,299,
+ 289,290,302,303,304,294,292,428,429,298,300,431,301,313,492,433,
+ 493,306,307,308,39,614,311,312,439,314,315,438,317,318,319,440,
+ 321,322,320,615,616,617,443,441,329,327,331,444,333,446,335,445,
+ 334,338,336,340,447,339,343,341,342,449,344,450,346,347,351,352,
+ 353,354,452,532,533,4,0,356,357,1,2,5,11,358,453,502,
+ 534,535,12,18,14,15,16,536,537,19,46,21,22,23,24,360,
+ 26,53,28,29,30,31,32,59,60,35,36,63,64,65,66,67,
+ 68,69,70,71,72,73,74,75,76,363,52,79,54,81,82,364,
+ 84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,
+ 100,101,102,96,97,98,99,100,101,103,104,105,106,107,108,109,
+ 110,83,455,367,368,369,116,117,370,119,538,121,365,366,124,458,
+ 459,127,576,129,371,131,594,373,374,460,375,111,138,113,114,141,
+ 142,376,118,145,120,147,122,123,377,151,152,153,154,155,156,157,
+ 158,159,160,383,384,163,462,139,166,463,464,465,144,171,541,390,
+ 148,149,150,577,178,394,180,388,468,389,469,185,396,187,162,393,
+ 190,165,395,167,168,169,170,542,172,173,174,175,176,177,204,179,
+ 206,181,208,544,184,586,186,403,188,215,216,545,192,193,402,195,
+ 222,197,474,199,200,475,202,229,579,205,618,207,598,209,236,211,
+ 212,213,214,406,242,243,517,219,220,221,408,249,412,225,226,227,
+ 228,410,230,257,232,233,234,235,413,479,264,239,481,241,419,619,
+ 244,271,246,612,248,421,250,251,278,485,254,260,423,262,263,285,
+ 424,287,288,486,422,265,425,426,268,269,270,521,272,299,274,275,
+ 276,277,304,279,490,281,282,283,284,427,286,313,492,289,290,434,
+ 435,436,292,620,621,494,298,300,496,504,622,623,624,625,306,307,
+ 39,309,626,311,312,439,314,438,316,317,318,319,440,321,320,323,
+ 627,628,629,443,630,327,330,331,500,333,446,335,334,563,338,337,
+ 340,339,448,341,342,449,344,345,346,347,348,351,352,353,354,452,
+ 533,4,355,0,357,1,2,3,5,564,565,566,567,568,569,18,
+ 13,14,15,16,537,570,25,20,21,22,23,24,360,504,27,28,
+ 29,30,31,32,39,34,35,36,37,38,361,46,41,42,49,50,
+ 51,506,53,507,55,56,575,52,508,60,61,362,63,64,65,66,
+ 67,68,69,70,71,72,73,74,75,76,363,78,79,80,81,82,
+ 77,84,85,86,87,88,83,90,91,92,93,94,95,96,97,98,
+ 99,100,101,102,96,97,98,99,100,101,103,104,105,106,107,108,
+ 109,110,372,455,373,374,460,375,117,112,113,114,115,456,376,124,
+ 458,120,127,122,123,377,131,126,510,128,135,130,379,138,133,511,
+ 141,142,143,462,145,140,463,464,380,144,151,152,153,154,155,156,
+ 157,158,159,387,388,468,163,469,540,166,161,162,393,466,171,395,
+ 390,168,169,170,577,172,173,180,175,176,177,512,179,396,187,182,
+ 513,184,191,186,397,194,189,611,542,192,193,402,201,196,197,204,
+ 199,200,578,208,203,472,205,514,207,473,215,210,211,212,213,214,
+ 406,222,217,474,219,220,221,408,229,224,225,226,227,228,410,236,
+ 237,232,233,234,235,413,243,238,239,411,241,580,249,412,518,246,
+ 253,248,415,250,257,252,547,260,255,262,263,264,259,481,267,419,
+ 486,422,265,266,612,268,269,270,581,278,273,274,275,276,277,652,
+ 285,280,281,282,283,284,427,425,426,488,289,290,521,588,292,294,
+ 523,589,590,298,300,490,301,526,527,310,491,306,313,308,309,493,
+ 311,312,439,438,315,316,317,318,319,440,320,322,323,530,591,531,
+ 443,327,329,330,331,584,333,446,335,563,336,338,447,340,448,341,
+ 343,449,344,345,346,347,348,349,351,352,353,354,452,4,355,356,
+ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
+ 32,47,34,35,36,37,38,53,40,41,42,575,58,59,60,61,
+ 362,63,64,65,52,67,54,69,70,71,72,73,74,75,76,363,
+ 78,79,80,81,82,364,84,85,86,87,88,89,90,91,77,93,
+ 94,95,96,97,83,99,100,101,102,96,97,98,99,100,101,103,
+ 104,105,106,107,108,109,110,365,366,367,368,369,116,117,370,371,
+ 372,121,373,374,124,375,111,112,113,114,115,131,376,118,134,120,
+ 136,122,138,377,125,141,142,128,378,145,379,132,133,380,381,151,
+ 152,153,154,155,156,157,158,159,382,383,384,163,149,150,166,385,
+ 386,387,388,171,389,390,391,392,161,162,393,394,180,395,167,168,
+ 169,170,396,187,173,174,175,176,177,397,194,398,181,182,198,184,
+ 399,201,400,188,189,401,206,192,208,402,195,196,197,403,199,215,
+ 216,202,203,404,205,405,222,223,209,210,211,212,213,229,406,231,
+ 217,407,219,220,236,408,409,224,225,226,227,243,410,230,411,232,
+ 233,234,412,413,414,238,239,415,241,257,416,244,417,246,418,248,
+ 264,250,251,252,419,254,255,271,420,258,260,421,262,263,278,422,
+ 265,266,423,268,269,285,424,272,273,274,275,276,425,426,279,280,
+ 281,282,283,299,427,286,302,303,289,290,292,428,429,294,430,431,
+ 432,298,300,433,301,434,435,436,39,306,307,308,309,437,311,438,
+ 439,314,315,316,317,318,320,440,321,322,323,441,442,327,443,444,
+ 329,330,331,445,334,446,335,337,447,338,448,341,342,449,344,345,
+ 346,347,348,450,350,451,351,352,353,4,452,356,357,1,0,3,
+ 4,355,356,5,8,9,10,11,358,453,12,13,14,15,18,359,
+ 454,19,20,21,22,25,24,360,26,27,28,29,504,31,32,631,
+ 34,35,36,39,38,361,40,41,42,45,46,47,48,49,50,51,
+ 506,53,52,508,54,575,58,57,60,61,362,63,64,65,66,67,
+ 68,69,70,71,72,73,74,75,76,363,78,77,80,81,82,364,
+ 84,83,86,87,88,89,90,91,92,93,94,95,96,97,98,99,
+ 100,101,102,96,97,98,99,100,101,103,104,105,106,107,108,109,
+ 110,460,375,111,112,113,114,117,370,376,118,121,120,457,124,123,
+ 377,125,126,129,128,131,130,379,132,133,136,137,138,461,462,141,
+ 142,463,464,145,144,382,539,380,148,151,152,153,154,155,156,157,
+ 158,159,469,383,384,163,162,393,166,165,395,167,168,171,170,390,
+ 172,173,174,175,176,177,180,179,470,181,182,185,184,187,186,513,
+ 188,189,585,397,194,193,402,195,196,197,399,201,200,471,202,203,
+ 206,205,208,207,472,209,210,211,212,215,214,406,218,217,515,219,
+ 220,221,408,546,224,225,226,229,228,410,230,407,232,233,236,235,
+ 413,476,238,239,242,243,517,245,244,247,246,249,412,518,250,251,
+ 252,415,254,257,416,420,260,259,262,263,264,486,422,265,266,619,
+ 268,271,270,612,272,273,274,275,278,277,548,279,280,281,282,285,
+ 284,427,286,613,487,289,425,426,488,519,294,521,588,292,298,300,
+ 589,301,524,599,490,525,306,307,308,309,550,313,312,439,314,315,
+ 316,317,320,319,440,321,322,323,326,327,328,443,500,329,330,331,
+ 334,333,446,335,447,339,338,341,340,449,344,343,346,347,348,349,
+ 450,451,501,351,352,4,354,452,357,1,2,0,4,355,356,357,
+ 5,9,10,11,358,453,502,12,13,14,18,16,454,503,19,20,
+ 21,25,23,24,360,26,27,28,504,30,31,32,505,34,35,46,
+ 37,38,361,40,41,42,53,507,55,56,575,58,59,60,61,52,
+ 63,54,65,66,67,68,69,70,71,72,73,74,75,76,363,78,
+ 79,80,81,82,364,84,85,86,77,88,89,90,91,92,83,94,
+ 95,96,97,98,99,100,101,102,96,97,98,99,100,101,103,104,
+ 105,106,107,108,109,110,610,455,367,371,372,116,117,374,460,375,
+ 111,112,113,114,115,459,376,118,129,120,131,122,123,377,125,126,
+ 137,138,461,130,141,142,133,378,145,146,147,462,139,140,151,152,
+ 153,154,155,156,157,158,159,150,383,384,163,387,388,166,389,469,
+ 465,466,171,162,390,391,165,395,167,168,169,180,595,172,173,174,
+ 175,176,187,596,179,190,181,182,397,194,398,186,542,188,189,399,
+ 201,192,193,402,195,196,197,208,199,200,586,202,203,473,215,216,
+ 207,218,209,210,211,222,213,214,406,597,217,642,229,220,221,408,
+ 407,224,225,236,227,228,410,230,477,232,243,234,235,413,247,238,
+ 239,412,241,414,253,244,415,246,257,248,547,250,251,252,479,264,
+ 255,481,260,258,262,263,271,483,486,422,265,266,581,278,269,270,
+ 549,272,273,274,285,276,277,288,279,280,281,425,283,284,427,286,
+ 521,588,299,290,489,302,303,294,305,292,428,298,300,430,301,432,
+ 313,492,433,306,307,308,309,438,311,312,439,314,315,316,320,318,
+ 319,440,321,322,323,327,328,444,443,584,329,330,334,563,333,446,
+ 335,339,448,341,342,340,344,345,346,347,348,349,350,450,501,600,
+ 351,352,353,354,452,601,602,603,0,604,605,606,607,5,608,11,
+ 358,453,502,534,12,13,18,15,16,503,536,19,20,25,22,23,
+ 24,360,26,27,46,29,30,31,32,51,34,53,36,37,38,361,
+ 40,41,60,61,362,63,64,65,66,67,68,69,52,71,54,73,
+ 74,75,76,363,78,79,80,81,82,364,84,85,86,87,88,89,
+ 90,91,92,93,94,95,77,97,98,99,100,83,102,96,97,98,
+ 99,100,101,103,104,105,106,107,108,109,110,610,538,367,365,366,
+ 116,117,370,119,509,121,371,372,124,373,374,460,375,111,112,131,
+ 114,115,134,376,118,137,138,461,122,141,142,125,126,145,128,147,
+ 130,379,132,151,152,153,154,155,156,157,158,159,464,383,144,163,
+ 164,540,166,149,150,465,466,171,387,390,468,389,469,577,178,161,
+ 180,393,470,165,395,167,168,187,170,513,172,173,174,175,194,177,
+ 611,179,198,181,182,201,184,471,186,401,188,189,208,544,192,193,
+ 402,195,196,215,216,199,200,404,202,203,222,205,474,207,597,209,
+ 210,211,212,213,214,406,598,217,236,219,220,221,408,477,224,243,
+ 226,227,228,410,230,249,412,233,234,235,413,415,238,257,416,241,
+ 417,261,244,479,264,480,248,267,250,251,252,271,254,255,260,420,
+ 262,263,278,485,548,486,422,265,266,285,268,269,270,613,272,273,
+ 425,275,276,277,520,279,280,299,282,283,284,427,286,305,490,289,
+ 290,527,310,491,294,292,551,552,298,300,647,301,504,555,556,557,
+ 306,307,308,39,497,311,312,439,314,315,438,317,318,319,440,321,
+ 322,320,653,560,561,443,651,329,327,331,444,333,446,335,445,334,
+ 338,336,340,447,339,343,341,342,449,344,450,346,347,351,352,353,
+ 354,452,532,533,4,0,356,357,1,2,5,11,358,453,502,534,
+ 535,12,18,14,15,16,536,537,19,25,21,22,23,24,360,26,
+ 504,28,29,30,31,32,654,39,35,36,37,38,361,40,438,42,
+ 633,571,572,573,637,46,47,48,49,52,508,54,53,507,57,56,
+ 575,58,59,60,62,362,63,64,65,66,67,68,69,70,71,72,
+ 73,74,75,77,363,78,79,80,81,83,364,84,85,86,87,88,
+ 89,90,91,92,93,94,95,96,97,98,99,100,101,102,96,97,
+ 98,99,100,101,103,104,105,106,107,108,109,110,112,113,114,115,
+ 369,376,117,370,120,509,122,123,377,124,126,459,128,576,130,379,
+ 131,133,510,134,135,136,462,138,140,463,141,142,144,382,145,146,
+ 148,149,150,381,151,152,153,154,155,156,157,158,159,161,162,393,
+ 163,165,395,166,168,169,170,466,171,173,390,175,176,177,577,179,
+ 394,180,182,470,184,512,186,396,187,189,513,190,192,193,402,194,
+ 196,197,542,199,200,399,201,203,471,205,401,207,578,208,210,211,
+ 212,213,214,406,215,217,545,219,220,221,408,222,224,225,226,227,
+ 228,410,229,579,232,233,234,235,413,236,238,239,476,241,477,242,
+ 243,517,246,411,248,580,250,412,252,414,260,255,262,263,257,259,
+ 547,417,261,486,422,265,266,481,268,269,270,482,271,273,274,275,
+ 276,277,581,278,280,281,282,283,284,427,285,424,287,289,290,487,
+ 291,292,294,582,295,296,298,300,299,301,489,302,303,304,306,490,
+ 308,309,527,311,312,439,313,315,316,317,318,319,440,320,322,323,
+ 583,324,325,443,327,329,330,331,584,333,446,335,563,336,338,447,
+ 340,448,341,343,449,344,345,346,347,348,349,351,352,353,354,452,
+ 4,355,356,0,1,2,3,4,5,6,7,8,9,10,11,12,
+ 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
+ 29,30,31,32,47,34,35,36,37,38,53,40,41,42,575,58,
+ 59,60,61,362,63,64,65,52,67,54,69,70,71,72,73,74,
+ 75,76,363,78,79,80,81,82,364,84,85,86,87,88,89,90,
+ 77,92,93,94,95,96,83,98,99,100,101,102,96,97,98,99,
+ 100,101,103,104,105,106,107,108,109,110,366,455,367,368,369,116,
+ 117,371,372,509,373,374,460,124,111,112,113,114,115,593,131,118,
+ 510,120,135,122,123,138,125,126,141,142,143,130,145,132,133,539,
+ 380,381,151,152,153,154,155,156,157,158,159,160,383,148,163,150,
+ 540,166,385,387,388,468,171,469,390,391,161,162,393,178,165,180,
+ 167,168,169,170,185,172,173,174,175,176,177,585,179,194,181,182,
+ 542,184,543,186,201,188,189,204,401,192,193,208,195,196,197,514,
+ 199,200,215,202,203,218,205,515,207,222,209,210,211,212,213,214,
+ 229,579,217,618,219,220,221,236,237,224,225,226,227,228,243,230,
+ 245,232,233,234,235,412,518,238,239,478,241,256,257,244,547,246,
+ 261,248,479,250,251,252,267,254,255,482,271,258,259,260,421,262,
+ 263,278,265,266,549,268,269,270,285,272,273,274,275,276,277,425,
+ 279,280,281,282,283,284,299,286,489,302,289,290,305,292,428,294,
+ 643,430,431,298,313,300,301,493,434,435,436,306,307,308,309,644,
+ 311,312,438,314,315,316,317,318,319,320,321,322,323,645,441,442,
+ 327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,
+ 343,344,345,346,347,348,349,350,351,352,353,354,4,355,356,357,
+ 0,2,3,4,355,5,7,8,9,10,11,358,12,13,14,15,
+ 16,18,359,19,20,21,22,23,46,360,26,27,28,29,30,53,
+ 32,55,34,35,36,37,60,361,40,63,64,65,66,67,68,69,
+ 70,71,72,73,74,75,54,363,78,79,80,81,82,364,84,85,
+ 86,87,88,89,90,91,92,93,94,95,96,97,98,77,100,101,
+ 102,96,97,98,99,100,101,103,104,105,106,107,108,109,110,83,
+ 455,367,368,369,538,117,365,366,509,121,456,457,124,458,371,372,
+ 576,373,374,131,375,111,112,113,114,115,138,376,118,141,142,143,
+ 122,145,377,125,126,380,128,151,152,153,154,155,156,157,158,159,
+ 462,139,140,163,464,540,166,382,386,465,148,171,150,390,391,392,
+ 387,388,468,389,180,595,470,161,162,393,396,187,395,167,168,169,
+ 170,397,194,173,174,175,176,177,399,201,400,181,182,401,184,578,
+ 208,544,188,189,514,403,192,215,402,195,196,197,515,199,222,223,
+ 202,203,597,205,642,229,579,209,210,211,212,213,236,406,409,217,
+ 240,219,220,243,408,245,224,225,226,227,412,410,230,253,232,233,
+ 234,257,413,547,238,239,418,241,264,480,244,267,246,619,248,271,
+ 250,251,252,421,254,255,278,420,258,260,423,262,263,285,422,265,
+ 266,613,268,269,425,426,272,273,274,275,276,299,640,279,280,281,
+ 282,283,490,427,286,527,310,289,290,292,551,552,294,646,647,554,
+ 298,300,556,301,558,648,649,39,306,307,308,309,650,311,438,439,
+ 314,315,316,317,318,320,440,321,322,323,651,499,327,443,444,329,
+ 330,331,445,334,446,335,337,447,338,448,341,342,449,344,345,346,
+ 347,348,450,350,451,351,352,353,4,452,356,357,1,
+};
+
+#endif