@hebcal/leyning 5.0.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- /*! @hebcal/leyning v5.0.0 */
2
- import { flags, months, HDate, HebrewCalendar, Event, Locale, ParshaEvent, parshiot } from '@hebcal/core';
1
+ /*! @hebcal/leyning v6.0.0 */
2
+ import { flags, months, HDate, HebrewCalendar, Event, Locale, ParshaEvent } from '@hebcal/core';
3
3
 
4
4
  const Genesis=[0,31,25,24,26,32,22,24,22,29,32,32,20,18,24,21,16,27,33,38,18,34,24,20,67,34,35,46,22,35,43,54,33,20,31,29,43,36,30,23,23,57,38,34,34,28,34,31,22,33,26];const Exodus=[0,22,25,22,31,23,30,29,28,35,29,10,51,22,31,27,36,16,27,25,26,37,30,33,18,40,37,21,43,46,38,18,35,23,35,35,38,29,31,43,38];const Leviticus=[0,17,16,17,35,26,23,38,36,24,20,47,8,59,57,33,34,16,30,37,27,24,33,44,23,55,46,34];const Numbers=[0,54,34,51,49,31,27,89,26,23,36,35,16,33,45,41,35,28,32,22,29,35,41,30,25,19,65,23,31,39,17,54,42,56,29,34,13];const Deuteronomy=[0,46,37,29,49,30,25,26,20,29,22,32,31,19,29,23,22,20,22,21,20,23,29,26,22,19,19,26,69,28,20,30,52,29,12];const Joshua=[0,18,24,17,24,15,27,26,35,27,43,23,24,33,15,63,10,18,28,51,9,45,34,16,33];const Judges=[0,36,23,31,24,31,40,25,35,57,18,40,15,25,20,20,31,13,31,30,48,25];const Ruth=[0,22,23,18,22];const Isaiah=[0,31,22,26,6,30,13,25,23,20,34,16,6,22,32,9,14,14,7,25,6,17,25,18,23,12,21,13,29,24,33,9,20,24,17,10,22,38,22,8,31,29,25,28,28,25,13,15,22,26,11,23,15,12,17,13,12,21,14,21,22,11,12,19,11,25,24];const Jeremiah=[0,19,37,25,31,31,30,34,23,25,25,23,17,27,22,21,21,27,23,15,18,14,30,40,10,38,24,22,17,32,24,40,44,26,22,19,32,21,28,18,16,18,22,13,30,5,28,7,47,39,46,64,34];const Lamentations=[0,22,22,66,22,22];const Baruch=[0,22,35,38,37,9,72];const Ezekiel=[0,28,10,27,17,17,14,27,18,11,22,25,28,23,23,8,63,24,32,14,44,37,31,49,27,17,21,36,26,21,26,18,32,33,31,15,38,28,23,29,49,26,20,27,31,25,24,23,35];const Daniel=[0,21,49,100,34,30,29,28,27,27,21,45,13,64,42];const Hosea=[0,9,25,5,19,15,11,16,14,17,15,11,15,15,10];const Joel=[0,20,27,5,21];const Amos=[0,15,16,15,13,27,14,17,14,15];const Obadiah=[0,21];const Jonah=[0,16,11,10,11];const Micah=[0,16,13,12,14,14,16,20];const Nachum=[0,14,14,19];const Habakkuk=[0,17,20,19];const Zephaniah=[0,18,15,20];const Haggai=[0,15,23];const Zechariah=[0,17,17,10,14,11,15,14,23,17,12,17,14,9,21];const Malachi=[0,14,17,24];var numverses = {Genesis:Genesis,Exodus:Exodus,Leviticus:Leviticus,Numbers:Numbers,Deuteronomy:Deuteronomy,Joshua:Joshua,Judges:Judges,Ruth:Ruth,"I Samuel":[0,28,36,21,22,12,21,17,22,27,27,15,25,23,52,35,23,58,30,24,42,16,23,28,23,43,25,12,25,11,31,13],"II Samuel":[0,27,32,39,12,25,23,29,18,13,19,27,31,39,33,37,23,29,32,44,26,22,51,39,25],"I Kings":[0,53,46,28,20,32,38,51,66,28,29,43,33,34,31,34,34,24,46,21,43,29,54],"II Kings":[0,18,25,27,44,27,33,20,29,37,36,20,22,25,29,38,20,41,37,37,21,26,20,37,20,30],Isaiah:Isaiah,Jeremiah:Jeremiah,Lamentations:Lamentations,Baruch:Baruch,Ezekiel:Ezekiel,Daniel:Daniel,Hosea:Hosea,Joel:Joel,Amos:Amos,Obadiah:Obadiah,Jonah:Jonah,Micah:Micah,Nachum:Nachum,Habakkuk:Habakkuk,Zephaniah:Zephaniah,Haggai:Haggai,Zechariah:Zechariah,Malachi:Malachi};
5
5
 
@@ -12,7 +12,6 @@ const Genesis=[0,31,25,24,26,32,22,24,22,29,32,32,20,18,24,21,16,27,33,38,18,34,
12
12
  const BOOK = ['', 'Genesis', 'Exodus', 'Leviticus', 'Numbers', 'Deuteronomy'];
13
13
  /**
14
14
  * Formats parsha as a string
15
- * @private
16
15
  * @param {string[]} parsha
17
16
  * @return {string}
18
17
  */
@@ -36,21 +35,8 @@ function parshaToString(parsha) {
36
35
  * @property {number} [p] - parsha number (1=Bereshit, 54=Vezot HaBracha)
37
36
  */
38
37
 
39
- /**
40
- * A bit like Object.assign(), but just a shallow copy
41
- * @private
42
- * @param {any} target
43
- * @param {any} source
44
- * @return {any}
45
- */
46
-
47
- function shallowCopy(target, source) {
48
- Object.keys(source).forEach(k => target[k] = source[k]);
49
- return target;
50
- }
51
38
  /**
52
39
  * Makes a deep copy of the src object using JSON stringify and parse
53
- * @private
54
40
  * @param {any} src
55
41
  * @return {any}
56
42
  */
@@ -59,8 +45,10 @@ function clone(src) {
59
45
  return JSON.parse(JSON.stringify(src));
60
46
  }
61
47
  /**
62
- * @private
63
- * @param {any} aliyah
48
+ * Calculates the number of verses in an aliyah or haftara based on
49
+ * the `b` (begin verse), `e` (end verse) and `k` (book).
50
+ * Modifies `aliyah` by setting the `v` field.
51
+ * @param {Aliyah} aliyah
64
52
  * @return {number}
65
53
  */
66
54
 
@@ -128,96 +116,157 @@ function formatAliyahShort(aliyah, showBook) {
128
116
  return `${prefix}${begin}-${end}`;
129
117
  }
130
118
  /**
131
- * @private
132
- * @param {Aliyah[]} parts
133
- * @return {string}
119
+ * Returns the total number of verses in an array of Aliyah (or haftarah) objects
120
+ * @param {Aliyah|Aliyah[]} aliyot
121
+ * @return {number}
134
122
  */
135
123
 
136
- function makeSummaryFromParts(parts) {
137
- let prev = parts[0];
138
- let summary = formatAliyahShort(prev, true);
139
-
140
- for (let i = 1; i < parts.length; i++) {
141
- const part = parts[i];
142
-
143
- if (part.k === prev.k) {
144
- summary += ', ';
145
- } else {
146
- summary += `; ${part.k} `;
147
- }
148
-
149
- summary += formatAliyahShort(part, false);
150
- prev = part;
151
- }
152
-
153
- return summary;
124
+ function sumVerses(aliyot) {
125
+ return Array.isArray(aliyot) ? aliyot.reduce((prev, cur) => prev + cur.v, 0) : aliyot.v;
154
126
  }
155
127
  /**
156
128
  * @private
157
129
  * @param {Aliyah|Aliyah[]} haft
158
- * @return {string}
130
+ * @return {Aliyah|Aliyah[]}
159
131
  */
160
132
 
161
- function makeHaftaraSummary(haft) {
133
+ function cloneHaftara(haft) {
162
134
  if (!haft) {
163
135
  return haft;
164
136
  }
165
137
 
166
- const parts = Array.isArray(haft) ? haft : [haft];
167
- const str = makeSummaryFromParts(parts); // return str.replace(/-/g, ' - ');
138
+ const dest = clone(haft);
139
+
140
+ if (Array.isArray(dest)) {
141
+ dest.map(calculateNumVerses);
142
+ } else {
143
+ calculateNumVerses(dest);
144
+ }
168
145
 
169
- return str;
146
+ return dest;
170
147
  }
148
+
171
149
  /**
172
150
  * @private
173
- * @param {Aliyah|Aliyah[]} haft
174
- * @return {number}
151
+ * @param {string} a
152
+ * @param {string} b
153
+ * @return {boolean}
175
154
  */
176
155
 
177
- function calculateHaftaraNumV(haft) {
178
- return Array.isArray(haft) ? haft.reduce((prev, cur) => prev + cur.v, 0) : haft.v;
156
+ function isChapVerseBefore(a, b) {
157
+ const cv1 = a.split(':').map(x => +x);
158
+ const cv2 = b.split(':').map(x => +x);
159
+ return cv1[0] * 100 + cv1[1] < cv2[0] * 100 + cv2[1];
179
160
  }
180
161
  /**
181
- * @private
182
- * @param {Object.<string,string>} haft
183
- * @return {Object.<string,string>}
162
+ * Summarizes an `AliyotMap` by collapsing all adjacent aliyot.
163
+ * Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)
164
+ * @param {Object<string,Aliyah>} aliyot
165
+ * @return {Aliyah[]}
184
166
  */
185
167
 
186
- function cloneHaftara(haft) {
187
- if (!haft) {
188
- return haft;
168
+
169
+ function makeLeyningParts(aliyot) {
170
+ const nums = Object.keys(aliyot).filter(x => x.length === 1);
171
+ let start = aliyot[nums[0]];
172
+ let end = start;
173
+ const parts = [];
174
+
175
+ for (let i = 0; i < nums.length; i++) {
176
+ const num = nums[i];
177
+ const aliyah = aliyot[num];
178
+
179
+ if (i === nums.length - 1 && aliyah.k === end.k && aliyah.e === end.e) {
180
+ // short-circuit when final aliyah is within the previous (e.g. M inside of 7)
181
+ continue;
182
+ }
183
+
184
+ const prevEndChap = +end.e.split(':')[0];
185
+ const curStartChap = +aliyah.b.split(':')[0];
186
+ const sameOrNextChap = curStartChap === prevEndChap || curStartChap === prevEndChap + 1;
187
+
188
+ if (i !== 0 && (aliyah.k !== start.k || isChapVerseBefore(aliyah.b, start.e) || !sameOrNextChap)) {
189
+ parts.push({
190
+ k: start.k,
191
+ b: start.b,
192
+ e: end.e
193
+ });
194
+ start = aliyah;
195
+ }
196
+
197
+ end = aliyah;
189
198
  }
190
199
 
191
- const dest = clone(haft);
200
+ parts.push({
201
+ k: start.k,
202
+ b: start.b,
203
+ e: end.e
204
+ });
205
+ return parts;
206
+ }
207
+ /**
208
+ * Returns a string representation of the leyning parts.
209
+ * Separate verse ranges read from the same book are separated
210
+ * by commas, e.g. `Isaiah 6:1-7:6, 9:5-6`.
211
+ * Verse ranges from different books are separated by semicolons,
212
+ * e.g. `Genesis 21:1-34; Numbers 29:1-6`.
213
+ * @param {Aliyah|Aliyah[]} parts
214
+ * @return {string}
215
+ */
192
216
 
193
- if (Array.isArray(dest)) {
194
- dest.map(calculateNumVerses);
195
- } else {
196
- calculateNumVerses(dest);
217
+ function makeSummaryFromParts(parts) {
218
+ if (!Array.isArray(parts)) {
219
+ parts = [parts];
197
220
  }
198
221
 
199
- return dest;
222
+ let prev = parts[0];
223
+ let summary = formatAliyahShort(prev, true);
224
+
225
+ for (let i = 1; i < parts.length; i++) {
226
+ const part = parts[i];
227
+
228
+ if (part.k === prev.k) {
229
+ summary += ', ';
230
+ } else {
231
+ summary += `; ${part.k} `;
232
+ }
233
+
234
+ summary += formatAliyahShort(part, false);
235
+ prev = part;
236
+ }
237
+
238
+ return summary;
239
+ }
240
+ /**
241
+ * Makes a summary of the leyning, like "Genesis 6:9-11:32"
242
+ * @param {Object<string,Aliyah>} aliyot
243
+ * @return {string}
244
+ */
245
+
246
+ function makeLeyningSummary(aliyot) {
247
+ const parts = makeLeyningParts(aliyot);
248
+ return makeSummaryFromParts(parts);
200
249
  }
201
250
 
202
251
  const Purim={fullkriyah:{"1":{p:16,k:2,b:"17:8",e:"17:10"},"2":{p:16,k:2,b:"17:11",e:"17:13"},"3":{p:16,k:2,b:"17:14",e:"17:16"}}};var festivals = {"Pesach I":{haft:{k:"Joshua",b:"5:2",e:"6:1"},fullkriyah:{"1":{p:15,k:2,b:"12:21",e:"12:24"},"2":{p:15,k:2,b:"12:25",e:"12:28"},"3":{p:15,k:2,b:"12:29",e:"12:36"},"4":{p:15,k:2,b:"12:37",e:"12:42"},"5":{p:15,k:2,b:"12:43",e:"12:51"},M:{p:41,k:4,b:"28:16",e:"28:25"}}},"Pesach I (on Shabbat)":{haft:{k:"Joshua",b:"5:2",e:"6:1"},fullkriyah:{"1":{p:15,k:2,b:"12:21",e:"12:24"},"2":{p:15,k:2,b:"12:25",e:"12:28"},"3":{p:15,k:2,b:"12:29",e:"12:32"},"4":{p:15,k:2,b:"12:33",e:"12:36"},"5":{p:15,k:2,b:"12:37",e:"12:42"},"6":{p:15,k:2,b:"12:43",e:"12:47"},"7":{p:15,k:2,b:"12:48",e:"12:51"},M:{p:41,k:4,b:"28:16",e:"28:25"}}},"Pesach II":{haft:[{k:"II Kings",b:"23:1",e:"23:9"},{k:"II Kings",b:"23:21",e:"23:25"}],fullkriyah:{"1":{p:31,k:3,b:"22:26",e:"23:3"},"2":{p:31,k:3,b:"23:4",e:"23:14"},"3":{p:31,k:3,b:"23:15",e:"23:22"},"4":{p:31,k:3,b:"23:23",e:"23:32"},"5":{p:31,k:3,b:"23:33",e:"23:44"},M:{p:41,k:4,b:"28:16",e:"28:25"}}},"Pesach II (CH''M)":{note:"Israel only - according to Vaani T'fillati Siddur Yisraeli",fullkriyah:{"1":{p:31,k:3,b:"22:26",e:"23:8"},"2":{p:31,k:3,b:"23:9",e:"23:14"},"3":{p:31,k:3,b:"23:15",e:"23:44"},"4":{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach Chol ha-Moed Day 1":{fullkriyah:{"1":{p:15,k:2,b:"13:1",e:"13:4"},"2":{p:15,k:2,b:"13:5",e:"13:10"},"3":{p:15,k:2,b:"13:11",e:"13:16"},"4":{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach Chol ha-Moed Day 2":{fullkriyah:{"1":{p:18,k:2,b:"22:24",e:"22:26"},"2":{p:18,k:2,b:"22:27",e:"23:5"},"3":{p:18,k:2,b:"23:6",e:"23:19"},"4":{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach Chol ha-Moed Day 3":{fullkriyah:{"1":{p:21,k:2,b:"34:1",e:"34:10"},"2":{p:21,k:2,b:"34:11",e:"34:17"},"3":{p:21,k:2,b:"34:18",e:"34:26"},"4":{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach Chol ha-Moed Day 4":{fullkriyah:{"1":{p:36,k:4,b:"9:1",e:"9:5"},"2":{p:36,k:4,b:"9:6",e:"9:8"},"3":{p:36,k:4,b:"9:9",e:"9:14"},"4":{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach Shabbat Chol ha-Moed":{haft:{k:"Ezekiel",b:"37:1",e:"37:14"},fullkriyah:{"1":{p:21,k:2,b:"33:12",e:"33:16"},"2":{p:21,k:2,b:"33:17",e:"33:19"},"3":{p:21,k:2,b:"33:20",e:"33:23"},"4":{p:21,k:2,b:"34:1",e:"34:3"},"5":{p:21,k:2,b:"34:4",e:"34:10"},"6":{p:21,k:2,b:"34:11",e:"34:17"},"7":{p:21,k:2,b:"34:18",e:"34:26"},M:{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach VII":{haft:{k:"II Samuel",b:"22:1",e:"22:51"},fullkriyah:{"1":{p:16,k:2,b:"13:17",e:"13:22"},"2":{p:16,k:2,b:"14:1",e:"14:8"},"3":{p:16,k:2,b:"14:9",e:"14:14"},"4":{p:16,k:2,b:"14:15",e:"14:25"},"5":{p:16,k:2,b:"14:26",e:"15:26"},M:{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach VII (on Shabbat)":{haft:{k:"II Samuel",b:"22:1",e:"22:51"},fullkriyah:{"1":{p:16,k:2,b:"13:17",e:"13:19"},"2":{p:16,k:2,b:"13:20",e:"13:22"},"3":{p:16,k:2,b:"14:1",e:"14:4"},"4":{p:16,k:2,b:"14:5",e:"14:8"},"5":{p:16,k:2,b:"14:9",e:"14:14"},"6":{p:16,k:2,b:"14:15",e:"14:25"},"7":{p:16,k:2,b:"14:26",e:"15:26"},M:{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach VIII":{haft:{k:"Isaiah",b:"10:32",e:"12:6"},fullkriyah:{"1":{p:47,k:5,b:"15:19",e:"15:23"},"2":{p:47,k:5,b:"16:1",e:"16:3"},"3":{p:47,k:5,b:"16:4",e:"16:8"},"4":{p:47,k:5,b:"16:9",e:"16:12"},"5":{p:47,k:5,b:"16:13",e:"16:17"},M:{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach VIII (on Shabbat)":{haft:{k:"Isaiah",b:"10:32",e:"12:6"},fullkriyah:{"1":{p:47,k:5,b:"14:22",e:"14:29"},"2":{p:47,k:5,b:"15:1",e:"15:18"},"3":{p:47,k:5,b:"15:19",e:"15:23"},"4":{p:47,k:5,b:"16:1",e:"16:3"},"5":{p:47,k:5,b:"16:4",e:"16:8"},"6":{p:47,k:5,b:"16:9",e:"16:12"},"7":{p:47,k:5,b:"16:13",e:"16:17"},M:{p:41,k:4,b:"28:19",e:"28:25"}}},"Pesach III (CH''M)":{alias:true,il:true,key:"Pesach Chol ha-Moed Day 1"},"Pesach IV (CH''M)":{alias:true,il:true,key:"Pesach Chol ha-Moed Day 2"},"Pesach V (CH''M)":{alias:true,il:true,key:"Pesach Chol ha-Moed Day 3"},"Pesach VI (CH''M)":{alias:true,il:true,key:"Pesach Chol ha-Moed Day 4"},"Shavuot I":{haft:[{k:"Ezekiel",b:"1:1",e:"1:28"},{k:"Ezekiel",b:"3:12",e:"3:12"}],fullkriyah:{"1":{p:17,k:2,b:"19:1",e:"19:6"},"2":{p:17,k:2,b:"19:7",e:"19:13"},"3":{p:17,k:2,b:"19:14",e:"19:19"},"4":{p:17,k:2,b:"19:20",e:"20:14"},"5":{p:17,k:2,b:"20:15",e:"20:23"},M:{p:41,k:4,b:"28:26",e:"28:31"}}},"Shavuot II":{haft:{k:"Habakkuk",b:"3:1",e:"3:19"},fullkriyah:{"1":{p:47,k:5,b:"15:19",e:"15:23"},"2":{p:47,k:5,b:"16:1",e:"16:3"},"3":{p:47,k:5,b:"16:4",e:"16:8"},"4":{p:47,k:5,b:"16:9",e:"16:12"},"5":{p:47,k:5,b:"16:13",e:"16:17"},M:{p:41,k:4,b:"28:26",e:"28:31"}}},"Shavuot II (on Shabbat)":{haft:{k:"Habakkuk",b:"3:1",e:"3:19"},fullkriyah:{"1":{p:47,k:5,b:"14:22",e:"14:29"},"2":{p:47,k:5,b:"15:1",e:"15:18"},"3":{p:47,k:5,b:"15:19",e:"15:23"},"4":{p:47,k:5,b:"16:1",e:"16:3"},"5":{p:47,k:5,b:"16:4",e:"16:8"},"6":{p:47,k:5,b:"16:9",e:"16:12"},"7":{p:47,k:5,b:"16:13",e:"16:17"},M:{p:41,k:4,b:"28:26",e:"28:31"}}},"Fast Day (Morning)":{fullkriyah:{"1":{p:21,k:2,b:"32:11",e:"32:14"},"2":{p:21,k:2,b:"34:1",e:"34:3"},"3":{p:21,k:2,b:"34:4",e:"34:10"}}},"Fast Day (Afternoon)":{haft:{k:"Isaiah",b:"55:6",e:"56:8"},fullkriyah:{"1":{p:21,k:2,b:"32:11",e:"32:14"},"2":{p:21,k:2,b:"34:1",e:"34:3"},"3":{p:21,k:2,b:"34:4",e:"34:10"}}},"Asara B'Tevet":{alias:true,key:"Fast Day (Morning)"},"Ta'anit Bechorot":{alias:true,key:"Fast Day (Morning)"},"Ta'anit Esther":{alias:true,key:"Fast Day (Morning)"},"Tzom Gedaliah":{alias:true,key:"Fast Day (Morning)"},"Tzom Tammuz":{alias:true,key:"Fast Day (Morning)"},"Asara B'Tevet (Mincha)":{alias:true,key:"Fast Day (Afternoon)"},"Ta'anit Bechorot (Mincha)":{alias:true,key:"Fast Day (Afternoon)"},"Ta'anit Esther (Mincha)":{alias:true,key:"Fast Day (Afternoon)"},"Tzom Gedaliah (Mincha)":{alias:true,key:"Fast Day (Afternoon)"},"Tzom Tammuz (Mincha)":{alias:true,key:"Fast Day (Afternoon)"},"Tish'a B'Av":{haft:{k:"Jeremiah",b:"8:13",e:"9:23"},fullkriyah:{"1":{p:45,k:5,b:"4:25",e:"4:29"},"2":{p:45,k:5,b:"4:30",e:"4:35"},"3":{p:45,k:5,b:"4:36",e:"4:40"}}},"Tish'a B'Av (Mincha)":{alias:true,key:"Fast Day (Afternoon)"},"Rosh Hashana I":{haft:{k:"I Samuel",b:"1:1",e:"2:10"},fullkriyah:{"1":{p:4,k:1,b:"21:1",e:"21:4"},"2":{p:4,k:1,b:"21:5",e:"21:12"},"3":{p:4,k:1,b:"21:13",e:"21:21"},"4":{p:4,k:1,b:"21:22",e:"21:27"},"5":{p:4,k:1,b:"21:28",e:"21:34"},M:{p:41,k:4,b:"29:1",e:"29:6"}}},"Rosh Hashana I (on Shabbat)":{haft:{k:"I Samuel",b:"1:1",e:"2:10"},fullkriyah:{"1":{p:4,k:1,b:"21:1",e:"21:4"},"2":{p:4,k:1,b:"21:5",e:"21:8"},"3":{p:4,k:1,b:"21:9",e:"21:12"},"4":{p:4,k:1,b:"21:13",e:"21:17"},"5":{p:4,k:1,b:"21:18",e:"21:21"},"6":{p:4,k:1,b:"21:22",e:"21:27"},"7":{p:4,k:1,b:"21:28",e:"21:34"},M:{p:41,k:4,b:"29:1",e:"29:6"}}},"Rosh Hashana II":{haft:{k:"Jeremiah",b:"31:1",e:"31:19"},fullkriyah:{"1":{p:4,k:1,b:"22:1",e:"22:3"},"2":{p:4,k:1,b:"22:4",e:"22:8"},"3":{p:4,k:1,b:"22:9",e:"22:14"},"4":{p:4,k:1,b:"22:15",e:"22:19"},"5":{p:4,k:1,b:"22:20",e:"22:24"},M:{p:41,k:4,b:"29:1",e:"29:6"}}},"Yom Kippur":{haft:{k:"Isaiah",b:"57:14",e:"58:14"},fullkriyah:{"1":{p:29,k:3,b:"16:1",e:"16:6"},"2":{p:29,k:3,b:"16:7",e:"16:11"},"3":{p:29,k:3,b:"16:12",e:"16:17"},"4":{p:29,k:3,b:"16:18",e:"16:24"},"5":{p:29,k:3,b:"16:25",e:"16:30"},"6":{p:29,k:3,b:"16:31",e:"16:34"},M:{p:41,k:4,b:"29:7",e:"29:11"}}},"Yom Kippur (on Shabbat)":{haft:{k:"Isaiah",b:"57:14",e:"58:14"},fullkriyah:{"1":{p:29,k:3,b:"16:1",e:"16:3"},"2":{p:29,k:3,b:"16:4",e:"16:6"},"3":{p:29,k:3,b:"16:7",e:"16:11"},"4":{p:29,k:3,b:"16:12",e:"16:17"},"5":{p:29,k:3,b:"16:18",e:"16:24"},"6":{p:29,k:3,b:"16:25",e:"16:30"},"7":{p:29,k:3,b:"16:31",e:"16:34"},M:{p:41,k:4,b:"29:7",e:"29:11"}}},"Yom Kippur (Mincha, Traditional)":{haft:[{k:"Jonah",b:"1:1",e:"4:11"},{k:"Micah",b:"7:18",e:"7:20"}],fullkriyah:{"1":{p:29,k:3,b:"18:1",e:"18:5"},"2":{p:29,k:3,b:"18:6",e:"18:21"},"3":{p:29,k:3,b:"18:22",e:"18:30"}}},"Yom Kippur (Mincha, Alternate)":{haft:[{k:"Jonah",b:"1:1",e:"4:11"},{k:"Micah",b:"7:18",e:"7:20"}],fullkriyah:{"1":{p:30,k:3,b:"19:1",e:"19:4"},"2":{p:30,k:3,b:"19:5",e:"19:10"},"3":{p:30,k:3,b:"19:11",e:"19:18"}}},"Sukkot I":{haft:{k:"Zechariah",b:"14:1",e:"14:21"},fullkriyah:{"1":{p:31,k:3,b:"22:26",e:"23:3"},"2":{p:31,k:3,b:"23:4",e:"23:14"},"3":{p:31,k:3,b:"23:15",e:"23:22"},"4":{p:31,k:3,b:"23:23",e:"23:32"},"5":{p:31,k:3,b:"23:33",e:"23:44"},M:{p:41,k:4,b:"29:12",e:"29:16"}}},"Sukkot I (on Shabbat)":{haft:{k:"Zechariah",b:"14:1",e:"14:21"},fullkriyah:{"1":{p:31,k:3,b:"22:26",e:"22:33"},"2":{p:31,k:3,b:"23:1",e:"23:3"},"3":{p:31,k:3,b:"23:4",e:"23:8"},"4":{p:31,k:3,b:"23:9",e:"23:14"},"5":{p:31,k:3,b:"23:15",e:"23:22"},"6":{p:31,k:3,b:"23:23",e:"23:32"},"7":{p:31,k:3,b:"23:33",e:"23:44"},M:{p:41,k:4,b:"29:12",e:"29:16"}}},"Sukkot II":{haft:{k:"I Kings",b:"8:2",e:"8:21"},fullkriyah:{"1":{p:31,k:3,b:"22:26",e:"23:3"},"2":{p:31,k:3,b:"23:4",e:"23:14"},"3":{p:31,k:3,b:"23:15",e:"23:22"},"4":{p:31,k:3,b:"23:23",e:"23:32"},"5":{p:31,k:3,b:"23:33",e:"23:44"},M:{p:41,k:4,b:"29:12",e:"29:16"}}},"Sukkot Chol ha-Moed Day 1":{fullkriyah:{"1":{p:41,k:4,b:"29:17",e:"29:19"},"2":{p:41,k:4,b:"29:20",e:"29:22"},"3":{p:41,k:4,b:"29:23",e:"29:25"},"4":{p:41,k:4,b:"29:17",e:"29:22"}}},"Sukkot Chol ha-Moed Day 2":{fullkriyah:{"1":{p:41,k:4,b:"29:20",e:"29:22"},"2":{p:41,k:4,b:"29:23",e:"29:25"},"3":{p:41,k:4,b:"29:26",e:"29:28"},"4":{p:41,k:4,b:"29:20",e:"29:25"}}},"Sukkot Chol ha-Moed Day 3":{fullkriyah:{"1":{p:41,k:4,b:"29:23",e:"29:25"},"2":{p:41,k:4,b:"29:26",e:"29:28"},"3":{p:41,k:4,b:"29:29",e:"29:31"},"4":{p:41,k:4,b:"29:23",e:"29:28"}}},"Sukkot Chol ha-Moed Day 4":{fullkriyah:{"1":{p:41,k:4,b:"29:26",e:"29:28"},"2":{p:41,k:4,b:"29:29",e:"29:31"},"3":{p:41,k:4,b:"29:32",e:"29:34"},"4":{p:41,k:4,b:"29:26",e:"29:31"}}},"Sukkot Chol ha-Moed Day 5":{fullkriyah:{"1":{p:41,k:4,b:"29:29",e:"29:31"},"2":{p:41,k:4,b:"29:32",e:"29:34"},"3":{p:41,k:4,b:"29:35",e:"29:37"},"4":{p:41,k:4,b:"29:29",e:"29:34"}}},"Sukkot Shabbat Chol ha-Moed":{haft:{k:"Ezekiel",b:"38:18",e:"39:16"},fullkriyah:{"1":{p:21,k:2,b:"33:12",e:"33:16"},"2":{p:21,k:2,b:"33:17",e:"33:19"},"3":{p:21,k:2,b:"33:20",e:"33:23"},"4":{p:21,k:2,b:"34:1",e:"34:3"},"5":{p:21,k:2,b:"34:4",e:"34:10"},"6":{p:21,k:2,b:"34:11",e:"34:17"},"7":{p:21,k:2,b:"34:18",e:"34:26"},"M-day1":{p:41,k:4,b:"29:17",e:"29:22"},"M-day2":{p:41,k:4,b:"29:20",e:"29:25"},"M-day3":{p:41,k:4,b:"29:23",e:"29:28"},"M-day4":{p:41,k:4,b:"29:26",e:"29:31"},"M-day5":{p:41,k:4,b:"29:29",e:"29:34"}}},"Sukkot Final Day (Hoshana Raba)":{fullkriyah:{"1":{p:41,k:4,b:"29:26",e:"29:28"},"2":{p:41,k:4,b:"29:29",e:"29:31"},"3":{p:41,k:4,b:"29:32",e:"29:34"},"4":{p:41,k:4,b:"29:29",e:"29:34"}}},"Shmini Atzeret":{haft:{k:"I Kings",b:"8:54",e:"8:66"},fullkriyah:{"1":{p:47,k:5,b:"14:22",e:"14:29"},"2":{p:47,k:5,b:"15:1",e:"15:18"},"3":{p:47,k:5,b:"15:19",e:"16:3"},"4":{p:47,k:5,b:"16:4",e:"16:8"},"5":{p:47,k:5,b:"16:9",e:"16:17"},M:{p:41,k:4,b:"29:35",e:"30:1"}}},"Shmini Atzeret (on Shabbat)":{haft:{k:"I Kings",b:"8:54",e:"8:66"},fullkriyah:{"1":{p:47,k:5,b:"14:22",e:"14:29"},"2":{p:47,k:5,b:"15:1",e:"15:18"},"3":{p:47,k:5,b:"15:19",e:"15:23"},"4":{p:47,k:5,b:"16:1",e:"16:3"},"5":{p:47,k:5,b:"16:4",e:"16:8"},"6":{p:47,k:5,b:"16:9",e:"16:12"},"7":{p:47,k:5,b:"16:13",e:"16:17"},M:{p:41,k:4,b:"29:35",e:"30:1"}}},"Erev Simchat Torah":{fullkriyah:{"1":{p:54,k:5,b:"33:1",e:"33:7"},"2":{p:54,k:5,b:"33:8",e:"33:12"},"3":{p:54,k:5,b:"33:13",e:"33:17"},"4":{p:54,k:5,b:"33:18",e:"33:21"},"5":{p:54,k:5,b:"33:22",e:"33:26"}}},"Simchat Torah":{haft:{k:"Joshua",b:"1:1",e:"1:18"},fullkriyah:{"1":{p:54,k:5,b:"33:1",e:"33:7"},"2":{p:54,k:5,b:"33:8",e:"33:12"},"3":{p:54,k:5,b:"33:13",e:"33:17"},"4":{p:54,k:5,b:"33:18",e:"33:21"},"5":{p:54,k:5,b:"33:22",e:"33:26"},"6":{p:54,k:5,b:"33:27",e:"34:12"},"7":{p:1,k:1,b:"1:1",e:"2:3"},M:{p:41,k:4,b:"29:35",e:"30:1"}}},"Shabbat Chanukah":{haft:{k:"Zechariah",b:"2:14",e:"4:7"}},"Shabbat Chanukah II":{haft:{k:"I Kings",b:"7:40",e:"7:50"}},"Shabbat Rosh Chodesh Chanukah":{haft:{k:"Zechariah",b:"2:14",e:"4:7"},fullkriyah:{"7":{p:41,k:4,b:"28:9",e:"28:15"},M:{p:35,k:4,b:"7:42",e:"7:47"}}},"Chanukah Day 1":{fullkriyah:{"1":{p:35,k:4,b:"7:1",e:"7:11"},"2":{p:35,k:4,b:"7:12",e:"7:14"},"3":{p:35,k:4,b:"7:15",e:"7:17"}},alt:{"1":{p:35,k:4,b:"7:1",e:"7:3"},"2":{p:35,k:4,b:"7:4",e:"7:11"},"3":{p:35,k:4,b:"7:12",e:"7:17"}}},"Chanukah Day 2":{fullkriyah:{"1":{p:35,k:4,b:"7:18",e:"7:20"},"2":{p:35,k:4,b:"7:21",e:"7:23"},"3":{p:35,k:4,b:"7:24",e:"7:29"}},alt:{"1":{p:35,k:4,b:"7:18",e:"7:20"},"2":{p:35,k:4,b:"7:21",e:"7:23"},"3":{p:35,k:4,b:"7:18",e:"7:23"}}},"Chanukah Day 3":{fullkriyah:{"1":{p:35,k:4,b:"7:24",e:"7:26"},"2":{p:35,k:4,b:"7:27",e:"7:29"},"3":{p:35,k:4,b:"7:30",e:"7:35"}},alt:{"1":{p:35,k:4,b:"7:24",e:"7:26"},"2":{p:35,k:4,b:"7:27",e:"7:29"},"3":{p:35,k:4,b:"7:24",e:"7:29"}}},"Chanukah Day 4":{fullkriyah:{"1":{p:35,k:4,b:"7:30",e:"7:32"},"2":{p:35,k:4,b:"7:33",e:"7:35"},"3":{p:35,k:4,b:"7:36",e:"7:41"}},alt:{"1":{p:35,k:4,b:"7:30",e:"7:32"},"2":{p:35,k:4,b:"7:33",e:"7:35"},"3":{p:35,k:4,b:"7:30",e:"7:35"}}},"Chanukah Day 5":{fullkriyah:{"1":{p:35,k:4,b:"7:36",e:"7:38"},"2":{p:35,k:4,b:"7:39",e:"7:41"},"3":{p:35,k:4,b:"7:42",e:"7:47"}},alt:{"1":{p:35,k:4,b:"7:36",e:"7:38"},"2":{p:35,k:4,b:"7:39",e:"7:41"},"3":{p:35,k:4,b:"7:36",e:"7:41"}}},"Chanukah Day 6":{fullkriyah:{"1":{p:41,k:4,b:"28:1",e:"28:5"},"2":{p:41,k:4,b:"28:6",e:"28:10"},"3":{p:41,k:4,b:"28:11",e:"28:15"},"4":{p:35,k:4,b:"7:42",e:"7:47"}}},"Chanukah Day 7":{fullkriyah:{"1":{p:35,k:4,b:"7:48",e:"7:50"},"2":{p:35,k:4,b:"7:51",e:"7:53"},"3":{p:35,k:4,b:"7:54",e:"7:59"}},alt:{"1":{p:35,k:4,b:"7:48",e:"7:50"},"2":{p:35,k:4,b:"7:51",e:"7:53"},"3":{p:35,k:4,b:"7:48",e:"7:53"}}},"Chanukah Day 7 (on Rosh Chodesh)":{fullkriyah:{"1":{p:41,k:4,b:"28:1",e:"28:5"},"2":{p:41,k:4,b:"28:6",e:"28:10"},"3":{p:41,k:4,b:"28:11",e:"28:15"},"4":{p:35,k:4,b:"7:48",e:"7:53"}}},"Chanukah Day 8":{fullkriyah:{"1":{p:35,k:4,b:"7:54",e:"7:56"},"2":{p:35,k:4,b:"7:57",e:"7:59"},"3":{p:35,k:4,b:"7:60",e:"8:4"}}},Purim:Purim,"Shushan Purim":{fullkriyah:{"1":{p:16,k:2,b:"17:8",e:"17:10"},"2":{p:16,k:2,b:"17:11",e:"17:13"},"3":{p:16,k:2,b:"17:14",e:"17:16"}}},"Shabbat HaChodesh":{haft:{k:"Ezekiel",b:"45:16",e:"46:18"},fullkriyah:{M:{p:15,k:2,b:"12:1",e:"12:20"}}},"Shabbat HaChodesh (on Rosh Chodesh)":{haft:{k:"Ezekiel",b:"45:16",e:"46:18"},fullkriyah:{"7":{p:41,k:4,b:"28:9",e:"28:15"},M:{p:15,k:2,b:"12:1",e:"12:20"}}},"Shabbat HaGadol":{haft:{k:"Malachi",b:"3:4",e:"3:24"}},"Shabbat Parah":{haft:{k:"Ezekiel",b:"36:16",e:"36:38"},fullkriyah:{M:{p:39,k:4,b:"19:1",e:"19:22"}}},"Shabbat Shekalim":{haft:{k:"II Kings",b:"12:1",e:"12:17"},fullkriyah:{M:{p:21,k:2,b:"30:11",e:"30:16"}}},"Shabbat Shekalim (on Rosh Chodesh)":{haft:{k:"II Kings",b:"12:1",e:"12:17"},fullkriyah:{"7":{p:41,k:4,b:"28:9",e:"28:15"},M:{p:21,k:2,b:"30:11",e:"30:16"}}},"Shabbat Shuva":{haft:[{k:"Hosea",b:"14:2",e:"14:10"},{k:"Micah",b:"7:18",e:"7:20"},{k:"Joel",b:"2:15",e:"2:27"}]},"Shabbat Zachor":{haft:{k:"I Samuel",b:"15:2",e:"15:34"},fullkriyah:{M:{p:49,k:5,b:"25:17",e:"25:19"}}},"Rosh Chodesh":{fullkriyah:{"1":{p:41,k:4,b:"28:1",e:"28:3"},"2":{p:41,k:4,b:"28:3",e:"28:5"},"3":{p:41,k:4,b:"28:6",e:"28:10"},"4":{p:41,k:4,b:"28:11",e:"28:15"}}},"Shabbat Rosh Chodesh":{haft:{k:"Isaiah",b:"66:1",e:"66:24"},fullkriyah:{M:{p:41,k:4,b:"28:9",e:"28:15"}}},"Shabbat Machar Chodesh":{haft:{k:"I Samuel",b:"20:18",e:"20:42"}}};
203
252
 
204
253
  /**
205
- * @private
206
- * @param {string} key
254
+ * Is there a special festival Torah Reading for `holiday`?
255
+ * @param {string} holiday
207
256
  * @return {boolean}
208
257
  */
209
258
 
210
- function hasFestival(key) {
211
- return typeof festivals[key] === 'object';
259
+ function hasFestival(holiday) {
260
+ return typeof festivals[holiday] === 'object';
212
261
  }
213
262
  /**
214
- * @private
215
- * @param {string} key
263
+ * Returns the raw metadata for festival reading for `holiday`
264
+ * @param {string} holiday
216
265
  * @return {any}
217
266
  */
218
267
 
219
- function lookupFestival(key) {
220
- let src = festivals[key];
268
+ function lookupFestival(holiday) {
269
+ let src = festivals[holiday];
221
270
 
222
271
  if (typeof src === 'undefined') {
223
272
  return undefined;
@@ -227,7 +276,7 @@ function lookupFestival(key) {
227
276
  const tmp = festivals[src.key];
228
277
 
229
278
  if (typeof tmp === 'undefined') {
230
- throw new Error(`Leying key ${key} => ${src.key} not found`);
279
+ throw new Error(`Leyning alias ${holiday} => ${src.key} not found`);
231
280
  }
232
281
 
233
282
  src = tmp;
@@ -246,8 +295,6 @@ function lookupFestival(key) {
246
295
  return result;
247
296
  }
248
297
 
249
- const Bereshit$2={num:1,hebrew:"בְּרֵאשִׁית",book:1,haft:{k:"Isaiah",b:"42:5",e:"43:10"},seph:{k:"Isaiah",b:"42:5",e:"42:21"},fullkriyah:{"1":["1:1","2:3"],"2":["2:4","2:19"],"3":["2:20","3:21"],"4":["3:22","4:18"],"5":["4:19","4:22"],"6":["4:23","5:24"],"7":["5:25","6:8"],M:["6:5","6:8"]},weekday:{"1":["1:1","1:5"],"2":["1:6","1:8"],"3":["1:9","1:13"]}};const Noach$2={num:2,hebrew:"נֹחַ",book:1,haft:{k:"Isaiah",b:"54:1",e:"55:5"},seph:{k:"Isaiah",b:"54:1",e:"54:10"},fullkriyah:{"1":["6:9","6:22"],"2":["7:1","7:16"],"3":["7:17","8:14"],"4":["8:15","9:7"],"5":["9:8","9:17"],"6":["9:18","10:32"],"7":["11:1","11:32"],M:["11:29","11:32"]},weekday:{"1":["6:9","6:16"],"2":["6:17","6:19"],"3":["6:20","6:22"]}};const Vayera$2={num:4,hebrew:"וַיֵּרָא",book:1,haft:{k:"II Kings",b:"4:1",e:"4:37"},seph:{k:"II Kings",b:"4:1",e:"4:23"},fullkriyah:{"1":["18:1","18:14"],"2":["18:15","18:33"],"3":["19:1","19:20"],"4":["19:21","21:4"],"5":["21:5","21:21"],"6":["21:22","21:34"],"7":["22:1","22:24"],M:["22:20","22:24"]},weekday:{"1":["18:1","18:5"],"2":["18:6","18:8"],"3":["18:9","18:14"]}};const Toldot$2={num:6,hebrew:"תּוֹלְדוֹת",book:1,haft:{k:"Malachi",b:"1:1",e:"2:7"},fullkriyah:{"1":["25:19","26:5"],"2":["26:6","26:12"],"3":["26:13","26:22"],"4":["26:23","26:29"],"5":["26:30","27:27"],"6":["27:28","28:4"],"7":["28:5","28:9"],M:["28:7","28:9"]},weekday:{"1":["25:19","25:22"],"2":["25:23","25:26"],"3":["25:27","26:5"]}};const Vayetzei$2={num:7,hebrew:"וַיֵּצֵא",book:1,haft:{k:"Hosea",b:"12:13",e:"14:10"},seph:{k:"Hosea",b:"11:7",e:"12:12"},fullkriyah:{"1":["28:10","28:22"],"2":["29:1","29:17"],"3":["29:18","30:13"],"4":["30:14","30:27"],"5":["30:28","31:16"],"6":["31:17","31:42"],"7":["31:43","32:3"],M:["32:1","32:3"]},weekday:{"1":["28:10","28:12"],"2":["28:13","28:17"],"3":["28:18","28:22"]}};const Vayishlach$2={num:8,hebrew:"וַיִּשְׁלַח",book:1,haft:{k:"Obadiah",b:"1:1",e:"1:21"},fullkriyah:{"1":["32:4","32:13"],"2":["32:14","32:30"],"3":["32:31","33:5"],"4":["33:6","33:20"],"5":["34:1","35:11"],"6":["35:12","36:19"],"7":["36:20","36:43"],M:["36:40","36:43"]},weekday:{"1":["32:4","32:6"],"2":["32:7","32:9"],"3":["32:10","32:13"]}};const Vayeshev$2={num:9,hebrew:"וַיֵּשֶׁב",book:1,haft:{k:"Amos",b:"2:6",e:"3:8"},fullkriyah:{"1":["37:1","37:11"],"2":["37:12","37:22"],"3":["37:23","37:36"],"4":["38:1","38:30"],"5":["39:1","39:6"],"6":["39:7","39:23"],"7":["40:1","40:23"],M:["40:20","40:23"]},weekday:{"1":["37:1","37:3"],"2":["37:4","37:7"],"3":["37:8","37:11"]}};const Miketz$2={num:10,hebrew:"מִקֵּץ",book:1,haft:{k:"I Kings",b:"3:15",e:"4:1"},fullkriyah:{"1":["41:1","41:14"],"2":["41:15","41:38"],"3":["41:39","41:52"],"4":["41:53","42:18"],"5":["42:19","43:15"],"6":["43:16","43:29"],"7":["43:30","44:17"],M:["44:14","44:17"]},weekday:{"1":["41:1","41:4"],"2":["41:5","41:7"],"3":["41:8","41:14"]}};const Vayigash$2={num:11,hebrew:"וַיִּגַּשׁ",book:1,haft:{k:"Ezekiel",b:"37:15",e:"37:28"},fullkriyah:{"1":["44:18","44:30"],"2":["44:31","45:7"],"3":["45:8","45:18"],"4":["45:19","45:27"],"5":["45:28","46:27"],"6":["46:28","47:10"],"7":["47:11","47:27"],M:["47:25","47:27"]},weekday:{"1":["44:18","44:20"],"2":["44:21","44:24"],"3":["44:25","44:30"]}};const Vayechi$2={num:12,hebrew:"וַיְחִי",book:1,haft:{k:"I Kings",b:"2:1",e:"2:12"},fullkriyah:{"1":["47:28","48:9"],"2":["48:10","48:16"],"3":["48:17","48:22"],"4":["49:1","49:18"],"5":["49:19","49:26"],"6":["49:27","50:20"],"7":["50:21","50:26"],M:["50:23","50:26"]},weekday:{"1":["47:28","47:31"],"2":["48:1","48:3"],"3":["48:4","48:9"]}};const Shemot$2={num:13,hebrew:"שְׁמוֹת",book:2,haft:[{k:"Isaiah",b:"27:6",e:"28:13"},{k:"Isaiah",b:"29:22",e:"29:23"}],seph:{k:"Jeremiah",b:"1:1",e:"2:3"},fullkriyah:{"1":["1:1","1:17"],"2":["1:18","2:10"],"3":["2:11","2:25"],"4":["3:1","3:15"],"5":["3:16","4:17"],"6":["4:18","4:31"],"7":["5:1","6:1"],M:["5:22","6:1"]},weekday:{"1":["1:1","1:7"],"2":["1:8","1:12"],"3":["1:13","1:17"]}};const Vaera$2={num:14,hebrew:"וָאֵרָא",book:2,haft:{k:"Ezekiel",b:"28:25",e:"29:21"},fullkriyah:{"1":["6:2","6:13"],"2":["6:14","6:28"],"3":["6:29","7:7"],"4":["7:8","8:6"],"5":["8:7","8:18"],"6":["8:19","9:16"],"7":["9:17","9:35"],M:["9:33","9:35"]},weekday:{"1":["6:2","6:5"],"2":["6:6","6:9"],"3":["6:10","6:13"]}};const Bo$2={num:15,hebrew:"בֹּא",book:2,haft:{k:"Jeremiah",b:"46:13",e:"46:28"},fullkriyah:{"1":["10:1","10:11"],"2":["10:12","10:23"],"3":["10:24","11:3"],"4":["11:4","12:20"],"5":["12:21","12:28"],"6":["12:29","12:51"],"7":["13:1","13:16"],M:["13:14","13:16"]},weekday:{"1":["10:1","10:3"],"2":["10:4","10:6"],"3":["10:7","10:11"]}};const Beshalach$2={num:16,hebrew:"בְּשַׁלַּח",book:2,haft:{k:"Judges",b:"4:4",e:"5:31"},seph:{k:"Judges",b:"5:1",e:"5:31"},fullkriyah:{"1":["13:17","14:8"],"2":["14:9","14:14"],"3":["14:15","14:25"],"4":["14:26","15:26"],"5":["15:27","16:10"],"6":["16:11","16:36"],"7":["17:1","17:16"],M:["17:14","17:16"]},weekday:{"1":["13:17","13:22"],"2":["14:1","14:4"],"3":["14:5","14:8"]}};const Yitro$2={num:17,hebrew:"יִתְרוֹ",book:2,haft:[{k:"Isaiah",b:"6:1",e:"7:6"},{k:"Isaiah",b:"9:5",e:"9:6"}],seph:{k:"Isaiah",b:"6:1",e:"6:13"},fullkriyah:{"1":["18:1","18:12"],"2":["18:13","18:23"],"3":["18:24","18:27"],"4":["19:1","19:6"],"5":["19:7","19:19"],"6":["19:20","20:14"],"7":["20:15","20:23"],M:["20:19","20:23"]},weekday:{"1":["18:1","18:4"],"2":["18:5","18:8"],"3":["18:9","18:12"]}};const Mishpatim$2={num:18,hebrew:"מִּשְׁפָּטִים",book:2,haft:[{k:"Jeremiah",b:"34:8",e:"34:22"},{k:"Jeremiah",b:"33:25",e:"33:26"}],fullkriyah:{"1":["21:1","21:19"],"2":["21:20","22:3"],"3":["22:4","22:26"],"4":["22:27","23:5"],"5":["23:6","23:19"],"6":["23:20","23:25"],"7":["23:26","24:18"],M:["24:15","24:18"]},weekday:{"1":["21:1","21:6"],"2":["21:7","21:11"],"3":["21:12","21:19"]}};const Terumah$2={num:19,hebrew:"תְּרוּמָה",book:2,haft:{k:"I Kings",b:"5:26",e:"6:13"},fullkriyah:{"1":["25:1","25:16"],"2":["25:17","25:30"],"3":["25:31","26:14"],"4":["26:15","26:30"],"5":["26:31","26:37"],"6":["27:1","27:8"],"7":["27:9","27:19"],M:["27:17","27:19"]},weekday:{"1":["25:1","25:5"],"2":["25:6","25:9"],"3":["25:10","25:16"]}};const Tetzaveh$2={num:20,hebrew:"תְּצַוֶּה",book:2,haft:{k:"Ezekiel",b:"43:10",e:"43:27"},fullkriyah:{"1":["27:20","28:12"],"2":["28:13","28:30"],"3":["28:31","28:43"],"4":["29:1","29:18"],"5":["29:19","29:37"],"6":["29:38","29:46"],"7":["30:1","30:10"],M:["30:8","30:10"]},weekday:{"1":["27:20","28:5"],"2":["28:6","28:9"],"3":["28:10","28:12"]}};const Vayakhel$2={num:22,hebrew:"וַיַּקְהֵל",book:2,haft:{k:"I Kings",b:"7:40",e:"7:50"},seph:{k:"I Kings",b:"7:13",e:"7:26"},fullkriyah:{"1":["35:1","35:20"],"2":["35:21","35:29"],"3":["35:30","36:7"],"4":["36:8","36:19"],"5":["36:20","37:16"],"6":["37:17","37:29"],"7":["38:1","38:20"],M:["38:18","38:20"]},weekday:{"1":["35:1","35:3"],"2":["35:4","35:10"],"3":["35:11","35:20"]}};const Pekudei$2={num:23,hebrew:"פְקוּדֵי",book:2,haft:{k:"I Kings",b:"7:51",e:"8:21"},seph:{k:"I Kings",b:"7:40",e:"7:50"},fullkriyah:{"1":["38:21","39:1"],"2":["39:2","39:21"],"3":["39:22","39:32"],"4":["39:33","39:43"],"5":["40:1","40:16"],"6":["40:17","40:27"],"7":["40:28","40:38"],M:["40:34","40:38"]},weekday:{"1":["38:21","38:23"],"2":["38:24","38:27"],"3":["38:28","39:1"]}};const Vayikra$2={num:24,hebrew:"וַיִּקְרָא",book:3,haft:{k:"Isaiah",b:"43:21",e:"44:23"},fullkriyah:{"1":["1:1","1:13"],"2":["1:14","2:6"],"3":["2:7","2:16"],"4":["3:1","3:17"],"5":["4:1","4:26"],"6":["4:27","5:10"],"7":["5:11","5:26"],M:["5:24","5:26"]},weekday:{"1":["1:1","1:4"],"2":["1:5","1:9"],"3":["1:10","1:13"]}};const Tzav$2={num:25,hebrew:"צַו",book:3,haft:[{k:"Jeremiah",b:"7:21",e:"8:3"},{k:"Jeremiah",b:"9:22",e:"9:23"}],fullkriyah:{"1":["6:1","6:11"],"2":["6:12","7:10"],"3":["7:11","7:38"],"4":["8:1","8:13"],"5":["8:14","8:21"],"6":["8:22","8:29"],"7":["8:30","8:36"],M:["8:33","8:36"]},weekday:{"1":["6:1","6:3"],"2":["6:4","6:6"],"3":["6:7","6:11"]}};const Shmini$2={num:26,hebrew:"שְּׁמִינִי",book:3,haft:{k:"II Samuel",b:"6:1",e:"7:17"},seph:{k:"II Samuel",b:"6:1",e:"6:19"},fullkriyah:{"1":["9:1","9:16"],"2":["9:17","9:23"],"3":["9:24","10:11"],"4":["10:12","10:15"],"5":["10:16","10:20"],"6":["11:1","11:32"],"7":["11:33","11:47"],M:["11:45","11:47"]},weekday:{"1":["9:1","9:6"],"2":["9:7","9:10"],"3":["9:11","9:16"]}};const Tazria$2={num:27,hebrew:"תַזְרִיעַ",book:3,haft:{k:"II Kings",b:"4:42",e:"5:19"},fullkriyah:{"1":["12:1","13:5"],"2":["13:6","13:17"],"3":["13:18","13:23"],"4":["13:24","13:28"],"5":["13:29","13:39"],"6":["13:40","13:54"],"7":["13:55","13:59"],M:["13:57","13:59"]},weekday:{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"]}};const Metzora$2={num:28,hebrew:"מְּצֹרָע",book:3,haft:{k:"II Kings",b:"7:3",e:"7:20"},fullkriyah:{"1":["14:1","14:12"],"2":["14:13","14:20"],"3":["14:21","14:32"],"4":["14:33","14:53"],"5":["14:54","15:15"],"6":["15:16","15:28"],"7":["15:29","15:33"],M:["15:31","15:33"]},weekday:{"1":["14:1","14:5"],"2":["14:6","14:9"],"3":["14:10","14:12"]}};const Kedoshim$2={num:30,hebrew:"קְדשִׁים",book:3,haft:{k:"Amos",b:"9:7",e:"9:15"},seph:{k:"Ezekiel",b:"20:2",e:"20:20"},fullkriyah:{"1":["19:1","19:14"],"2":["19:15","19:22"],"3":["19:23","19:32"],"4":["19:33","19:37"],"5":["20:1","20:7"],"6":["20:8","20:22"],"7":["20:23","20:27"],M:["20:25","20:27"]},weekday:{"1":["19:1","19:4"],"2":["19:5","19:10"],"3":["19:11","19:14"]}};const Emor$2={num:31,hebrew:"אֱמוֹר",book:3,haft:{k:"Ezekiel",b:"44:15",e:"44:31"},fullkriyah:{"1":["21:1","21:15"],"2":["21:16","22:16"],"3":["22:17","22:33"],"4":["23:1","23:22"],"5":["23:23","23:32"],"6":["23:33","23:44"],"7":["24:1","24:23"],M:["24:21","24:23"]},weekday:{"1":["21:1","21:6"],"2":["21:7","21:12"],"3":["21:13","21:15"]}};const Behar$2={num:32,hebrew:"בְּהַר",book:3,haft:{k:"Jeremiah",b:"32:6",e:"32:27"},fullkriyah:{"1":["25:1","25:13"],"2":["25:14","25:18"],"3":["25:19","25:24"],"4":["25:25","25:28"],"5":["25:29","25:38"],"6":["25:39","25:46"],"7":["25:47","26:2"],M:["25:55","26:2"]},weekday:{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:13"]}};const Bechukotai$2={num:33,hebrew:"בְּחֻקֹּתַי",book:3,haft:{k:"Jeremiah",b:"16:19",e:"17:14"},fullkriyah:{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:46"],"4":["27:1","27:15"],"5":["27:16","27:21"],"6":["27:22","27:28"],"7":["27:29","27:34"],M:["27:32","27:34"]},weekday:{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:13"]}};const Bamidbar$2={num:34,hebrew:"בְּמִדְבַּר",book:4,haft:{k:"Hosea",b:"2:1",e:"2:22"},fullkriyah:{"1":["1:1","1:19"],"2":["1:20","1:54"],"3":["2:1","2:34"],"4":["3:1","3:13"],"5":["3:14","3:39"],"6":["3:40","3:51"],"7":["4:1","4:20"],M:["4:17","4:20"]},weekday:{"1":["1:1","1:4"],"2":["1:5","1:16"],"3":["1:17","1:19"]}};const Nasso$2={num:35,hebrew:"נָשׂא",book:4,haft:{k:"Judges",b:"13:2",e:"13:25"},fullkriyah:{"1":["4:21","4:37"],"2":["4:38","4:49"],"3":["5:1","5:10"],"4":["5:11","6:27"],"5":["7:1","7:41"],"6":["7:42","7:71"],"7":["7:72","7:89"],M:["7:87","7:89"]},weekday:{"1":["4:21","4:24"],"2":["4:25","4:28"],"3":["4:29","4:33"]}};const Korach$2={num:38,hebrew:"קוֹרַח",book:4,haft:{k:"I Samuel",b:"11:14",e:"12:22"},fullkriyah:{"1":["16:1","16:13"],"2":["16:14","16:19"],"3":["16:20","17:8"],"4":["17:9","17:15"],"5":["17:16","17:24"],"6":["17:25","18:20"],"7":["18:21","18:32"],M:["18:30","18:32"]},weekday:{"1":["16:1","16:3"],"2":["16:4","16:7"],"3":["16:8","16:13"]}};const Chukat$2={num:39,hebrew:"חֻקַּת",book:4,haft:{k:"Judges",b:"11:1",e:"11:33"},fullkriyah:{"1":["19:1","19:17"],"2":["19:18","20:6"],"3":["20:7","20:13"],"4":["20:14","20:21"],"5":["20:22","21:9"],"6":["21:10","21:20"],"7":["21:21","22:1"],M:["21:34","22:1"]},weekday:{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:17"]}};const Balak$2={num:40,hebrew:"בָּלָק",book:4,haft:{k:"Micah",b:"5:6",e:"6:8"},fullkriyah:{"1":["22:2","22:12"],"2":["22:13","22:20"],"3":["22:21","22:38"],"4":["22:39","23:12"],"5":["23:13","23:26"],"6":["23:27","24:13"],"7":["24:14","25:9"],M:["25:7","25:9"]},weekday:{"1":["22:2","22:4"],"2":["22:5","22:7"],"3":["22:8","22:12"]}};const Pinchas$2={num:41,hebrew:"פִּינְחָס",book:4,haft:{k:"I Kings",b:"18:46",e:"19:21"},fullkriyah:{"1":["25:10","26:4"],"2":["26:5","26:51"],"3":["26:52","27:5"],"4":["27:6","27:23"],"5":["28:1","28:15"],"6":["28:16","29:11"],"7":["29:12","30:1"],M:["29:35","30:1"]},weekday:{"1":["25:10","25:12"],"2":["25:13","25:15"],"3":["25:16","26:4"]}};const Matot$2={num:42,hebrew:"מַּטּוֹת",book:4,haft:{k:"Jeremiah",b:"1:1",e:"2:3"},fullkriyah:{"1":["30:2","30:17"],"2":["31:1","31:12"],"3":["31:13","31:24"],"4":["31:25","31:41"],"5":["31:42","31:54"],"6":["32:1","32:19"],"7":["32:20","32:42"],M:["32:39","32:42"]},weekday:{"1":["30:2","30:9"],"2":["30:10","30:13"],"3":["30:14","30:17"]}};const Masei$2={num:43,hebrew:"מַסְעֵי",book:4,haft:[{k:"Jeremiah",b:"2:4",e:"2:28"},{k:"Jeremiah",b:"3:4",e:"3:4"}],seph:[{k:"Jeremiah",b:"2:4",e:"2:28"},{k:"Jeremiah",b:"4:1",e:"4:2"}],fullkriyah:{"1":["33:1","33:10"],"2":["33:11","33:49"],"3":["33:50","34:15"],"4":["34:16","34:29"],"5":["35:1","35:8"],"6":["35:9","35:34"],"7":["36:1","36:13"],M:["36:11","36:13"]},weekday:{"1":["33:1","33:3"],"2":["33:4","33:6"],"3":["33:7","33:10"]}};const Devarim$1={num:44,hebrew:"דְּבָרִים",book:5,haft:{k:"Isaiah",b:"1:1",e:"1:27"},fullkriyah:{"1":["1:1","1:10"],"2":["1:11","1:21"],"3":["1:22","1:38"],"4":["1:39","2:1"],"5":["2:2","2:30"],"6":["2:31","3:14"],"7":["3:15","3:22"],M:["3:20","3:22"]},weekday:{"1":["1:1","1:3"],"2":["1:4","1:7"],"3":["1:8","1:11"]}};const Vaetchanan$1={num:45,hebrew:"וָאֶתְחַנַּן",book:5,haft:{k:"Isaiah",b:"40:1",e:"40:26"},fullkriyah:{"1":["3:23","4:4"],"2":["4:5","4:40"],"3":["4:41","4:49"],"4":["5:1","5:18"],"5":["5:19","6:3"],"6":["6:4","6:25"],"7":["7:1","7:11"],M:["7:9","7:11"]},weekday:{"1":["3:23","3:25"],"2":["3:26","4:4"],"3":["4:5","4:8"]}};const Eikev$2={num:46,hebrew:"עֵקֶב",book:5,haft:{k:"Isaiah",b:"49:14",e:"51:3"},fullkriyah:{"1":["7:12","8:10"],"2":["8:11","9:3"],"3":["9:4","9:29"],"4":["10:1","10:11"],"5":["10:12","11:9"],"6":["11:10","11:21"],"7":["11:22","11:25"],M:["11:22","11:25"]},weekday:{"1":["7:12","7:21"],"2":["7:22","8:3"],"3":["8:4","8:10"]}};const Shoftim$2={num:48,hebrew:"שׁוֹפְטִים",book:5,haft:{k:"Isaiah",b:"51:12",e:"52:12"},fullkriyah:{"1":["16:18","17:13"],"2":["17:14","17:20"],"3":["18:1","18:5"],"4":["18:6","18:13"],"5":["18:14","19:13"],"6":["19:14","20:9"],"7":["20:10","21:9"],M:["21:7","21:9"]},weekday:{"1":["16:18","16:20"],"2":["16:21","17:10"],"3":["17:11","17:13"]}};const Nitzavim$2={num:51,hebrew:"נִצָּבִים",book:5,haft:{k:"Isaiah",b:"61:10",e:"63:9"},fullkriyah:{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"],"4":["30:1","30:6"],"5":["30:7","30:10"],"6":["30:11","30:14"],"7":["30:15","30:20"],M:["30:15","30:20"]},weekday:{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"]}};const Vayeilech$2={num:52,hebrew:"וַיֵּלֶךְ",book:5,haft:{k:"Isaiah",b:"55:6",e:"56:8"},fullkriyah:{"1":["31:1","31:3"],"2":["31:4","31:6"],"3":["31:7","31:9"],"4":["31:10","31:13"],"5":["31:14","31:19"],"6":["31:20","31:24"],"7":["31:25","31:30"],M:["31:28","31:30"]},weekday:{"1":["31:1","31:3"],"2":["31:4","31:6"],"3":["31:7","31:13"]}};var parshiyotObj = {Bereshit:Bereshit$2,Noach:Noach$2,"Lech-Lecha":{num:3,hebrew:"לֶךְ־לְךָ",book:1,haft:{k:"Isaiah",b:"40:27",e:"41:16"},fullkriyah:{"1":["12:1","12:13"],"2":["12:14","13:4"],"3":["13:5","13:18"],"4":["14:1","14:20"],"5":["14:21","15:6"],"6":["15:7","17:6"],"7":["17:7","17:27"],M:["17:24","17:27"]},weekday:{"1":["12:1","12:3"],"2":["12:4","12:9"],"3":["12:10","12:13"]}},Vayera:Vayera$2,"Chayei Sara":{num:5,hebrew:"חַיֵּי שָֹרָה",book:1,haft:{k:"I Kings",b:"1:1",e:"1:31"},fullkriyah:{"1":["23:1","23:16"],"2":["23:17","24:9"],"3":["24:10","24:26"],"4":["24:27","24:52"],"5":["24:53","24:67"],"6":["25:1","25:11"],"7":["25:12","25:18"],M:["25:16","25:18"]},weekday:{"1":["23:1","23:7"],"2":["23:8","23:12"],"3":["23:13","23:16"]}},Toldot:Toldot$2,Vayetzei:Vayetzei$2,Vayishlach:Vayishlach$2,Vayeshev:Vayeshev$2,Miketz:Miketz$2,Vayigash:Vayigash$2,Vayechi:Vayechi$2,Shemot:Shemot$2,Vaera:Vaera$2,Bo:Bo$2,Beshalach:Beshalach$2,Yitro:Yitro$2,Mishpatim:Mishpatim$2,Terumah:Terumah$2,Tetzaveh:Tetzaveh$2,"Ki Tisa":{num:21,hebrew:"כִּי תִשָּׂא",book:2,haft:{k:"I Kings",b:"18:1",e:"18:39"},seph:{k:"I Kings",b:"18:20",e:"18:39"},fullkriyah:{"1":["30:11","31:17"],"2":["31:18","33:11"],"3":["33:12","33:16"],"4":["33:17","33:23"],"5":["34:1","34:9"],"6":["34:10","34:26"],"7":["34:27","34:35"],M:["34:33","34:35"]},weekday:{"1":["30:11","30:13"],"2":["30:14","30:16"],"3":["30:17","30:21"]}},Vayakhel:Vayakhel$2,Pekudei:Pekudei$2,Vayikra:Vayikra$2,Tzav:Tzav$2,Shmini:Shmini$2,Tazria:Tazria$2,Metzora:Metzora$2,"Achrei Mot":{num:29,hebrew:"אַחֲרֵי מוֹת",book:3,haft:{k:"Ezekiel",b:"22:1",e:"22:19"},seph:{k:"Ezekiel",b:"22:1",e:"22:16"},fullkriyah:{"1":["16:1","16:17"],"2":["16:18","16:24"],"3":["16:25","16:34"],"4":["17:1","17:7"],"5":["17:8","18:5"],"6":["18:6","18:21"],"7":["18:22","18:30"],M:["18:28","18:30"]},weekday:{"1":["16:1","16:6"],"2":["16:7","16:11"],"3":["16:12","16:17"]}},Kedoshim:Kedoshim$2,Emor:Emor$2,Behar:Behar$2,Bechukotai:Bechukotai$2,Bamidbar:Bamidbar$2,Nasso:Nasso$2,"Beha'alotcha":{num:36,hebrew:"בְּהַעֲלֹתְךָ",book:4,haft:{k:"Zechariah",b:"2:14",e:"4:7"},fullkriyah:{"1":["8:1","8:14"],"2":["8:15","8:26"],"3":["9:1","9:14"],"4":["9:15","10:10"],"5":["10:11","10:34"],"6":["10:35","11:29"],"7":["11:30","12:16"],M:["12:14","12:16"]},weekday:{"1":["8:1","8:4"],"2":["8:5","8:9"],"3":["8:10","8:14"]}},"Sh'lach":{num:37,hebrew:"שְׁלַח־לְךָ",book:4,haft:{k:"Joshua",b:"2:1",e:"2:24"},fullkriyah:{"1":["13:1","13:20"],"2":["13:21","14:7"],"3":["14:8","14:25"],"4":["14:26","15:7"],"5":["15:8","15:16"],"6":["15:17","15:26"],"7":["15:27","15:41"],M:["15:37","15:41"]},weekday:{"1":["13:1","13:3"],"2":["13:4","13:16"],"3":["13:17","13:20"]}},Korach:Korach$2,Chukat:Chukat$2,Balak:Balak$2,Pinchas:Pinchas$2,Matot:Matot$2,Masei:Masei$2,Devarim:Devarim$1,Vaetchanan:Vaetchanan$1,Eikev:Eikev$2,"Re'eh":{num:47,hebrew:"רְאֵה",book:5,haft:{k:"Isaiah",b:"54:11",e:"55:5"},fullkriyah:{"1":["11:26","12:10"],"2":["12:11","12:28"],"3":["12:29","13:19"],"4":["14:1","14:21"],"5":["14:22","14:29"],"6":["15:1","15:18"],"7":["15:19","16:17"],M:["16:13","16:17"]},weekday:{"1":["11:26","11:31"],"2":["11:32","12:5"],"3":["12:6","12:10"]}},Shoftim:Shoftim$2,"Ki Teitzei":{num:49,hebrew:"כִּי־תֵצֵא",book:5,haft:{k:"Isaiah",b:"54:1",e:"54:10"},fullkriyah:{"1":["21:10","21:21"],"2":["21:22","22:7"],"3":["22:8","23:7"],"4":["23:8","23:24"],"5":["23:25","24:4"],"6":["24:5","24:13"],"7":["24:14","25:19"],M:["25:17","25:19"]},weekday:{"1":["21:10","21:14"],"2":["21:15","21:17"],"3":["21:18","21:21"]}},"Ki Tavo":{num:50,hebrew:"כִּי־תָבוֹא",book:5,haft:{k:"Isaiah",b:"60:1",e:"60:22"},fullkriyah:{"1":["26:1","26:11"],"2":["26:12","26:15"],"3":["26:16","26:19"],"4":["27:1","27:10"],"5":["27:11","28:6"],"6":["28:7","28:69"],"7":["29:1","29:8"],M:["29:6","29:8"]},weekday:{"1":["26:1","26:3"],"2":["26:4","26:11"],"3":["26:12","26:15"]}},Nitzavim:Nitzavim$2,Vayeilech:Vayeilech$2,"Ha'Azinu":{num:53,hebrew:"הַאֲזִינוּ",book:5,haft:{k:"II Samuel",b:"22:1",e:"22:51"},fullkriyah:{"1":["32:1","32:6"],"2":["32:7","32:12"],"3":["32:13","32:18"],"4":["32:19","32:28"],"5":["32:29","32:39"],"6":["32:40","32:43"],"7":["32:44","32:52"],M:["32:48","32:52"]},weekday:{"1":["32:1","32:3"],"2":["32:4","32:6"],"3":["32:7","32:12"]}},"Vezot Haberakhah":{num:54,hebrew:"וְזֹאת הַבְּרָכָה",book:5,haft:{k:"Joshua",b:"1:1",e:"1:18"},seph:{k:"Joshua",b:"1:1",e:"1:9"},fullkriyah:{"1":["33:1","33:7"],"2":["33:8","33:12"],"3":["33:13","33:17"],"4":["33:18","33:21"],"5":["33:22","33:26"],"6":["33:27","33:29"],"7":["34:1","34:12"]},weekday:{"1":["33:1","33:7"],"2":["33:8","33:12"],"3":["33:13","33:17"]}},"Vayakhel-Pekudei":{num:101,combined:true,p1:"Vayakhel",p2:"Pekudei",num1:22,num2:23,book:2,fullkriyah:{"1":["35:1","35:29"],"2":["35:30","37:16"],"3":["37:17","37:29"],"4":["38:1","39:1"],"5":["39:2","39:21"],"6":["39:22","39:43"],"7":["40:1","40:38"],M:["40:34","40:38"]}},"Tazria-Metzora":{num:102,combined:true,p1:"Tazria",p2:"Metzora",num1:27,num2:28,book:3,fullkriyah:{"1":["12:1","13:23"],"2":["13:24","13:39"],"3":["13:40","13:54"],"4":["13:55","14:20"],"5":["14:21","14:32"],"6":["14:33","15:15"],"7":["15:16","15:33"],M:["15:31","15:33"]}},"Achrei Mot-Kedoshim":{num:103,combined:true,p1:"Achrei Mot",p2:"Kedoshim",num1:29,num2:30,book:3,fullkriyah:{"1":["16:1","16:24"],"2":["16:25","17:7"],"3":["17:8","18:21"],"4":["18:22","19:14"],"5":["19:15","19:32"],"6":["19:33","20:7"],"7":["20:8","20:27"],M:["20:25","20:27"]}},"Behar-Bechukotai":{num:104,combined:true,p1:"Behar",p2:"Bechukotai",num1:32,num2:33,book:3,fullkriyah:{"1":["25:1","25:18"],"2":["25:19","25:28"],"3":["25:29","25:38"],"4":["25:39","26:9"],"5":["26:10","26:46"],"6":["27:1","27:15"],"7":["27:16","27:34"],M:["27:32","27:34"]}},"Chukat-Balak":{num:105,combined:true,p1:"Chukat",p2:"Balak",num1:39,num2:40,book:4,fullkriyah:{"1":["19:1","20:6"],"2":["20:7","20:21"],"3":["20:22","21:20"],"4":["21:21","22:12"],"5":["22:13","22:38"],"6":["22:39","23:26"],"7":["23:27","25:9"],M:["25:7","25:9"]}},"Matot-Masei":{num:106,combined:true,p1:"Matot",p2:"Masei",num1:42,num2:43,book:4,fullkriyah:{"1":["30:2","31:12"],"2":["31:13","31:54"],"3":["32:1","32:19"],"4":["32:20","33:49"],"5":["33:50","34:15"],"6":["34:16","35:8"],"7":["35:9","36:13"],M:["36:11","36:13"]}},"Nitzavim-Vayeilech":{num:107,combined:true,p1:"Nitzavim",p2:"Vayeilech",num1:51,num2:52,book:5,fullkriyah:{"1":["29:9","29:28"],"2":["30:1","30:6"],"3":["30:7","30:14"],"4":["30:15","31:6"],"5":["31:7","31:13"],"6":["31:14","31:19"],"7":["31:20","31:30"],M:["31:28","31:30"]}}};
250
-
251
298
  const HOLIDAY_IGNORE_MASK = flags.DAF_YOMI | flags.OMER_COUNT | flags.SHABBAT_MEVARCHIM | flags.MOLAD | flags.USER_EVENT | flags.HEBREW_DATE;
252
299
  /**
253
300
  * Based on the event date, type and title, finds the relevant leyning key
@@ -448,12 +495,20 @@ function getChanukahShabbatKey(ev, key) {
448
495
  return undefined;
449
496
  }
450
497
  /**
451
- * @private
498
+ * Determines if the regular parashat haShavua coincides with an event that requires
499
+ * a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh
500
+ * Chodesh or Machar Chodesh, etc.).
501
+ *
502
+ * If a special maftir occurs, modifies `aliyot` to replace `M` and sets `reason.M`
503
+ * (and in some cases modifies the 6th and 7th aliyah, setting `reason['7']`).
504
+ *
505
+ * If a special Haftarah applies, returns the Haftarah object and sets `reason.haftara`.
506
+ * If no special Haftarah, returns `undefined`
452
507
  * @param {HDate} hd
453
508
  * @param {boolean} il
454
509
  * @param {Object<string,Aliyah>} aliyot
455
510
  * @param {Object<string,string>} reason
456
- * @return {string}
511
+ * @return {Aliyah | Aliyah[]}
457
512
  */
458
513
 
459
514
 
@@ -523,6 +578,8 @@ function specialReadings(hd, il, aliyot, reason) {
523
578
  return haft;
524
579
  }
525
580
 
581
+ const Bereshit={num:1,hebrew:"בְּרֵאשִׁית",book:1,haft:{k:"Isaiah",b:"42:5",e:"43:10"},seph:{k:"Isaiah",b:"42:5",e:"42:21"},fullkriyah:{"1":["1:1","2:3"],"2":["2:4","2:19"],"3":["2:20","3:21"],"4":["3:22","4:18"],"5":["4:19","4:22"],"6":["4:23","5:24"],"7":["5:25","6:8"],M:["6:5","6:8"]},weekday:{"1":["1:1","1:5"],"2":["1:6","1:8"],"3":["1:9","1:13"]}};const Noach={num:2,hebrew:"נֹחַ",book:1,haft:{k:"Isaiah",b:"54:1",e:"55:5"},seph:{k:"Isaiah",b:"54:1",e:"54:10"},fullkriyah:{"1":["6:9","6:22"],"2":["7:1","7:16"],"3":["7:17","8:14"],"4":["8:15","9:7"],"5":["9:8","9:17"],"6":["9:18","10:32"],"7":["11:1","11:32"],M:["11:29","11:32"]},weekday:{"1":["6:9","6:16"],"2":["6:17","6:19"],"3":["6:20","6:22"]}};const Vayera={num:4,hebrew:"וַיֵּרָא",book:1,haft:{k:"II Kings",b:"4:1",e:"4:37"},seph:{k:"II Kings",b:"4:1",e:"4:23"},fullkriyah:{"1":["18:1","18:14"],"2":["18:15","18:33"],"3":["19:1","19:20"],"4":["19:21","21:4"],"5":["21:5","21:21"],"6":["21:22","21:34"],"7":["22:1","22:24"],M:["22:20","22:24"]},weekday:{"1":["18:1","18:5"],"2":["18:6","18:8"],"3":["18:9","18:14"]}};const Toldot={num:6,hebrew:"תּוֹלְדוֹת",book:1,haft:{k:"Malachi",b:"1:1",e:"2:7"},fullkriyah:{"1":["25:19","26:5"],"2":["26:6","26:12"],"3":["26:13","26:22"],"4":["26:23","26:29"],"5":["26:30","27:27"],"6":["27:28","28:4"],"7":["28:5","28:9"],M:["28:7","28:9"]},weekday:{"1":["25:19","25:22"],"2":["25:23","25:26"],"3":["25:27","26:5"]}};const Vayetzei={num:7,hebrew:"וַיֵּצֵא",book:1,haft:{k:"Hosea",b:"12:13",e:"14:10"},seph:{k:"Hosea",b:"11:7",e:"12:12"},fullkriyah:{"1":["28:10","28:22"],"2":["29:1","29:17"],"3":["29:18","30:13"],"4":["30:14","30:27"],"5":["30:28","31:16"],"6":["31:17","31:42"],"7":["31:43","32:3"],M:["32:1","32:3"]},weekday:{"1":["28:10","28:12"],"2":["28:13","28:17"],"3":["28:18","28:22"]}};const Vayishlach={num:8,hebrew:"וַיִּשְׁלַח",book:1,haft:{k:"Obadiah",b:"1:1",e:"1:21"},fullkriyah:{"1":["32:4","32:13"],"2":["32:14","32:30"],"3":["32:31","33:5"],"4":["33:6","33:20"],"5":["34:1","35:11"],"6":["35:12","36:19"],"7":["36:20","36:43"],M:["36:40","36:43"]},weekday:{"1":["32:4","32:6"],"2":["32:7","32:9"],"3":["32:10","32:13"]}};const Vayeshev={num:9,hebrew:"וַיֵּשֶׁב",book:1,haft:{k:"Amos",b:"2:6",e:"3:8"},fullkriyah:{"1":["37:1","37:11"],"2":["37:12","37:22"],"3":["37:23","37:36"],"4":["38:1","38:30"],"5":["39:1","39:6"],"6":["39:7","39:23"],"7":["40:1","40:23"],M:["40:20","40:23"]},weekday:{"1":["37:1","37:3"],"2":["37:4","37:7"],"3":["37:8","37:11"]}};const Miketz={num:10,hebrew:"מִקֵּץ",book:1,haft:{k:"I Kings",b:"3:15",e:"4:1"},fullkriyah:{"1":["41:1","41:14"],"2":["41:15","41:38"],"3":["41:39","41:52"],"4":["41:53","42:18"],"5":["42:19","43:15"],"6":["43:16","43:29"],"7":["43:30","44:17"],M:["44:14","44:17"]},weekday:{"1":["41:1","41:4"],"2":["41:5","41:7"],"3":["41:8","41:14"]}};const Vayigash={num:11,hebrew:"וַיִּגַּשׁ",book:1,haft:{k:"Ezekiel",b:"37:15",e:"37:28"},fullkriyah:{"1":["44:18","44:30"],"2":["44:31","45:7"],"3":["45:8","45:18"],"4":["45:19","45:27"],"5":["45:28","46:27"],"6":["46:28","47:10"],"7":["47:11","47:27"],M:["47:25","47:27"]},weekday:{"1":["44:18","44:20"],"2":["44:21","44:24"],"3":["44:25","44:30"]}};const Vayechi={num:12,hebrew:"וַיְחִי",book:1,haft:{k:"I Kings",b:"2:1",e:"2:12"},fullkriyah:{"1":["47:28","48:9"],"2":["48:10","48:16"],"3":["48:17","48:22"],"4":["49:1","49:18"],"5":["49:19","49:26"],"6":["49:27","50:20"],"7":["50:21","50:26"],M:["50:23","50:26"]},weekday:{"1":["47:28","47:31"],"2":["48:1","48:3"],"3":["48:4","48:9"]}};const Shemot={num:13,hebrew:"שְׁמוֹת",book:2,haft:[{k:"Isaiah",b:"27:6",e:"28:13"},{k:"Isaiah",b:"29:22",e:"29:23"}],seph:{k:"Jeremiah",b:"1:1",e:"2:3"},fullkriyah:{"1":["1:1","1:17"],"2":["1:18","2:10"],"3":["2:11","2:25"],"4":["3:1","3:15"],"5":["3:16","4:17"],"6":["4:18","4:31"],"7":["5:1","6:1"],M:["5:22","6:1"]},weekday:{"1":["1:1","1:7"],"2":["1:8","1:12"],"3":["1:13","1:17"]}};const Vaera={num:14,hebrew:"וָאֵרָא",book:2,haft:{k:"Ezekiel",b:"28:25",e:"29:21"},fullkriyah:{"1":["6:2","6:13"],"2":["6:14","6:28"],"3":["6:29","7:7"],"4":["7:8","8:6"],"5":["8:7","8:18"],"6":["8:19","9:16"],"7":["9:17","9:35"],M:["9:33","9:35"]},weekday:{"1":["6:2","6:5"],"2":["6:6","6:9"],"3":["6:10","6:13"]}};const Bo={num:15,hebrew:"בֹּא",book:2,haft:{k:"Jeremiah",b:"46:13",e:"46:28"},fullkriyah:{"1":["10:1","10:11"],"2":["10:12","10:23"],"3":["10:24","11:3"],"4":["11:4","12:20"],"5":["12:21","12:28"],"6":["12:29","12:51"],"7":["13:1","13:16"],M:["13:14","13:16"]},weekday:{"1":["10:1","10:3"],"2":["10:4","10:6"],"3":["10:7","10:11"]}};const Beshalach={num:16,hebrew:"בְּשַׁלַּח",book:2,haft:{k:"Judges",b:"4:4",e:"5:31"},seph:{k:"Judges",b:"5:1",e:"5:31"},fullkriyah:{"1":["13:17","14:8"],"2":["14:9","14:14"],"3":["14:15","14:25"],"4":["14:26","15:26"],"5":["15:27","16:10"],"6":["16:11","16:36"],"7":["17:1","17:16"],M:["17:14","17:16"]},weekday:{"1":["13:17","13:22"],"2":["14:1","14:4"],"3":["14:5","14:8"]}};const Yitro={num:17,hebrew:"יִתְרוֹ",book:2,haft:[{k:"Isaiah",b:"6:1",e:"7:6"},{k:"Isaiah",b:"9:5",e:"9:6"}],seph:{k:"Isaiah",b:"6:1",e:"6:13"},fullkriyah:{"1":["18:1","18:12"],"2":["18:13","18:23"],"3":["18:24","18:27"],"4":["19:1","19:6"],"5":["19:7","19:19"],"6":["19:20","20:14"],"7":["20:15","20:23"],M:["20:19","20:23"]},weekday:{"1":["18:1","18:4"],"2":["18:5","18:8"],"3":["18:9","18:12"]}};const Mishpatim={num:18,hebrew:"מִּשְׁפָּטִים",book:2,haft:[{k:"Jeremiah",b:"34:8",e:"34:22"},{k:"Jeremiah",b:"33:25",e:"33:26"}],fullkriyah:{"1":["21:1","21:19"],"2":["21:20","22:3"],"3":["22:4","22:26"],"4":["22:27","23:5"],"5":["23:6","23:19"],"6":["23:20","23:25"],"7":["23:26","24:18"],M:["24:15","24:18"]},weekday:{"1":["21:1","21:6"],"2":["21:7","21:11"],"3":["21:12","21:19"]}};const Terumah={num:19,hebrew:"תְּרוּמָה",book:2,haft:{k:"I Kings",b:"5:26",e:"6:13"},fullkriyah:{"1":["25:1","25:16"],"2":["25:17","25:30"],"3":["25:31","26:14"],"4":["26:15","26:30"],"5":["26:31","26:37"],"6":["27:1","27:8"],"7":["27:9","27:19"],M:["27:17","27:19"]},weekday:{"1":["25:1","25:5"],"2":["25:6","25:9"],"3":["25:10","25:16"]}};const Tetzaveh={num:20,hebrew:"תְּצַוֶּה",book:2,haft:{k:"Ezekiel",b:"43:10",e:"43:27"},fullkriyah:{"1":["27:20","28:12"],"2":["28:13","28:30"],"3":["28:31","28:43"],"4":["29:1","29:18"],"5":["29:19","29:37"],"6":["29:38","29:46"],"7":["30:1","30:10"],M:["30:8","30:10"]},weekday:{"1":["27:20","28:5"],"2":["28:6","28:9"],"3":["28:10","28:12"]}};const Vayakhel={num:22,hebrew:"וַיַּקְהֵל",book:2,haft:{k:"I Kings",b:"7:40",e:"7:50"},seph:{k:"I Kings",b:"7:13",e:"7:26"},fullkriyah:{"1":["35:1","35:20"],"2":["35:21","35:29"],"3":["35:30","36:7"],"4":["36:8","36:19"],"5":["36:20","37:16"],"6":["37:17","37:29"],"7":["38:1","38:20"],M:["38:18","38:20"]},weekday:{"1":["35:1","35:3"],"2":["35:4","35:10"],"3":["35:11","35:20"]}};const Pekudei={num:23,hebrew:"פְקוּדֵי",book:2,haft:{k:"I Kings",b:"7:51",e:"8:21"},seph:{k:"I Kings",b:"7:40",e:"7:50"},fullkriyah:{"1":["38:21","39:1"],"2":["39:2","39:21"],"3":["39:22","39:32"],"4":["39:33","39:43"],"5":["40:1","40:16"],"6":["40:17","40:27"],"7":["40:28","40:38"],M:["40:34","40:38"]},weekday:{"1":["38:21","38:23"],"2":["38:24","38:27"],"3":["38:28","39:1"]}};const Vayikra={num:24,hebrew:"וַיִּקְרָא",book:3,haft:{k:"Isaiah",b:"43:21",e:"44:23"},fullkriyah:{"1":["1:1","1:13"],"2":["1:14","2:6"],"3":["2:7","2:16"],"4":["3:1","3:17"],"5":["4:1","4:26"],"6":["4:27","5:10"],"7":["5:11","5:26"],M:["5:24","5:26"]},weekday:{"1":["1:1","1:4"],"2":["1:5","1:9"],"3":["1:10","1:13"]}};const Tzav={num:25,hebrew:"צַו",book:3,haft:[{k:"Jeremiah",b:"7:21",e:"8:3"},{k:"Jeremiah",b:"9:22",e:"9:23"}],fullkriyah:{"1":["6:1","6:11"],"2":["6:12","7:10"],"3":["7:11","7:38"],"4":["8:1","8:13"],"5":["8:14","8:21"],"6":["8:22","8:29"],"7":["8:30","8:36"],M:["8:33","8:36"]},weekday:{"1":["6:1","6:3"],"2":["6:4","6:6"],"3":["6:7","6:11"]}};const Shmini={num:26,hebrew:"שְּׁמִינִי",book:3,haft:{k:"II Samuel",b:"6:1",e:"7:17"},seph:{k:"II Samuel",b:"6:1",e:"6:19"},fullkriyah:{"1":["9:1","9:16"],"2":["9:17","9:23"],"3":["9:24","10:11"],"4":["10:12","10:15"],"5":["10:16","10:20"],"6":["11:1","11:32"],"7":["11:33","11:47"],M:["11:45","11:47"]},weekday:{"1":["9:1","9:6"],"2":["9:7","9:10"],"3":["9:11","9:16"]}};const Tazria={num:27,hebrew:"תַזְרִיעַ",book:3,haft:{k:"II Kings",b:"4:42",e:"5:19"},fullkriyah:{"1":["12:1","13:5"],"2":["13:6","13:17"],"3":["13:18","13:23"],"4":["13:24","13:28"],"5":["13:29","13:39"],"6":["13:40","13:54"],"7":["13:55","13:59"],M:["13:57","13:59"]},weekday:{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"]}};const Metzora={num:28,hebrew:"מְּצֹרָע",book:3,haft:{k:"II Kings",b:"7:3",e:"7:20"},fullkriyah:{"1":["14:1","14:12"],"2":["14:13","14:20"],"3":["14:21","14:32"],"4":["14:33","14:53"],"5":["14:54","15:15"],"6":["15:16","15:28"],"7":["15:29","15:33"],M:["15:31","15:33"]},weekday:{"1":["14:1","14:5"],"2":["14:6","14:9"],"3":["14:10","14:12"]}};const Kedoshim={num:30,hebrew:"קְדשִׁים",book:3,haft:{k:"Amos",b:"9:7",e:"9:15"},seph:{k:"Ezekiel",b:"20:2",e:"20:20"},fullkriyah:{"1":["19:1","19:14"],"2":["19:15","19:22"],"3":["19:23","19:32"],"4":["19:33","19:37"],"5":["20:1","20:7"],"6":["20:8","20:22"],"7":["20:23","20:27"],M:["20:25","20:27"]},weekday:{"1":["19:1","19:4"],"2":["19:5","19:10"],"3":["19:11","19:14"]}};const Emor={num:31,hebrew:"אֱמוֹר",book:3,haft:{k:"Ezekiel",b:"44:15",e:"44:31"},fullkriyah:{"1":["21:1","21:15"],"2":["21:16","22:16"],"3":["22:17","22:33"],"4":["23:1","23:22"],"5":["23:23","23:32"],"6":["23:33","23:44"],"7":["24:1","24:23"],M:["24:21","24:23"]},weekday:{"1":["21:1","21:6"],"2":["21:7","21:12"],"3":["21:13","21:15"]}};const Behar={num:32,hebrew:"בְּהַר",book:3,haft:{k:"Jeremiah",b:"32:6",e:"32:27"},fullkriyah:{"1":["25:1","25:13"],"2":["25:14","25:18"],"3":["25:19","25:24"],"4":["25:25","25:28"],"5":["25:29","25:38"],"6":["25:39","25:46"],"7":["25:47","26:2"],M:["25:55","26:2"]},weekday:{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:13"]}};const Bechukotai={num:33,hebrew:"בְּחֻקֹּתַי",book:3,haft:{k:"Jeremiah",b:"16:19",e:"17:14"},fullkriyah:{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:46"],"4":["27:1","27:15"],"5":["27:16","27:21"],"6":["27:22","27:28"],"7":["27:29","27:34"],M:["27:32","27:34"]},weekday:{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:13"]}};const Bamidbar={num:34,hebrew:"בְּמִדְבַּר",book:4,haft:{k:"Hosea",b:"2:1",e:"2:22"},fullkriyah:{"1":["1:1","1:19"],"2":["1:20","1:54"],"3":["2:1","2:34"],"4":["3:1","3:13"],"5":["3:14","3:39"],"6":["3:40","3:51"],"7":["4:1","4:20"],M:["4:17","4:20"]},weekday:{"1":["1:1","1:4"],"2":["1:5","1:16"],"3":["1:17","1:19"]}};const Nasso={num:35,hebrew:"נָשׂא",book:4,haft:{k:"Judges",b:"13:2",e:"13:25"},fullkriyah:{"1":["4:21","4:37"],"2":["4:38","4:49"],"3":["5:1","5:10"],"4":["5:11","6:27"],"5":["7:1","7:41"],"6":["7:42","7:71"],"7":["7:72","7:89"],M:["7:87","7:89"]},weekday:{"1":["4:21","4:24"],"2":["4:25","4:28"],"3":["4:29","4:33"]}};const Korach={num:38,hebrew:"קוֹרַח",book:4,haft:{k:"I Samuel",b:"11:14",e:"12:22"},fullkriyah:{"1":["16:1","16:13"],"2":["16:14","16:19"],"3":["16:20","17:8"],"4":["17:9","17:15"],"5":["17:16","17:24"],"6":["17:25","18:20"],"7":["18:21","18:32"],M:["18:30","18:32"]},weekday:{"1":["16:1","16:3"],"2":["16:4","16:7"],"3":["16:8","16:13"]}};const Chukat={num:39,hebrew:"חֻקַּת",book:4,haft:{k:"Judges",b:"11:1",e:"11:33"},fullkriyah:{"1":["19:1","19:17"],"2":["19:18","20:6"],"3":["20:7","20:13"],"4":["20:14","20:21"],"5":["20:22","21:9"],"6":["21:10","21:20"],"7":["21:21","22:1"],M:["21:34","22:1"]},weekday:{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:17"]}};const Balak={num:40,hebrew:"בָּלָק",book:4,haft:{k:"Micah",b:"5:6",e:"6:8"},fullkriyah:{"1":["22:2","22:12"],"2":["22:13","22:20"],"3":["22:21","22:38"],"4":["22:39","23:12"],"5":["23:13","23:26"],"6":["23:27","24:13"],"7":["24:14","25:9"],M:["25:7","25:9"]},weekday:{"1":["22:2","22:4"],"2":["22:5","22:7"],"3":["22:8","22:12"]}};const Pinchas={num:41,hebrew:"פִּינְחָס",book:4,haft:{k:"I Kings",b:"18:46",e:"19:21"},fullkriyah:{"1":["25:10","26:4"],"2":["26:5","26:51"],"3":["26:52","27:5"],"4":["27:6","27:23"],"5":["28:1","28:15"],"6":["28:16","29:11"],"7":["29:12","30:1"],M:["29:35","30:1"]},weekday:{"1":["25:10","25:12"],"2":["25:13","25:15"],"3":["25:16","26:4"]}};const Matot={num:42,hebrew:"מַּטּוֹת",book:4,haft:{k:"Jeremiah",b:"1:1",e:"2:3"},fullkriyah:{"1":["30:2","30:17"],"2":["31:1","31:12"],"3":["31:13","31:24"],"4":["31:25","31:41"],"5":["31:42","31:54"],"6":["32:1","32:19"],"7":["32:20","32:42"],M:["32:39","32:42"]},weekday:{"1":["30:2","30:9"],"2":["30:10","30:13"],"3":["30:14","30:17"]}};const Masei={num:43,hebrew:"מַסְעֵי",book:4,haft:[{k:"Jeremiah",b:"2:4",e:"2:28"},{k:"Jeremiah",b:"3:4",e:"3:4"}],seph:[{k:"Jeremiah",b:"2:4",e:"2:28"},{k:"Jeremiah",b:"4:1",e:"4:2"}],fullkriyah:{"1":["33:1","33:10"],"2":["33:11","33:49"],"3":["33:50","34:15"],"4":["34:16","34:29"],"5":["35:1","35:8"],"6":["35:9","35:34"],"7":["36:1","36:13"],M:["36:11","36:13"]},weekday:{"1":["33:1","33:3"],"2":["33:4","33:6"],"3":["33:7","33:10"]}};const Devarim={num:44,hebrew:"דְּבָרִים",book:5,haft:{k:"Isaiah",b:"1:1",e:"1:27"},fullkriyah:{"1":["1:1","1:10"],"2":["1:11","1:21"],"3":["1:22","1:38"],"4":["1:39","2:1"],"5":["2:2","2:30"],"6":["2:31","3:14"],"7":["3:15","3:22"],M:["3:20","3:22"]},weekday:{"1":["1:1","1:3"],"2":["1:4","1:7"],"3":["1:8","1:11"]}};const Vaetchanan={num:45,hebrew:"וָאֶתְחַנַּן",book:5,haft:{k:"Isaiah",b:"40:1",e:"40:26"},fullkriyah:{"1":["3:23","4:4"],"2":["4:5","4:40"],"3":["4:41","4:49"],"4":["5:1","5:18"],"5":["5:19","6:3"],"6":["6:4","6:25"],"7":["7:1","7:11"],M:["7:9","7:11"]},weekday:{"1":["3:23","3:25"],"2":["3:26","4:4"],"3":["4:5","4:8"]}};const Eikev={num:46,hebrew:"עֵקֶב",book:5,haft:{k:"Isaiah",b:"49:14",e:"51:3"},fullkriyah:{"1":["7:12","8:10"],"2":["8:11","9:3"],"3":["9:4","9:29"],"4":["10:1","10:11"],"5":["10:12","11:9"],"6":["11:10","11:21"],"7":["11:22","11:25"],M:["11:22","11:25"]},weekday:{"1":["7:12","7:21"],"2":["7:22","8:3"],"3":["8:4","8:10"]}};const Shoftim={num:48,hebrew:"שׁוֹפְטִים",book:5,haft:{k:"Isaiah",b:"51:12",e:"52:12"},fullkriyah:{"1":["16:18","17:13"],"2":["17:14","17:20"],"3":["18:1","18:5"],"4":["18:6","18:13"],"5":["18:14","19:13"],"6":["19:14","20:9"],"7":["20:10","21:9"],M:["21:7","21:9"]},weekday:{"1":["16:18","16:20"],"2":["16:21","17:10"],"3":["17:11","17:13"]}};const Nitzavim={num:51,hebrew:"נִצָּבִים",book:5,haft:{k:"Isaiah",b:"61:10",e:"63:9"},fullkriyah:{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"],"4":["30:1","30:6"],"5":["30:7","30:10"],"6":["30:11","30:14"],"7":["30:15","30:20"],M:["30:15","30:20"]},weekday:{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"]}};const Vayeilech={num:52,hebrew:"וַיֵּלֶךְ",book:5,haft:{k:"Isaiah",b:"55:6",e:"56:8"},fullkriyah:{"1":["31:1","31:3"],"2":["31:4","31:6"],"3":["31:7","31:9"],"4":["31:10","31:13"],"5":["31:14","31:19"],"6":["31:20","31:24"],"7":["31:25","31:30"],M:["31:28","31:30"]},weekday:{"1":["31:1","31:3"],"2":["31:4","31:6"],"3":["31:7","31:13"]}};var parshiyotObj = {Bereshit:Bereshit,Noach:Noach,"Lech-Lecha":{num:3,hebrew:"לֶךְ־לְךָ",book:1,haft:{k:"Isaiah",b:"40:27",e:"41:16"},fullkriyah:{"1":["12:1","12:13"],"2":["12:14","13:4"],"3":["13:5","13:18"],"4":["14:1","14:20"],"5":["14:21","15:6"],"6":["15:7","17:6"],"7":["17:7","17:27"],M:["17:24","17:27"]},weekday:{"1":["12:1","12:3"],"2":["12:4","12:9"],"3":["12:10","12:13"]}},Vayera:Vayera,"Chayei Sara":{num:5,hebrew:"חַיֵּי שָֹרָה",book:1,haft:{k:"I Kings",b:"1:1",e:"1:31"},fullkriyah:{"1":["23:1","23:16"],"2":["23:17","24:9"],"3":["24:10","24:26"],"4":["24:27","24:52"],"5":["24:53","24:67"],"6":["25:1","25:11"],"7":["25:12","25:18"],M:["25:16","25:18"]},weekday:{"1":["23:1","23:7"],"2":["23:8","23:12"],"3":["23:13","23:16"]}},Toldot:Toldot,Vayetzei:Vayetzei,Vayishlach:Vayishlach,Vayeshev:Vayeshev,Miketz:Miketz,Vayigash:Vayigash,Vayechi:Vayechi,Shemot:Shemot,Vaera:Vaera,Bo:Bo,Beshalach:Beshalach,Yitro:Yitro,Mishpatim:Mishpatim,Terumah:Terumah,Tetzaveh:Tetzaveh,"Ki Tisa":{num:21,hebrew:"כִּי תִשָּׂא",book:2,haft:{k:"I Kings",b:"18:1",e:"18:39"},seph:{k:"I Kings",b:"18:20",e:"18:39"},fullkriyah:{"1":["30:11","31:17"],"2":["31:18","33:11"],"3":["33:12","33:16"],"4":["33:17","33:23"],"5":["34:1","34:9"],"6":["34:10","34:26"],"7":["34:27","34:35"],M:["34:33","34:35"]},weekday:{"1":["30:11","30:13"],"2":["30:14","30:16"],"3":["30:17","30:21"]}},Vayakhel:Vayakhel,Pekudei:Pekudei,Vayikra:Vayikra,Tzav:Tzav,Shmini:Shmini,Tazria:Tazria,Metzora:Metzora,"Achrei Mot":{num:29,hebrew:"אַחֲרֵי מוֹת",book:3,haft:{k:"Ezekiel",b:"22:1",e:"22:19"},seph:{k:"Ezekiel",b:"22:1",e:"22:16"},fullkriyah:{"1":["16:1","16:17"],"2":["16:18","16:24"],"3":["16:25","16:34"],"4":["17:1","17:7"],"5":["17:8","18:5"],"6":["18:6","18:21"],"7":["18:22","18:30"],M:["18:28","18:30"]},weekday:{"1":["16:1","16:6"],"2":["16:7","16:11"],"3":["16:12","16:17"]}},Kedoshim:Kedoshim,Emor:Emor,Behar:Behar,Bechukotai:Bechukotai,Bamidbar:Bamidbar,Nasso:Nasso,"Beha'alotcha":{num:36,hebrew:"בְּהַעֲלֹתְךָ",book:4,haft:{k:"Zechariah",b:"2:14",e:"4:7"},fullkriyah:{"1":["8:1","8:14"],"2":["8:15","8:26"],"3":["9:1","9:14"],"4":["9:15","10:10"],"5":["10:11","10:34"],"6":["10:35","11:29"],"7":["11:30","12:16"],M:["12:14","12:16"]},weekday:{"1":["8:1","8:4"],"2":["8:5","8:9"],"3":["8:10","8:14"]}},"Sh'lach":{num:37,hebrew:"שְׁלַח־לְךָ",book:4,haft:{k:"Joshua",b:"2:1",e:"2:24"},fullkriyah:{"1":["13:1","13:20"],"2":["13:21","14:7"],"3":["14:8","14:25"],"4":["14:26","15:7"],"5":["15:8","15:16"],"6":["15:17","15:26"],"7":["15:27","15:41"],M:["15:37","15:41"]},weekday:{"1":["13:1","13:3"],"2":["13:4","13:16"],"3":["13:17","13:20"]}},Korach:Korach,Chukat:Chukat,Balak:Balak,Pinchas:Pinchas,Matot:Matot,Masei:Masei,Devarim:Devarim,Vaetchanan:Vaetchanan,Eikev:Eikev,"Re'eh":{num:47,hebrew:"רְאֵה",book:5,haft:{k:"Isaiah",b:"54:11",e:"55:5"},fullkriyah:{"1":["11:26","12:10"],"2":["12:11","12:28"],"3":["12:29","13:19"],"4":["14:1","14:21"],"5":["14:22","14:29"],"6":["15:1","15:18"],"7":["15:19","16:17"],M:["16:13","16:17"]},weekday:{"1":["11:26","11:31"],"2":["11:32","12:5"],"3":["12:6","12:10"]}},Shoftim:Shoftim,"Ki Teitzei":{num:49,hebrew:"כִּי־תֵצֵא",book:5,haft:{k:"Isaiah",b:"54:1",e:"54:10"},fullkriyah:{"1":["21:10","21:21"],"2":["21:22","22:7"],"3":["22:8","23:7"],"4":["23:8","23:24"],"5":["23:25","24:4"],"6":["24:5","24:13"],"7":["24:14","25:19"],M:["25:17","25:19"]},weekday:{"1":["21:10","21:14"],"2":["21:15","21:17"],"3":["21:18","21:21"]}},"Ki Tavo":{num:50,hebrew:"כִּי־תָבוֹא",book:5,haft:{k:"Isaiah",b:"60:1",e:"60:22"},fullkriyah:{"1":["26:1","26:11"],"2":["26:12","26:15"],"3":["26:16","26:19"],"4":["27:1","27:10"],"5":["27:11","28:6"],"6":["28:7","28:69"],"7":["29:1","29:8"],M:["29:6","29:8"]},weekday:{"1":["26:1","26:3"],"2":["26:4","26:11"],"3":["26:12","26:15"]}},Nitzavim:Nitzavim,Vayeilech:Vayeilech,"Ha'Azinu":{num:53,hebrew:"הַאֲזִינוּ",book:5,haft:{k:"II Samuel",b:"22:1",e:"22:51"},fullkriyah:{"1":["32:1","32:6"],"2":["32:7","32:12"],"3":["32:13","32:18"],"4":["32:19","32:28"],"5":["32:29","32:39"],"6":["32:40","32:43"],"7":["32:44","32:52"],M:["32:48","32:52"]},weekday:{"1":["32:1","32:3"],"2":["32:4","32:6"],"3":["32:7","32:12"]}},"Vezot Haberakhah":{num:54,hebrew:"וְזֹאת הַבְּרָכָה",book:5,haft:{k:"Joshua",b:"1:1",e:"1:18"},seph:{k:"Joshua",b:"1:1",e:"1:9"},fullkriyah:{"1":["33:1","33:7"],"2":["33:8","33:12"],"3":["33:13","33:17"],"4":["33:18","33:21"],"5":["33:22","33:26"],"6":["33:27","33:29"],"7":["34:1","34:12"]},weekday:{"1":["33:1","33:7"],"2":["33:8","33:12"],"3":["33:13","33:17"]}},"Vayakhel-Pekudei":{num:101,combined:true,p1:"Vayakhel",p2:"Pekudei",num1:22,num2:23,book:2,fullkriyah:{"1":["35:1","35:29"],"2":["35:30","37:16"],"3":["37:17","37:29"],"4":["38:1","39:1"],"5":["39:2","39:21"],"6":["39:22","39:43"],"7":["40:1","40:38"],M:["40:34","40:38"]}},"Tazria-Metzora":{num:102,combined:true,p1:"Tazria",p2:"Metzora",num1:27,num2:28,book:3,fullkriyah:{"1":["12:1","13:23"],"2":["13:24","13:39"],"3":["13:40","13:54"],"4":["13:55","14:20"],"5":["14:21","14:32"],"6":["14:33","15:15"],"7":["15:16","15:33"],M:["15:31","15:33"]}},"Achrei Mot-Kedoshim":{num:103,combined:true,p1:"Achrei Mot",p2:"Kedoshim",num1:29,num2:30,book:3,fullkriyah:{"1":["16:1","16:24"],"2":["16:25","17:7"],"3":["17:8","18:21"],"4":["18:22","19:14"],"5":["19:15","19:32"],"6":["19:33","20:7"],"7":["20:8","20:27"],M:["20:25","20:27"]}},"Behar-Bechukotai":{num:104,combined:true,p1:"Behar",p2:"Bechukotai",num1:32,num2:33,book:3,fullkriyah:{"1":["25:1","25:18"],"2":["25:19","25:28"],"3":["25:29","25:38"],"4":["25:39","26:9"],"5":["26:10","26:46"],"6":["27:1","27:15"],"7":["27:16","27:34"],M:["27:32","27:34"]}},"Chukat-Balak":{num:105,combined:true,p1:"Chukat",p2:"Balak",num1:39,num2:40,book:4,fullkriyah:{"1":["19:1","20:6"],"2":["20:7","20:21"],"3":["20:22","21:20"],"4":["21:21","22:12"],"5":["22:13","22:38"],"6":["22:39","23:26"],"7":["23:27","25:9"],M:["25:7","25:9"]}},"Matot-Masei":{num:106,combined:true,p1:"Matot",p2:"Masei",num1:42,num2:43,book:4,fullkriyah:{"1":["30:2","31:12"],"2":["31:13","31:54"],"3":["32:1","32:19"],"4":["32:20","33:49"],"5":["33:50","34:15"],"6":["34:16","35:8"],"7":["35:9","36:13"],M:["36:11","36:13"]}},"Nitzavim-Vayeilech":{num:107,combined:true,p1:"Nitzavim",p2:"Vayeilech",num1:51,num2:52,book:5,fullkriyah:{"1":["29:9","29:28"],"2":["30:1","30:6"],"3":["30:7","30:14"],"4":["30:15","31:6"],"5":["31:7","31:13"],"6":["31:14","31:19"],"7":["31:20","31:30"],M:["31:28","31:30"]}}};
582
+
526
583
  /**
527
584
  * Represents an aliyah
528
585
  * @private
@@ -547,7 +604,7 @@ function specialReadings(hd, il, aliyot, reason) {
547
604
  * @property {LeyningNames} name
548
605
  * @property {string[]} [parsha] - An array of either 1 (regular) or 2 (doubled parsha).
549
606
  * `undefined` for holiday readings
550
- * @property {num} [parshaNum] - 1 for Bereshit, 2 for Noach, etc. `undefined` for holiday readings
607
+ * @property {number} [parshaNum] - 1 for Bereshit, 2 for Noach, etc. `undefined` for holiday readings
551
608
  * @property {string} summary - Such as `Genesis 1:1 - 6:8`
552
609
  * @property {Aliyah|Aliyah[]} haft - Haftarah object(s)
553
610
  * @property {string} haftara - Haftarah, such as `Isaiah 42:5 – 43:11`
@@ -583,73 +640,6 @@ function getLeyningForHoliday(ev, il = false) {
583
640
  const leyning = getLeyningForHolidayKey(key, ev.cholHaMoedDay);
584
641
  return leyning;
585
642
  }
586
- /**
587
- * @private
588
- * @param {string} a
589
- * @param {string} b
590
- * @return {boolean}
591
- */
592
-
593
- function isChapVerseBefore(a, b) {
594
- const cv1 = a.split(':').map(x => +x);
595
- const cv2 = b.split(':').map(x => +x);
596
- return cv1[0] * 100 + cv1[1] < cv2[0] * 100 + cv2[1];
597
- }
598
- /**
599
- * Makes a summary of the leyning, like "Genesis 6:9-11:32"
600
- * @param {Object<string,Aliyah>} aliyot
601
- * @return {string}
602
- */
603
-
604
-
605
- function makeLeyningSummary(aliyot) {
606
- const parts = makeLeyningParts(aliyot);
607
- return makeSummaryFromParts(parts);
608
- }
609
- /**
610
- * @private
611
- * @param {Object<string,Aliyah>} aliyot
612
- * @return {Aliyah[]}
613
- */
614
-
615
- function makeLeyningParts(aliyot) {
616
- const nums = Object.keys(aliyot).filter(x => x.length === 1);
617
- let start = aliyot[nums[0]];
618
- let end = start;
619
- const parts = [];
620
-
621
- for (let i = 0; i < nums.length; i++) {
622
- const num = nums[i];
623
- const aliyah = aliyot[num];
624
-
625
- if (i === nums.length - 1 && aliyah.k === end.k && aliyah.e === end.e) {
626
- // short-circuit when final aliyah is within the previous (e.g. M inside of 7)
627
- continue;
628
- }
629
-
630
- const prevEndChap = +end.e.split(':')[0];
631
- const curStartChap = +aliyah.b.split(':')[0];
632
- const sameOrNextChap = curStartChap === prevEndChap || curStartChap === prevEndChap + 1;
633
-
634
- if (i !== 0 && (aliyah.k !== start.k || isChapVerseBefore(aliyah.b, start.e) || !sameOrNextChap)) {
635
- parts.push({
636
- k: start.k,
637
- b: start.b,
638
- e: end.e
639
- });
640
- start = aliyah;
641
- }
642
-
643
- end = aliyah;
644
- }
645
-
646
- parts.push({
647
- k: start.k,
648
- b: start.b,
649
- e: end.e
650
- });
651
- return parts;
652
- }
653
643
  /**
654
644
  * Looks up leyning for a given holiday key. Key should be an
655
645
  * (untranslated) string used in holiday-readings.json. Returns some
@@ -703,8 +693,8 @@ function getLeyningForHolidayKey(key, cholHaMoedDay) {
703
693
 
704
694
  if (src.haft) {
705
695
  const haft = leyning.haft = cloneHaftara(src.haft);
706
- leyning.haftara = makeHaftaraSummary(haft);
707
- leyning.haftaraNumV = calculateHaftaraNumV(haft);
696
+ leyning.haftara = makeSummaryFromParts(haft);
697
+ leyning.haftaraNumV = sumVerses(haft);
708
698
  }
709
699
 
710
700
  return leyning;
@@ -835,14 +825,14 @@ function getLeyningForParsha(parsha) {
835
825
 
836
826
  if (haft0) {
837
827
  const haft = result.haft = cloneHaftara(haft0);
838
- result.haftara = makeHaftaraSummary(haft);
839
- result.haftaraNumV = calculateHaftaraNumV(haft);
828
+ result.haftara = makeSummaryFromParts(haft);
829
+ result.haftaraNumV = sumVerses(haft);
840
830
  }
841
831
 
842
832
  if (raw.seph) {
843
833
  const seph = result.seph = cloneHaftara(raw.seph);
844
- result.sephardic = makeHaftaraSummary(seph);
845
- result.sephardicNumV = calculateHaftaraNumV(seph);
834
+ result.sephardic = makeSummaryFromParts(seph);
835
+ result.sephardicNumV = sumVerses(seph);
846
836
  }
847
837
 
848
838
  const weekdaySrc = raw.weekday || parshiyotObj[parshaNameArray[0]].weekday;
@@ -925,8 +915,8 @@ function getLeyningForParshaHaShavua(ev, il = false) {
925
915
 
926
916
  if (updateHaftaraSummary) {
927
917
  const haft = result.haft;
928
- result.haftara = makeHaftaraSummary(haft);
929
- result.haftaraNumV = calculateHaftaraNumV(haft);
918
+ result.haftara = makeSummaryFromParts(haft);
919
+ result.haftaraNumV = sumVerses(haft);
930
920
  }
931
921
 
932
922
  return result;
@@ -1022,500 +1012,41 @@ function findParshaHaShavua(saturday, il) {
1022
1012
 
1023
1013
  return null;
1024
1014
  }
1025
-
1026
- const Bereshit$1={book:1,years:{"Y.1":{"1":["1:1","1:5"],"2":["1:6","1:8"],"3":["1:9","1:13"],"4":["1:14","1:19"],"5":["1:20","1:23"],"6":["1:24","1:31"],"7":["2:1","2:3"],M:["2:1","2:3"]},"Y.2":{"1":["2:4","2:9"],"2":["2:10","2:19"],"3":["2:20","2:25"],"4":["3:1","3:21"],"5":["3:22","3:24"],"6":["4:1","4:18"],"7":["4:19","4:26"],M:["4:23","4:26"]},"Y.3":{"1":["5:1","5:5"],"2":["5:6","5:8"],"3":["5:9","5:14"],"4":["5:15","5:20"],"5":["5:21","5:24"],"6":["5:25","5:31"],"7":["5:32","6:8"],M:["6:5","6:8"]}}};const Noach$1={book:1,years:{"Y.1":{"1":["6:9","6:16"],"2":["6:17","6:19"],"3":["6:20","6:22"],"4":["7:1","7:9"],"5":["7:10","7:16"],"6":["7:17","7:24"],"7":["8:1","8:14"],M:["8:12","8:14"]},"Y.2":{"1":["8:15","8:22"],"2":["9:1","9:7"],"3":["9:8","9:17"],"4":["9:18","9:29"],"5":["10:1","10:14"],"6":["10:15","10:20"],"7":["10:21","10:32"],M:["10:26","10:32"]},"Y.3":{"1":["11:1","11:4"],"2":["11:5","11:9"],"3":["11:10","11:13"],"4":["11:14","11:17"],"5":["11:18","11:21"],"6":["11:22","11:25"],"7":["11:26","11:32"],M:["11:29","11:32"]}}};const Vayera$1={book:1,years:{"Y.1":{"1":["18:1","18:5"],"2":["18:6","18:8"],"3":["18:9","18:14"],"4":["18:15","18:21"],"5":["18:22","18:26"],"6":["18:27","18:30"],"7":["18:31","18:33"],M:["18:31","18:33"]},"Y.2":{"1":["19:1","19:11"],"2":["19:12","19:20"],"3":["19:21","19:29"],"4":["19:30","19:38"],"5":["20:1","20:8"],"6":["20:9","20:14"],"7":["20:15","20:18"],M:["20:15","20:18"]},"Y.3":{"1":["21:1","21:4"],"2":["21:5","21:13"],"3":["21:14","21:21"],"4":["21:22","21:34"],"5":["22:1","22:8"],"6":["22:9","22:19"],"7":["22:20","22:24"],M:["22:20","22:24"]}}};const Toldot$1={book:1,years:{"Y.1":{"1":["25:19","25:22"],"2":["25:23","25:26"],"3":["25:27","25:34"],"4":["26:1","26:5"],"5":["26:6","26:12"],"6":["26:13","26:16"],"7":["26:17","26:22"],M:["26:19","26:22"]},"Y.2":{"1":["26:23","26:29"],"2":["26:30","26:33"],"3":["26:34","27:4"],"4":["27:5","27:13"],"5":["27:14","27:17"],"6":["27:18","27:23"],"7":["27:24","27:27"],M:["27:24","27:27"]},"Y.3":{"1":["27:28","27:30"],"2":["27:31","27:33"],"3":["27:34","27:37"],"4":["27:38","27:40"],"5":["27:41","27:46"],"6":["28:1","28:4"],"7":["28:5","28:9"],M:["28:7","28:9"]}}};const Vayetzei$1={book:1,years:{"Y.1":{"1":["28:10","28:12"],"2":["28:13","28:17"],"3":["28:18","28:22"],"4":["29:1","29:8"],"5":["29:9","29:17"],"6":["29:18","29:33"],"7":["29:34","30:13"],M:["30:9","30:13"]},"Y.2":{"1":["30:14","30:16"],"2":["30:17","30:21"],"3":["30:22","30:27"],"4":["30:28","30:36"],"5":["30:37","30:43"],"6":["31:1","31:9"],"7":["31:10","31:16"],M:["31:14","31:16"]},"Y.3":{"1":["31:17","31:21"],"2":["31:22","31:24"],"3":["31:25","31:35"],"4":["31:36","31:42"],"5":["31:43","31:45"],"6":["31:46","31:50"],"7":["31:51","32:3"],M:["32:1","32:3"]}}};const Vayishlach$1={book:1,years:{"Y.1":{"1":["32:4","32:6"],"2":["32:7","32:9"],"3":["32:10","32:13"],"4":["32:14","32:22"],"5":["32:23","32:30"],"6":["32:31","33:5"],"7":["33:6","33:20"],M:["33:18","33:20"]},"Y.2":{"1":["34:1","34:4"],"2":["34:5","34:12"],"3":["34:13","34:17"],"4":["34:18","34:23"],"5":["34:24","34:31"],"6":["35:1","35:11"],"7":["35:12","35:15"],M:["35:12","35:15"]},"Y.3":{"1":["35:16","35:26"],"2":["35:27","35:29"],"3":["36:1","36:8"],"4":["36:9","36:19"],"5":["36:20","36:30"],"6":["36:31","36:39"],"7":["36:40","36:43"],M:["36:40","36:43"]}}};const Vayeshev$1={book:1,years:{"Y.1":{"1":["37:1","37:3"],"2":["37:4","37:7"],"3":["37:8","37:11"],"4":["37:12","37:17"],"5":["37:18","37:22"],"6":["37:23","37:28"],"7":["37:29","37:36"],M:["37:34","37:36"]},"Y.2":{"1":["38:1","38:5"],"2":["38:6","38:11"],"3":["38:12","38:14"],"4":["38:15","38:19"],"5":["38:20","38:23"],"6":["38:24","38:26"],"7":["38:27","38:30"],M:["38:27","38:30"]},"Y.3":{"1":["39:1","39:6"],"2":["39:7","39:10"],"3":["39:11","39:18"],"4":["39:19","39:23"],"5":["40:1","40:8"],"6":["40:9","40:15"],"7":["40:16","40:23"],M:["40:20","40:23"]}}};const Miketz$1={book:1,years:{"Y.1":{"1":["41:1","41:4"],"2":["41:5","41:7"],"3":["41:8","41:14"],"4":["41:15","41:24"],"5":["41:25","41:38"],"6":["41:39","41:43"],"7":["41:44","41:52"],M:["41:50","41:52"]},"Y.2":{"1":["41:53","41:57"],"2":["42:1","42:5"],"3":["42:6","42:18"],"4":["42:19","42:28"],"5":["42:29","42:38"],"6":["43:1","43:7"],"7":["43:8","43:15"],M:["43:11","43:15"]},"Y.3":{"1":["43:16","43:18"],"2":["43:19","43:25"],"3":["43:26","43:29"],"4":["43:30","43:34"],"5":["44:1","44:6"],"6":["44:7","44:10"],"7":["44:11","44:17"],M:["44:14","44:17"]}}};const Vayigash$1={book:1,years:{"Y.1":{"1":["44:18","44:20"],"2":["44:21","44:24"],"3":["44:25","44:30"],"4":["44:31","44:34"],"5":["45:1","45:7"],"6":["45:8","45:18"],"7":["45:19","45:27"],M:["45:25","45:27"]},"Y.2":{"1":["45:28","46:4"],"2":["46:5","46:7"],"3":["46:8","46:11"],"4":["46:12","46:15"],"5":["46:16","46:18"],"6":["46:19","46:22"],"7":["46:23","46:27"],M:["46:23","46:27"]},"Y.3":{"1":["46:28","46:30"],"2":["46:31","46:34"],"3":["47:1","47:6"],"4":["47:7","47:10"],"5":["47:11","47:19"],"6":["47:20","47:22"],"7":["47:23","47:27"],M:["47:25","47:27"]}}};const Vayechi$1={book:1,years:{"Y.1":{"1":["47:28","47:31"],"2":["48:1","48:3"],"3":["48:4","48:9"],"4":["48:10","48:13"],"5":["48:14","48:16"],"6":["48:17","48:19"],"7":["48:20","48:22"],M:["48:20","48:22"]},"Y.2":{"1":["49:1","49:4"],"2":["49:5","49:7"],"3":["49:8","49:12"],"4":["49:13","49:15"],"5":["49:16","49:18"],"6":["49:19","49:21"],"7":["49:22","49:26"],M:["49:22","49:26"]},"Y.3":{"1":["49:27","49:30"],"2":["49:31","49:33"],"3":["50:1","50:6"],"4":["50:7","50:9"],"5":["50:10","50:14"],"6":["50:15","50:20"],"7":["50:21","50:26"],M:["50:23","50:26"]}}};const Shemot$1={book:2,years:{"Y.1":{"1":["1:1","1:7"],"2":["1:8","1:12"],"3":["1:13","1:17"],"4":["1:18","1:22"],"5":["2:1","2:10"],"6":["2:11","2:15"],"7":["2:16","2:25"],M:["2:23","2:25"]},"Y.2":{"1":["3:1","3:6"],"2":["3:7","3:10"],"3":["3:11","3:15"],"4":["3:16","3:22"],"5":["4:1","4:5"],"6":["4:6","4:9"],"7":["4:10","4:17"],M:["4:14","4:17"]},"Y.3":{"1":["4:18","4:20"],"2":["4:21","4:26"],"3":["4:27","4:31"],"4":["5:1","5:5"],"5":["5:6","5:9"],"6":["5:10","5:14"],"7":["5:15","6:1"],M:["5:22","6:1"]}}};const Vaera$1={book:2,years:{"Y.1":{"1":["6:2","6:5"],"2":["6:6","6:9"],"3":["6:10","6:13"],"4":["6:14","6:19"],"5":["6:20","6:25"],"6":["6:26","6:28"],"7":["6:29","7:7"],M:["7:5","7:7"]},"Y.2":{"1":["7:8","7:13"],"2":["7:14","7:18"],"3":["7:19","7:25"],"4":["7:26","7:29"],"5":["8:1","8:6"],"6":["8:7","8:11"],"7":["8:12","8:15"],M:["8:12","8:15"]},"Y.3":{"1":["8:16","8:23"],"2":["8:24","8:28"],"3":["9:1","9:7"],"4":["9:8","9:16"],"5":["9:17","9:21"],"6":["9:22","9:26"],"7":["9:27","9:35"],M:["9:33","9:35"]}}};const Bo$1={book:2,years:{"Y.1":{"1":["10:1","10:3"],"2":["10:4","10:6"],"3":["10:7","10:11"],"4":["10:12","10:15"],"5":["10:16","10:23"],"6":["10:24","10:29"],"7":["11:1","11:3"],M:["11:1","11:3"]},"Y.2":{"1":["11:4","11:10"],"2":["12:1","12:10"],"3":["12:11","12:13"],"4":["12:14","12:16"],"5":["12:17","12:20"],"6":["12:21","12:24"],"7":["12:25","12:28"],M:["12:25","12:28"]},"Y.3":{"1":["12:29","12:32"],"2":["12:33","12:36"],"3":["12:37","12:42"],"4":["12:43","12:51"],"5":["13:1","13:4"],"6":["13:5","13:10"],"7":["13:11","13:16"],M:["13:14","13:16"]}}};const Beshalach$1={book:2,years:{"Y.1":{"1":["13:17","13:22"],"2":["14:1","14:4"],"3":["14:5","14:8"],"4":["14:9","14:14"],"5":["14:15","14:20"],"6":["14:21","14:25"],"7":["14:26","15:26"],M:["15:22","15:26"]},"Y.2":{"1":["14:15","14:20"],"2":["14:21","14:25"],"3":["14:26","15:21"],"4":["15:22","15:26"],"5":["15:27","16:3"],"6":["16:4","16:7"],"7":["16:8","16:10"],M:["16:8","16:10"]},"Y.3":{"1":["14:26","15:21"],"2":["15:22","15:26"],"3":["15:27","16:10"],"4":["16:11","16:27"],"5":["16:28","16:36"],"6":["17:1","17:7"],"7":["17:8","17:16"],M:["17:14","17:16"]}}};const Yitro$1={book:2,descr:"full parashah with Ten Commandments every year",variations:{"Y.1":{"1":["18:1","18:12"],"2":["18:13","18:23"],"3":["18:24","18:27"],"4":["19:1","19:6"],"5":["19:7","19:19"],"6":["19:20","20:14"],"7":["20:15","20:23"],M:["20:19","20:23"]},"Y.2":"Y.1","Y.3":"Y.1"},alt:{descr:"triennial divisions with Ten Commandments in years two and three",variations:{"Y.1":{"1":["18:1","18:4"],"2":["18:5","18:8"],"3":["18:9","18:12"],"4":["18:13","18:16"],"5":["18:17","18:19"],"6":["18:20","18:23"],"7":["18:24","18:27"],M:["18:24","18:27"]},"Y.2":{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:13"],"4":["19:14","19:19"],"5":["19:20","20:14"],"6":["20:15","20:18"],"7":["20:19","20:23"],M:["20:21","20:23"]},"Y.3":"Y.2"}}};const Mishpatim$1={book:2,years:{"Y.1":{"1":["21:1","21:6"],"2":["21:7","21:11"],"3":["21:12","21:19"],"4":["21:20","21:27"],"5":["21:28","21:32"],"6":["21:33","21:36"],"7":["21:37","22:3"],M:["21:37","22:3"]},"Y.2":{"1":["22:4","22:8"],"2":["22:9","22:12"],"3":["22:13","22:18"],"4":["22:19","22:26"],"5":["22:27","23:5"],"6":["23:6","23:13"],"7":["23:14","23:19"],M:["23:14","23:19"]},"Y.3":{"1":["23:20","23:25"],"2":["23:26","23:30"],"3":["23:31","23:33"],"4":["24:1","24:6"],"5":["24:7","24:11"],"6":["24:12","24:14"],"7":["24:15","24:18"],M:["24:15","24:18"]}}};const Terumah$1={book:2,years:{"Y.1":{"1":["25:1","25:5"],"2":["25:6","25:9"],"3":["25:10","25:16"],"4":["25:17","25:22"],"5":["25:23","25:30"],"6":["25:31","25:33"],"7":["25:34","25:40"],M:["25:37","25:40"]},"Y.2":{"1":["26:1","26:3"],"2":["26:4","26:6"],"3":["26:7","26:11"],"4":["26:12","26:14"],"5":["26:15","26:21"],"6":["26:22","26:25"],"7":["26:26","26:30"],M:["26:26","26:30"]},"Y.3":{"1":["26:31","26:33"],"2":["26:34","26:37"],"3":["27:1","27:3"],"4":["27:4","27:8"],"5":["27:9","27:12"],"6":["27:13","27:16"],"7":["27:17","27:19"],M:["27:17","27:19"]}}};const Tetzaveh$1={book:2,years:{"Y.1":{"1":["27:20","28:5"],"2":["28:6","28:9"],"3":["28:10","28:12"],"4":["28:13","28:17"],"5":["28:18","28:21"],"6":["28:22","28:25"],"7":["28:26","28:30"],M:["28:28","28:30"]},"Y.2":{"1":["28:31","28:35"],"2":["28:36","28:38"],"3":["28:39","28:43"],"4":["29:1","29:4"],"5":["29:5","29:9"],"6":["29:10","29:14"],"7":["29:15","29:18"],M:["29:15","29:18"]},"Y.3":{"1":["29:19","29:21"],"2":["29:22","29:25"],"3":["29:26","29:30"],"4":["29:31","29:34"],"5":["29:35","29:37"],"6":["29:38","29:46"],"7":["30:1","30:10"],M:["30:8","30:10"]}}};const Vayakhel$1={book:2,variations:{"C.2":{"1":["35:1","35:3"],"2":["35:4","35:10"],"3":["35:11","35:20"],"4":["35:21","35:29"],"5":["35:30","35:35"],"6":["36:1","36:7"],"7":["36:8","36:19"],M:["36:17","36:19"]},"B.2":{"1":["37:17","37:19"],"2":["37:20","37:24"],"3":["37:25","37:29"],"4":["38:1","38:3"],"5":["38:4","38:8"],"6":["38:9","38:15"],"7":["38:16","38:20"],M:["38:18","38:20"]},"C.3":{"1":["36:20","36:30"],"2":["36:31","36:38"],"3":["37:1","37:16"],"4":["37:17","37:24"],"5":["37:25","37:29"],"6":["38:1","38:8"],"7":["38:9","38:20"],M:["38:18","38:20"]},"A.3":"C.3","D.1":"C.2","D.2":"C.3","E.1":"C.2","E.3":"C.3","F.1":{"1":["35:1","35:10"],"2":["35:11","35:20"],"3":["35:21","35:29"],"4":["35:30","36:7"],"5":["36:8","36:19"],"6":["36:20","36:38"],"7":["37:1","37:16"],M:["37:10","37:16"]},"G.1":{"1":["35:1","35:3"],"2":["35:4","35:10"],"3":["35:11","35:20"],"4":["35:21","35:23"],"5":["35:24","35:26"],"6":["35:27","35:29"],"7":["35:30","35:35"],M:["35:30","35:35"]},"G.2":{"1":["36:1","36:7"],"2":["36:8","36:13"],"3":["36:14","36:19"],"4":["36:20","36:30"],"5":["36:31","36:38"],"6":["37:1","37:9"],"7":["37:10","37:16"],M:["37:13","37:16"]},"G.3":{"1":["37:17","37:19"],"2":["37:20","37:24"],"3":["37:25","37:29"],"4":["38:1","38:3"],"5":["38:4","38:8"],"6":["38:9","38:15"],"7":["38:16","38:20"],M:["38:18","38:20"]}}};const Pekudei$1={book:2,variations:{"A.3":{"1":["39:22","39:26"],"2":["39:27","39:32"],"3":["39:33","39:43"],"4":["40:1","40:8"],"5":["40:9","40:16"],"6":["40:17","40:27"],"7":["40:28","40:38"],M:["40:34","40:38"]},"B.2":{"1":["38:21","38:23"],"2":["38:24","38:27"],"3":["38:28","39:1"],"4":["39:2","39:7"],"5":["39:8","39:14"],"6":["39:15","39:18"],"7":["39:19","39:21"],M:["39:19","39:21"]},"C.2":"B.2","C.3":"A.3","D.1":"B.2","D.2":"A.3","E.1":"B.2","E.3":"A.3","F.1":"B.2","G.1":{"1":["38:21","38:23"],"2":["38:24","38:27"],"3":["38:28","39:1"],"4":["39:2","39:7"],"5":["39:8","39:14"],"6":["39:15","39:18"],"7":["39:19","39:21"],M:["39:19","39:21"]},"G.2":{"1":["39:22","39:26"],"2":["39:27","39:29"],"3":["39:30","39:32"],"4":["39:33","39:43"],"5":["40:1","40:3"],"6":["40:4","40:6"],"7":["40:7","40:9"],M:["40:7","40:9"]},"G.3":{"1":["40:10","40:12"],"2":["40:13","40:16"],"3":["40:17","40:19"],"4":["40:20","40:25"],"5":["40:26","40:29"],"6":["40:30","40:33"],"7":["40:34","40:38"],M:["40:36","40:38"]}}};const Vayikra$1={book:3,years:{"Y.1":{"1":["1:1","1:4"],"2":["1:5","1:9"],"3":["1:10","1:13"],"4":["1:14","1:17"],"5":["2:1","2:6"],"6":["2:7","2:13"],"7":["2:14","2:16"],M:["2:14","2:16"]},"Y.2":{"1":["3:1","3:5"],"2":["3:6","3:11"],"3":["3:12","3:17"],"4":["4:1","4:7"],"5":["4:8","4:12"],"6":["4:13","4:21"],"7":["4:22","4:26"],M:["4:24","4:26"]},"Y.3":{"1":["4:27","4:31"],"2":["4:32","4:35"],"3":["5:1","5:10"],"4":["5:11","5:13"],"5":["5:14","5:16"],"6":["5:17","5:19"],"7":["5:20","5:26"],M:["5:24","5:26"]}}};const Tzav$1={book:3,years:{"Y.1":{"1":["6:1","6:3"],"2":["6:4","6:6"],"3":["6:7","6:11"],"4":["6:12","6:16"],"5":["6:17","6:23"],"6":["7:1","7:6"],"7":["7:7","7:10"],M:["7:7","7:10"]},"Y.2":{"1":["7:11","7:15"],"2":["7:16","7:18"],"3":["7:19","7:21"],"4":["7:22","7:27"],"5":["7:28","7:31"],"6":["7:32","7:34"],"7":["7:35","7:38"],M:["7:35","7:38"]},"Y.3":{"1":["8:1","8:5"],"2":["8:6","8:9"],"3":["8:10","8:13"],"4":["8:14","8:17"],"5":["8:18","8:21"],"6":["8:22","8:29"],"7":["8:30","8:36"],M:["8:33","8:36"]}}};const Shmini$1={book:3,years:{"Y.1":{"1":["9:1","9:6"],"2":["9:7","9:10"],"3":["9:11","9:16"],"4":["9:17","9:23"],"5":["9:24","10:3"],"6":["10:4","10:7"],"7":["10:8","10:11"],M:["10:8","10:11"]},"Y.2":{"1":["10:12","10:15"],"2":["10:16","10:20"],"3":["11:1","11:8"],"4":["11:9","11:12"],"5":["11:13","11:19"],"6":["11:20","11:28"],"7":["11:29","11:32"],M:["11:29","11:32"]},"Y.3":{"1":["11:1","11:8"],"2":["11:9","11:12"],"3":["11:13","11:19"],"4":["11:20","11:28"],"5":["11:29","11:32"],"6":["11:33","11:38"],"7":["11:39","11:47"],M:["11:45","11:47"]}}};const Tazria$1={book:3,variations:{"D.1":{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"],"4":["13:6","13:8"],"5":["13:9","13:17"],"6":["13:18","13:23"],"7":["13:24","13:28"],M:["13:26","13:28"]},"B.2":{"1":["13:29","13:34"],"2":["13:35","13:39"],"3":["13:40","13:42"],"4":["13:43","13:46"],"5":["13:47","13:50"],"6":["13:51","13:54"],"7":["13:55","13:59"],M:["13:57","13:59"]},"A.3":"B.2","C.1":{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"],"4":["13:6","13:17"],"5":["13:18","13:23"],"6":["13:24","13:28"],"7":["13:29","13:39"],M:["13:37","13:39"]},"D.3":"B.2"}};const Metzora$1={book:3,variations:{"A.3":{"1":["14:33","14:38"],"2":["14:39","14:47"],"3":["14:48","14:53"],"4":["14:54","15:7"],"5":["15:8","15:15"],"6":["15:16","15:28"],"7":["15:29","15:33"],M:["15:31","15:33"]},"B.2":{"1":["14:1","14:5"],"2":["14:6","14:9"],"3":["14:10","14:12"],"4":["14:13","14:15"],"5":["14:16","14:20"],"6":["14:21","14:25"],"7":["14:26","14:32"],M:["14:30","14:32"]},"C.1":"B.2","D.1":"B.2","D.3":"A.3"}};const Kedoshim$1={book:3,variations:{"A.3":{"1":["19:15","19:18"],"2":["19:19","19:22"],"3":["19:23","19:32"],"4":["19:33","19:37"],"5":["20:1","20:7"],"6":["20:8","20:22"],"7":["20:23","20:27"],M:["20:25","20:27"]},"B.2":{"1":["19:1","19:4"],"2":["19:5","19:10"],"3":["19:11","19:14"],"4":["19:15","19:18"],"5":["19:19","19:22"],"6":["19:23","19:32"],"7":["19:33","19:37"],M:["19:35","19:37"]},"C.1":"B.2","D.1":"B.2","D.3":{"1":["19:23","19:25"],"2":["19:26","19:28"],"3":["19:29","19:32"],"4":["19:33","19:37"],"5":["20:1","20:7"],"6":["20:8","20:22"],"7":["20:23","20:27"],M:["20:25","20:27"]}}};const Emor$1={book:3,years:{"Y.1":{"1":["21:1","21:6"],"2":["21:7","21:12"],"3":["21:13","21:15"],"4":["21:16","21:24"],"5":["22:1","22:9"],"6":["22:10","22:12"],"7":["22:13","22:16"],M:["22:13","22:16"]},"Y.2":{"1":["22:17","22:20"],"2":["22:21","22:25"],"3":["22:26","22:33"],"4":["23:1","23:3"],"5":["23:4","23:8"],"6":["23:9","23:14"],"7":["23:15","23:22"],M:["23:19","23:22"]},"Y.3":{"1":["23:23","23:25"],"2":["23:26","23:32"],"3":["23:33","23:44"],"4":["24:1","24:4"],"5":["24:5","24:9"],"6":["24:10","24:12"],"7":["24:13","24:23"],M:["24:21","24:23"]}}};const Behar$1={book:3,variations:{"D.1":{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:10"],"4":["25:11","25:13"],"5":["25:14","25:18"],"6":["25:19","25:24"],"7":["25:25","25:28"],M:["25:25","25:28"]},"B.2":{"1":["25:29","25:34"],"2":["25:35","25:38"],"3":["25:39","25:43"],"4":["25:44","25:46"],"5":["25:47","25:50"],"6":["25:51","25:54"],"7":["25:55","26:2"],M:["25:55","26:2"]},"A.3":"B.2","C.1":{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:13"],"4":["25:14","25:18"],"5":["25:19","25:24"],"6":["25:25","25:28"],"7":["25:29","25:38"],M:["25:35","25:38"]},"D.3":"B.2"}};const Bechukotai$1={book:3,variations:{"A.3":{"1":["27:1","27:4"],"2":["27:5","27:8"],"3":["27:9","27:15"],"4":["27:16","27:21"],"5":["27:22","27:25"],"6":["27:26","27:28"],"7":["27:29","27:34"],M:["27:32","27:34"]},"B.2":{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:46"],"4":["27:1","27:4"],"5":["27:5","27:8"],"6":["27:9","27:11"],"7":["27:12","27:15"],M:["27:12","27:15"]},"C.1":"B.2","D.1":"B.2","D.3":"A.3"}};const Bamidbar$1={book:4,years:{"Y.1":{"1":["1:1","1:4"],"2":["1:5","1:16"],"3":["1:17","1:19"],"4":["1:20","1:27"],"5":["1:28","1:35"],"6":["1:36","1:43"],"7":["1:44","1:54"],M:["1:52","1:54"]},"Y.2":{"1":["2:1","2:9"],"2":["2:10","2:16"],"3":["2:17","2:24"],"4":["2:25","2:31"],"5":["2:32","2:34"],"6":["3:1","3:4"],"7":["3:5","3:13"],M:["3:11","3:13"]},"Y.3":{"1":["3:14","3:20"],"2":["3:21","3:26"],"3":["3:27","3:39"],"4":["3:40","3:43"],"5":["3:44","3:51"],"6":["4:1","4:10"],"7":["4:11","4:20"],M:["4:17","4:20"]}}};const Nasso$1={book:4,years:{"Y.1":{"1":["4:21","4:24"],"2":["4:25","4:28"],"3":["4:29","4:33"],"4":["4:34","4:37"],"5":["4:38","4:49"],"6":["5:1","5:4"],"7":["5:5","5:10"],M:["5:8","5:10"]},"Y.2":{"1":["5:11","5:15"],"2":["5:16","5:26"],"3":["5:27","6:4"],"4":["6:5","6:8"],"5":["6:9","6:15"],"6":["6:16","6:21"],"7":["6:22","6:27"],M:["6:22","6:27"]},"Y.3":{"1":["7:1","7:11"],"2":["7:12","7:23"],"3":["7:24","7:35"],"4":["7:36","7:47"],"5":["7:48","7:59"],"6":["7:60","7:71"],"7":["7:72","7:89"],M:["7:87","7:89"]}}};const Korach$1={book:4,years:{"Y.1":{"1":["16:1","16:3"],"2":["16:4","16:7"],"3":["16:8","16:13"],"4":["16:14","16:19"],"5":["16:20","16:35"],"6":["17:1","17:8"],"7":["17:9","17:15"],M:["17:9","17:15"]},"Y.2":{"1":["16:20","16:27"],"2":["16:28","16:35"],"3":["17:1","17:5"],"4":["17:6","17:8"],"5":["17:9","17:15"],"6":["17:16","17:20"],"7":["17:21","17:24"],M:["17:21","17:24"]},"Y.3":{"1":["17:25","18:7"],"2":["18:8","18:10"],"3":["18:11","18:13"],"4":["18:14","18:20"],"5":["18:21","18:24"],"6":["18:25","18:29"],"7":["18:30","18:32"],M:["18:30","18:32"]}}};const Chukat$1={book:4,variations:{"C.2":{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:17"],"4":["19:18","19:22"],"5":["20:1","20:6"],"6":["20:7","20:13"],"7":["20:14","20:21"],M:["20:18","20:21"]},"B.2":{"1":["21:11","21:13"],"2":["21:14","21:16"],"3":["21:17","21:20"],"4":["21:21","21:25"],"5":["21:26","21:28"],"6":["21:29","21:33"],"7":["21:34","22:1"],M:["21:34","22:1"]},"C.3":{"1":["20:22","21:3"],"2":["21:4","21:10"],"3":["21:11","21:16"],"4":["21:17","21:20"],"5":["21:21","21:25"],"6":["21:26","21:33"],"7":["21:34","22:1"],M:["21:34","22:1"]},"A.3":"C.3","D.1":"C.2","D.2":"C.3","E.1":"C.2","E.3":"C.3","F.1":{"1":["19:1","19:9"],"2":["19:10","19:17"],"3":["19:18","20:6"],"4":["20:7","20:13"],"5":["20:14","20:21"],"6":["20:22","21:9"],"7":["21:10","21:20"],M:["21:16","21:20"]},"G.1":{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:13"],"4":["19:14","19:17"],"5":["19:18","19:22"],"6":["20:1","20:6"],"7":["20:7","20:13"],M:["20:7","20:13"]},"G.2":{"1":["20:1","20:6"],"2":["20:7","20:13"],"3":["20:14","20:17"],"4":["20:18","20:21"],"5":["20:22","21:3"],"6":["21:4","21:7"],"7":["21:8","21:10"],M:["21:8","21:10"]},"G.3":"B.2"}};const Balak$1={book:4,variations:{"A.3":{"1":["22:39","23:5"],"2":["23:6","23:12"],"3":["23:13","23:26"],"4":["23:27","23:30"],"5":["24:1","24:13"],"6":["24:14","24:25"],"7":["25:1","25:9"],M:["25:7","25:9"]},"B.2":{"1":["22:2","22:4"],"2":["22:5","22:7"],"3":["22:8","22:12"],"4":["22:13","22:20"],"5":["22:21","22:27"],"6":["22:28","22:30"],"7":["22:31","22:38"],M:["22:36","22:38"]},"C.2":"B.2","C.3":"A.3","D.1":"B.2","D.2":"A.3","E.1":"B.2","E.3":"A.3","F.1":"B.2","G.1":"B.2","G.2":{"1":["22:39","22:41"],"2":["23:1","23:3"],"3":["23:4","23:6"],"4":["23:7","23:12"],"5":["23:13","23:15"],"6":["23:16","23:18"],"7":["23:19","23:26"],M:["23:19","23:26"]},"G.3":{"1":["23:27","23:30"],"2":["24:1","24:9"],"3":["24:10","24:13"],"4":["24:14","24:19"],"5":["24:20","24:25"],"6":["25:1","25:6"],"7":["25:7","25:9"],M:["25:7","25:9"]}}};const Pinchas$1={book:4,years:{"Y.1":{"1":["25:10","25:12"],"2":["25:13","25:15"],"3":["25:16","26:4"],"4":["26:5","26:11"],"5":["26:12","26:22"],"6":["26:23","26:34"],"7":["26:35","26:51"],M:["26:48","26:51"]},"Y.2":{"1":["26:52","26:56"],"2":["26:57","26:62"],"3":["26:63","27:5"],"4":["27:6","27:14"],"5":["27:15","27:23"],"6":["28:1","28:10"],"7":["28:11","28:15"],M:["28:11","28:15"]},"Y.3":{"1":["28:16","28:25"],"2":["28:26","28:31"],"3":["29:1","29:6"],"4":["29:7","29:11"],"5":["29:12","29:16"],"6":["29:17","29:28"],"7":["29:29","30:1"],M:["29:35","30:1"]}}};const Matot$1={book:4,variations:{"B.2":{"1":["31:1","32:4"],"2":["32:5","32:19"],"3":["32:20","32:24"],"4":["32:25","32:27"],"5":["32:28","32:30"],"6":["32:31","32:38"],"7":["32:39","32:42"],M:["32:39","32:42"]},"A.3":"B.2","C.1":{"1":["30:2","30:9"],"2":["30:10","30:13"],"3":["30:14","30:17"],"4":["31:1","31:12"],"5":["31:13","31:24"],"6":["31:25","31:41"],"7":["31:42","31:54"],M:["31:51","31:54"]}}};const Masei$1={book:4,variations:{"A.3":{"1":["33:50","34:15"],"2":["34:16","34:29"],"3":["35:1","35:8"],"4":["35:9","35:15"],"5":["35:16","35:29"],"6":["35:30","35:34"],"7":["36:1","36:13"],M:["36:10","36:13"]},"B.2":{"1":["33:1","33:3"],"2":["33:4","33:6"],"3":["33:7","33:10"],"4":["33:11","33:23"],"5":["33:24","33:36"],"6":["33:37","33:43"],"7":["33:44","33:49"],M:["33:47","33:49"]},"C.1":"B.2"}};const Devarim={book:5,years:{"Y.1":{"1":["1:1","1:3"],"2":["1:4","1:7"],"3":["1:8","1:10"],"4":["1:11","1:21"],"5":["1:22","1:28"],"6":["1:29","1:38"],"7":["1:39","2:1"],M:["1:39","2:1"]},"Y.2":{"1":["2:2","2:5"],"2":["2:6","2:12"],"3":["2:13","2:16"],"4":["2:17","2:19"],"5":["2:20","2:22"],"6":["2:23","2:25"],"7":["2:26","2:30"],M:["2:28","2:30"]},"Y.3":{"1":["2:31","2:34"],"2":["2:35","2:37"],"3":["3:1","3:3"],"4":["3:4","3:7"],"5":["3:8","3:11"],"6":["3:12","3:14"],"7":["3:15","3:22"],M:["3:20","3:22"]}}};const Vaetchanan={book:5,descr:"with the Ten Commandments every year and the Sh'ma in years two and three",years:{"Y.1":{"1":["3:23","3:25"],"2":["3:26","4:4"],"3":["4:5","4:14"],"4":["4:15","4:20"],"5":["4:21","4:40"],"6":["4:41","4:49"],"7":["5:1","5:18"],M:["5:16","5:18"]},"Y.2":{"1":["5:1","5:18"],"2":["5:19","5:24"],"3":["5:25","5:30"],"4":["6:1","6:3"],"5":["6:4","6:9"],"6":["6:10","6:19"],"7":["6:20","6:25"],M:["6:23","6:25"]},"Y.3":{"1":["5:1","5:18"],"2":["5:19","5:24"],"3":["5:25","6:3"],"4":["6:4","6:9"],"5":["6:10","6:19"],"6":["6:20","6:25"],"7":["7:1","7:11"],M:["7:9","7:11"]},alt:{descr:"with the Ten Commandments in year two and the Sh'ma in year three",years:{"Y.1":{"1":["3:23","3:25"],"2":["3:26","3:29"],"3":["4:1","4:4"],"4":["4:5","4:14"],"5":["4:15","4:20"],"6":["4:21","4:29"],"7":["4:30","4:40"],M:["4:36","4:40"]},"Y.2":{"1":["4:41","4:43"],"2":["4:44","4:49"],"3":["5:1","5:18"],"4":["5:19","5:21"],"5":["5:22","5:24"],"6":["5:25","5:30"],"7":["6:1","6:3"],M:["6:1","6:3"]},"Y.3":{"1":["6:4","6:9"],"2":["6:10","6:19"],"3":["6:20","6:22"],"4":["6:23","6:25"],"5":["7:1","7:5"],"6":["7:6","7:8"],"7":["7:9","7:11"],M:["7:9","7:11"]}}}}};const Eikev$1={book:5,years:{"Y.1":{"1":["7:12","7:16"],"2":["7:17","7:21"],"3":["7:22","7:26"],"4":["8:1","8:3"],"5":["8:4","8:10"],"6":["8:11","8:18"],"7":["8:19","9:3"],M:["9:1","9:3"]},"Y.2":{"1":["9:4","9:10"],"2":["9:11","9:14"],"3":["9:15","9:21"],"4":["9:22","9:29"],"5":["10:1","10:5"],"6":["10:6","10:8"],"7":["10:9","10:11"],M:["10:9","10:11"]},"Y.3":{"1":["10:12","10:15"],"2":["10:16","10:22"],"3":["11:1","11:9"],"4":["11:10","11:12"],"5":["11:13","11:15"],"6":["11:16","11:21"],"7":["11:22","11:25"],M:["11:22","11:25"]}}};const Shoftim$1={book:5,years:{"Y.1":{"1":["16:18","16:20"],"2":["16:21","17:7"],"3":["17:8","17:10"],"4":["17:11","17:13"],"5":["17:14","17:17"],"6":["17:18","17:20"],"7":["18:1","18:5"],M:["18:3","18:5"]},"Y.2":{"1":["18:6","18:8"],"2":["18:9","18:13"],"3":["18:14","18:17"],"4":["18:18","18:22"],"5":["19:1","19:7"],"6":["19:8","19:10"],"7":["19:11","19:13"],M:["19:11","19:13"]},"Y.3":{"1":["19:14","19:21"],"2":["20:1","20:4"],"3":["20:5","20:9"],"4":["20:10","20:14"],"5":["20:15","20:20"],"6":["21:1","21:6"],"7":["21:7","21:9"],M:["21:7","21:9"]}}};const Nitzavim$1={book:5,descr:"When these Sidrot are not combined, they should each be read in their entirety.",variations:{"Y.1":{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"],"4":["30:1","30:6"],"5":["30:7","30:10"],"6":["30:11","30:14"],"7":["30:15","30:20"],M:["30:15","30:20"]},"Y.2":"Y.1","Y.3":"Y.1"}};const Vayeilech$1={book:5,descr:"When these Sidrot are not combined, they should each be read in their entirety.",variations:{"Y.1":{"1":["31:1","31:3"],"2":["31:4","31:6"],"3":["31:7","31:9"],"4":["31:10","31:13"],"5":["31:14","31:19"],"6":["31:20","31:24"],"7":["31:25","31:30"],M:["31:28","31:30"]},"Y.2":"Y.1","Y.3":"Y.1"}};var triennialConfig = {Bereshit:Bereshit$1,Noach:Noach$1,"Lech-Lecha":{book:1,years:{"Y.1":{"1":["12:1","12:3"],"2":["12:4","12:9"],"3":["12:10","12:13"],"4":["12:14","12:20"],"5":["13:1","13:4"],"6":["13:5","13:11"],"7":["13:12","13:18"],M:["13:16","13:18"]},"Y.2":{"1":["14:1","14:9"],"2":["14:10","14:16"],"3":["14:17","14:20"],"4":["14:21","14:24"],"5":["15:1","15:6"],"6":["15:7","15:16"],"7":["15:17","15:21"],M:["15:17","15:21"]},"Y.3":{"1":["16:1","16:6"],"2":["16:7","16:9"],"3":["16:10","16:16"],"4":["17:1","17:6"],"5":["17:7","17:17"],"6":["17:18","17:23"],"7":["17:24","17:27"],M:["17:24","17:27"]}}},Vayera:Vayera$1,"Chayei Sara":{book:1,years:{"Y.1":{"1":["23:1","23:4"],"2":["23:5","23:7"],"3":["23:8","23:12"],"4":["23:13","23:16"],"5":["23:17","23:20"],"6":["24:1","24:4"],"7":["24:5","24:9"],M:["24:5","24:9"]},"Y.2":{"1":["24:10","24:14"],"2":["24:15","24:20"],"3":["24:21","24:26"],"4":["24:27","24:33"],"5":["24:34","24:41"],"6":["24:42","24:49"],"7":["24:50","24:52"],M:["24:50","24:52"]},"Y.3":{"1":["24:53","24:58"],"2":["24:59","24:61"],"3":["24:62","24:67"],"4":["25:1","25:6"],"5":["25:7","25:11"],"6":["25:12","25:15"],"7":["25:16","25:18"],M:["25:16","25:18"]}}},Toldot:Toldot$1,Vayetzei:Vayetzei$1,Vayishlach:Vayishlach$1,Vayeshev:Vayeshev$1,Miketz:Miketz$1,Vayigash:Vayigash$1,Vayechi:Vayechi$1,Shemot:Shemot$1,Vaera:Vaera$1,Bo:Bo$1,Beshalach:Beshalach$1,Yitro:Yitro$1,Mishpatim:Mishpatim$1,Terumah:Terumah$1,Tetzaveh:Tetzaveh$1,"Ki Tisa":{book:2,years:{"Y.1":{"1":["30:11","30:13"],"2":["30:14","30:16"],"3":["30:17","30:21"],"4":["30:22","30:33"],"5":["30:34","30:38"],"6":["31:1","31:11"],"7":["31:12","31:17"],M:["31:15","31:17"]},"Y.2":{"1":["31:18","32:6"],"2":["32:7","32:11"],"3":["32:12","32:14"],"4":["32:15","32:24"],"5":["32:25","32:29"],"6":["32:30","33:6"],"7":["33:7","33:11"],M:["33:9","33:11"]},"Y.3":{"1":["33:12","33:16"],"2":["33:17","33:23"],"3":["34:1","34:9"],"4":["34:10","34:17"],"5":["34:18","34:21"],"6":["34:22","34:26"],"7":["34:27","34:35"],M:["34:33","34:35"]}}},Vayakhel:Vayakhel$1,Pekudei:Pekudei$1,Vayikra:Vayikra$1,Tzav:Tzav$1,Shmini:Shmini$1,Tazria:Tazria$1,Metzora:Metzora$1,"Achrei Mot":{book:3,variations:{"D.1":{"1":["16:1","16:3"],"2":["16:4","16:6"],"3":["16:7","16:11"],"4":["16:12","16:17"],"5":["16:18","16:24"],"6":["16:25","16:30"],"7":["16:31","16:34"],M:["16:31","16:34"]},"B.2":{"1":["17:1","17:7"],"2":["17:8","17:12"],"3":["17:13","17:16"],"4":["18:1","18:5"],"5":["18:6","18:21"],"6":["18:22","18:25"],"7":["18:26","18:30"],M:["18:26","18:30"]},"A.3":"B.2","C.1":{"1":["16:1","16:6"],"2":["16:7","16:11"],"3":["16:12","16:17"],"4":["16:18","16:24"],"5":["16:25","16:30"],"6":["16:31","16:34"],"7":["17:1","17:7"],M:["17:5","17:7"]},"D.3":"B.2"}},Kedoshim:Kedoshim$1,Emor:Emor$1,Behar:Behar$1,Bechukotai:Bechukotai$1,Bamidbar:Bamidbar$1,Nasso:Nasso$1,"Beha'alotcha":{book:4,years:{"Y.1":{"1":["8:1","8:4"],"2":["8:5","8:9"],"3":["8:10","8:14"],"4":["8:15","8:22"],"5":["8:23","8:26"],"6":["9:1","9:8"],"7":["9:9","9:14"],M:["9:12","9:14"]},"Y.2":{"1":["9:15","9:18"],"2":["9:19","9:23"],"3":["10:1","10:7"],"4":["10:8","10:10"],"5":["10:11","10:20"],"6":["10:21","10:28"],"7":["10:29","10:34"],M:["10:32","10:34"]},"Y.3":{"1":["10:35","11:9"],"2":["11:10","11:18"],"3":["11:19","11:22"],"4":["11:23","11:29"],"5":["11:30","11:35"],"6":["12:1","12:13"],"7":["12:14","12:16"],M:["12:14","12:16"]}}},"Sh'lach":{book:4,years:{"Y.1":{"1":["13:1","13:3"],"2":["13:4","13:16"],"3":["13:17","13:20"],"4":["13:21","13:24"],"5":["13:25","13:30"],"6":["13:31","13:33"],"7":["14:1","14:7"],M:["14:5","14:7"]},"Y.2":{"1":["14:8","14:10"],"2":["14:11","14:20"],"3":["14:21","14:25"],"4":["14:26","14:38"],"5":["14:39","14:42"],"6":["14:43","15:3"],"7":["15:4","15:7"],M:["15:4","15:7"]},"Y.3":{"1":["15:8","15:10"],"2":["15:11","15:16"],"3":["15:17","15:21"],"4":["15:22","15:26"],"5":["15:27","15:31"],"6":["15:32","15:36"],"7":["15:37","15:41"],M:["15:37","15:41"]}}},Korach:Korach$1,Chukat:Chukat$1,Balak:Balak$1,Pinchas:Pinchas$1,Matot:Matot$1,Masei:Masei$1,Devarim:Devarim,Vaetchanan:Vaetchanan,Eikev:Eikev$1,"Re'eh":{book:5,years:{"Y.1":{"1":["11:26","11:31"],"2":["11:32","12:5"],"3":["12:6","12:10"],"4":["12:11","12:16"],"5":["12:17","12:19"],"6":["12:20","12:25"],"7":["12:26","12:28"],M:["12:26","12:28"]},"Y.2":{"1":["12:29","13:1"],"2":["13:2","13:6"],"3":["13:7","13:12"],"4":["13:13","13:19"],"5":["14:1","14:8"],"6":["14:9","14:21"],"7":["14:22","14:29"],M:["14:22","14:29"]},"Y.3":{"1":["15:1","15:6"],"2":["15:7","15:11"],"3":["15:12","15:18"],"4":["15:19","15:23"],"5":["16:1","16:8"],"6":["16:9","16:12"],"7":["16:13","16:17"],M:["16:13","16:17"]}}},Shoftim:Shoftim$1,"Ki Teitzei":{book:5,years:{"Y.1":{"1":["21:10","21:14"],"2":["21:15","21:17"],"3":["21:18","21:21"],"4":["21:22","22:7"],"5":["22:8","22:12"],"6":["22:13","22:29"],"7":["23:1","23:7"],M:["23:4","23:7"]},"Y.2":{"1":["23:8","23:12"],"2":["23:13","23:15"],"3":["23:16","23:19"],"4":["23:20","23:24"],"5":["23:25","24:4"],"6":["24:5","24:9"],"7":["24:10","24:13"],M:["24:10","24:13"]},"Y.3":{"1":["24:14","24:16"],"2":["24:17","24:19"],"3":["24:20","24:22"],"4":["25:1","25:4"],"5":["25:5","25:10"],"6":["25:11","25:16"],"7":["25:17","25:19"],M:["25:17","25:19"]}}},"Ki Tavo":{book:5,years:{"Y.1":{"1":["26:1","26:3"],"2":["26:4","26:8"],"3":["26:9","26:11"],"4":["26:12","26:15"],"5":["26:16","26:19"],"6":["27:1","27:4"],"7":["27:5","27:10"],M:["27:7","27:10"]},"Y.2":{"1":["26:12","26:15"],"2":["26:16","26:19"],"3":["27:1","27:3"],"4":["27:4","27:8"],"5":["27:6","27:10"],"6":["27:11","28:3"],"7":["28:4","28:6"],M:["28:4","28:6"]},"Y.3":{"1":["27:11","28:3"],"2":["28:4","28:6"],"3":["28:7","28:11"],"4":["28:12","28:14"],"5":["28:15","28:69"],"6":["29:1","29:5"],"7":["29:6","29:8"],M:["29:6","29:8"]}}},Nitzavim:Nitzavim$1,Vayeilech:Vayeilech$1,"Ha'Azinu":{book:5,descr:"every year",variations:{"Y.1":{"1":["32:1","32:6"],"2":["32:7","32:12"],"3":["32:13","32:18"],"4":["32:19","32:28"],"5":["32:29","32:39"],"6":["32:40","32:43"],"7":["32:44","32:52"],M:["32:48","32:52"]},"Y.2":"Y.1","Y.3":"Y.1"}},"Vezot Haberakhah":{book:5,descr:"האזינו-וזאת הברכה should both be read in their entirety due to their brief length",variations:{"Y.1":{"1":["33:1","33:7"],"2":["33:8","33:12"],"3":["33:13","33:17"],"4":["33:18","33:21"],"5":["33:22","33:26"],"6":["33:27","33:29"],"7":["34:1","34:12"]},"Y.2":"Y.1","Y.3":"Y.1"}},"Vayakhel-Pekudei":{book:2,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["35:1","35:10"],"2":["35:11","35:20"],"3":["35:21","35:29"],"4":["35:30","36:7"],"5":["36:8","36:19"],"6":["36:20","36:38"],"7":["37:1","37:16"],M:["37:10","37:16"]},"Y.2":{"1":["37:17","37:24"],"2":["37:25","37:29"],"3":["38:1","38:8"],"4":["38:9","38:20"],"5":["38:21","39:1"],"6":["39:2","39:7"],"7":["39:8","39:21"],M:["39:19","39:21"]},"Y.3":{"1":["39:22","39:26"],"2":["39:27","39:32"],"3":["39:33","39:43"],"4":["40:1","40:8"],"5":["40:9","40:16"],"6":["40:17","40:27"],"7":["40:28","40:38"],M:["40:34","40:38"]}},patterns:{TTS:"A",TST:"B",TSS:"C",SST:"D",STS:"E",STT:"F",SSS:"G"}},"Tazria-Metzora":{book:3,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"],"4":["13:6","13:17"],"5":["13:18","13:23"],"6":["13:24","13:28"],"7":["13:29","13:39"],M:["13:37","13:39"]},"Y.2":{"1":["13:40","13:46"],"2":["13:47","13:54"],"3":["13:55","13:59"],"4":["14:1","14:5"],"5":["14:6","14:12"],"6":["14:13","14:20"],"7":["14:21","14:32"],M:["14:30","14:32"]},"Y.3":{"1":["14:33","14:38"],"2":["14:39","14:47"],"3":["14:48","14:53"],"4":["14:54","15:7"],"5":["15:8","15:15"],"6":["15:16","15:28"],"7":["15:29","15:33"],M:["15:31","15:33"]}},patterns:{TTS:"A",TST:"B",STT:"C",STS:"D"}},"Achrei Mot-Kedoshim":{book:3,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["16:1","16:6"],"2":["16:7","16:11"],"3":["16:12","16:17"],"4":["16:18","16:24"],"5":["16:25","16:30"],"6":["16:31","16:34"],"7":["17:1","17:7"],M:["17:5","17:7"]},"Y.2":{"1":["17:8","17:12"],"2":["17:13","17:16"],"3":["18:1","18:5"],"4":["18:6","18:21"],"5":["18:22","18:30"],"6":["19:1","19:4"],"7":["19:5","19:14"],M:["19:11","19:14"]},"Y.3":{"1":["19:15","19:18"],"2":["19:19","19:22"],"3":["19:23","19:32"],"4":["19:33","19:37"],"5":["20:1","20:7"],"6":["20:8","20:22"],"7":["20:23","20:27"],M:["20:25","20:27"]}},patterns:{TTS:"A",TST:"B",STT:"C",STS:"D"}},"Behar-Bechukotai":{book:3,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:13"],"4":["25:14","25:18"],"5":["25:19","25:24"],"6":["25:25","25:28"],"7":["25:29","25:38"],M:["25:35","25:38"]},"Y.2":{"1":["25:39","25:43"],"2":["25:44","25:46"],"3":["25:47","25:54"],"4":["25:55","26:2"],"5":["26:3","26:5"],"6":["26:6","26:9"],"7":["26:10","26:46"],M:["26:44","26:46"]},"Y.3":{"1":["27:1","27:4"],"2":["27:5","27:8"],"3":["27:9","27:15"],"4":["27:16","27:21"],"5":["27:22","27:25"],"6":["27:26","27:28"],"7":["27:29","27:34"],M:["27:32","27:34"]}},patterns:{TTS:"A",TST:"B",STT:"C",STS:"D"}},"Chukat-Balak":{book:4,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["19:1","19:9"],"2":["19:10","19:17"],"3":["19:18","20:6"],"4":["20:7","20:13"],"5":["20:14","20:21"],"6":["20:22","21:9"],"7":["21:10","21:20"],M:["21:16","21:20"]},"Y.2":{"1":["21:21","21:25"],"2":["21:26","22:1"],"3":["22:2","22:7"],"4":["22:8","22:12"],"5":["22:13","22:20"],"6":["22:21","22:30"],"7":["22:31","22:38"],M:["22:36","22:38"]},"Y.3":{"1":["22:39","23:5"],"2":["23:6","23:12"],"3":["23:13","23:26"],"4":["23:27","23:30"],"5":["24:1","24:13"],"6":["24:14","24:25"],"7":["25:1","25:9"],M:["25:7","25:9"]}},patterns:{TTS:"A",TST:"B",TSS:"C",SST:"D",STS:"E",STT:"F",SSS:"G"}},"Matot-Masei":{book:4,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["30:2","30:9"],"2":["30:10","30:13"],"3":["30:14","30:17"],"4":["31:1","31:12"],"5":["31:13","31:24"],"6":["31:25","31:41"],"7":["31:42","31:54"],M:["31:51","31:54"]},"Y.2":{"1":["32:1","32:4"],"2":["32:5","32:19"],"3":["32:20","32:27"],"4":["32:28","32:42"],"5":["33:1","33:6"],"6":["33:7","33:36"],"7":["33:37","33:49"],M:["33:47","33:49"]},"Y.3":{"1":["33:50","34:15"],"2":["34:16","34:29"],"3":["35:1","35:8"],"4":["35:9","35:15"],"5":["35:16","35:29"],"6":["35:30","35:34"],"7":["36:1","36:13"],M:["36:10","36:13"]}},patterns:{TTS:"A",TST:"B",STT:"C"}},"Nitzavim-Vayeilech":{book:5,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"],"4":["30:1","30:3"],"5":["30:4","30:6"],"6":["30:7","30:10"],"7":["30:11","30:14"],M:["30:11","30:14"]},"Y.2":{"1":["30:1","30:3"],"2":["30:4","30:6"],"3":["30:7","30:10"],"4":["30:11","30:14"],"5":["30:15","30:20"],"6":["31:1","31:3"],"7":["31:4","31:6"],M:["31:4","31:6"]},"Y.3":{"1":["31:7","31:9"],"2":["31:10","31:13"],"3":["31:14","31:19"],"4":["31:20","31:22"],"5":["31:22","31:24"],"6":["31:25","31:27"],"7":["31:28","31:30"],M:["31:28","31:30"]}},patterns:{TTS:"Y",TST:"Y",TSS:"Y",SST:"Y",STS:"Y",STT:"Y",SSS:"Y"}}};
1027
-
1028
- const Bereshit={"1":{k:"Isaiah",b:"42:5",e:"42:21",note:"God identified as the creator // Creation"},"2":{k:"Isaiah",b:"40:25",e:"40:31",note:"God created, called by name // Eden"},"3":{k:"II Kings",b:"2:1",e:"2:13",note:"Elijah taken // Hanokh"}};const Noach={"1":{k:"Isaiah",b:"54:11",e:"55:5",note:"Storm tossed boat // Ark"},"2":{k:"Isaiah",b:"54:1",e:"54:10",note:"waters of Noah no more"},"3":{k:"Zephaniah",b:"3:9",e:"3:20",note:"one language // babel"}};const Vayera={"1":{k:"II Kings",b:"4:8",e:"4:17",note:"birth of promised child // promise to Sarah"},"2":{k:"II Kings",b:"6:8",e:"6:23",note:"blinding episode // Sodom"},"3":{k:"II Kings",b:"4:18",e:"4:36",note:"saving of child // akedah"}};const Toldot={"1":{k:"Malachi",b:"1:1",e:"1:14",note:"Jacob / Esau"},"2":{k:"II Samuel",b:"19:32",e:"19:40",note:"Barzilay infirm in old age // Isaac"},"3":[{k:"Judges",b:"3:15",e:"3:27",note:"Ehud's ploy // Jacob's ploy"},{k:"Judges",b:"3:30",e:"3:30"}]};const Vayetzei={"1":{k:"Hosea",b:"12:3",e:"12:14",note:"Jacob story"},"2":{k:"Zechariah",b:"1:7",e:"1:17",note:"striped horses //streaked sheep"},"3":{k:"I Samuel",b:"19:11",e:"19:18",note:"deceit / terafim / female wiles // Rachel hides terafim"}};const Vayishlach={"1":[{k:"Obadiah",b:"1:10",e:"1:18",note:"Jacob defeats Edom (Babylon) // Jacob meets Esau"},{k:"Obadiah",b:"1:21",e:"1:21"}],"2":{k:"Jeremiah",b:"30:10",e:"30:22",note:"Jacob will return, settle // Jacob's early settling in Shechem and Bet El"},"3":[{k:"Amos",b:"1:1",e:"1:1",note:"prophecy against Edom // genealogy of Edom"},{k:"Amos",b:"1:11",e:"2:3"}]};const Vayeshev={"1":[{k:"Amos",b:"2:6",e:"3:2",note:"reference to sale of righteous // sale of Joseph"},{k:"Amos",b:"3:7",e:"3:8"}],"2":{k:"I Samuel",b:"24:2",e:"24:15",note:"recognition of significant object David to Saul // Tamar to Judah"},"3":{k:"Judges",b:"7:9",e:"7:20",note:"Gideon dream interpretation // Joseph's in jail"}};const Miketz={"1":{k:"I Kings",b:"3:5",e:"3:15",note:"Solomon's dream // Pharaoh's dream"},"2":{k:"I Kings",b:"3:16",e:"4:1",note:"Solomon's wisdom // Joseph's"},"3":{k:"I Kings",b:"10:1",e:"10:9",note:"Solomon's wisdom and household // Joseph's"}};const Vayigash={"1":{k:"Ezekiel",b:"37:15",e:"37:28",note:"Judah and Joseph united"},"2":{k:"Zechariah",b:"10:3",e:"10:12",note:"Judah and Joseph, return from Egypt // J & J, brothers return to Jacob"},"3":{k:"Isaiah",b:"41:1",e:"41:10",note:"brother helps / Jacob not fear // Joseph settles his family in Goshen"}};const Vayechi={"1":{k:"Amos",b:"5:4",e:"5:15",note:"prophecy to remnants of Joseph // Joseph and kids"},"2":{k:"I Kings",b:"2:1",e:"2:12",note:"David's // Jacob's last speech"},"3":[{k:"II Samuel",b:"1:12",e:"1:12",note:"(lament over) deaths of Saul and Jonathan // deaths of Jacob, Joseph"},{k:"II Samuel",b:"1:17",e:"1:27"}]};const Shemot={"1":[{k:"Isaiah",b:"27:6",e:"27:13",note:"growth of Jacob / Israel // Israel in Egypt"},{k:"Isaiah",b:"29:22",e:"29:23"}],"2":[{k:"Joshua",b:"5:13",e:"6:5",note:"Joshua shoes off // burning bush"},{k:"Joshua",b:"6:15",e:"6:16"}],"3":[{k:"I Samuel",b:"9:15",e:"9:21",note:"anointing of Saul // Moses"},{k:"I Samuel",b:"9:27",e:"10:1"}]};const Vaera={"1":[{k:"Jeremiah",b:"1:1",e:"1:10",note:"appointment of Jeremiah // Moses"},{k:"Jeremiah",b:"1:8",e:"1:8"}],"2":[{k:"Ezekiel",b:"28:25",e:"29:12",note:"Speak to Pharaoh, show Egypt, strike Nile"},{k:"Ezekiel",b:"29:21",e:"29:21"}],"3":[{k:"Isaiah",b:"10:12",e:"10:12",note:"smite Assyria as Egypt"},{k:"Isaiah",b:"10:15",e:"10:26"},{k:"Isaiah",b:"10:32",e:"10:33"}]};const Bo={"1":{k:"Jeremiah",b:"10:1",e:"10:10",note:"goyim will fear signs from heaven // plagues"},"2":{k:"Jeremiah",b:"46:13",e:"46:28",note:"Egypt's fall / Israel's redemption // Exodus"},"3":{k:"II Samuel",b:"7:18",e:"7:29",note:"David recalls Exodus"}};const Beshalach={"1":{k:"Judges",b:"4:4",e:"4:24",note:"defeat of Sisera // defeat of Pharaoh"},"2":{k:"Judges",b:"5:1",e:"5:31",note:"Deborah's song // Moses' song of sea"},"3":[{k:"Joshua",b:"3:9",e:"3:17",note:"splitting Jordan, crossing on dry land // splitting Red Sea"},{k:"Joshua",b:"4:19",e:"4:24"}]};const Yitro={"1":{k:"Isaiah",b:"6:1",e:"6:13",note:"Isaiah's revelation of God // Moses' revelation at Sinai"},"2":{k:"Isaiah",b:"44:9",e:"44:23",note:"making idols to false god // you shall have no other Gods"},"3":{k:"Ezekiel",b:"16:4",e:"16:14",note:"Israel's birth / covenant / marriage(?) // revelation at Sinai"}};const Mishpatim={"1":[{k:"Jeremiah",b:"34:12",e:"34:22",note:"Jeremiah refers to the law that followed the covenant // Mishpatim"},{k:"Jeremiah",b:"33:25",e:"33:26"}],"2":{k:"I Samuel",b:"18:20",e:"18:28",note:"Michal's bride price // a law of Mishpatim"},"3":{k:"Joshua",b:"24:16",e:"24:28",note:"Joshua's covenant // na'aseh v'nishma"}};const Terumah={"1":{k:"Zechariah",b:"2:5",e:"2:17",note:"God's presence in Israelvshakhanti b'tokhekh"},"2":{k:"I Kings",b:"6:1",e:"6:13",note:"Temple // Tabernacle"},"3":{k:"II Samuel",b:"7:1",e:"7:16",note:"Temple // Tabernacle"}};const Tetzaveh={"1":{k:"Ezekiel",b:"43:10",e:"43:17",note:"Temple // Tabernacle"},"2":{k:"Haggai",b:"1:1",e:"1:12",note:"T / T"},"3":{k:"Haggai",b:"2:1",e:"2:9",note:"T / T"}};const Vayakhel={"1":{k:"I Kings",b:"7:40",e:"7:50",note:"T / T"},"2":{k:"I Kings",b:"7:13",e:"7:26",note:"T / T"},"3":{k:"Ezekiel",b:"43:1",e:"43:9",note:"T / T"}};const Pekudei={"1":{k:"I Kings",b:"8:1",e:"8:11",note:"T / T"},"2":{k:"I Kings",b:"8:10",e:"8:21",note:"T / T"},"3":{k:"I Kings",b:"8:22",e:"8:39",note:"T / T"}};const Vayikra={"1":{k:"Isaiah",b:"43:21",e:"44:8",note:"sacrifices"},"2":{k:"I Samuel",b:"2:13",e:"2:26",note:"misbehaving kohanim // if a priest sins"},"3":{k:"Malachi",b:"2:13",e:"3:4",note:"sinfulness ruins offering // sin offerings"}};const Tzav={"1":[{k:"Jeremiah",b:"7:21",e:"7:28",note:"justice over sacrifices // sacrifices at Tabernacle"},{k:"Jeremiah",b:"9:22",e:"9:23"}],"2":{k:"Jeremiah",b:"33:14",e:"33:22",note:"priests offer sacrifices // sacrifices at Tabernacle"},"3":{k:"Ezekiel",b:"42:13",e:"42:20",note:"priestly precincts / clothes // priestly vestments"}};const Shmini={"1":{k:"II Samuel",b:"6:1",e:"6:15",note:"Uzza struck down // Nadav and Avihu"},"2":{k:"Ezekiel",b:"43:18",e:"43:27",note:"8th day sacrifices"},"3":{k:"Hosea",b:"9:1",e:"9:9",note:"Israel has eaten non-kosher // kashrut rules"}};const Tazria={"1":{k:"Isaiah",b:"46:3",e:"46:13",note:"since birth // birth"},"2":{k:"Jeremiah",b:"30:1",e:"30:9",note:"im yoled zakhar // v'yaldah zakhar"}};const Metzora={"1":{k:"II Kings",b:"5:1",e:"5:14",note:"Healing of a leper"},"2":{k:"II Kings",b:"7:3",e:"7:16",note:"4 lepers discover Aram's flight"},"3":{k:"II Kings",b:"5:20",e:"5:27",note:"Gechazi gets leprosy"}};const Kedoshim={"1":{k:"Isaiah",b:"61:1",e:"61:9",note:"you shall be called Priests // kedoshim"},"2":{k:"Amos",b:"9:7",e:"9:15",note:"opposite of chosenness"},"3":{k:"Hosea",b:"4:1",e:"4:15",note:"opposite of holiness / niuf // kedoshim, arayot"}};const Emor={"1":{k:"Ezekiel",b:"44:15",e:"44:24",note:"the conduct of kohanim"},"2":[{k:"Malachi",b:"2:1",e:"2:10",note:"conduct of kohanim / chillul hashem // particularly vs. 22:31-32"},{k:"Malachi",b:"2:7",e:"2:7"}],"3":[{k:"Nachum",b:"1:1",e:"1:7",note:"Judah shall observe its festivals // complete festival calendar"},{k:"Nachum",b:"2:1",e:"2:3"},{k:"Nachum",b:"2:2b",e:"2:3a"}]};const Behar={"1":{k:"Jeremiah",b:"32:6",e:"32:15",note:"land redemption // shmittah"},"2":{k:"Jeremiah",b:"32:16",e:"32:27",note:"prayerwill Israel ever redeem its land // shmittah"}};const Bechukotai={"1":{k:"Jeremiah",b:"17:1",e:"17:14",note:"blessings and curses // tokhechah"},"2":[{k:"Jeremiah",b:"16:9",e:"16:15",note:"desolation and redemption // tokhechah"},{k:"Jeremiah",b:"16:19",e:"16:21"}],"3":{k:"Malachi",b:"3:5",e:"3:12",note:"curses and blessings // tokhechah"}};const Bamidbar={"1":[{k:"Hosea",b:"2:1",e:"2:7",note:"number, lead thru desert as after Egypt // census, desert wanderings"},{k:"Hosea",b:"2:16",e:"2:22"}],"2":{k:"Isaiah",b:"63:7",e:"63:16",note:"God carries us as in desert // desert wanderings"},"3":[{k:"Joshua",b:"8:30",e:"8:35",note:"kohanim who carried the ark // korachites"},{k:"Joshua",b:"8:33",e:"8:33"}]};const Nasso={"1":[{k:"Joshua",b:"6:5",e:"6:14",note:"kohanim carrying ark // gershunites and merarites"},{k:"Joshua",b:"6:12",e:"6:12"}],"2":[{k:"Judges",b:"13:2",e:"13:14",note:"Samson // nazirite rules"},{k:"Judges",b:"13:24",e:"13:25"}],"3":[{k:"Joel",b:"1:8",e:"1:13",note:"end of sacrifices, hope for restart // dedication of Tabernacle"},{k:"Joel",b:"2:12",e:"2:14"}]};const Korach={"1":{k:"I Samuel",b:"12:1",e:"12:13",note:"Samuel's apologia references Moses leadership // Moses'"},"2":{k:"I Samuel",b:"12:13",e:"12:22",note:"appointing non-prophet as leader // Korach's rebellion"},"3":{k:"Ezekiel",b:"45:1",e:"45:15",note:"portion of kohen and levi"}};const Chukat={"1":{k:"Judges",b:"15:9",e:"15:20",note:"Samson gets miraculous water from split ground // splitting rock"},"2":{k:"Judges",b:"11:12",e:"11:27",note:"journey across Moav recalled"},"3":[{k:"II Kings",b:"18:1",e:"18:13",note:"Hezekiah destroys nachash n'choshet // Moses builds nachash n'choshet"},{k:"II Kings",b:"19:15",e:"19:19"}]};const Balak={"1":{k:"Micah",b:"6:1",e:"6:8",note:"events of Balak recalled"},"2":{k:"Micah",b:"5:1",e:"5:8",note:"she'erit Yaakov described // Bila'am's blessing"},"3":{k:"Joshua",b:"24:1",e:"24:14",note:"history mentions Balak"}};const Pinchas={"1":{k:"I Kings",b:"19:1",e:"19:16",note:"Elijah's zeal // Pinchas"},"2":[{k:"Joshua",b:"17:1",e:"17:6",note:"Bnot Tzlofhad"},{k:"Joshua",b:"17:17",e:"17:18"}],"3":{k:"Ezekiel",b:"46:1",e:"46:11",note:"sacrifices on Shabbat and holidays // detailed festival sacrifices"}};const Matot={"1":{k:"Jeremiah",b:"1:11",e:"2:3",note:"miztafon tipatach hara'ah"},"2":{k:"II Kings",b:"22:8",e:"22:19",note:"hinneni mevi ra'ah (Hezekiah's discovered book of Torah)"},"3":{k:"Jeremiah",b:"14:11",e:"14:22",note:"ki yatzumu, eineni shomea"}};const Masei={"1":[{k:"Jeremiah",b:"2:4",e:"2:13",note:"shtayim ra'ot asah ami"},{k:"Jeremiah",b:"4:1",e:"4:2"}],"2":[{k:"Jeremiah",b:"2:14",e:"2:28",note:"ra vamar ozvekh"},{k:"Jeremiah",b:"3:4",e:"3:4"}],"3":[{k:"I Kings",b:"9:2",e:"9:9",note:"l'mashal v'lishninah"},{k:"I Kings",b:"9:4",e:"9:5a"}]};const Eikev={"1":{k:"Isaiah",b:"49:14",e:"49:26",note:"ani moshiekh"},"2":{k:"Isaiah",b:"50:1",e:"51:3",note:"sason v'simcha yimatze"},"3":{k:"Zechariah",b:"8:1",e:"8:8",note:"be'emet u-vitzdakah"}};const Shoftim={"1":[{k:"Isaiah",b:"51:12",e:"51:23",note:"anokhi anokhi"},{k:"Isaiah",b:"51:22",e:"51:22"}],"2":{k:"Isaiah",b:"52:1",e:"52:12",note:"uri uri"},"3":{k:"Isaiah",b:"44:24",e:"45:7",note:"l'ma'an avdi"}};const Nitzavim={"1":{k:"Isaiah",b:"61:10",e:"62:12",note:"sos asis"},"2":{k:"Isaiah",b:"63:1",e:"63:9",note:"tzaratam lo tzar"},"3":{k:"Isaiah",b:"65:16",e:"65:25",note:"terem yikrau ani e'eneh"}};const Vayeilech={"1":{k:"Isaiah",b:"61:10",e:"62:12",note:"sos asis"},"2":{k:"Isaiah",b:"63:1",e:"63:9",note:"tzaratam lo tzar"},"3":{k:"Isaiah",b:"65:16",e:"65:25",note:"terem yikrau ani e'eneh"}};const _holidays={"Pesach I":{k:"Joshua",b:"5:2",e:"5:12"},"Pesach I (on Shabbat)":{k:"Joshua",b:"5:2",e:"5:12"},"Pesach II":[{k:"II Kings",b:"23:1",e:"23:9"},{k:"II Kings",b:"23:21",e:"23:23"}],"Pesach VII":{k:"II Samuel",b:"22:1",e:"22:19"},"Pesach VII (on Shabbat)":{k:"II Samuel",b:"22:1",e:"22:19"},"Pesach VIII":[{k:"Isaiah",b:"11:1",e:"11:12"},{k:"Isaiah",b:"11:16",e:"11:16"}],"Pesach VIII (on Shabbat)":[{k:"Isaiah",b:"11:1",e:"11:12"},{k:"Isaiah",b:"11:16",e:"11:16"}],"Shavuot II":[{k:"Habakkuk",b:"3:1",e:"3:13"},{k:"Habakkuk",b:"3:18",e:"3:19"}],"Shavuot II (on Shabbat)":[{k:"Habakkuk",b:"3:1",e:"3:13"},{k:"Habakkuk",b:"3:18",e:"3:19"}],"Rosh Hashana II":{k:"Jeremiah",b:"31:2",e:"31:20"},"Yom Kippur":{k:"Isaiah",b:"58:1",e:"58:14"},"Yom Kippur (on Shabbat)":{k:"Isaiah",b:"58:1",e:"58:14"},"Yom Kippur (Mincha, Traditional)":[{k:"Jonah",b:"1:1",e:"4:11"},{k:"Micah",b:"7:18",e:"7:20"}],"Yom Kippur (Mincha, Alternate)":[{k:"Jonah",b:"1:1",e:"4:11"},{k:"Micah",b:"7:18",e:"7:20"}],"Sukkot I":[{k:"Zechariah",b:"14:1",e:"14:9"},{k:"Zechariah",b:"14:16",e:"14:21"}],"Sukkot I (on Shabbat)":[{k:"Zechariah",b:"14:1",e:"14:9"},{k:"Zechariah",b:"14:16",e:"14:21"}],"Sukkot II":{k:"I Kings",b:"8:2",e:"8:13"},"Sukkot Shabbat Chol ha-Moed":{k:"Ezekiel",b:"38:18",e:"39:7"},"Simchat Torah":{k:"Joshua",b:"1:1",e:"1:9"},"Shabbat Chanukah":{k:"Zechariah",b:"3:6",e:"4:7"},"Shabbat Rosh Chodesh Chanukah":{k:"Zechariah",b:"3:6",e:"4:7"},"Shabbat HaChodesh":{k:"Ezekiel",b:"45:16",e:"45:25"},"Shabbat HaChodesh (on Rosh Chodesh)":{k:"Ezekiel",b:"45:16",e:"45:25"},"Shabbat HaGadol":[{k:"Malachi",b:"3:13",e:"3:24"},{k:"Malachi",b:"3:23",e:"3:23"}],"Shabbat Parah":{k:"Ezekiel",b:"36:16",e:"36:38"},"Shabbat Shekalim":{k:"II Kings",b:"12:1",e:"12:17"},"Shabbat Shekalim (on Rosh Chodesh)":{k:"II Kings",b:"12:1",e:"12:17"},"Shabbat Shuva":[{k:"Hosea",b:"14:2",e:"14:10"},{k:"Micah",b:"7:18",e:"7:20"}],"Shabbat Shuva (alt)":{k:"Joel",b:"2:15",e:"2:27"},"Shabbat Zachor":{k:"I Samuel",b:"15:2",e:"15:34"},"Shabbat Rosh Chodesh":[{k:"Isaiah",b:"66:1",e:"66:14"},{k:"Isaiah",b:"66:22",e:"66:24"},{k:"Isaiah",b:"66:23",e:"66:23"}]};var triennialHaft = {Bereshit:Bereshit,Noach:Noach,"Lech-Lecha":{"1":{k:"Judges",b:"6:24",e:"6:32",note:"Gideon smashes dad's idol // Abraham and Terach's idols (midrash)"},"2":{k:"Joshua",b:"10:1",e:"10:14",note:"battle of Giveon // battle of 4/5 kings"},"3":{k:"Isaiah",b:"41:8",e:"41:16",note:"Israel, Abraham's progeny // promise to Abraham"}},Vayera:Vayera,"Chayei Sara":{"1":{k:"Isaiah",b:"51:1",e:"51:11",note:"Sarah and Abraham as models"},"2":{k:"I Samuel",b:"14:1",e:"14:12",note:"Jonathan's sign // Eliezer's sign"},"3":{k:"I Kings",b:"1:11",e:"1:31",note:"David's old age // Abraham's"}},Toldot:Toldot,Vayetzei:Vayetzei,Vayishlach:Vayishlach,Vayeshev:Vayeshev,Miketz:Miketz,Vayigash:Vayigash,Vayechi:Vayechi,Shemot:Shemot,Vaera:Vaera,Bo:Bo,Beshalach:Beshalach,Yitro:Yitro,Mishpatim:Mishpatim,Terumah:Terumah,Tetzaveh:Tetzaveh,"Ki Tisa":{"1":[{k:"Jeremiah",b:"17:19",e:"17:27",note:"re observance of Shabbat"},{k:"Jeremiah",b:"17:24",e:"17:25"}],"2":{k:"I Kings",b:"18:20",e:"18:39",note:"Elijah on Carmel // Golden Calf"},"3":{k:"Isaiah",b:"63:17",e:"64:8",note:"seeking forgiveness // Moses after Golden Calf"}},Vayakhel:Vayakhel,Pekudei:Pekudei,Vayikra:Vayikra,Tzav:Tzav,Shmini:Shmini,Tazria:Tazria,Metzora:Metzora,"Achrei Mot":{"1":{k:"Ezekiel",b:"22:1",e:"22:16",note:"abominations // arayot"},"2":{k:"Ezekiel",b:"20:2",e:"20:20",note:"abominations of Egypt // arayot"}},Kedoshim:Kedoshim,Emor:Emor,Behar:Behar,Bechukotai:Bechukotai,Bamidbar:Bamidbar,Nasso:Nasso,"Beha'alotcha":{"1":[{k:"Zechariah",b:"3:1",e:"3:5",note:"Purifying kohen, Menorah // Menorah, purifying leviim"},{k:"Zechariah",b:"4:1",e:"4:7"}],"2":[{k:"Joshua",b:"3:3",e:"3:8",note:"Ark leads in travel"},{k:"Joshua",b:"3:17",e:" 4:7"}],"3":{k:"II Kings",b:"20:1",e:"20:11",note:"Hezekiah healed thru prayer // Miriam"}},"Sh'lach":{"1":{k:"Joshua",b:"2:1",e:"2:11",note:"spies"},"2":{k:"Joshua",b:"14:6",e:"14:15",note:"Calev's reward"},"3":{k:"I Kings",b:"17:1",e:"17:16",note:"mkosheshet etzim // mkoshesh etzim"}},Korach:Korach,Chukat:Chukat,Balak:Balak,Pinchas:Pinchas,Matot:Matot,Masei:Masei,"Devarim - Isaiah 1:1-27, same as full kriyah":false,"Vaetchanan - Isaiah 40:1-26, same as full kriyah":false,Eikev:Eikev,"Re'eh":{"1":{k:"Isaiah",b:"54:11",e:"55:5**",note:"aniya soarah"},"2":{k:"Isaiah",b:"43:1",e:"43:10",note:"al tira ki g'altikha"},"3":{k:"Isaiah",b:"43:11",e:"43:20",note:"ami v'chiri"}},Shoftim:Shoftim,"Ki Teitzei":{"1":{k:"Isaiah",b:"54:1",e:"54:10",note:"roni akarah"},"2":{k:"Jeremiah",b:"33:1",e:"33:11",note:"kol sason v'kol simchah"},"3":[{k:"Isaiah",b:"48:12",e:"48:21",note:"goalekh k'dosh yisrael"},{k:"Isaiah",b:"4:20",e:"4:20"}]},"Ki Tavo":{"1":{k:"Isaiah",b:"60:1",e:"60:9",note:"kumi ori"},"2":{k:"Isaiah",b:"60:13",e:"60:22",note:"amekh kulam tzadikim"},"3":{k:"Zechariah",b:"8:11",e:"8:22",note:"emet umishpat shalom"}},Nitzavim:Nitzavim,Vayeilech:Vayeilech,"Ha'Azinu":{"1":[{k:"II Samuel",b:"22:1",e:"22:1",note:"David // Moses' song"},{k:"II Samuel",b:"22:31",e:"22:51"}],"2":[{k:"II Samuel",b:"22:1",e:"22:1",note:"David //Moses' song"},{k:"II Samuel",b:"22:19",e:"22:31"}],"3":{k:"Joshua",b:"23:1",e:"23:11",note:"Joshua's farewell"}},"Tish'a B'Av":{"1":[{k:"Jeremiah",b:"8:13",e:"8:23"},{k:"Jeremiah",b:"9:23",e:"9:23"}],"2":[{k:"Jeremiah",b:"9:1",e:"9:10"},{k:"Jeremiah",b:"9:23",e:"9:23"}],"3":{k:"Jeremiah",b:"9:11",e:"9:23"}},_holidays:_holidays};
1029
-
1030
1015
  /**
1031
- * Represents triennial aliyot for a given date
1032
- * @typedef {Object} TriennialAliyot
1033
- * @property {Object<string,Aliyah>} aliyot - a map of aliyot 1-7 plus "M"
1034
- * @property {number} yearNum - year number, 0-2
1035
- * @property {Date} date - Shabbat date for when this parsha is read in this 3-year cycle
1036
- * @property {boolean} [readSeparately] - true if a double parsha is read separately in year `yearNum`
1037
- * @property {Date} [date1] - Shabbat date of the first part of a read-separately aliyah pair
1038
- * @property {Date} [date2] - Shabbat date of the second part of a read-separately aliyah pair
1039
- */
1040
-
1041
- const VEZOT_HABERAKHAH = 'Vezot Haberakhah';
1042
- const isSometimesDoubled = Object.create(null); // N.B. these are 0-based indices
1043
-
1044
- const doubled = [21, // Vayakhel-Pekudei
1045
- 26, // Tazria-Metzora
1046
- 28, // Achrei Mot-Kedoshim
1047
- 31, // Behar-Bechukotai
1048
- 38, // Chukat-Balak
1049
- 41, // Matot-Masei
1050
- 50 // Nitzavim-Vayeilech
1051
- ];
1052
- doubled.forEach(id => {
1053
- isSometimesDoubled[id] = true;
1054
- isSometimesDoubled[id + 1] = true;
1055
- });
1056
- /**
1057
- * takes a 0-based (Bereshit=0) parsha ID
1058
- * @private
1059
- * @param {number} id
1060
- * @return {string}
1061
- */
1062
-
1063
- function getDoubledName(id) {
1064
- const p1 = parshiot[id];
1065
- const p2 = parshiot[id + 1];
1066
- const name = p1 + '-' + p2;
1067
- return name;
1068
- }
1069
-
1070
- let triennialAliyot;
1071
- /** Triennial Torah readings */
1072
-
1073
- class Triennial {
1074
- /**
1075
- * Builds a Triennial object
1076
- * @param {number} [hebrewYear] Hebrew Year (default current year)
1077
- */
1078
- constructor(hebrewYear) {
1079
- hebrewYear = hebrewYear || new HDate().getFullYear();
1080
-
1081
- if (hebrewYear < 5744) {
1082
- throw new RangeError(`Invalid Triennial year ${hebrewYear}`);
1083
- }
1084
-
1085
- if (!triennialAliyot) {
1086
- triennialAliyot = Triennial.getTriennialAliyot();
1087
- }
1088
-
1089
- this.startYear = Triennial.getCycleStartYear(hebrewYear);
1090
- this.sedraArray = [];
1091
- this.bereshit = Array(4);
1092
-
1093
- for (let yr = 0; yr < 4; yr++) {
1094
- const sedra = HebrewCalendar.getSedra(this.startYear + yr, false);
1095
- const arr = sedra.getSedraArray();
1096
- this.bereshit[yr] = this.sedraArray.length + arr.indexOf(0);
1097
- this.sedraArray = this.sedraArray.concat(arr);
1098
- } // find the first Saturday on or after Rosh Hashana
1099
-
1100
-
1101
- const rh = new HDate(1, months.TISHREI, this.startYear);
1102
- const firstSaturday = rh.onOrAfter(6);
1103
- this.firstSaturday = firstSaturday.abs();
1104
- this.calcVariationOptions();
1105
- this.readings = this.cycleReadings(this.variationOptions);
1106
- }
1107
- /**
1108
- * @param {string} parsha parsha name ("Bereshit" or "Achrei Mot-Kedoshim")
1109
- * @param {number} yearNum 0 through 2 for which year of Triennial cycle
1110
- * @return {Object<string,Aliyah>} a map of aliyot 1-7 plus "M"
1111
- */
1112
-
1113
-
1114
- getReading(parsha, yearNum) {
1115
- const reading = shallowCopy({}, this.readings[parsha][yearNum]);
1116
-
1117
- if (reading.aliyot) {
1118
- Object.values(reading.aliyot).map(aliyah => calculateNumVerses(aliyah));
1119
- }
1120
-
1121
- return reading;
1122
- }
1123
- /**
1124
- * @return {number}
1125
- */
1126
-
1127
-
1128
- getStartYear() {
1129
- return this.startYear;
1130
- }
1131
- /**
1132
- * Returns triennial year 1, 2 or 3 based on this Hebrew year
1133
- * @param {number} year Hebrew year
1134
- * @return {number}
1135
- */
1136
-
1137
-
1138
- static getYearNumber(year) {
1139
- if (year < 5744) {
1140
- throw new RangeError(`Invalid Triennial year ${year}`);
1141
- }
1142
-
1143
- return (year - 5744) % 3 + 1;
1144
- }
1145
- /**
1146
- * Returns Hebrew year that this 3-year triennial cycle began
1147
- * @param {number} year Hebrew year
1148
- * @return {number}
1149
- */
1150
-
1151
-
1152
- static getCycleStartYear(year) {
1153
- return year - (this.getYearNumber(year) - 1);
1154
- }
1155
- /**
1156
- * First, determine if a doubled parsha is read [T]ogether or [S]eparately
1157
- * in each of the 3 years. Yields a pattern like 'SSS', 'STS', 'TTT', 'TTS'.
1158
- * @private
1159
- * @param {number} id
1160
- * @return {string}
1161
- */
1162
-
1163
-
1164
- getThreeYearPattern(id) {
1165
- let pattern = '';
1166
-
1167
- for (let yr = 0; yr <= 2; yr++) {
1168
- let found = this.sedraArray.indexOf(-1 * id, this.bereshit[yr]);
1169
-
1170
- if (found > this.bereshit[yr + 1]) {
1171
- found = -1;
1172
- }
1173
-
1174
- const pat = found == -1 ? 'S' : 'T';
1175
- pattern += pat;
1176
- }
1177
-
1178
- return pattern;
1179
- }
1180
- /**
1181
- * @private
1182
- */
1183
-
1184
-
1185
- calcVariationOptions() {
1186
- const option = this.variationOptions = Object.create(null);
1187
- doubled.forEach(id => {
1188
- const pattern = this.getThreeYearPattern(id);
1189
- const name = getDoubledName(id); // Next, look up the pattern in JSON to determine readings for each year.
1190
- // For "all-together", use "Y" pattern to imply Y.1, Y.2, Y.3
1191
-
1192
- const variation = pattern === 'TTT' ? 'Y' : triennialConfig[name].patterns[pattern];
1193
-
1194
- if (typeof variation === 'undefined') {
1195
- throw new Error(`Can't find pattern ${pattern} for ${name}, startYear=${this.startYear}`);
1196
- }
1197
-
1198
- const p1 = parshiot[id];
1199
- const p2 = parshiot[id + 1];
1200
- option[name] = option[p1] = option[p2] = variation;
1201
- });
1202
- }
1203
- /**
1204
- * @return {string}
1205
- */
1206
-
1207
-
1208
- debug() {
1209
- let str = `Triennial cycle started year ${this.startYear}\n`;
1210
- doubled.forEach(id => {
1211
- const pattern = this.getThreeYearPattern(id);
1212
- const name = getDoubledName(id);
1213
- const variation = this.variationOptions[name];
1214
- str += ` ${name} ${pattern} (${variation})\n`;
1215
- });
1216
- return str;
1217
- }
1218
- /**
1219
- * Builds a lookup table readings["Bereshit"][0], readings["Matot-Masei"][2]
1220
- * @private
1221
- * @param {Object} cycleOption
1222
- * @return {Map<string,Object[]>}
1223
- */
1224
-
1225
-
1226
- cycleReadings(cycleOption) {
1227
- const readings = Object.create(null);
1228
- parshiot.forEach(parsha => {
1229
- readings[parsha] = Array(3);
1230
- });
1231
- readings[VEZOT_HABERAKHAH] = Array(3);
1232
- doubled.map(getDoubledName).forEach(parsha => {
1233
- readings[parsha] = Array(3);
1234
- });
1235
-
1236
- for (let yr = 0; yr <= 2; yr++) {
1237
- this.cycleReadingsForYear(cycleOption, readings, yr);
1238
- }
1239
-
1240
- return readings;
1241
- }
1242
- /**
1243
- * @private
1244
- * @param {string} option
1245
- * @param {Map<string,Object[]>} readings
1246
- * @param {number} yr
1247
- */
1248
-
1249
-
1250
- cycleReadingsForYear(option, readings, yr) {
1251
- const startIdx = this.bereshit[yr];
1252
- const endIdx = this.bereshit[yr + 1];
1253
-
1254
- for (let i = startIdx; i < endIdx; i++) {
1255
- const id = this.sedraArray[i];
1256
-
1257
- if (typeof id !== 'number') {
1258
- continue;
1259
- }
1260
-
1261
- const h = id < 0 ? getDoubledName(-id) : parshiot[id];
1262
- const variationKey = isSometimesDoubled[id] ? option[h] : 'Y';
1263
- const variation = variationKey + '.' + (yr + 1);
1264
- const a = triennialAliyot[h][variation];
1265
-
1266
- if (!a) {
1267
- throw new Error(`can't find ${h} year ${yr} (variation ${variation})`);
1268
- }
1269
-
1270
- const aliyot = clone(a); // calculate numVerses for the subset of aliyot that don't cross chapter boundaries
1271
-
1272
- Object.keys(aliyot).forEach(num => calculateNumVerses(aliyot[num]));
1273
- readings[h][yr] = {
1274
- aliyot,
1275
- date: new HDate(this.firstSaturday + i * 7)
1276
- };
1277
- } // create links for doubled
1278
-
1279
-
1280
- doubled.forEach(id => {
1281
- const h = getDoubledName(id);
1282
- const combined = readings[h][yr];
1283
- const p1 = parshiot[id];
1284
- const p2 = parshiot[id + 1];
1285
-
1286
- if (combined) {
1287
- readings[p1][yr] = readings[p2][yr] = {
1288
- readTogether: h,
1289
- date: combined.date
1290
- };
1291
- } else {
1292
- readings[h][yr] = {
1293
- readSeparately: true,
1294
- date1: readings[p1][yr].date,
1295
- date2: readings[p2][yr].date
1296
- };
1297
- }
1298
- });
1299
- const vezotAliyot = triennialAliyot[VEZOT_HABERAKHAH]['Y.1'];
1300
- readings[VEZOT_HABERAKHAH][yr] = {
1301
- aliyot: vezotAliyot,
1302
- date: new HDate(23, months.TISHREI, this.startYear + yr)
1303
- };
1304
- }
1305
- /**
1306
- * Walks triennialConfig and builds lookup table for triennial aliyot
1307
- * @private
1308
- * @return {Object}
1309
- */
1310
-
1311
-
1312
- static getTriennialAliyot() {
1313
- const triennialAliyot = Object.create(null);
1314
- const triennialAliyotAlt = Object.create(null); // build a lookup table so we don't have to follow num/variation/sameas
1315
-
1316
- Object.keys(triennialConfig).forEach(parsha => {
1317
- const value = triennialConfig[parsha];
1318
-
1319
- if (typeof value !== 'object' || typeof value.book !== 'number') {
1320
- throw new Error(`misconfiguration: ${parsha}`);
1321
- }
1322
-
1323
- const book = BOOK[value.book];
1324
- triennialAliyot[parsha] = Triennial.resolveSameAs(parsha, book, value);
1325
-
1326
- if (value.alt) {
1327
- triennialAliyotAlt[parsha] = Triennial.resolveSameAs(parsha, book, value.alt);
1328
- }
1329
- }); // TODO: handle triennialAliyotAlt also
1330
-
1331
- return triennialAliyot;
1332
- }
1333
- /**
1334
- * Transforms input JSON with sameAs shortcuts like "D.2":"A.3" to
1335
- * actual aliyot objects for a given variation/year
1336
- * @private
1337
- * @param {string} parsha
1338
- * @param {string} book
1339
- * @param {Object} triennial
1340
- * @return {Object}
1341
- */
1342
-
1343
-
1344
- static resolveSameAs(parsha, book, triennial) {
1345
- const variations = triennial.years || triennial.variations;
1346
-
1347
- if (typeof variations === 'undefined') {
1348
- throw new Error(`Parashat ${parsha} has no years or variations`);
1349
- } // first pass, copy only alyiot definitions from triennialConfig into lookup table
1350
-
1351
-
1352
- const lookup = Object.create(null);
1353
- Object.keys(variations).forEach(variation => {
1354
- const aliyot = variations[variation];
1355
-
1356
- if (typeof aliyot === 'object') {
1357
- const dest = {};
1358
- Object.keys(aliyot).forEach(num => {
1359
- const src = aliyot[num];
1360
- const reading = {
1361
- k: book,
1362
- b: src[0],
1363
- e: src[1]
1364
- };
1365
-
1366
- if (src.v) {
1367
- reading.v = src.v;
1368
- }
1369
-
1370
- dest[num] = reading;
1371
- });
1372
- lookup[variation] = dest;
1373
- }
1374
- }); // second pass to resolve sameas strings (to simplify later lookups)
1375
-
1376
- Object.keys(variations).forEach(variation => {
1377
- const aliyot = variations[variation];
1378
-
1379
- if (typeof aliyot === 'string') {
1380
- if (typeof lookup[aliyot] === 'undefined') {
1381
- throw new Error(`Can't find source for ${parsha} ${variation} sameas=${aliyot}`);
1382
- }
1383
-
1384
- lookup[variation] = lookup[aliyot];
1385
- }
1386
- });
1387
- return lookup;
1388
- }
1389
-
1390
- }
1391
-
1392
- const __cache = Object.create(null);
1393
- /**
1394
- * Calculates the 3-year readings for a given year
1395
- * @param {number} year Hebrew year
1396
- * @return {Triennial}
1397
- */
1398
-
1399
-
1400
- function getTriennial(year) {
1401
- const cycleStartYear = Triennial.getCycleStartYear(year);
1402
- const cached = __cache[cycleStartYear];
1403
-
1404
- if (cached) {
1405
- return cached;
1406
- }
1407
-
1408
- const tri = new Triennial(cycleStartYear);
1409
- __cache[cycleStartYear] = tri;
1410
- return tri;
1411
- }
1412
- /**
1413
- * Looks up the triennial leyning for this Parashat HaShavua
1414
- * @param {Event} ev
1415
- * @return {TriennialAliyot} a map of aliyot 1-7 plus "M"
1016
+ * Parsha metadata
1017
+ * @typedef {Object} ParshaMeta
1018
+ * @property {number} num - 1 for Bereshit, 2 for Noach, etc. `undefined` for holiday readings
1019
+ * @property {string} hebrew - parsha name in Hebrew with niqud
1020
+ * @property {number} book - 1 for Genesis, 2 for Exodus, 5 for Deuteronomy
1021
+ * @property {Aliyah|Aliyah[]} haft - Haftarah object(s)
1022
+ * @property {Aliyah|Aliyah[]} [seph] - Haftarah object(s) for Sephardim
1023
+ * @property {Object<string,string[]>} fullkriyah - Map of aliyot `1` through `7` plus `M` for maftir
1024
+ * @property {Object<string,string[]>} weekday - Map of weekday Torah Readings
1025
+ * aliyot `1` through `3` for Monday and Thursday
1416
1026
  */
1417
1027
 
1418
- function getTriennialForParshaHaShavua(ev) {
1419
- if (!ev instanceof Event) {
1420
- throw new TypeError(`Bad event argument: ${ev}`);
1421
- } else if (ev.getFlags() != flags.PARSHA_HASHAVUA) {
1422
- throw new TypeError(`Event must be parsha hashavua: ${ev.getDesc()}`);
1423
- }
1424
-
1425
- const hd = ev.getDate();
1426
- const hyear0 = hd.getFullYear();
1427
- const parsha = ev.parsha; // When Nitzavim & Vayeilech are not combined, they should each be read in their entirety.
1428
- // Vayeilech can occur immediately after RH, so back up one year to pick up
1429
- // the tail end of previous 3-year cycle.
1430
-
1431
- const p1 = parsha[0];
1432
- const hyear = p1 === 'Vayeilech' && hd.getMonth() === months.TISHREI ? hyear0 - 1 : hyear0;
1433
- const triennial = getTriennial(hyear);
1434
- const startYear = triennial.getStartYear();
1435
- const yearNum = hyear - startYear;
1436
- const name = parshaToString(parsha); // untranslated
1437
-
1438
- const reading = triennial.getReading(name, yearNum);
1439
-
1440
- if (typeof reading !== 'object') {
1441
- throw new ReferenceError(`Can't load reading for ${name} in ${hyear} (year number ${yearNum})`);
1442
- }
1443
-
1444
- const aliyotMap = shallowCopy({}, reading.aliyot); // possibly replace 7th aliyah and/or maftir
1445
-
1446
- const reason = {};
1447
- specialReadings(hd, false, aliyotMap, reason);
1448
- Object.keys(reason).forEach(num => {
1449
- const aliyah = aliyotMap[num];
1450
-
1451
- if (typeof aliyah === 'object') {
1452
- aliyah.reason = reason[num];
1453
- }
1454
- });
1455
- reading.yearNum = yearNum;
1456
- reading.aliyot = aliyotMap;
1457
- const triHaft = getTriennialHaftara(parsha, yearNum);
1458
- shallowCopy(reading, triHaft);
1459
- return reading;
1460
- }
1461
1028
  /**
1462
- * Looks up the alternative triennial Haftara for a given parsha
1463
- *
1464
- * INSTRUCTIONS REGARDING DOUBLE PARSHIYOT
1465
- *
1466
- * In any 3 year sequence, in some years these parshiyot are read together
1467
- * and in some they are read separately.
1468
- * When separated: read the next haftarah of the parashah being read.
1469
- * When together: when reading the first third, read the next haftarah
1470
- * of the first parashah, when reading the latter two thirds, read the
1471
- * next haftarah of the latter parashah
1472
- * @private
1473
- * @param {string[]} parsha
1474
- * @param {number} yearNum 0, 1, or 2
1475
- * @return {Object}
1029
+ * Returns the parsha metadata
1030
+ * @param {string|string[]} parsha
1031
+ * @return {ParshaMeta}
1476
1032
  */
1477
1033
 
1478
- function getTriennialHaftara(parsha, yearNum) {
1479
- const idx = parsha.length === 1 || yearNum === 0 ? 0 : 1;
1480
- const name = parsha[idx];
1481
- const triHaft = triennialHaft[name];
1482
- const triHaft2 = triHaft === null || triHaft === void 0 ? void 0 : triHaft[yearNum + 1];
1483
1034
 
1484
- if (typeof triHaft2 === 'object') {
1485
- const haft = cloneHaftara(triHaft2);
1486
- return {
1487
- haft: haft,
1488
- haftara: makeHaftaraSummary(haft),
1489
- haftaraNumV: calculateHaftaraNumV(haft)
1490
- };
1491
- }
1492
-
1493
- return {};
1494
- }
1495
- /**
1496
- * Looks up the alternative triennial Haftara for a holiday
1497
- * @param {string} key
1498
- * @param {number} yearNum
1499
- * @return {Object}
1500
- */
1035
+ function lookupParsha(parsha) {
1036
+ const isParshaString = typeof parsha === 'string';
1501
1037
 
1502
- function getTriennialHaftaraForHoliday(key, yearNum) {
1503
- if (key === 'Tish\'a B\'Av') {
1504
- return getTriennialHaftara([key], yearNum);
1038
+ if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
1039
+ throw new TypeError(`Bad parsha argument: ${parsha}`);
1505
1040
  }
1506
1041
 
1507
- const triHaft2 = triennialHaft._holidays[key];
1042
+ const name = isParshaString ? parsha : parshaToString(parsha);
1043
+ const raw = parshiyotObj[name];
1508
1044
 
1509
- if (typeof triHaft2 === 'object') {
1510
- const haft = cloneHaftara(triHaft2);
1511
- return {
1512
- haft: haft,
1513
- haftara: makeHaftaraSummary(haft),
1514
- haftaraNumV: calculateHaftaraNumV(haft)
1515
- };
1045
+ if (typeof raw !== 'object') {
1046
+ throw new TypeError(`Bad parsha argument: ${parsha}`);
1516
1047
  }
1517
1048
 
1518
- return undefined;
1049
+ return raw;
1519
1050
  }
1520
1051
 
1521
1052
  const fmt = new Intl.DateTimeFormat('en-US', {
@@ -1572,96 +1103,12 @@ function writeFullKriyahCsv(stream, hyear, il) {
1572
1103
  }
1573
1104
  });
1574
1105
  }
1575
- /**
1576
- * @private
1577
- * @param {fs.WriteStream} stream
1578
- * @param {number} hyear
1579
- */
1580
-
1581
- function writeTriennialCsv(stream, hyear) {
1582
- const events0 = HebrewCalendar.calendar({
1583
- year: hyear,
1584
- isHebrewYear: true,
1585
- numYears: 3,
1586
- sedrot: true,
1587
- il: false
1588
- });
1589
- const events = events0.filter(ev => ev.getDesc() !== 'Rosh Chodesh Tevet');
1590
- const parshaDates = getParshaDates(events);
1591
- stream.write('"Date","Parashah","Aliyah","Triennial Reading","Verses"\r\n');
1592
- events.forEach(ev => {
1593
- if (ev.getFlags() === flags.PARSHA_HASHAVUA || !parshaDates[ev.getDate().toString()]) {
1594
- writeTriennialEvent(stream, ev);
1595
- }
1596
- });
1597
- }
1598
- /**
1599
- * @private
1600
- * @param {fs.WriteStream} stream
1601
- * @param {Event} ev
1602
- */
1603
-
1604
- function writeTriennialEvent(stream, ev) {
1605
- if (ignore(ev)) {
1606
- return;
1607
- }
1608
-
1609
- if (ev.getFlags() === flags.PARSHA_HASHAVUA) {
1610
- writeTriennialEventParsha(stream, ev);
1611
- } else {
1612
- writeTriennialEventHoliday(stream, ev);
1613
- }
1614
- }
1615
- /**
1616
- * @private
1617
- * @param {fs.WriteStream} stream
1618
- * @param {Event} ev
1619
- */
1620
-
1621
- function writeTriennialEventHoliday(stream, ev) {
1622
- const il = false;
1623
- const reading = getLeyningForHoliday(ev, il);
1624
-
1625
- if (reading) {
1626
- const key = getLeyningKeyForEvent(ev, il);
1627
- const year = ev.getDate().getFullYear();
1628
- const yearNum = Triennial.getYearNumber(year) - 1;
1629
- const triHaft = getTriennialHaftaraForHoliday(key, yearNum);
1630
-
1631
- if (triHaft) {
1632
- reading.triHaftara = triHaft.haftara;
1633
- reading.triHaftaraNumV = triHaft.haftaraNumV;
1634
- }
1635
-
1636
- writeCsvLines(stream, ev, reading, il, false);
1637
- }
1638
- }
1639
- /**
1640
- * @private
1641
- * @param {fs.WriteStream} stream
1642
- * @param {Event} ev
1643
- */
1644
-
1645
-
1646
- function writeTriennialEventParsha(stream, ev) {
1647
- const triReading = getTriennialForParshaHaShavua(ev);
1648
-
1649
- if (triReading) {
1650
- const il = false;
1651
- const reading = getLeyningForParshaHaShavua(ev, il);
1652
- reading.fullkriyah = triReading.aliyot;
1653
- reading.triHaftara = triReading.haftara;
1654
- reading.triHaftaraNumV = triReading.haftaraNumV;
1655
- writeCsvLines(stream, ev, reading, il, true);
1656
- }
1657
- }
1658
1106
  /**
1659
1107
  * @private
1660
1108
  * @param {Event} ev
1661
1109
  * @return {boolean}
1662
1110
  */
1663
1111
 
1664
-
1665
1112
  function ignore(ev) {
1666
1113
  const mask = ev.getFlags();
1667
1114
 
@@ -1707,7 +1154,7 @@ function writeFullKriyahEvent(stream, ev, il) {
1707
1154
  }
1708
1155
  }
1709
1156
  /**
1710
- * @private
1157
+ * Formats reading for CSV
1711
1158
  * @param {fs.WriteStream} stream
1712
1159
  * @param {Event} ev
1713
1160
  * @param {Leyning} reading
@@ -1736,7 +1183,6 @@ function writeCsvLines(stream, ev, reading, il, isParsha) {
1736
1183
  * @return {any[]}
1737
1184
  */
1738
1185
 
1739
-
1740
1186
  function getFullKriyahLines(reading) {
1741
1187
  const lines = [];
1742
1188
 
@@ -1787,4 +1233,4 @@ function getFullKriyahLines(reading) {
1787
1233
  return lines;
1788
1234
  }
1789
1235
 
1790
- export { BOOK, Triennial, formatAliyahShort, formatAliyahWithBook, getLeyningForHoliday, getLeyningForHolidayKey, getLeyningForParsha, getLeyningForParshaHaShavua, getLeyningKeyForEvent, getLeyningOnDate, getTriennial, getTriennialForParshaHaShavua, getTriennialHaftaraForHoliday, hasFestival, lookupFestival, makeLeyningParts, makeLeyningSummary, writeFullKriyahCsv, writeTriennialCsv };
1236
+ export { BOOK, calculateNumVerses, clone, cloneHaftara, formatAliyahShort, formatAliyahWithBook, getLeyningForHoliday, getLeyningForHolidayKey, getLeyningForParsha, getLeyningForParshaHaShavua, getLeyningKeyForEvent, getLeyningOnDate, hasFestival, lookupFestival, lookupParsha, makeLeyningParts, makeLeyningSummary, makeSummaryFromParts, parshaToString, specialReadings, sumVerses, writeCsvLines, writeFullKriyahCsv };