@ajf/calendars 12.1.5 → 12.1.8
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/bundles/calendars-ethiopian.umd.js +91 -39
- package/bundles/calendars-ethiopian.umd.js.map +1 -1
- package/bundles/calendars.umd.js +1 -1
- package/bundles/calendars.umd.js.map +1 -1
- package/esm2015/ethiopian/calendar-module.js +4 -10
- package/esm2015/ethiopian/calendar-service.js +4 -4
- package/esm2015/ethiopian/converter.js +34 -20
- package/esm2015/ethiopian/ethiopian-date-pipe.js +2 -2
- package/esm2015/ethiopian/ethiopian-date.js +26 -10
- package/esm2015/ethiopian/utils.js +29 -3
- package/esm2015/version.js +1 -1
- package/ethiopian/converter.d.ts +1 -5
- package/ethiopian/ethiopian-date.d.ts +11 -1
- package/ethiopian/index.metadata.json +1 -1
- package/fesm2015/calendars.js +1 -1
- package/fesm2015/calendars.js.map +1 -1
- package/fesm2015/ethiopian.js +91 -41
- package/fesm2015/ethiopian.js.map +1 -1
- package/package.json +2 -2
|
@@ -27,15 +27,9 @@ export class AjfEthiopianCalendarModule {
|
|
|
27
27
|
}
|
|
28
28
|
AjfEthiopianCalendarModule.decorators = [
|
|
29
29
|
{ type: NgModule, args: [{
|
|
30
|
-
declarations: [
|
|
31
|
-
|
|
32
|
-
],
|
|
33
|
-
exports: [
|
|
34
|
-
AjfEthiopianDatePipe,
|
|
35
|
-
],
|
|
36
|
-
providers: [
|
|
37
|
-
{ provide: AjfCalendarService, useClass: AjfEthiopianCalendarService },
|
|
38
|
-
],
|
|
30
|
+
declarations: [AjfEthiopianDatePipe],
|
|
31
|
+
exports: [AjfEthiopianDatePipe],
|
|
32
|
+
providers: [{ provide: AjfCalendarService, useClass: AjfEthiopianCalendarService }],
|
|
39
33
|
},] }
|
|
40
34
|
];
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NhbGVuZGFycy9ldGhpb3BpYW4vY2FsZW5kYXItbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUVILE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDL0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFPM0QsTUFBTSxPQUFPLDBCQUEwQjs7O1lBTHRDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQy9CLFNBQVMsRUFBRSxDQUFDLEVBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBQyxDQUFDO2FBQ2xGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChDKSBHbnVjb29wIHNvYy4gY29vcC5cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSxcbiAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLlxuICpcbiAqL1xuXG5pbXBvcnQge0FqZkNhbGVuZGFyU2VydmljZX0gZnJvbSAnQGFqZi9jb3JlL2NhbGVuZGFyJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0FqZkV0aGlvcGlhbkNhbGVuZGFyU2VydmljZX0gZnJvbSAnLi9jYWxlbmRhci1zZXJ2aWNlJztcbmltcG9ydCB7QWpmRXRoaW9waWFuRGF0ZVBpcGV9IGZyb20gJy4vZXRoaW9waWFuLWRhdGUtcGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0FqZkV0aGlvcGlhbkRhdGVQaXBlXSxcbiAgZXhwb3J0czogW0FqZkV0aGlvcGlhbkRhdGVQaXBlXSxcbiAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IEFqZkNhbGVuZGFyU2VydmljZSwgdXNlQ2xhc3M6IEFqZkV0aGlvcGlhbkNhbGVuZGFyU2VydmljZX1dLFxufSlcbmV4cG9ydCBjbGFzcyBBamZFdGhpb3BpYW5DYWxlbmRhck1vZHVsZSB7fVxuIl19
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
* If not, see http://www.gnu.org/licenses/.
|
|
20
20
|
*
|
|
21
21
|
*/
|
|
22
|
-
import { AjfCalendarService } from '@ajf/core/calendar';
|
|
22
|
+
import { AjfCalendarService, } from '@ajf/core/calendar';
|
|
23
23
|
import { Injectable } from '@angular/core';
|
|
24
|
-
import { addDays, addWeeks, addYears, endOfISOWeek, getISODay, setISODay, startOfISOWeek, startOfWeek, subWeeks } from 'date-fns';
|
|
24
|
+
import { addDays, addWeeks, addYears, endOfISOWeek, getISODay, setISODay, startOfISOWeek, startOfWeek, subWeeks, } from 'date-fns';
|
|
25
25
|
import { EthiopianDate } from './ethiopian-date';
|
|
26
26
|
import * as i0 from "@angular/core";
|
|
27
27
|
function getMonthDays(month, year) {
|
|
@@ -187,7 +187,7 @@ export class AjfEthiopianCalendarService extends AjfCalendarService {
|
|
|
187
187
|
const ecDate = EthiopianDate.gregorianToEthiopian(viewDate);
|
|
188
188
|
let curYear = ecDate.getFullYear();
|
|
189
189
|
let firstYear = curYear - (curYear % 10) + 1;
|
|
190
|
-
let curDate = EthiopianDate.ethiopianToGregorian(firstYear,
|
|
190
|
+
let curDate = EthiopianDate.ethiopianToGregorian(firstYear, 0, 1);
|
|
191
191
|
let rows = [];
|
|
192
192
|
for (let i = 0; i < 4; i++) {
|
|
193
193
|
let row = [];
|
|
@@ -207,4 +207,4 @@ AjfEthiopianCalendarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function
|
|
|
207
207
|
AjfEthiopianCalendarService.decorators = [
|
|
208
208
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
209
209
|
];
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jYWxlbmRhcnMvZXRoaW9waWFuL2NhbGVuZGFyLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsT0FBTyxFQUdMLGtCQUFrQixFQUduQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFDZCxXQUFXLEVBQ1gsUUFBUSxFQUNULE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFL0MsU0FBUyxZQUFZLENBQUMsS0FBYSxFQUFFLElBQVk7SUFDL0MsSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUFFO1FBQ2QsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUNELE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxJQUFtQjtJQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLENBQUM7QUFDdEIsQ0FBQztBQUdELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxrQkFBa0I7SUFDeEQsU0FBUyxDQUFDLE1BQXlCO1FBQzFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsR0FBRyxNQUFNLENBQUM7UUFDMUIsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRSxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxPQUFPLEdBQVcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLFNBQVMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLFFBQVEsR0FBRyxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUM5QixPQUFPO29CQUNMLE1BQU0sRUFBRSxHQUFHLFNBQVMsTUFBTSxRQUFRLEVBQUU7b0JBQ3BDLFNBQVMsRUFBRSxFQUFFO29CQUNiLElBQUksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDO2lCQUN6QyxDQUFDO1lBQ0osS0FBSyxNQUFNO2dCQUNULE9BQU87b0JBQ0wsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO29CQUNuQyxTQUFTLEVBQUUsRUFBRTtvQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztpQkFDdkMsQ0FBQztZQUNKLEtBQUssT0FBTztnQkFDVixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNyQyxPQUFPO29CQUNMLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDbkUsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7b0JBQ3pDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtpQkFDaEIsQ0FBQztTQUNMO1FBQ0QsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFUSxVQUFVLENBQUMsS0FBdUI7UUFDekMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ3hCLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztTQUM5QjtRQUNELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDMUIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1NBQ25DO1FBQ0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFUSxXQUFXLENBQUMsSUFBVSxFQUFFLE9BQWdCO1FBQy9DLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsTUFBTSxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsT0FBTztnQkFDTCxLQUFLLEVBQUUsYUFBYSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQztnQkFDaEQsR0FBRyxFQUFFLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUM7YUFDN0MsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hELElBQUksRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDNUIsS0FBSyxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNyRixHQUFHLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDaEY7aUJBQU07Z0JBQ0wsSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5RCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxZQUFZLElBQUksQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUU7b0JBQ3pDLEtBQUssR0FBRyxhQUFhLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ25GO2dCQUNELElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFO29CQUNwQyxHQUFHLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMvRTthQUNGO1lBQ0QsT0FBTztnQkFDTCxLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMvQyxHQUFHLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQzFDLENBQUM7U0FDSDtJQUNILENBQUM7SUFFUSxRQUFRLENBQUMsUUFBYyxFQUFFLFFBQTZCO1FBQzdELElBQUksUUFBUSxLQUFLLE9BQU8sRUFBRTtZQUN4QixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUQsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7Z0JBQ2hCLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ1YsSUFBSSxJQUFJLENBQUMsQ0FBQzthQUNYO2lCQUFNO2dCQUNMLEtBQUssSUFBSSxDQUFDLENBQUM7YUFDWjtZQUNELE9BQU8sYUFBYSxDQUFDLG9CQUFvQixDQUFDLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5RTtRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVRLFlBQVksQ0FBQyxRQUFjLEVBQUUsUUFBNkI7UUFDakUsSUFBSSxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1RCxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDZixLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksSUFBSSxDQUFDLENBQUM7YUFDWDtpQkFBTTtnQkFDTCxLQUFLLElBQUksQ0FBQyxDQUFDO2FBQ1o7WUFDRCxPQUFPLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUU7UUFDRCxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUF5QjtRQUNqRCxNQUFNLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUNuQyxJQUFJLE9BQWEsQ0FBQztRQUNsQixJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQy9DO2FBQU07WUFDTCxPQUFPLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxZQUFZLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNELFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDekMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDL0I7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBeUI7UUFDbkQsTUFBTSxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUMsR0FBRyxNQUFNLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hFLElBQUksT0FBc0IsQ0FBQztRQUUzQixJQUFJLElBQUksR0FBeUIsRUFBRSxDQUFDO1FBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxHQUFHLEdBQXVCLEVBQUUsQ0FBQztZQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMxQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUFFO29CQUNqQixPQUFPLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDL0MsSUFBSSxJQUFJLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN2RCxJQUFJLFFBQVEsR0FBcUIsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLENBQUM7b0JBQ3pFLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQzlELEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3BCO2FBQ0Y7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8scUJBQXFCLENBQUMsTUFBeUI7UUFDckQsTUFBTSxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUMsR0FBRyxNQUFNLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksT0FBTyxHQUFXLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQyxJQUFJLFNBQVMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLElBQUksT0FBTyxHQUFTLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhFLElBQUksSUFBSSxHQUF5QixFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixJQUFJLEdBQUcsR0FBdUIsRUFBRSxDQUFDO1lBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM3QixJQUFJLFFBQVEsR0FBcUIsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDO2dCQUM5RSxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUM5RCxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuQixPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNoQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7WUExS0YsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoQykgR251Y29vcCBzb2MuIGNvb3AuXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3JcbiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsXG4gKiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEFmZmVyb1xuICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICogSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuaW1wb3J0IHtcbiAgQWpmQ2FsZW5kYXJFbnRyeSxcbiAgQWpmQ2FsZW5kYXJQYXJhbXMsXG4gIEFqZkNhbGVuZGFyU2VydmljZSxcbiAgQWpmQ2FsZW5kYXJWaWV3LFxuICBBamZDYWxlbmRhclZpZXdNb2RlXG59IGZyb20gJ0BhamYvY29yZS9jYWxlbmRhcic7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYWRkRGF5cyxcbiAgYWRkV2Vla3MsXG4gIGFkZFllYXJzLFxuICBlbmRPZklTT1dlZWssXG4gIGdldElTT0RheSxcbiAgc2V0SVNPRGF5LFxuICBzdGFydE9mSVNPV2VlayxcbiAgc3RhcnRPZldlZWssXG4gIHN1YldlZWtzXG59IGZyb20gJ2RhdGUtZm5zJztcblxuaW1wb3J0IHtFdGhpb3BpYW5EYXRlfSBmcm9tICcuL2V0aGlvcGlhbi1kYXRlJztcblxuZnVuY3Rpb24gZ2V0TW9udGhEYXlzKG1vbnRoOiBudW1iZXIsIHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChtb250aCA8IDEyKSB7XG4gICAgcmV0dXJuIDMwO1xuICB9XG4gIHJldHVybiB5ZWFyICUgNCA9PT0gMyA/IDYgOiA1O1xufVxuXG5mdW5jdGlvbiBnZXRNb250aEJvdW5kcyhkYXRlOiBFdGhpb3BpYW5EYXRlKToge3N0YXJ0OiBFdGhpb3BpYW5EYXRlLCBlbmQ6IEV0aGlvcGlhbkRhdGV9IHtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7XG4gIGNvbnN0IHN0YXJ0ID0gbmV3IEV0aGlvcGlhbkRhdGUoeWVhciwgbW9udGgsIDEpO1xuICBjb25zdCBlbmREYXkgPSBnZXRNb250aERheXMobW9udGgsIHllYXIpO1xuICBjb25zdCBlbmQgPSBuZXcgRXRoaW9waWFuRGF0ZSh5ZWFyLCBtb250aCwgZW5kRGF5KTtcbiAgcmV0dXJuIHtzdGFydCwgZW5kfTtcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgQWpmRXRoaW9waWFuQ2FsZW5kYXJTZXJ2aWNlIGV4dGVuZHMgQWpmQ2FsZW5kYXJTZXJ2aWNlIHtcbiAgb3ZlcnJpZGUgYnVpbGRWaWV3KHBhcmFtczogQWpmQ2FsZW5kYXJQYXJhbXMpOiBBamZDYWxlbmRhclZpZXcge1xuICAgIGNvbnN0IHt2aWV3TW9kZX0gPSBwYXJhbXM7XG4gICAgY29uc3Qgdmlld0RhdGUgPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKHBhcmFtcy52aWV3RGF0ZSk7XG4gICAgc3dpdGNoICh2aWV3TW9kZSkge1xuICAgICAgY2FzZSAnZGVjYWRlJzpcbiAgICAgICAgbGV0IGN1clllYXI6IG51bWJlciA9IHZpZXdEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIGxldCBmaXJzdFllYXIgPSBjdXJZZWFyIC0gKGN1clllYXIgJSAxMCkgKyAxO1xuICAgICAgICBsZXQgbGFzdFllYXIgPSBmaXJzdFllYXIgKyAxMTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBoZWFkZXI6IGAke2ZpcnN0WWVhcn0gLSAke2xhc3RZZWFyfWAsXG4gICAgICAgICAgaGVhZGVyUm93OiBbXSxcbiAgICAgICAgICByb3dzOiB0aGlzLl9lY0RlY2FkZUNhbGVuZGFyUm93cyhwYXJhbXMpLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaGVhZGVyOiBgJHt2aWV3RGF0ZS5nZXRGdWxsWWVhcigpfWAsXG4gICAgICAgICAgaGVhZGVyUm93OiBbXSxcbiAgICAgICAgICByb3dzOiB0aGlzLl9lY1llYXJDYWxlbmRhclJvd3MocGFyYW1zKSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgY29uc3QgdmlldyA9IHN1cGVyLmJ1aWxkVmlldyhwYXJhbXMpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhlYWRlcjogYCR7dmlld0RhdGUuZ2V0U2hvcnRNb250aE5hbWUoKX0gJHt2aWV3RGF0ZS5nZXRGdWxsWWVhcigpfWAsXG4gICAgICAgICAgaGVhZGVyUm93OiB0aGlzLl9lY01vbnRoSGVhZGVyUm93KHBhcmFtcyksXG4gICAgICAgICAgcm93czogdmlldy5yb3dzLFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuYnVpbGRWaWV3KHBhcmFtcyk7XG4gIH1cblxuICBvdmVycmlkZSBlbnRyeUxhYmVsKGVudHJ5OiBBamZDYWxlbmRhckVudHJ5KTogc3RyaW5nIHtcbiAgICBjb25zdCBlY0RhdGUgPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKGVudHJ5LmRhdGUpO1xuICAgIGlmIChlbnRyeS50eXBlID09PSAnZGF5Jykge1xuICAgICAgcmV0dXJuIGAke2VjRGF0ZS5nZXREYXRlKCl9YDtcbiAgICB9XG4gICAgaWYgKGVudHJ5LnR5cGUgPT09ICdtb250aCcpIHtcbiAgICAgIHJldHVybiBgJHtlY0RhdGUuZ2V0TW9udGhOYW1lKCl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2VjRGF0ZS5nZXRGdWxsWWVhcigpfWA7XG4gIH1cblxuICBvdmVycmlkZSBtb250aEJvdW5kcyhkYXRlOiBEYXRlLCBpc29Nb2RlOiBib29sZWFuKToge3N0YXJ0OiBEYXRlLCBlbmQ6IERhdGV9IHtcbiAgICBpZiAoIWlzb01vZGUpIHtcbiAgICAgIGNvbnN0IGVjRGF0ZSA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4oZGF0ZSk7XG4gICAgICBjb25zdCB7c3RhcnQsIGVuZH0gPSBnZXRNb250aEJvdW5kcyhlY0RhdGUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IEV0aGlvcGlhbkRhdGUuZXRoaW9waWFuVG9HcmVnb3JpYW4oc3RhcnQpLFxuICAgICAgICBlbmQ6IEV0aGlvcGlhbkRhdGUuZXRoaW9waWFuVG9HcmVnb3JpYW4oZW5kKSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBpc29EYXkgPSBnZXRJU09EYXkoZGF0ZSk7XG4gICAgICBjb25zdCBlY0RhdGUgPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKGRhdGUpO1xuICAgICAgbGV0IHtzdGFydCwgZW5kfSA9IGdldE1vbnRoQm91bmRzKGVjRGF0ZSk7XG4gICAgICBpZiAoZWNEYXRlLmdldE1vbnRoKCkgPT09IDEyKSB7XG4gICAgICAgIHN0YXJ0ID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbihzdGFydE9mSVNPV2VlayhzdGFydC5nZXRHcmVnb3JpYW5EYXRlKCkpKTtcbiAgICAgICAgZW5kID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbihlbmRPZklTT1dlZWsoZW5kLmdldEdyZWdvcmlhbkRhdGUoKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0ZSA9IGlzb0RheSA8IDQgPyBlbmRPZklTT1dlZWsoZGF0ZSkgOiBzdGFydE9mSVNPV2VlayhkYXRlKTtcbiAgICAgICAgY29uc3Qgc3RhcnRXZWVrRGF5ID0gc3RhcnQuZ2V0RGF5KCk7XG4gICAgICAgIGNvbnN0IGVuZFdlZWtEYXkgPSBlbmQuZ2V0RGF5KCk7XG4gICAgICAgIGlmIChzdGFydFdlZWtEYXkgPT0gMCB8fCBzdGFydFdlZWtEYXkgPiA0KSB7XG4gICAgICAgICAgc3RhcnQgPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKGFkZFdlZWtzKHN0YXJ0LmdldEdyZWdvcmlhbkRhdGUoKSwgMSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmRXZWVrRGF5ID4gMCAmJiBlbmRXZWVrRGF5IDwgNCkge1xuICAgICAgICAgIGVuZCA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4oc3ViV2Vla3MoZW5kLmdldEdyZWdvcmlhbkRhdGUoKSwgMSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnRPZklTT1dlZWsoc3RhcnQuZ2V0R3JlZ29yaWFuRGF0ZSgpKSxcbiAgICAgICAgZW5kOiBlbmRPZklTT1dlZWsoZW5kLmdldEdyZWdvcmlhbkRhdGUoKSksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIG5leHRWaWV3KHZpZXdEYXRlOiBEYXRlLCB2aWV3TW9kZTogQWpmQ2FsZW5kYXJWaWV3TW9kZSk6IERhdGUge1xuICAgIGlmICh2aWV3TW9kZSA9PT0gJ21vbnRoJykge1xuICAgICAgY29uc3QgZWNEYXRlID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbih2aWV3RGF0ZSk7XG4gICAgICBsZXQgeWVhciA9IGVjRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgbGV0IG1vbnRoID0gZWNEYXRlLmdldE1vbnRoKCk7XG4gICAgICBpZiAobW9udGggPT09IDEyKSB7XG4gICAgICAgIG1vbnRoID0gMDtcbiAgICAgICAgeWVhciArPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW9udGggKz0gMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBFdGhpb3BpYW5EYXRlLmV0aGlvcGlhblRvR3JlZ29yaWFuKG5ldyBFdGhpb3BpYW5EYXRlKHllYXIsIG1vbnRoLCAxKSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5uZXh0Vmlldyh2aWV3RGF0ZSwgdmlld01vZGUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgcHJldmlvdXNWaWV3KHZpZXdEYXRlOiBEYXRlLCB2aWV3TW9kZTogQWpmQ2FsZW5kYXJWaWV3TW9kZSk6IERhdGUge1xuICAgIGlmICh2aWV3TW9kZSA9PT0gJ21vbnRoJykge1xuICAgICAgY29uc3QgZWNEYXRlID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbih2aWV3RGF0ZSk7XG4gICAgICBsZXQgeWVhciA9IGVjRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgbGV0IG1vbnRoID0gZWNEYXRlLmdldE1vbnRoKCk7XG4gICAgICBpZiAobW9udGggPT09IDApIHtcbiAgICAgICAgbW9udGggPSAxMjtcbiAgICAgICAgeWVhciAtPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW9udGggLT0gMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBFdGhpb3BpYW5EYXRlLmV0aGlvcGlhblRvR3JlZ29yaWFuKG5ldyBFdGhpb3BpYW5EYXRlKHllYXIsIG1vbnRoLCAxKSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5wcmV2aW91c1ZpZXcodmlld0RhdGUsIHZpZXdNb2RlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VjTW9udGhIZWFkZXJSb3cocGFyYW1zOiBBamZDYWxlbmRhclBhcmFtcyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCB7aXNvTW9kZSwgdmlld0RhdGV9ID0gcGFyYW1zO1xuICAgIGxldCBjdXJEYXRlOiBEYXRlO1xuICAgIGlmIChpc29Nb2RlKSB7XG4gICAgICBjdXJEYXRlID0gc2V0SVNPRGF5KHN0YXJ0T2ZXZWVrKHZpZXdEYXRlKSwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1ckRhdGUgPSBzdGFydE9mV2Vlayh2aWV3RGF0ZSk7XG4gICAgfVxuICAgIGxldCB3ZWVrRGF5TmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgIGNvbnN0IGVjRGF0ZSA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4oY3VyRGF0ZSk7XG4gICAgICB3ZWVrRGF5TmFtZXMucHVzaChlY0RhdGUuZ2V0RGF5T2ZXZWVrKCkpO1xuICAgICAgY3VyRGF0ZSA9IGFkZERheXMoY3VyRGF0ZSwgMSk7XG4gICAgfVxuICAgIHJldHVybiB3ZWVrRGF5TmFtZXM7XG4gIH1cblxuICBwcml2YXRlIF9lY1llYXJDYWxlbmRhclJvd3MocGFyYW1zOiBBamZDYWxlbmRhclBhcmFtcyk6IEFqZkNhbGVuZGFyRW50cnlbXVtdIHtcbiAgICBjb25zdCB7dmlld0RhdGUsIHNlbGVjdGlvbn0gPSBwYXJhbXM7XG4gICAgY29uc3QgeWVhciA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4odmlld0RhdGUpLmdldEZ1bGxZZWFyKCk7XG4gICAgbGV0IGN1ckRhdGU6IEV0aGlvcGlhbkRhdGU7XG5cbiAgICBsZXQgcm93czogQWpmQ2FsZW5kYXJFbnRyeVtdW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8PSA0OyBpKyspIHtcbiAgICAgIGxldCByb3c6IEFqZkNhbGVuZGFyRW50cnlbXSA9IFtdO1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCAzOyBqKyspIHtcbiAgICAgICAgY29uc3QgY3VyTW9udGggPSBpICogMyArIGo7XG4gICAgICAgIGlmIChjdXJNb250aCA8IDEzKSB7XG4gICAgICAgICAgY3VyRGF0ZSA9IG5ldyBFdGhpb3BpYW5EYXRlKHllYXIsIGN1ck1vbnRoLCAxKTtcbiAgICAgICAgICBsZXQgZGF0ZSA9IEV0aGlvcGlhbkRhdGUuZXRoaW9waWFuVG9HcmVnb3JpYW4oY3VyRGF0ZSk7XG4gICAgICAgICAgbGV0IG5ld0VudHJ5OiBBamZDYWxlbmRhckVudHJ5ID0ge3R5cGU6ICdtb250aCcsIGRhdGUsIHNlbGVjdGVkOiAnbm9uZSd9O1xuICAgICAgICAgIG5ld0VudHJ5LnNlbGVjdGVkID0gdGhpcy5pc0VudHJ5U2VsZWN0ZWQobmV3RW50cnksIHNlbGVjdGlvbik7XG4gICAgICAgICAgcm93LnB1c2gobmV3RW50cnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByb3dzLnB1c2gocm93KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm93cztcbiAgfVxuXG4gIHByaXZhdGUgX2VjRGVjYWRlQ2FsZW5kYXJSb3dzKHBhcmFtczogQWpmQ2FsZW5kYXJQYXJhbXMpOiBBamZDYWxlbmRhckVudHJ5W11bXSB7XG4gICAgY29uc3Qge3ZpZXdEYXRlLCBzZWxlY3Rpb259ID0gcGFyYW1zO1xuICAgIGNvbnN0IGVjRGF0ZSA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4odmlld0RhdGUpO1xuICAgIGxldCBjdXJZZWFyOiBudW1iZXIgPSBlY0RhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBsZXQgZmlyc3RZZWFyID0gY3VyWWVhciAtIChjdXJZZWFyICUgMTApICsgMTtcbiAgICBsZXQgY3VyRGF0ZTogRGF0ZSA9IEV0aGlvcGlhbkRhdGUuZXRoaW9waWFuVG9HcmVnb3JpYW4oZmlyc3RZZWFyLCAxLCAxKTtcblxuICAgIGxldCByb3dzOiBBamZDYWxlbmRhckVudHJ5W11bXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICBsZXQgcm93OiBBamZDYWxlbmRhckVudHJ5W10gPSBbXTtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgMzsgaisrKSB7XG4gICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoY3VyRGF0ZSk7XG4gICAgICAgIGxldCBuZXdFbnRyeTogQWpmQ2FsZW5kYXJFbnRyeSA9IHt0eXBlOiAneWVhcicsIGRhdGU6IGRhdGUsIHNlbGVjdGVkOiAnbm9uZSd9O1xuICAgICAgICBuZXdFbnRyeS5zZWxlY3RlZCA9IHRoaXMuaXNFbnRyeVNlbGVjdGVkKG5ld0VudHJ5LCBzZWxlY3Rpb24pO1xuICAgICAgICByb3cucHVzaChuZXdFbnRyeSk7XG4gICAgICAgIGN1ckRhdGUgPSBhZGRZZWFycyhjdXJEYXRlLCAxKTtcbiAgICAgIH1cbiAgICAgIHJvd3MucHVzaChyb3cpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzO1xuICB9XG59XG4iXX0=
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jYWxlbmRhcnMvZXRoaW9waWFuL2NhbGVuZGFyLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsT0FBTyxFQUdMLGtCQUFrQixHQUduQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFDZCxXQUFXLEVBQ1gsUUFBUSxHQUNULE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFL0MsU0FBUyxZQUFZLENBQUMsS0FBYSxFQUFFLElBQVk7SUFDL0MsSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUFFO1FBQ2QsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUNELE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxJQUFtQjtJQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLGFBQWEsQ0FB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QzdDLElBQUksT0FBTyxHQUFTLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhFLElBQUksSUFBSSxHQUF5QixFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixJQUFJLEdBQUcsR0FBdUIsRUFBRSxDQUFDO1lBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM3QixJQUFJLFFBQVEsR0FBcUIsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDO2dCQUM5RSxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUM5RCxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuQixPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNoQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7WUExS0YsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoQykgR251Y29vcCBzb2MuIGNvb3AuXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3JcbiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsXG4gKiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEFmZmVyb1xuICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICogSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuaW1wb3J0IHtcbiAgQWpmQ2FsZW5kYXJFbnRyeSxcbiAgQWpmQ2FsZW5kYXJQYXJhbXMsXG4gIEFqZkNhbGVuZGFyU2VydmljZSxcbiAgQWpmQ2FsZW5kYXJWaWV3LFxuICBBamZDYWxlbmRhclZpZXdNb2RlLFxufSBmcm9tICdAYWpmL2NvcmUvY2FsZW5kYXInO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGFkZERheXMsXG4gIGFkZFdlZWtzLFxuICBhZGRZZWFycyxcbiAgZW5kT2ZJU09XZWVrLFxuICBnZXRJU09EYXksXG4gIHNldElTT0RheSxcbiAgc3RhcnRPZklTT1dlZWssXG4gIHN0YXJ0T2ZXZWVrLFxuICBzdWJXZWVrcyxcbn0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQge0V0aGlvcGlhbkRhdGV9IGZyb20gJy4vZXRoaW9waWFuLWRhdGUnO1xuXG5mdW5jdGlvbiBnZXRNb250aERheXMobW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKG1vbnRoIDwgMTIpIHtcbiAgICByZXR1cm4gMzA7XG4gIH1cbiAgcmV0dXJuIHllYXIgJSA0ID09PSAzID8gNiA6IDU7XG59XG5cbmZ1bmN0aW9uIGdldE1vbnRoQm91bmRzKGRhdGU6IEV0aGlvcGlhbkRhdGUpOiB7c3RhcnQ6IEV0aGlvcGlhbkRhdGU7IGVuZDogRXRoaW9waWFuRGF0ZX0ge1xuICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRXRoaW9waWFuRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG4gIGNvbnN0IGVuZERheSA9IGdldE1vbnRoRGF5cyhtb250aCwgeWVhcik7XG4gIGNvbnN0IGVuZCA9IG5ldyBFdGhpb3BpYW5EYXRlKHllYXIsIG1vbnRoLCBlbmREYXkpO1xuICByZXR1cm4ge3N0YXJ0LCBlbmR9O1xufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBBamZFdGhpb3BpYW5DYWxlbmRhclNlcnZpY2UgZXh0ZW5kcyBBamZDYWxlbmRhclNlcnZpY2Uge1xuICBvdmVycmlkZSBidWlsZFZpZXcocGFyYW1zOiBBamZDYWxlbmRhclBhcmFtcyk6IEFqZkNhbGVuZGFyVmlldyB7XG4gICAgY29uc3Qge3ZpZXdNb2RlfSA9IHBhcmFtcztcbiAgICBjb25zdCB2aWV3RGF0ZSA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4ocGFyYW1zLnZpZXdEYXRlKTtcbiAgICBzd2l0Y2ggKHZpZXdNb2RlKSB7XG4gICAgICBjYXNlICdkZWNhZGUnOlxuICAgICAgICBsZXQgY3VyWWVhcjogbnVtYmVyID0gdmlld0RhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgbGV0IGZpcnN0WWVhciA9IGN1clllYXIgLSAoY3VyWWVhciAlIDEwKSArIDE7XG4gICAgICAgIGxldCBsYXN0WWVhciA9IGZpcnN0WWVhciArIDExO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGhlYWRlcjogYCR7Zmlyc3RZZWFyfSAtICR7bGFzdFllYXJ9YCxcbiAgICAgICAgICBoZWFkZXJSb3c6IFtdLFxuICAgICAgICAgIHJvd3M6IHRoaXMuX2VjRGVjYWRlQ2FsZW5kYXJSb3dzKHBhcmFtcyksXG4gICAgICAgIH07XG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBoZWFkZXI6IGAke3ZpZXdEYXRlLmdldEZ1bGxZZWFyKCl9YCxcbiAgICAgICAgICBoZWFkZXJSb3c6IFtdLFxuICAgICAgICAgIHJvd3M6IHRoaXMuX2VjWWVhckNhbGVuZGFyUm93cyhwYXJhbXMpLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICBjb25zdCB2aWV3ID0gc3VwZXIuYnVpbGRWaWV3KHBhcmFtcyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaGVhZGVyOiBgJHt2aWV3RGF0ZS5nZXRTaG9ydE1vbnRoTmFtZSgpfSAke3ZpZXdEYXRlLmdldEZ1bGxZZWFyKCl9YCxcbiAgICAgICAgICBoZWFkZXJSb3c6IHRoaXMuX2VjTW9udGhIZWFkZXJSb3cocGFyYW1zKSxcbiAgICAgICAgICByb3dzOiB2aWV3LnJvd3MsXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5idWlsZFZpZXcocGFyYW1zKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGVudHJ5TGFiZWwoZW50cnk6IEFqZkNhbGVuZGFyRW50cnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVjRGF0ZSA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4oZW50cnkuZGF0ZSk7XG4gICAgaWYgKGVudHJ5LnR5cGUgPT09ICdkYXknKSB7XG4gICAgICByZXR1cm4gYCR7ZWNEYXRlLmdldERhdGUoKX1gO1xuICAgIH1cbiAgICBpZiAoZW50cnkudHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgcmV0dXJuIGAke2VjRGF0ZS5nZXRNb250aE5hbWUoKX1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7ZWNEYXRlLmdldEZ1bGxZZWFyKCl9YDtcbiAgfVxuXG4gIG92ZXJyaWRlIG1vbnRoQm91bmRzKGRhdGU6IERhdGUsIGlzb01vZGU6IGJvb2xlYW4pOiB7c3RhcnQ6IERhdGU7IGVuZDogRGF0ZX0ge1xuICAgIGlmICghaXNvTW9kZSkge1xuICAgICAgY29uc3QgZWNEYXRlID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbihkYXRlKTtcbiAgICAgIGNvbnN0IHtzdGFydCwgZW5kfSA9IGdldE1vbnRoQm91bmRzKGVjRGF0ZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogRXRoaW9waWFuRGF0ZS5ldGhpb3BpYW5Ub0dyZWdvcmlhbihzdGFydCksXG4gICAgICAgIGVuZDogRXRoaW9waWFuRGF0ZS5ldGhpb3BpYW5Ub0dyZWdvcmlhbihlbmQpLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGlzb0RheSA9IGdldElTT0RheShkYXRlKTtcbiAgICAgIGNvbnN0IGVjRGF0ZSA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4oZGF0ZSk7XG4gICAgICBsZXQge3N0YXJ0LCBlbmR9ID0gZ2V0TW9udGhCb3VuZHMoZWNEYXRlKTtcbiAgICAgIGlmIChlY0RhdGUuZ2V0TW9udGgoKSA9PT0gMTIpIHtcbiAgICAgICAgc3RhcnQgPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKHN0YXJ0T2ZJU09XZWVrKHN0YXJ0LmdldEdyZWdvcmlhbkRhdGUoKSkpO1xuICAgICAgICBlbmQgPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKGVuZE9mSVNPV2VlayhlbmQuZ2V0R3JlZ29yaWFuRGF0ZSgpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlID0gaXNvRGF5IDwgNCA/IGVuZE9mSVNPV2VlayhkYXRlKSA6IHN0YXJ0T2ZJU09XZWVrKGRhdGUpO1xuICAgICAgICBjb25zdCBzdGFydFdlZWtEYXkgPSBzdGFydC5nZXREYXkoKTtcbiAgICAgICAgY29uc3QgZW5kV2Vla0RheSA9IGVuZC5nZXREYXkoKTtcbiAgICAgICAgaWYgKHN0YXJ0V2Vla0RheSA9PSAwIHx8IHN0YXJ0V2Vla0RheSA+IDQpIHtcbiAgICAgICAgICBzdGFydCA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4oYWRkV2Vla3Moc3RhcnQuZ2V0R3JlZ29yaWFuRGF0ZSgpLCAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuZFdlZWtEYXkgPiAwICYmIGVuZFdlZWtEYXkgPCA0KSB7XG4gICAgICAgICAgZW5kID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbihzdWJXZWVrcyhlbmQuZ2V0R3JlZ29yaWFuRGF0ZSgpLCAxKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydE9mSVNPV2VlayhzdGFydC5nZXRHcmVnb3JpYW5EYXRlKCkpLFxuICAgICAgICBlbmQ6IGVuZE9mSVNPV2VlayhlbmQuZ2V0R3JlZ29yaWFuRGF0ZSgpKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmV4dFZpZXcodmlld0RhdGU6IERhdGUsIHZpZXdNb2RlOiBBamZDYWxlbmRhclZpZXdNb2RlKTogRGF0ZSB7XG4gICAgaWYgKHZpZXdNb2RlID09PSAnbW9udGgnKSB7XG4gICAgICBjb25zdCBlY0RhdGUgPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKHZpZXdEYXRlKTtcbiAgICAgIGxldCB5ZWFyID0gZWNEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICBsZXQgbW9udGggPSBlY0RhdGUuZ2V0TW9udGgoKTtcbiAgICAgIGlmIChtb250aCA9PT0gMTIpIHtcbiAgICAgICAgbW9udGggPSAwO1xuICAgICAgICB5ZWFyICs9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb250aCArPSAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEV0aGlvcGlhbkRhdGUuZXRoaW9waWFuVG9HcmVnb3JpYW4obmV3IEV0aGlvcGlhbkRhdGUoeWVhciwgbW9udGgsIDEpKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLm5leHRWaWV3KHZpZXdEYXRlLCB2aWV3TW9kZSk7XG4gIH1cblxuICBvdmVycmlkZSBwcmV2aW91c1ZpZXcodmlld0RhdGU6IERhdGUsIHZpZXdNb2RlOiBBamZDYWxlbmRhclZpZXdNb2RlKTogRGF0ZSB7XG4gICAgaWYgKHZpZXdNb2RlID09PSAnbW9udGgnKSB7XG4gICAgICBjb25zdCBlY0RhdGUgPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKHZpZXdEYXRlKTtcbiAgICAgIGxldCB5ZWFyID0gZWNEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICBsZXQgbW9udGggPSBlY0RhdGUuZ2V0TW9udGgoKTtcbiAgICAgIGlmIChtb250aCA9PT0gMCkge1xuICAgICAgICBtb250aCA9IDEyO1xuICAgICAgICB5ZWFyIC09IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb250aCAtPSAxO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEV0aGlvcGlhbkRhdGUuZXRoaW9waWFuVG9HcmVnb3JpYW4obmV3IEV0aGlvcGlhbkRhdGUoeWVhciwgbW9udGgsIDEpKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLnByZXZpb3VzVmlldyh2aWV3RGF0ZSwgdmlld01vZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWNNb250aEhlYWRlclJvdyhwYXJhbXM6IEFqZkNhbGVuZGFyUGFyYW1zKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHtpc29Nb2RlLCB2aWV3RGF0ZX0gPSBwYXJhbXM7XG4gICAgbGV0IGN1ckRhdGU6IERhdGU7XG4gICAgaWYgKGlzb01vZGUpIHtcbiAgICAgIGN1ckRhdGUgPSBzZXRJU09EYXkoc3RhcnRPZldlZWsodmlld0RhdGUpLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VyRGF0ZSA9IHN0YXJ0T2ZXZWVrKHZpZXdEYXRlKTtcbiAgICB9XG4gICAgbGV0IHdlZWtEYXlOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgY29uc3QgZWNEYXRlID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbihjdXJEYXRlKTtcbiAgICAgIHdlZWtEYXlOYW1lcy5wdXNoKGVjRGF0ZS5nZXREYXlPZldlZWsoKSk7XG4gICAgICBjdXJEYXRlID0gYWRkRGF5cyhjdXJEYXRlLCAxKTtcbiAgICB9XG4gICAgcmV0dXJuIHdlZWtEYXlOYW1lcztcbiAgfVxuXG4gIHByaXZhdGUgX2VjWWVhckNhbGVuZGFyUm93cyhwYXJhbXM6IEFqZkNhbGVuZGFyUGFyYW1zKTogQWpmQ2FsZW5kYXJFbnRyeVtdW10ge1xuICAgIGNvbnN0IHt2aWV3RGF0ZSwgc2VsZWN0aW9ufSA9IHBhcmFtcztcbiAgICBjb25zdCB5ZWFyID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbih2aWV3RGF0ZSkuZ2V0RnVsbFllYXIoKTtcbiAgICBsZXQgY3VyRGF0ZTogRXRoaW9waWFuRGF0ZTtcblxuICAgIGxldCByb3dzOiBBamZDYWxlbmRhckVudHJ5W11bXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDQ7IGkrKykge1xuICAgICAgbGV0IHJvdzogQWpmQ2FsZW5kYXJFbnRyeVtdID0gW107XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDM7IGorKykge1xuICAgICAgICBjb25zdCBjdXJNb250aCA9IGkgKiAzICsgajtcbiAgICAgICAgaWYgKGN1ck1vbnRoIDwgMTMpIHtcbiAgICAgICAgICBjdXJEYXRlID0gbmV3IEV0aGlvcGlhbkRhdGUoeWVhciwgY3VyTW9udGgsIDEpO1xuICAgICAgICAgIGxldCBkYXRlID0gRXRoaW9waWFuRGF0ZS5ldGhpb3BpYW5Ub0dyZWdvcmlhbihjdXJEYXRlKTtcbiAgICAgICAgICBsZXQgbmV3RW50cnk6IEFqZkNhbGVuZGFyRW50cnkgPSB7dHlwZTogJ21vbnRoJywgZGF0ZSwgc2VsZWN0ZWQ6ICdub25lJ307XG4gICAgICAgICAgbmV3RW50cnkuc2VsZWN0ZWQgPSB0aGlzLmlzRW50cnlTZWxlY3RlZChuZXdFbnRyeSwgc2VsZWN0aW9uKTtcbiAgICAgICAgICByb3cucHVzaChuZXdFbnRyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJvd3MucHVzaChyb3cpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWNEZWNhZGVDYWxlbmRhclJvd3MocGFyYW1zOiBBamZDYWxlbmRhclBhcmFtcyk6IEFqZkNhbGVuZGFyRW50cnlbXVtdIHtcbiAgICBjb25zdCB7dmlld0RhdGUsIHNlbGVjdGlvbn0gPSBwYXJhbXM7XG4gICAgY29uc3QgZWNEYXRlID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbih2aWV3RGF0ZSk7XG4gICAgbGV0IGN1clllYXI6IG51bWJlciA9IGVjRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGxldCBmaXJzdFllYXIgPSBjdXJZZWFyIC0gKGN1clllYXIgJSAxMCkgKyAxO1xuICAgIGxldCBjdXJEYXRlOiBEYXRlID0gRXRoaW9waWFuRGF0ZS5ldGhpb3BpYW5Ub0dyZWdvcmlhbihmaXJzdFllYXIsIDAsIDEpO1xuXG4gICAgbGV0IHJvd3M6IEFqZkNhbGVuZGFyRW50cnlbXVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyBpKyspIHtcbiAgICAgIGxldCByb3c6IEFqZkNhbGVuZGFyRW50cnlbXSA9IFtdO1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCAzOyBqKyspIHtcbiAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZShjdXJEYXRlKTtcbiAgICAgICAgbGV0IG5ld0VudHJ5OiBBamZDYWxlbmRhckVudHJ5ID0ge3R5cGU6ICd5ZWFyJywgZGF0ZTogZGF0ZSwgc2VsZWN0ZWQ6ICdub25lJ307XG4gICAgICAgIG5ld0VudHJ5LnNlbGVjdGVkID0gdGhpcy5pc0VudHJ5U2VsZWN0ZWQobmV3RW50cnksIHNlbGVjdGlvbik7XG4gICAgICAgIHJvdy5wdXNoKG5ld0VudHJ5KTtcbiAgICAgICAgY3VyRGF0ZSA9IGFkZFllYXJzKGN1ckRhdGUsIDEpO1xuICAgICAgfVxuICAgICAgcm93cy5wdXNoKHJvdyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvd3M7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -30,14 +30,14 @@ function quotient(i, j) {
|
|
|
30
30
|
return Math.floor(i / j);
|
|
31
31
|
}
|
|
32
32
|
function isGregorianLeap(year) {
|
|
33
|
-
return
|
|
33
|
+
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
34
34
|
}
|
|
35
35
|
function setEra(era) {
|
|
36
|
-
if (
|
|
36
|
+
if (era === JD_EPOCH_OFFSET_AMETE_ALEM || era === JD_EPOCH_OFFSET_AMETE_MIHRET) {
|
|
37
37
|
JDN_OFFSET = era;
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
40
|
-
throw
|
|
40
|
+
throw new Error(`Unknown Era: ${era}`);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
function isEraSet() {
|
|
@@ -47,31 +47,42 @@ function unsetEra() {
|
|
|
47
47
|
JDN_OFFSET = JD_EPOCH_OFFSET_UNSET;
|
|
48
48
|
}
|
|
49
49
|
function guessEraFromJDN(jdn) {
|
|
50
|
-
return
|
|
51
|
-
|
|
50
|
+
return jdn >= JD_EPOCH_OFFSET_AMETE_MIHRET + 365
|
|
51
|
+
? JD_EPOCH_OFFSET_AMETE_MIHRET
|
|
52
|
+
: JD_EPOCH_OFFSET_AMETE_ALEM;
|
|
52
53
|
}
|
|
53
54
|
function ethiopicToJDN(day, month, year) {
|
|
54
55
|
const ERA = isEraSet() ? JDN_OFFSET : JD_EPOCH_OFFSET_AMETE_MIHRET;
|
|
55
|
-
const jdn =
|
|
56
|
+
const jdn = ERA + 365 + 365 * (year - 1) + quotient(year, 4) + 30 * month + day - 31;
|
|
56
57
|
return jdn;
|
|
57
58
|
}
|
|
58
59
|
function jdnToEthiopic(jdn) {
|
|
59
60
|
const ERA = isEraSet() ? JDN_OFFSET : guessEraFromJDN(jdn);
|
|
60
61
|
const r = (jdn - ERA) % 1461;
|
|
61
62
|
const n = (r % 365) + 365 * quotient(r, 1460);
|
|
62
|
-
const year = 4 * quotient(
|
|
63
|
+
const year = 4 * quotient(jdn - ERA, 1461) + quotient(r, 365) - quotient(r, 1460);
|
|
63
64
|
const month = quotient(n, 30) + 1;
|
|
64
65
|
const day = (n % 30) + 1;
|
|
65
66
|
return [year, month, day];
|
|
66
67
|
}
|
|
67
68
|
function gregorianToJDN(day, month, year) {
|
|
68
|
-
const s = quotient(year, 4) -
|
|
69
|
-
quotient(year - 1,
|
|
69
|
+
const s = quotient(year, 4) -
|
|
70
|
+
quotient(year - 1, 4) -
|
|
71
|
+
quotient(year, 100) +
|
|
72
|
+
quotient(year - 1, 100) +
|
|
73
|
+
quotient(year, 400) -
|
|
74
|
+
quotient(year - 1, 400);
|
|
70
75
|
const t = quotient(14 - month, 12);
|
|
71
76
|
const n = 31 * t * (month - 1) +
|
|
72
|
-
(1 - t) * (59 + s + 30 * (month - 3) + quotient(
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
(1 - t) * (59 + s + 30 * (month - 3) + quotient(3 * month - 7, 5)) +
|
|
78
|
+
day -
|
|
79
|
+
1;
|
|
80
|
+
const j = JD_EPOCH_OFFSET_GREGORIAN +
|
|
81
|
+
365 * (year - 1) +
|
|
82
|
+
quotient(year - 1, 4) -
|
|
83
|
+
quotient(year - 1, 100) +
|
|
84
|
+
quotient(year - 1, 400) +
|
|
85
|
+
n;
|
|
75
86
|
return j;
|
|
76
87
|
}
|
|
77
88
|
function jdnToGregorian(jdn) {
|
|
@@ -81,20 +92,23 @@ function jdnToGregorian(jdn) {
|
|
|
81
92
|
const r4 = r100 % 1461;
|
|
82
93
|
let n = (r4 % 365) + 365 * quotient(r4, 1460);
|
|
83
94
|
const s = quotient(r4, 1095);
|
|
84
|
-
const aprime = 400 * quotient(
|
|
85
|
-
100 * quotient(r400, 36524) +
|
|
86
|
-
|
|
95
|
+
const aprime = 400 * quotient(jdn - JD_EPOCH_OFFSET_GREGORIAN, 146097) +
|
|
96
|
+
100 * quotient(r400, 36524) +
|
|
97
|
+
4 * quotient(r100, 1461) +
|
|
98
|
+
quotient(r4, 365) -
|
|
99
|
+
quotient(r4, 1460) -
|
|
100
|
+
quotient(r2000, 730484);
|
|
87
101
|
const year = aprime + 1;
|
|
88
|
-
const t = quotient(
|
|
89
|
-
let month = t * (quotient(n, 31) + 1) + (1 - t) * (quotient(
|
|
102
|
+
const t = quotient(364 + s - n, 306);
|
|
103
|
+
let month = t * (quotient(n, 31) + 1) + (1 - t) * (quotient(5 * (n - s) + 13, 153) + 1);
|
|
90
104
|
n += 1 - quotient(r2000, 730484);
|
|
91
105
|
let day = n;
|
|
92
|
-
if (
|
|
106
|
+
if (r100 === 0 && n === 0 && r400 !== 0) {
|
|
93
107
|
month = 12;
|
|
94
108
|
day = 31;
|
|
95
109
|
}
|
|
96
110
|
else {
|
|
97
|
-
monthDays[2] =
|
|
111
|
+
monthDays[2] = isGregorianLeap(year) ? 29 : 28;
|
|
98
112
|
for (let i = 1; i <= GREGORIAN_NUMBER_OF_MONTHS; i += 1) {
|
|
99
113
|
if (n <= monthDays[i]) {
|
|
100
114
|
day = n;
|
|
@@ -137,4 +151,4 @@ export function toEC(dateArray) {
|
|
|
137
151
|
}
|
|
138
152
|
return gregorianToEthiopic(d, m, y);
|
|
139
153
|
}
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NhbGVuZGFycy9ldGhpb3BpYW4vY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUVILE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBSSxXQUFXO0FBQzFELE1BQU0sNEJBQTRCLEdBQUcsT0FBTyxDQUFDLENBQUUsU0FBUztBQUN4RCxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQztBQUMxQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRWpDLElBQUksVUFBVSxHQUFHLHFCQUFxQixDQUFDO0FBRXZDLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO0FBQ3RDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFdEUsU0FBUyxRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsSUFBWTtJQUNuQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsR0FBVztJQUN6QixJQUFJLENBQUMsR0FBRyxLQUFLLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssNEJBQTRCLENBQUMsRUFBRTtRQUNsRixVQUFVLEdBQUcsR0FBRyxDQUFDO0tBQ2xCO1NBQU07UUFDTCxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUMxQztBQUNILENBQUM7QUFFRCxTQUFTLFFBQVE7SUFDZixPQUFPLHFCQUFxQixLQUFLLFVBQVUsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBUyxRQUFRO0lBQ2YsVUFBVSxHQUFHLHFCQUFxQixDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxHQUFXO0lBQ2xDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzlCLDBCQUEwQixDQUFDO0FBQ3BGLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFFLElBQVk7SUFDN0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUM7SUFDbkUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBRXZGLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEdBQVc7SUFDaEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUM3QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFekIsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsSUFBWTtJQUM5RCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1FBQ3JFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFNUUsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUVuRixNQUFNLENBQUMsR0FBRyx5QkFBeUIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxHQUFXO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLHlCQUF5QixDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3pELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLHlCQUF5QixDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3hELE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7SUFDMUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztJQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdCLE1BQU0sTUFBTSxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcseUJBQXlCLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDcEUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUM7UUFDMUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELE1BQU0sSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDeEIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxJQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFWixJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQzdDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxHQUFHLEdBQUcsRUFBRSxDQUFDO0tBQ1Y7U0FBTTtRQUNMLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNqRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksMEJBQTBCLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JCLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQ1IsTUFBTTthQUNQO1lBQ0QsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQjtLQUNGO0lBQ0QsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxJQUFZO0lBQ25FLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFFLElBQVk7SUFDL0QsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUMsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQ3pCLEdBQVcsRUFBRSxLQUFhLEVBQUUsSUFBWSxFQUFFLEdBQVc7SUFDdkQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1osTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsUUFBUSxFQUFFLENBQUM7SUFDWCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsWUFBWTtBQUVaLDZCQUE2QjtBQUM3QixNQUFNLFVBQVUsSUFBSSxDQUFDLFNBQW9FO0lBRXZGLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM1QixJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztJQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0tBQzNDO0lBQ0QsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsNkJBQTZCO0FBQzdCLE1BQU0sVUFBVSxJQUFJLENBQUMsU0FBbUM7SUFDdEQsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDM0M7SUFDRCxPQUFPLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoQykgR251Y29vcCBzb2MuIGNvb3AuXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3JcbiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsXG4gKiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEFmZmVyb1xuICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICogSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuY29uc3QgSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX0FMRU0gPSAtMjg1MDE5OyAgICAvLyAgICAgIOGLky/hi5NcbmNvbnN0IEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQgPSAxNzIzODU2OyAgLy8gICAg4YuTL+GInVxuY29uc3QgSkRfRVBPQ0hfT0ZGU0VUX0dSRUdPUklBTiA9IDE3MjE0MjY7XG5jb25zdCBKRF9FUE9DSF9PRkZTRVRfVU5TRVQgPSAtMTtcblxubGV0IEpETl9PRkZTRVQgPSBKRF9FUE9DSF9PRkZTRVRfVU5TRVQ7XG5cbmNvbnN0IEdSRUdPUklBTl9OVU1CRVJfT0ZfTU9OVEhTID0gMTI7XG5jb25zdCBtb250aERheXMgPSBbMCwgMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV07XG5cbmZ1bmN0aW9uIHF1b3RpZW50KGk6IG51bWJlciwgajogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGguZmxvb3IoaSAvIGopO1xufVxuXG5mdW5jdGlvbiBpc0dyZWdvcmlhbkxlYXAoeWVhcjogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiAoeWVhciAlIDQgPT09IDApICYmICgoeWVhciAlIDEwMCAhPT0gMCkgfHwgKHllYXIgJSA0MDAgPT09IDApKTtcbn1cblxuZnVuY3Rpb24gc2V0RXJhKGVyYTogbnVtYmVyKTogdm9pZCB7XG4gIGlmICgoZXJhID09PSBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfQUxFTSkgfHwgKGVyYSA9PT0gSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVCkpIHtcbiAgICBKRE5fT0ZGU0VUID0gZXJhO1xuICB9IGVsc2Uge1xuICAgIHRocm93IChuZXcgRXJyb3IoYFVua25vd24gRXJhOiAke2VyYX1gKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNFcmFTZXQoKTogYm9vbGVhbiB7XG4gIHJldHVybiBKRF9FUE9DSF9PRkZTRVRfVU5TRVQgIT09IEpETl9PRkZTRVQ7XG59XG5cbmZ1bmN0aW9uIHVuc2V0RXJhKCk6IHZvaWQge1xuICBKRE5fT0ZGU0VUID0gSkRfRVBPQ0hfT0ZGU0VUX1VOU0VUO1xufVxuXG5mdW5jdGlvbiBndWVzc0VyYUZyb21KRE4oamRuOiBudW1iZXIpIHtcbiAgcmV0dXJuIChqZG4gPj0gKEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQgKyAzNjUpKSA/IEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX0FMRU07XG59XG5cbmZ1bmN0aW9uIGV0aGlvcGljVG9KRE4oZGF5OiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIHllYXI6IG51bWJlcikge1xuICBjb25zdCBFUkEgPSBpc0VyYVNldCgpID8gSkROX09GRlNFVCA6IEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQ7XG4gIGNvbnN0IGpkbiA9IChFUkEgKyAzNjUpICsgMzY1ICogKHllYXIgLSAxKSArIHF1b3RpZW50KHllYXIsIDQpICsgMzAgKiBtb250aCArIGRheSAtIDMxO1xuXG4gIHJldHVybiBqZG47XG59XG5cbmZ1bmN0aW9uIGpkblRvRXRoaW9waWMoamRuOiBudW1iZXIpOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xuICBjb25zdCBFUkEgPSBpc0VyYVNldCgpID8gSkROX09GRlNFVCA6IGd1ZXNzRXJhRnJvbUpETihqZG4pO1xuICBjb25zdCByID0gKGpkbiAtIEVSQSkgJSAxNDYxO1xuICBjb25zdCBuID0gKHIgJSAzNjUpICsgMzY1ICogcXVvdGllbnQociwgMTQ2MCk7XG4gIGNvbnN0IHllYXIgPSA0ICogcXVvdGllbnQoKGpkbiAtIEVSQSksIDE0NjEpICsgcXVvdGllbnQociwgMzY1KSAtIHF1b3RpZW50KHIsIDE0NjApO1xuICBjb25zdCBtb250aCA9IHF1b3RpZW50KG4sIDMwKSArIDE7XG4gIGNvbnN0IGRheSA9IChuICUgMzApICsgMTtcblxuICByZXR1cm4gW3llYXIsIG1vbnRoLCBkYXldO1xufVxuXG5mdW5jdGlvbiBncmVnb3JpYW5Ub0pETihkYXk6IG51bWJlciwgbW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgcyA9IHF1b3RpZW50KHllYXIsIDQpIC0gcXVvdGllbnQoeWVhciAtIDEsIDQpIC0gcXVvdGllbnQoeWVhciwgMTAwKSArXG4gICAgICBxdW90aWVudCh5ZWFyIC0gMSwgMTAwKSArIHF1b3RpZW50KHllYXIsIDQwMCkgLSBxdW90aWVudCh5ZWFyIC0gMSwgNDAwKTtcblxuICBjb25zdCB0ID0gcXVvdGllbnQoMTQgLSBtb250aCwgMTIpO1xuXG4gIGNvbnN0IG4gPSAzMSAqIHQgKiAobW9udGggLSAxKSArXG4gICAgICAoMSAtIHQpICogKDU5ICsgcyArIDMwICogKG1vbnRoIC0gMykgKyBxdW90aWVudCgoMyAqIG1vbnRoIC0gNyksIDUpKSArIGRheSAtIDE7XG5cbiAgY29uc3QgaiA9IEpEX0VQT0NIX09GRlNFVF9HUkVHT1JJQU4gKyAzNjUgKiAoeWVhciAtIDEpICsgcXVvdGllbnQoeWVhciAtIDEsIDQpIC1cbiAgICAgIHF1b3RpZW50KHllYXIgLSAxLCAxMDApICsgcXVvdGllbnQoeWVhciAtIDEsIDQwMCkgKyBuO1xuXG4gIHJldHVybiBqO1xufVxuXG5mdW5jdGlvbiBqZG5Ub0dyZWdvcmlhbihqZG46IG51bWJlcik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB7XG4gIGNvbnN0IHIyMDAwID0gKGpkbiAtIEpEX0VQT0NIX09GRlNFVF9HUkVHT1JJQU4pICUgNzMwNDg1O1xuICBjb25zdCByNDAwID0gKGpkbiAtIEpEX0VQT0NIX09GRlNFVF9HUkVHT1JJQU4pICUgMTQ2MDk3O1xuICBjb25zdCByMTAwID0gcjQwMCAlIDM2NTI0O1xuICBjb25zdCByNCA9IHIxMDAgJSAxNDYxO1xuICBsZXQgbiA9IChyNCAlIDM2NSkgKyAzNjUgKiBxdW90aWVudChyNCwgMTQ2MCk7XG4gIGNvbnN0IHMgPSBxdW90aWVudChyNCwgMTA5NSk7XG4gIGNvbnN0IGFwcmltZSA9IDQwMCAqIHF1b3RpZW50KChqZG4gLSBKRF9FUE9DSF9PRkZTRVRfR1JFR09SSUFOKSwgMTQ2MDk3KSArXG4gICAgICAxMDAgKiBxdW90aWVudChyNDAwLCAzNjUyNCkgKyA0ICogcXVvdGllbnQocjEwMCwgMTQ2MSkgKyBxdW90aWVudChyNCwgMzY1KSAtXG4gICAgICBxdW90aWVudChyNCwgMTQ2MCkgLSBxdW90aWVudChyMjAwMCwgNzMwNDg0KTtcbiAgY29uc3QgeWVhciA9IGFwcmltZSArIDE7XG4gIGNvbnN0IHQgPSBxdW90aWVudCgoMzY0ICsgcyAtIG4pLCAzMDYpO1xuICBsZXQgbW9udGggPSB0ICogKHF1b3RpZW50KG4sIDMxKSArIDEpICsgKDEgLSB0KSAqIChxdW90aWVudCgoNSAqIChuIC0gcykgKyAxMyksIDE1MykgKyAxKTtcbiAgbiArPSAxIC0gcXVvdGllbnQocjIwMDAsIDczMDQ4NCk7XG4gIGxldCBkYXkgPSBuO1xuXG4gIGlmICgocjEwMCA9PT0gMCkgJiYgKG4gPT09IDApICYmIChyNDAwICE9PSAwKSkge1xuICAgIG1vbnRoID0gMTI7XG4gICAgZGF5ID0gMzE7XG4gIH0gZWxzZSB7XG4gICAgbW9udGhEYXlzWzJdID0gKGlzR3JlZ29yaWFuTGVhcCh5ZWFyKSkgPyAyOSA6IDI4O1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IEdSRUdPUklBTl9OVU1CRVJfT0ZfTU9OVEhTOyBpICs9IDEpIHtcbiAgICAgIGlmIChuIDw9IG1vbnRoRGF5c1tpXSkge1xuICAgICAgICBkYXkgPSBuO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG4gLT0gbW9udGhEYXlzW2ldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW3llYXIsIG1vbnRoLCBkYXldO1xufVxuXG5mdW5jdGlvbiBncmVnb3JpYW5Ub0V0aGlvcGljKGRheTogbnVtYmVyLCBtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xuICBjb25zdCBqZG4gPSBncmVnb3JpYW5Ub0pETihkYXksIG1vbnRoLCB5ZWFyKTtcbiAgcmV0dXJuIGpkblRvRXRoaW9waWMoamRuKTtcbn1cblxuZnVuY3Rpb24gZXRoaW9pcGljVG9HcmVnKGRheTogbnVtYmVyLCBtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xuICBjb25zdCBqZG4gPSBldGhpb3BpY1RvSkROKGRheSwgbW9udGgsIHllYXIpO1xuICByZXR1cm4gamRuVG9HcmVnb3JpYW4oamRuKTtcbn1cblxuZnVuY3Rpb24gZXRoaW9pcGljVG9HcmVnb3JpYW4oXG4gICAgZGF5OiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIHllYXI6IG51bWJlciwgZXJhOiBudW1iZXIpOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xuICBzZXRFcmEoZXJhKTtcbiAgY29uc3QgcmVzdWx0ID0gZXRoaW9pcGljVG9HcmVnKGRheSwgbW9udGgsIHllYXIpO1xuICB1bnNldEVyYSgpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKiogQVBJICogKi9cblxuLyoqIGV0aGlvcGlhbiB0byBncmVnb3JpYW4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0dDKGRhdGVBcnJheTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdfFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdKTpcbiAgICBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xuICBjb25zdCBbeSwgbSwgZF0gPSBkYXRlQXJyYXk7XG4gIGxldCBlcmEgPSBkYXRlQXJyYXkubGVuZ3RoID09PSA0ID8gZGF0ZUFycmF5WzNdIDogSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVDtcbiAgaWYgKGQgPCAwIHx8IGQgPiAzMCB8fCBtIDwgMCB8fCBtID4gMTMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgRXRoaW9waWFuIERhdGUnKTtcbiAgfVxuICByZXR1cm4gZXRoaW9pcGljVG9HcmVnb3JpYW4oZCwgbSwgeSwgZXJhKTtcbn1cblxuLyoqIGdyZWdvcmlhbiB0byBldGhpb3BpYW4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0VDKGRhdGVBcnJheTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdKTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHtcbiAgY29uc3QgW3ksIG0sIGRdID0gZGF0ZUFycmF5O1xuICBpZiAoZCA8IDAgfHwgZCA+IDMxIHx8IG0gPCAwIHx8IG0gPiAxMikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBHcmVnb3JpYW4gRGF0ZScpO1xuICB9XG4gIHJldHVybiBncmVnb3JpYW5Ub0V0aGlvcGljKGQsIG0sIHkpO1xufVxuIl19
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NhbGVuZGFycy9ldGhpb3BpYW4vY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUVILE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXO0FBQ3ZELE1BQU0sNEJBQTRCLEdBQUcsT0FBTyxDQUFDLENBQUMsU0FBUztBQUN2RCxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQztBQUMxQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRWpDLElBQUksVUFBVSxHQUFHLHFCQUFxQixDQUFDO0FBRXZDLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxDQUFDO0FBQ3RDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFdEUsU0FBUyxRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsSUFBWTtJQUNuQyxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsR0FBVztJQUN6QixJQUFJLEdBQUcsS0FBSywwQkFBMEIsSUFBSSxHQUFHLEtBQUssNEJBQTRCLEVBQUU7UUFDOUUsVUFB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QUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDM0M7SUFDRCxPQUFPLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCw2QkFBNkI7QUFDN0IsTUFBTSxVQUFVLElBQUksQ0FBQyxTQUFtQztJQUN0RCxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUMzQztJQUNELE9BQU8sbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChDKSBHbnVjb29wIHNvYy4gY29vcC5cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSxcbiAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLlxuICpcbiAqL1xuXG5jb25zdCBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfQUxFTSA9IC0yODUwMTk7IC8vICAgICAg4YuTL+GLk1xuY29uc3QgSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVCA9IDE3MjM4NTY7IC8vICAgIOGLky/hiJ1cbmNvbnN0IEpEX0VQT0NIX09GRlNFVF9HUkVHT1JJQU4gPSAxNzIxNDI2O1xuY29uc3QgSkRfRVBPQ0hfT0ZGU0VUX1VOU0VUID0gLTE7XG5cbmxldCBKRE5fT0ZGU0VUID0gSkRfRVBPQ0hfT0ZGU0VUX1VOU0VUO1xuXG5jb25zdCBHUkVHT1JJQU5fTlVNQkVSX09GX01PTlRIUyA9IDEyO1xuY29uc3QgbW9udGhEYXlzID0gWzAsIDMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xuXG5mdW5jdGlvbiBxdW90aWVudChpOiBudW1iZXIsIGo6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLmZsb29yKGkgLyBqKTtcbn1cblxuZnVuY3Rpb24gaXNHcmVnb3JpYW5MZWFwKHllYXI6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4geWVhciAlIDQgPT09IDAgJiYgKHllYXIgJSAxMDAgIT09IDAgfHwgeWVhciAlIDQwMCA9PT0gMCk7XG59XG5cbmZ1bmN0aW9uIHNldEVyYShlcmE6IG51bWJlcik6IHZvaWQge1xuICBpZiAoZXJhID09PSBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfQUxFTSB8fCBlcmEgPT09IEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQpIHtcbiAgICBKRE5fT0ZGU0VUID0gZXJhO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBFcmE6ICR7ZXJhfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzRXJhU2V0KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gSkRfRVBPQ0hfT0ZGU0VUX1VOU0VUICE9PSBKRE5fT0ZGU0VUO1xufVxuXG5mdW5jdGlvbiB1bnNldEVyYSgpOiB2b2lkIHtcbiAgSkROX09GRlNFVCA9IEpEX0VQT0NIX09GRlNFVF9VTlNFVDtcbn1cblxuZnVuY3Rpb24gZ3Vlc3NFcmFGcm9tSkROKGpkbjogbnVtYmVyKSB7XG4gIHJldHVybiBqZG4gPj0gSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVCArIDM2NVxuICAgID8gSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVFxuICAgIDogSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX0FMRU07XG59XG5cbmZ1bmN0aW9uIGV0aGlvcGljVG9KRE4oZGF5OiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIHllYXI6IG51bWJlcikge1xuICBjb25zdCBFUkEgPSBpc0VyYVNldCgpID8gSkROX09GRlNFVCA6IEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQ7XG4gIGNvbnN0IGpkbiA9IEVSQSArIDM2NSArIDM2NSAqICh5ZWFyIC0gMSkgKyBxdW90aWVudCh5ZWFyLCA0KSArIDMwICogbW9udGggKyBkYXkgLSAzMTtcblxuICByZXR1cm4gamRuO1xufVxuXG5mdW5jdGlvbiBqZG5Ub0V0aGlvcGljKGpkbjogbnVtYmVyKTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHtcbiAgY29uc3QgRVJBID0gaXNFcmFTZXQoKSA/IEpETl9PRkZTRVQgOiBndWVzc0VyYUZyb21KRE4oamRuKTtcbiAgY29uc3QgciA9IChqZG4gLSBFUkEpICUgMTQ2MTtcbiAgY29uc3QgbiA9IChyICUgMzY1KSArIDM2NSAqIHF1b3RpZW50KHIsIDE0NjApO1xuICBjb25zdCB5ZWFyID0gNCAqIHF1b3RpZW50KGpkbiAtIEVSQSwgMTQ2MSkgKyBxdW90aWVudChyLCAzNjUpIC0gcXVvdGllbnQociwgMTQ2MCk7XG4gIGNvbnN0IG1vbnRoID0gcXVvdGllbnQobiwgMzApICsgMTtcbiAgY29uc3QgZGF5ID0gKG4gJSAzMCkgKyAxO1xuXG4gIHJldHVybiBbeWVhciwgbW9udGgsIGRheV07XG59XG5cbmZ1bmN0aW9uIGdyZWdvcmlhblRvSkROKGRheTogbnVtYmVyLCBtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBzID1cbiAgICBxdW90aWVudCh5ZWFyLCA0KSAtXG4gICAgcXVvdGllbnQoeWVhciAtIDEsIDQpIC1cbiAgICBxdW90aWVudCh5ZWFyLCAxMDApICtcbiAgICBxdW90aWVudCh5ZWFyIC0gMSwgMTAwKSArXG4gICAgcXVvdGllbnQoeWVhciwgNDAwKSAtXG4gICAgcXVvdGllbnQoeWVhciAtIDEsIDQwMCk7XG5cbiAgY29uc3QgdCA9IHF1b3RpZW50KDE0IC0gbW9udGgsIDEyKTtcblxuICBjb25zdCBuID1cbiAgICAzMSAqIHQgKiAobW9udGggLSAxKSArXG4gICAgKDEgLSB0KSAqICg1OSArIHMgKyAzMCAqIChtb250aCAtIDMpICsgcXVvdGllbnQoMyAqIG1vbnRoIC0gNywgNSkpICtcbiAgICBkYXkgLVxuICAgIDE7XG5cbiAgY29uc3QgaiA9XG4gICAgSkRfRVBPQ0hfT0ZGU0VUX0dSRUdPUklBTiArXG4gICAgMzY1ICogKHllYXIgLSAxKSArXG4gICAgcXVvdGllbnQoeWVhciAtIDEsIDQpIC1cbiAgICBxdW90aWVudCh5ZWFyIC0gMSwgMTAwKSArXG4gICAgcXVvdGllbnQoeWVhciAtIDEsIDQwMCkgK1xuICAgIG47XG5cbiAgcmV0dXJuIGo7XG59XG5cbmZ1bmN0aW9uIGpkblRvR3JlZ29yaWFuKGpkbjogbnVtYmVyKTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHtcbiAgY29uc3QgcjIwMDAgPSAoamRuIC0gSkRfRVBPQ0hfT0ZGU0VUX0dSRUdPUklBTikgJSA3MzA0ODU7XG4gIGNvbnN0IHI0MDAgPSAoamRuIC0gSkRfRVBPQ0hfT0ZGU0VUX0dSRUdPUklBTikgJSAxNDYwOTc7XG4gIGNvbnN0IHIxMDAgPSByNDAwICUgMzY1MjQ7XG4gIGNvbnN0IHI0ID0gcjEwMCAlIDE0NjE7XG4gIGxldCBuID0gKHI0ICUgMzY1KSArIDM2NSAqIHF1b3RpZW50KHI0LCAxNDYwKTtcbiAgY29uc3QgcyA9IHF1b3RpZW50KHI0LCAxMDk1KTtcbiAgY29uc3QgYXByaW1lID1cbiAgICA0MDAgKiBxdW90aWVudChqZG4gLSBKRF9FUE9DSF9PRkZTRVRfR1JFR09SSUFOLCAxNDYwOTcpICtcbiAgICAxMDAgKiBxdW90aWVudChyNDAwLCAzNjUyNCkgK1xuICAgIDQgKiBxdW90aWVudChyMTAwLCAxNDYxKSArXG4gICAgcXVvdGllbnQocjQsIDM2NSkgLVxuICAgIHF1b3RpZW50KHI0LCAxNDYwKSAtXG4gICAgcXVvdGllbnQocjIwMDAsIDczMDQ4NCk7XG4gIGNvbnN0IHllYXIgPSBhcHJpbWUgKyAxO1xuICBjb25zdCB0ID0gcXVvdGllbnQoMzY0ICsgcyAtIG4sIDMwNik7XG4gIGxldCBtb250aCA9IHQgKiAocXVvdGllbnQobiwgMzEpICsgMSkgKyAoMSAtIHQpICogKHF1b3RpZW50KDUgKiAobiAtIHMpICsgMTMsIDE1MykgKyAxKTtcbiAgbiArPSAxIC0gcXVvdGllbnQocjIwMDAsIDczMDQ4NCk7XG4gIGxldCBkYXkgPSBuO1xuXG4gIGlmIChyMTAwID09PSAwICYmIG4gPT09IDAgJiYgcjQwMCAhPT0gMCkge1xuICAgIG1vbnRoID0gMTI7XG4gICAgZGF5ID0gMzE7XG4gIH0gZWxzZSB7XG4gICAgbW9udGhEYXlzWzJdID0gaXNHcmVnb3JpYW5MZWFwKHllYXIpID8gMjkgOiAyODtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBHUkVHT1JJQU5fTlVNQkVSX09GX01PTlRIUzsgaSArPSAxKSB7XG4gICAgICBpZiAobiA8PSBtb250aERheXNbaV0pIHtcbiAgICAgICAgZGF5ID0gbjtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBuIC09IG1vbnRoRGF5c1tpXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFt5ZWFyLCBtb250aCwgZGF5XTtcbn1cblxuZnVuY3Rpb24gZ3JlZ29yaWFuVG9FdGhpb3BpYyhkYXk6IG51bWJlciwgbW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHtcbiAgY29uc3QgamRuID0gZ3JlZ29yaWFuVG9KRE4oZGF5LCBtb250aCwgeWVhcik7XG4gIHJldHVybiBqZG5Ub0V0aGlvcGljKGpkbik7XG59XG5cbmZ1bmN0aW9uIGV0aGlvaXBpY1RvR3JlZyhkYXk6IG51bWJlciwgbW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHtcbiAgY29uc3QgamRuID0gZXRoaW9waWNUb0pETihkYXksIG1vbnRoLCB5ZWFyKTtcbiAgcmV0dXJuIGpkblRvR3JlZ29yaWFuKGpkbik7XG59XG5cbmZ1bmN0aW9uIGV0aGlvaXBpY1RvR3JlZ29yaWFuKFxuICBkYXk6IG51bWJlcixcbiAgbW9udGg6IG51bWJlcixcbiAgeWVhcjogbnVtYmVyLFxuICBlcmE6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB7XG4gIHNldEVyYShlcmEpO1xuICBjb25zdCByZXN1bHQgPSBldGhpb2lwaWNUb0dyZWcoZGF5LCBtb250aCwgeWVhcik7XG4gIHVuc2V0RXJhKCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBBUEkgKiAqL1xuXG4vKiogZXRoaW9waWFuIHRvIGdyZWdvcmlhbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvR0MoXG4gIGRhdGVBcnJheTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4pOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xuICBjb25zdCBbeSwgbSwgZF0gPSBkYXRlQXJyYXk7XG4gIGxldCBlcmEgPSBkYXRlQXJyYXkubGVuZ3RoID09PSA0ID8gZGF0ZUFycmF5WzNdIDogSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVDtcbiAgaWYgKGQgPCAwIHx8IGQgPiAzMCB8fCBtIDwgMCB8fCBtID4gMTMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgRXRoaW9waWFuIERhdGUnKTtcbiAgfVxuICByZXR1cm4gZXRoaW9pcGljVG9HcmVnb3JpYW4oZCwgbSwgeSwgZXJhKTtcbn1cblxuLyoqIGdyZWdvcmlhbiB0byBldGhpb3BpYW4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0VDKGRhdGVBcnJheTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdKTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHtcbiAgY29uc3QgW3ksIG0sIGRdID0gZGF0ZUFycmF5O1xuICBpZiAoZCA8IDAgfHwgZCA+IDMxIHx8IG0gPCAwIHx8IG0gPiAxMikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBHcmVnb3JpYW4gRGF0ZScpO1xuICB9XG4gIHJldHVybiBncmVnb3JpYW5Ub0V0aGlvcGljKGQsIG0sIHkpO1xufVxuIl19
|
|
@@ -26,7 +26,7 @@ export class AjfEthiopianDatePipe {
|
|
|
26
26
|
try {
|
|
27
27
|
const ed = EthiopianDate.gregorianToEthiopian(value);
|
|
28
28
|
const date = `0${ed.getDate()}`.slice(-2);
|
|
29
|
-
const month = `0${ed.getMonth()}`.slice(-2);
|
|
29
|
+
const month = `0${ed.getMonth() + 1}`.slice(-2);
|
|
30
30
|
return `${date}/${month}/${ed.getFullYear()}`;
|
|
31
31
|
}
|
|
32
32
|
catch (e) {
|
|
@@ -38,4 +38,4 @@ AjfEthiopianDatePipe.decorators = [
|
|
|
38
38
|
{ type: Injectable },
|
|
39
39
|
{ type: Pipe, args: [{ name: 'ajfEthiopianDate' },] }
|
|
40
40
|
];
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoaW9waWFuLWRhdGUtcGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jYWxlbmRhcnMvZXRoaW9waWFuL2V0aGlvcGlhbi1kYXRlLXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUkvQyxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFNBQVMsQ0FBQyxLQUFVO1FBQ2xCLElBQUk7WUFDRixNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztTQUMvQztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7OztZQVpGLFVBQVU7WUFDVixJQUFJLFNBQUMsRUFBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKEMpIEdudWNvb3Agc29jLiBjb29wLlxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yXG4gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLFxuICogb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBBZmZlcm9cbiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uXG4gKlxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZSwgUGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V0aGlvcGlhbkRhdGV9IGZyb20gJy4vZXRoaW9waWFuLWRhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5AUGlwZSh7bmFtZTogJ2FqZkV0aGlvcGlhbkRhdGUnfSlcbmV4cG9ydCBjbGFzcyBBamZFdGhpb3BpYW5EYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IGFueSk6IHN0cmluZyB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBlZCA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4odmFsdWUpO1xuICAgICAgY29uc3QgZGF0ZSA9IGAwJHtlZC5nZXREYXRlKCl9YC5zbGljZSgtMik7XG4gICAgICBjb25zdCBtb250aCA9IGAwJHtlZC5nZXRNb250aCgpICsgMX1gLnNsaWNlKC0yKTtcbiAgICAgIHJldHVybiBgJHtkYXRlfS8ke21vbnRofS8ke2VkLmdldEZ1bGxZZWFyKCl9YDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -40,14 +40,20 @@ export class EthiopianDate {
|
|
|
40
40
|
if (result == null) {
|
|
41
41
|
throw new Error('Invalid Argument Exception');
|
|
42
42
|
}
|
|
43
|
-
[this._year, this._month, this._date] =
|
|
44
|
-
|
|
43
|
+
[this._year, this._month, this._date] = [
|
|
44
|
+
result.getFullYear(),
|
|
45
|
+
result.getMonth(),
|
|
46
|
+
result.getDate(),
|
|
47
|
+
];
|
|
45
48
|
this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);
|
|
46
49
|
}
|
|
47
50
|
else if (typeof val === 'object' && val instanceof Date) {
|
|
48
|
-
const result = EthiopianDate.gregorianToEthiopian(val
|
|
49
|
-
[this._year, this._month, this._date] =
|
|
50
|
-
|
|
51
|
+
const result = EthiopianDate.gregorianToEthiopian(val);
|
|
52
|
+
[this._year, this._month, this._date] = [
|
|
53
|
+
result.getFullYear(),
|
|
54
|
+
result.getMonth(),
|
|
55
|
+
result.getDate(),
|
|
56
|
+
];
|
|
51
57
|
this._gc = EthiopianDate.ethiopianToGregorian(this._year, this._month, this._date);
|
|
52
58
|
}
|
|
53
59
|
else {
|
|
@@ -87,9 +93,9 @@ export class EthiopianDate {
|
|
|
87
93
|
return this._month >= 0 && this._month < MONTHS_NAMES.length ? MONTHS_NAMES[this._month] : null;
|
|
88
94
|
}
|
|
89
95
|
getShortMonthName() {
|
|
90
|
-
return this._month >= 0 && this._month < SHORT_MONTHS_NAMES.length
|
|
91
|
-
SHORT_MONTHS_NAMES[this._month]
|
|
92
|
-
null;
|
|
96
|
+
return this._month >= 0 && this._month < SHORT_MONTHS_NAMES.length
|
|
97
|
+
? SHORT_MONTHS_NAMES[this._month]
|
|
98
|
+
: null;
|
|
93
99
|
}
|
|
94
100
|
getHours() {
|
|
95
101
|
return 0;
|
|
@@ -112,7 +118,7 @@ export class EthiopianDate {
|
|
|
112
118
|
* @param val - A numeric year value if the second and third parameters are
|
|
113
119
|
* provided, it should be a date string if not
|
|
114
120
|
* @param month A zero-based numeric value for the month
|
|
115
|
-
* (0 for
|
|
121
|
+
* (0 for መስከረም, 12 for ጳጉሜን)
|
|
116
122
|
* @param day A numeric value equal for the day of the month.
|
|
117
123
|
*
|
|
118
124
|
* @api public
|
|
@@ -141,6 +147,16 @@ export class EthiopianDate {
|
|
|
141
147
|
const gc = toGC(ec);
|
|
142
148
|
return new Date(gc[0], gc[1] - 1, gc[2]);
|
|
143
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
*
|
|
152
|
+
* @param val - A numeric year value if the second and third parameters are
|
|
153
|
+
* provided, it should be a date string if not
|
|
154
|
+
* @param month A zero-based numeric value for the month
|
|
155
|
+
* (0 for January, 11 for December)
|
|
156
|
+
* @param day A numeric value equal for the day of the month.
|
|
157
|
+
*
|
|
158
|
+
* @api public
|
|
159
|
+
*/
|
|
144
160
|
static gregorianToEthiopian(val, month, day) {
|
|
145
161
|
let gc;
|
|
146
162
|
if (val != null && month == null && day == null && typeof val !== 'number') {
|
|
@@ -185,4 +201,4 @@ export class EthiopianDate {
|
|
|
185
201
|
throw new Error(`ParsingError: Can't parse ${dateString}`);
|
|
186
202
|
}
|
|
187
203
|
}
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoaW9waWFuLWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2FsZW5kYXJzL2V0aGlvcGlhbi9ldGhpb3BpYW4tZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVyRSxNQUFNLE9BQU8sYUFBYTtJQU14Qjs7Ozs7T0FLRztJQUNILFlBQVksR0FBd0IsRUFBRSxLQUFjLEVBQUUsR0FBWTtRQUNoRSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQy9DLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7WUFDNUQsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUM5RixJQUFJLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BGO2FBQU0sSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDakYsSUFBSSxPQUFPLEdB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LENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBa0I7UUFDN0IsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakY7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoQykgR251Y29vcCBzb2MuIGNvb3AuXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3JcbiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsXG4gKiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEFmZmVyb1xuICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICogSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuaW1wb3J0IHt0b0VDLCB0b0dDfSBmcm9tICcuL2NvbnZlcnRlcic7XG5pbXBvcnQge01PTlRIU19OQU1FUywgU0hPUlRfTU9OVEhTX05BTUVTLCBXRUVLX05BTUVTfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEV0aGlvcGlhbkRhdGUge1xuICBwcml2YXRlIF95ZWFyOiBudW1iZXI7XG4gIHByaXZhdGUgX21vbnRoOiBudW1iZXI7XG4gIHByaXZhdGUgX2RhdGU6IG51bWJlcjtcbiAgcHJpdmF0ZSBfZ2M6IERhdGU7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB2YWwgLSBBIG51bWVyaWMgeWVhciB2YWx1ZSBpZiB0aGUgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyIHByb3ZpZGVkLFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCBzaG91bGQgYmUgYSBkYXRlIHN0cmluZyBpZiBub3RcbiAgICogQHBhcmFtIG1vbnRoIEEgemVyby1iYXNlZCBudW1lcmljIHZhbHVlIGZvciB0aGUgbW9udGggKDAgZm9yIOGImOGIteGKqOGIqOGInSwgMTIgZm9yIOGMs+GMieGInOGKlSlcbiAgICogQHBhcmFtIGRheSBBIG51bWVyaWMgdmFsdWUgZXF1YWwgZm9yIHRoZSBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKi9cbiAgY29uc3RydWN0b3IodmFsPzogRGF0ZXxzdHJpbmd8bnVtYmVyLCBtb250aD86IG51bWJlciwgZGF5PzogbnVtYmVyKSB7XG4gICAgaWYgKHZhbCA9PSBudWxsICYmIG1vbnRoID09IG51bGwgJiYgZGF5ID09IG51bGwpIHtcbiAgICAgIGNvbnN0IGFodW4gPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKG5ldyBEYXRlKCkpO1xuICAgICAgW3RoaXMuX3llYXIsIHRoaXMuX21vbnRoLCB0aGlzLl9kYXRlXSA9IFthaHVuLmdldEZ1bGxZZWFyKCksIGFodW4uZ2V0TW9udGgoKSwgYWh1bi5nZXREYXRlKCldO1xuICAgICAgdGhpcy5fZ2MgPSBFdGhpb3BpYW5EYXRlLmV0aGlvcGlhblRvR3JlZ29yaWFuKHRoaXMuX3llYXIsIHRoaXMuX21vbnRoLCB0aGlzLl9kYXRlKTtcbiAgICB9IGVsc2UgaWYgKHZhbCAhPSBudWxsICYmIG1vbnRoID09IG51bGwgJiYgZGF5ID09IG51bGwgJiYgdHlwZW9mIHZhbCAhPT0gJ251bWJlcicpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBFdGhpb3BpYW5EYXRlLnBhcnNlKHZhbCk7XG4gICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBBcmd1bWVudCBFeGNlcHRpb24nKTtcbiAgICAgICAgfVxuICAgICAgICBbdGhpcy5feWVhciwgdGhpcy5fbW9udGgsIHRoaXMuX2RhdGVdID1cbiAgICAgICAgICAgIFtyZXN1bHQuZ2V0RnVsbFllYXIoKSwgcmVzdWx0LmdldE1vbnRoKCksIHJlc3VsdC5nZXREYXRlKCldO1xuICAgICAgICB0aGlzLl9nYyA9IEV0aGlvcGlhbkRhdGUuZXRoaW9waWFuVG9HcmVnb3JpYW4odGhpcy5feWVhciwgdGhpcy5fbW9udGgsIHRoaXMuX2RhdGUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWwgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IEV0aGlvcGlhbkRhdGUuZ3JlZ29yaWFuVG9FdGhpb3BpYW4oXG4gICAgICAgICAgICB2YWwuZ2V0RnVsbFllYXIoKSwgdmFsLmdldE1vbnRoKCkgKyAxLCB2YWwuZ2V0RGF0ZSgpKTtcbiAgICAgICAgW3RoaXMuX3llYXIsIHRoaXMuX21vbnRoLCB0aGlzLl9kYXRlXSA9XG4gICAgICAgICAgICBbcmVzdWx0LmdldEZ1bGxZZWFyKCksIHJlc3VsdC5nZXRNb250aCgpLCByZXN1bHQuZ2V0RGF0ZSgpXTtcbiAgICAgICAgdGhpcy5fZ2MgPSBFdGhpb3BpYW5EYXRlLmV0aGlvcGlhblRvR3JlZ29yaWFuKHRoaXMuX3llYXIsIHRoaXMuX21vbnRoLCB0aGlzLl9kYXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBBcmd1bWVudCBFeGNlcHRpb24nKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHZhbCAhPSBudWxsICYmIG1vbnRoICE9IG51bGwgJiYgZGF5ICE9IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuX3llYXIgPSB2YWw7XG4gICAgICB0aGlzLl9tb250aCA9IG1vbnRoO1xuICAgICAgdGhpcy5fZGF0ZSA9IGRheTtcbiAgICAgIHRoaXMuX2djID0gRXRoaW9waWFuRGF0ZS5ldGhpb3BpYW5Ub0dyZWdvcmlhbih0aGlzLl95ZWFyLCB0aGlzLl9tb250aCwgdGhpcy5fZGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGF0ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9kYXRlO1xuICB9XG5cbiAgZ2V0RGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2djLmdldERheSgpO1xuICB9XG5cbiAgZ2V0RGF5T2ZXZWVrKCkge1xuICAgIGNvbnN0IHdlZWtEYXkgPSB0aGlzLmdldEdDV2Vla0RheSgpO1xuICAgIHJldHVybiBXRUVLX05BTUVTW3dlZWtEYXldO1xuICB9XG5cbiAgZ2V0RnVsbFllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5feWVhcjtcbiAgfVxuXG4gIGdldEdyZWdvcmlhbkRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2djO1xuICB9XG5cbiAgZ2V0R0NXZWVrRGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2djLmdldERheSgpO1xuICB9XG5cbiAgZ2V0TW9udGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbW9udGg7XG4gIH1cblxuICBnZXRNb250aE5hbWUoKTogc3RyaW5nfG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tb250aCA+PSAwICYmIHRoaXMuX21vbnRoIDwgTU9OVEhTX05BTUVTLmxlbmd0aCA/IE1PTlRIU19OQU1FU1t0aGlzLl9tb250aF0gOiBudWxsO1xuICB9XG5cbiAgZ2V0U2hvcnRNb250aE5hbWUoKTogc3RyaW5nfG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tb250aCA+PSAwICYmIHRoaXMuX21vbnRoIDwgU0hPUlRfTU9OVEhTX05BTUVTLmxlbmd0aCA/XG4gICAgICAgIFNIT1JUX01PTlRIU19OQU1FU1t0aGlzLl9tb250aF0gOlxuICAgICAgICBudWxsO1xuICB9XG5cbiAgZ2V0SG91cnMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGdldE1pbnV0ZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGdldFNlY29uZHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGdldE1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5feWVhcn0tJHt0aGlzLl9tb250aCArIDF9LSR7dGhpcy5fZGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgRXRoaW9waWFuIGRhdGUgdG8gR3JlZ29yaWFuIGFuZCByZXR1cm5zIERhdGUgaW5zdGFuY2UgcmVwcmVzZW50aW5nIEdyZWdvcmlhbiBEYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsIC0gQSBudW1lcmljIHllYXIgdmFsdWUgaWYgdGhlIHNlY29uZCBhbmQgdGhpcmQgcGFyYW1ldGVycyBhcmVcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVkLCBpdCBzaG91bGQgYmUgYSBkYXRlIHN0cmluZyBpZiBub3RcbiAgICogQHBhcmFtIG1vbnRoIEEgemVyby1iYXNlZCBudW1lcmljIHZhbHVlIGZvciB0aGUgbW9udGhcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgKDAgZm9yIEphbnVhcnksIDExIGZvciBEZWNlbWJlcilcbiAgICogQHBhcmFtIGRheSBBIG51bWVyaWMgdmFsdWUgZXF1YWwgZm9yIHRoZSBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKlxuICAgKiBAYXBpIHB1YmxpY1xuICAgKi9cbiAgc3RhdGljIGV0aGlvcGlhblRvR3JlZ29yaWFuKHZhbD86IEV0aGlvcGlhbkRhdGV8c3RyaW5nfG51bWJlciwgbW9udGg/OiBudW1iZXIsIGRheT86IG51bWJlcik6XG4gICAgICBEYXRlIHtcbiAgICBsZXQgZWM6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgICBpZiAodmFsICE9IG51bGwgJiYgbW9udGggPT0gbnVsbCAmJiBkYXkgPT0gbnVsbCAmJiB0eXBlb2YgdmFsICE9PSAnbnVtYmVyJykge1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IGV0RGF0ZSA9IG5ldyBFdGhpb3BpYW5EYXRlKHZhbCk7XG4gICAgICAgIGVjID0gW2V0RGF0ZS5nZXRGdWxsWWVhcigpLCBldERhdGUuZ2V0TW9udGgoKSArIDEsIGV0RGF0ZS5nZXREYXRlKCldO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWwgaW5zdGFuY2VvZiBFdGhpb3BpYW5EYXRlKSB7XG4gICAgICAgIGNvbnN0IFt5LCBtLCBkXSA9IFt2YWwuZ2V0RnVsbFllYXIoKSwgdmFsLmdldE1vbnRoKCkgKyAxLCB2YWwuZ2V0RGF0ZSgpXTtcbiAgICAgICAgZWMgPSBbeSwgbSwgZF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQXJndW1lbnQgRXhjZXB0aW9uJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh2YWwgIT0gbnVsbCAmJiBtb250aCAhPSBudWxsICYmIGRheSAhPSBudWxsICYmIHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICBlYyA9IFt2YWwsIG1vbnRoICsgMSwgZGF5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEFyZ3VtZW50IEV4Y2VwdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBnYyA9IHRvR0MoZWMpO1xuICAgIHJldHVybiBuZXcgRGF0ZShnY1swXSwgZ2NbMV0gLSAxLCBnY1syXSk7XG4gIH1cblxuICBzdGF0aWMgZ3JlZ29yaWFuVG9FdGhpb3BpYW4odmFsPzogRGF0ZXxzdHJpbmd8bnVtYmVyLCBtb250aD86IG51bWJlciwgZGF5PzogbnVtYmVyKTpcbiAgICAgIEV0aGlvcGlhbkRhdGUge1xuICAgIGxldCBnYzogW251bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICAgIGlmICh2YWwgIT0gbnVsbCAmJiBtb250aCA9PSBudWxsICYmIGRheSA9PSBudWxsICYmIHR5cGVvZiB2YWwgIT09ICdudW1iZXInKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgZ2NEYXRlID0gbmV3IERhdGUodmFsKTtcbiAgICAgICAgZ2MgPSBbZ2NEYXRlLmdldEZ1bGxZZWFyKCksIGdjRGF0ZS5nZXRNb250aCgpICsgMSwgZ2NEYXRlLmdldERhdGUoKV07XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgY29uc3QgW3ksIG0sIGRdID0gW3ZhbC5nZXRGdWxsWWVhcigpLCB2YWwuZ2V0TW9udGgoKSArIDEsIHZhbC5nZXREYXRlKCldO1xuICAgICAgICBnYyA9IFt5LCBtLCBkXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBBcmd1bWVudCBFeGNlcHRpb24nKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHZhbCAhPSBudWxsICYmIG1vbnRoICE9IG51bGwgJiYgZGF5ICE9IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGdjID0gW3ZhbCwgbW9udGggKyAxLCBkYXldO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQXJndW1lbnQgRXhjZXB0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IGVjID0gdG9FQyhnYyk7XG4gICAgcmV0dXJuIG5ldyBFdGhpb3BpYW5EYXRlKGVjWzBdLCBlY1sxXSAtIDEsIGVjWzJdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBFdGhpb3BpYW4gZGF0ZSBmcm9tIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0gZGF0ZVN0cmluZyBhIGRhdGUgc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBwYXJhbSBwYXR0ZXJuIGEgcGFyc2luZyBwYXR0ZXJuXG4gICAqXG4gICAqIEByZXR1cm5zIEV0aGlvcGlhbkRhdGVcbiAgICovXG4gIHN0YXRpYyBwYXJzZShkYXRlU3RyaW5nOiBzdHJpbmcpOiBFdGhpb3BpYW5EYXRlfG51bGwge1xuICAgIGlmICghZGF0ZVN0cmluZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IGRhdGVTdHJpbmcuc3BsaXQoJy0nKTtcbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMykge1xuICAgICAgY29uc3QgW3ksIG0sIGRdID0gcmVzdWx0O1xuICAgICAgcmV0dXJuIG5ldyBFdGhpb3BpYW5EYXRlKHBhcnNlSW50KHksIDEwKSwgcGFyc2VJbnQobSwgMTApIC0gMSwgcGFyc2VJbnQoZCwgMTApKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBQYXJzaW5nRXJyb3I6IENhbid0IHBhcnNlICR7ZGF0ZVN0cmluZ31gKTtcbiAgfVxufVxuIl19
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoaW9waWFuLWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2FsZW5kYXJzL2V0aGlvcGlhbi9ldGhpb3BpYW4tZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVyRSxNQUFNLE9BQU8sYUFBYTtJQU14Qjs7Ozs7T0FLRztJQUNILFlBQVksR0FBNEIsRUFBRSxLQUFjLEVBQUUsR0FBWTtRQUNwRSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQy9DLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7WUFDNUQsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUM5RixJQUFJLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BGO2FBQU0sSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDakYsSUFBSSxPQUFPLEdB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Q0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFrQjtRQUM3QixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDekIsT0FBTyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqRjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChDKSBHbnVjb29wIHNvYy4gY29vcC5cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSxcbiAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLlxuICpcbiAqL1xuXG5pbXBvcnQge3RvRUMsIHRvR0N9IGZyb20gJy4vY29udmVydGVyJztcbmltcG9ydCB7TU9OVEhTX05BTUVTLCBTSE9SVF9NT05USFNfTkFNRVMsIFdFRUtfTkFNRVN9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgRXRoaW9waWFuRGF0ZSB7XG4gIHByaXZhdGUgX3llYXI6IG51bWJlcjtcbiAgcHJpdmF0ZSBfbW9udGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfZGF0ZTogbnVtYmVyO1xuICBwcml2YXRlIF9nYzogRGF0ZTtcblxuICAvKipcbiAgICogQHBhcmFtIHZhbCAtIEEgbnVtZXJpYyB5ZWFyIHZhbHVlIGlmIHRoZSBzZWNvbmQgYW5kIHRoaXJkIHBhcmFtZXRlcnMgYXIgcHJvdmlkZWQsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IHNob3VsZCBiZSBhIGRhdGUgc3RyaW5nIGlmIG5vdFxuICAgKiBAcGFyYW0gbW9udGggQSB6ZXJvLWJhc2VkIG51bWVyaWMgdmFsdWUgZm9yIHRoZSBtb250aCAoMCBmb3Ig4YiY4Yi14Yqo4Yio4YidLCAxMiBmb3Ig4Yyz4YyJ4Yic4YqVKVxuICAgKiBAcGFyYW0gZGF5IEEgbnVtZXJpYyB2YWx1ZSBlcXVhbCBmb3IgdGhlIGRheSBvZiB0aGUgbW9udGguXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih2YWw/OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyLCBtb250aD86IG51bWJlciwgZGF5PzogbnVtYmVyKSB7XG4gICAgaWYgKHZhbCA9PSBudWxsICYmIG1vbnRoID09IG51bGwgJiYgZGF5ID09IG51bGwpIHtcbiAgICAgIGNvbnN0IGFodW4gPSBFdGhpb3BpYW5EYXRlLmdyZWdvcmlhblRvRXRoaW9waWFuKG5ldyBEYXRlKCkpO1xuICAgICAgW3RoaXMuX3llYXIsIHRoaXMuX21vbnRoLCB0aGlzLl9kYXRlXSA9IFthaHVuLmdldEZ1bGxZZWFyKCksIGFodW4uZ2V0TW9udGgoKSwgYWh1bi5nZXREYXRlKCldO1xuICAgICAgdGhpcy5fZ2MgPSBFdGhpb3BpYW5EYXRlLmV0aGlvcGlhblRvR3JlZ29yaWFuKHRoaXMuX3llYXIsIHRoaXMuX21vbnRoLCB0aGlzLl9kYXRlKTtcbiAgICB9IGVsc2UgaWYgKHZhbCAhPSBudWxsICYmIG1vbnRoID09IG51bGwgJiYgZGF5ID09IG51bGwgJiYgdHlwZW9mIHZhbCAhPT0gJ251bWJlcicpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBFdGhpb3BpYW5EYXRlLnBhcnNlKHZhbCk7XG4gICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBBcmd1bWVudCBFeGNlcHRpb24nKTtcbiAgICAgICAgfVxuICAgICAgICBbdGhpcy5feWVhciwgdGhpcy5fbW9udGgsIHRoaXMuX2RhdGVdID0gW1xuICAgICAgICAgIHJlc3VsdC5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgIHJlc3VsdC5nZXRNb250aCgpLFxuICAgICAgICAgIHJlc3VsdC5nZXREYXRlKCksXG4gICAgICAgIF07XG4gICAgICAgIHRoaXMuX2djID0gRXRoaW9waWFuRGF0ZS5ldGhpb3BpYW5Ub0dyZWdvcmlhbih0aGlzLl95ZWFyLCB0aGlzLl9tb250aCwgdGhpcy5fZGF0ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gRXRoaW9waWFuRGF0ZS5ncmVnb3JpYW5Ub0V0aGlvcGlhbih2YWwpO1xuICAgICAgICBbdGhpcy5feWVhciwgdGhpcy5fbW9udGgsIHRoaXMuX2RhdGVdID0gW1xuICAgICAgICAgIHJlc3VsdC5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgIHJlc3VsdC5nZXRNb250aCgpLFxuICAgICAgICAgIHJlc3VsdC5nZXREYXRlKCksXG4gICAgICAgIF07XG4gICAgICAgIHRoaXMuX2djID0gRXRoaW9waWFuRGF0ZS5ldGhpb3BpYW5Ub0dyZWdvcmlhbih0aGlzLl95ZWFyLCB0aGlzLl9tb250aCwgdGhpcy5fZGF0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQXJndW1lbnQgRXhjZXB0aW9uJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh2YWwgIT0gbnVsbCAmJiBtb250aCAhPSBudWxsICYmIGRheSAhPSBudWxsICYmIHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLl95ZWFyID0gdmFsO1xuICAgICAgdGhpcy5fbW9udGggPSBtb250aDtcbiAgICAgIHRoaXMuX2RhdGUgPSBkYXk7XG4gICAgICB0aGlzLl9nYyA9IEV0aGlvcGlhbkRhdGUuZXRoaW9waWFuVG9HcmVnb3JpYW4odGhpcy5feWVhciwgdGhpcy5fbW9udGgsIHRoaXMuX2RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldERhdGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZTtcbiAgfVxuXG4gIGdldERheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9nYy5nZXREYXkoKTtcbiAgfVxuXG4gIGdldERheU9mV2VlaygpIHtcbiAgICBjb25zdCB3ZWVrRGF5ID0gdGhpcy5nZXRHQ1dlZWtEYXkoKTtcbiAgICByZXR1cm4gV0VFS19OQU1FU1t3ZWVrRGF5XTtcbiAgfVxuXG4gIGdldEZ1bGxZZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3llYXI7XG4gIH1cblxuICBnZXRHcmVnb3JpYW5EYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9nYztcbiAgfVxuXG4gIGdldEdDV2Vla0RheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9nYy5nZXREYXkoKTtcbiAgfVxuXG4gIGdldE1vbnRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21vbnRoO1xuICB9XG5cbiAgZ2V0TW9udGhOYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tb250aCA+PSAwICYmIHRoaXMuX21vbnRoIDwgTU9OVEhTX05BTUVTLmxlbmd0aCA/IE1PTlRIU19OQU1FU1t0aGlzLl9tb250aF0gOiBudWxsO1xuICB9XG5cbiAgZ2V0U2hvcnRNb250aE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX21vbnRoID49IDAgJiYgdGhpcy5fbW9udGggPCBTSE9SVF9NT05USFNfTkFNRVMubGVuZ3RoXG4gICAgICA/IFNIT1JUX01PTlRIU19OQU1FU1t0aGlzLl9tb250aF1cbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIGdldEhvdXJzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBnZXRNaW51dGVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBnZXRTZWNvbmRzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBnZXRNaWxsaXNlY29uZHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuX3llYXJ9LSR7dGhpcy5fbW9udGggKyAxfS0ke3RoaXMuX2RhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIEV0aGlvcGlhbiBkYXRlIHRvIEdyZWdvcmlhbiBhbmQgcmV0dXJucyBEYXRlIGluc3RhbmNlIHJlcHJlc2VudGluZyBHcmVnb3JpYW4gRGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbCAtIEEgbnVtZXJpYyB5ZWFyIHZhbHVlIGlmIHRoZSBzZWNvbmQgYW5kIHRoaXJkIHBhcmFtZXRlcnMgYXJlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlZCwgaXQgc2hvdWxkIGJlIGEgZGF0ZSBzdHJpbmcgaWYgbm90XG4gICAqIEBwYXJhbSBtb250aCBBIHplcm8tYmFzZWQgbnVtZXJpYyB2YWx1ZSBmb3IgdGhlIG1vbnRoXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICgwIGZvciDhiJjhiLXhiqjhiKjhiJ0sIDEyIGZvciDhjLPhjInhiJzhipUpXG4gICAqIEBwYXJhbSBkYXkgQSBudW1lcmljIHZhbHVlIGVxdWFsIGZvciB0aGUgZGF5IG9mIHRoZSBtb250aC5cbiAgICpcbiAgICogQGFwaSBwdWJsaWNcbiAgICovXG4gIHN0YXRpYyBldGhpb3BpYW5Ub0dyZWdvcmlhbihcbiAgICB2YWw/OiBFdGhpb3BpYW5EYXRlIHwgc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vbnRoPzogbnVtYmVyLFxuICAgIGRheT86IG51bWJlcixcbiAgKTogRGF0ZSB7XG4gICAgbGV0IGVjOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gICAgaWYgKHZhbCAhPSBudWxsICYmIG1vbnRoID09IG51bGwgJiYgZGF5ID09IG51bGwgJiYgdHlwZW9mIHZhbCAhPT0gJ251bWJlcicpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBldERhdGUgPSBuZXcgRXRoaW9waWFuRGF0ZSh2YWwpO1xuICAgICAgICBlYyA9IFtldERhdGUuZ2V0RnVsbFllYXIoKSwgZXREYXRlLmdldE1vbnRoKCkgKyAxLCBldERhdGUuZ2V0RGF0ZSgpXTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsIGluc3RhbmNlb2YgRXRoaW9waWFuRGF0ZSkge1xuICAgICAgICBjb25zdCBbeSwgbSwgZF0gPSBbdmFsLmdldEZ1bGxZZWFyKCksIHZhbC5nZXRNb250aCgpICsgMSwgdmFsLmdldERhdGUoKV07XG4gICAgICAgIGVjID0gW3ksIG0sIGRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEFyZ3VtZW50IEV4Y2VwdGlvbicpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodmFsICE9IG51bGwgJiYgbW9udGggIT0gbnVsbCAmJiBkYXkgIT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgZWMgPSBbdmFsLCBtb250aCArIDEsIGRheV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBBcmd1bWVudCBFeGNlcHRpb24nKTtcbiAgICB9XG4gICAgY29uc3QgZ2MgPSB0b0dDKGVjKTtcbiAgICByZXR1cm4gbmV3IERhdGUoZ2NbMF0sIGdjWzFdIC0gMSwgZ2NbMl0pO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB2YWwgLSBBIG51bWVyaWMgeWVhciB2YWx1ZSBpZiB0aGUgc2Vjb25kIGFuZCB0aGlyZCBwYXJhbWV0ZXJzIGFyZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZWQsIGl0IHNob3VsZCBiZSBhIGRhdGUgc3RyaW5nIGlmIG5vdFxuICAgKiBAcGFyYW0gbW9udGggQSB6ZXJvLWJhc2VkIG51bWVyaWMgdmFsdWUgZm9yIHRoZSBtb250aFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAoMCBmb3IgSmFudWFyeSwgMTEgZm9yIERlY2VtYmVyKVxuICAgKiBAcGFyYW0gZGF5IEEgbnVtZXJpYyB2YWx1ZSBlcXVhbCBmb3IgdGhlIGRheSBvZiB0aGUgbW9udGguXG4gICAqXG4gICAqIEBhcGkgcHVibGljXG4gICAqL1xuICBzdGF0aWMgZ3JlZ29yaWFuVG9FdGhpb3BpYW4oXG4gICAgdmFsPzogRGF0ZSB8IHN0cmluZyB8IG51bWJlcixcbiAgICBtb250aD86IG51bWJlcixcbiAgICBkYXk/OiBudW1iZXIsXG4gICk6IEV0aGlvcGlhbkRhdGUge1xuICAgIGxldCBnYzogW251bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICAgIGlmICh2YWwgIT0gbnVsbCAmJiBtb250aCA9PSBudWxsICYmIGRheSA9PSBudWxsICYmIHR5cGVvZiB2YWwgIT09ICdudW1iZXInKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgZ2NEYXRlID0gbmV3IERhdGUodmFsKTtcbiAgICAgICAgZ2MgPSBbZ2NEYXRlLmdldEZ1bGxZZWFyKCksIGdjRGF0ZS5nZXRNb250aCgpICsgMSwgZ2NEYXRlLmdldERhdGUoKV07XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgY29uc3QgW3ksIG0sIGRdID0gW3ZhbC5nZXRGdWxsWWVhcigpLCB2YWwuZ2V0TW9udGgoKSArIDEsIHZhbC5nZXREYXRlKCldO1xuICAgICAgICBnYyA9IFt5LCBtLCBkXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBBcmd1bWVudCBFeGNlcHRpb24nKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHZhbCAhPSBudWxsICYmIG1vbnRoICE9IG51bGwgJiYgZGF5ICE9IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGdjID0gW3ZhbCwgbW9udGggKyAxLCBkYXldO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQXJndW1lbnQgRXhjZXB0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IGVjID0gdG9FQyhnYyk7XG4gICAgcmV0dXJuIG5ldyBFdGhpb3BpYW5EYXRlKGVjWzBdLCBlY1sxXSAtIDEsIGVjWzJdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBFdGhpb3BpYW4gZGF0ZSBmcm9tIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0gZGF0ZVN0cmluZyBhIGRhdGUgc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBwYXJhbSBwYXR0ZXJuIGEgcGFyc2luZyBwYXR0ZXJuXG4gICAqXG4gICAqIEByZXR1cm5zIEV0aGlvcGlhbkRhdGVcbiAgICovXG4gIHN0YXRpYyBwYXJzZShkYXRlU3RyaW5nOiBzdHJpbmcpOiBFdGhpb3BpYW5EYXRlIHwgbnVsbCB7XG4gICAgaWYgKCFkYXRlU3RyaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gZGF0ZVN0cmluZy5zcGxpdCgnLScpO1xuICAgIGlmIChyZXN1bHQubGVuZ3RoID09PSAzKSB7XG4gICAgICBjb25zdCBbeSwgbSwgZF0gPSByZXN1bHQ7XG4gICAgICByZXR1cm4gbmV3IEV0aGlvcGlhbkRhdGUocGFyc2VJbnQoeSwgMTApLCBwYXJzZUludChtLCAxMCkgLSAxLCBwYXJzZUludChkLCAxMCkpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcnNpbmdFcnJvcjogQ2FuJ3QgcGFyc2UgJHtkYXRlU3RyaW5nfWApO1xuICB9XG59XG4iXX0=
|
|
@@ -21,7 +21,33 @@
|
|
|
21
21
|
*/
|
|
22
22
|
export const WEEK_NAMES = ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሓሙስ', 'ዓርብ', 'ቅዳሜ'];
|
|
23
23
|
export const MONTHS_NAMES = [
|
|
24
|
-
'መስከረም',
|
|
24
|
+
'መስከረም',
|
|
25
|
+
'ጥቅምት',
|
|
26
|
+
'ኅዳር',
|
|
27
|
+
'ታኅሣሥ',
|
|
28
|
+
'ጥር',
|
|
29
|
+
'የካቲት',
|
|
30
|
+
'መጋቢት',
|
|
31
|
+
'ሚያዝያ',
|
|
32
|
+
'ግንቦት',
|
|
33
|
+
'ሰኔ',
|
|
34
|
+
'ሐምሌ',
|
|
35
|
+
'ነሐሴ',
|
|
36
|
+
'ጳጉሜን',
|
|
25
37
|
];
|
|
26
|
-
export const SHORT_MONTHS_NAMES = [
|
|
27
|
-
|
|
38
|
+
export const SHORT_MONTHS_NAMES = [
|
|
39
|
+
'መስከ',
|
|
40
|
+
'ጥቅም',
|
|
41
|
+
'ኅዳር',
|
|
42
|
+
'ታኅሣ',
|
|
43
|
+
'ጥር',
|
|
44
|
+
'የካቲ',
|
|
45
|
+
'መጋቢ',
|
|
46
|
+
'ሚያዝ',
|
|
47
|
+
'ግንቦ',
|
|
48
|
+
'ሰኔ',
|
|
49
|
+
'ሐምሌ',
|
|
50
|
+
'ነሐሴ',
|
|
51
|
+
'ጳጉሜ',
|
|
52
|
+
];
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2FsZW5kYXJzL2V0aGlvcGlhbi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsT0FBTztJQUNQLE1BQU07SUFDTixLQUFLO0lBQ0wsTUFBTTtJQUNOLElBQUk7SUFDSixNQUFNO0lBQ04sTUFBTTtJQUNOLE1BQU07SUFDTixNQUFNO0lBQ04sSUFBSTtJQUNKLEtBQUs7SUFDTCxLQUFLO0lBQ0wsTUFBTTtDQUNQLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsSUFBSTtJQUNKLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxJQUFJO0lBQ0osS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0NBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoQykgR251Y29vcCBzb2MuIGNvb3AuXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3JcbiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsXG4gKiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEFmZmVyb1xuICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICogSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuZXhwb3J0IGNvbnN0IFdFRUtfTkFNRVMgPSBbJ+GKpeGIkeGLtScsICfhiLDhip4nLCAn4Yib4Yqt4Yiw4YqeJywgJ+GIqOGJoeGLlScsICfhiJPhiJnhiLUnLCAn4YuT4Yit4YmlJywgJ+GJheGLs+GInCddO1xuXG5leHBvcnQgY29uc3QgTU9OVEhTX05BTUVTID0gW1xuICAn4YiY4Yi14Yqo4Yio4YidJyxcbiAgJ+GMpeGJheGIneGJtScsXG4gICfhioXhi7PhiK0nLFxuICAn4Ymz4YqF4Yij4YilJyxcbiAgJ+GMpeGIrScsXG4gICfhi6jhiqvhibLhibUnLFxuICAn4YiY4YyL4Ymi4Ym1JyxcbiAgJ+GImuGLq+GLneGLqycsXG4gICfhjI3hipXhiabhibUnLFxuICAn4Yiw4YqUJyxcbiAgJ+GIkOGIneGIjCcsXG4gICfhipDhiJDhiLQnLFxuICAn4Yyz4YyJ4Yic4YqVJyxcbl07XG5cbmV4cG9ydCBjb25zdCBTSE9SVF9NT05USFNfTkFNRVMgPSBbXG4gICfhiJjhiLXhiqgnLFxuICAn4Yyl4YmF4YidJyxcbiAgJ+GKheGLs+GIrScsXG4gICfhibPhioXhiKMnLFxuICAn4Yyl4YitJyxcbiAgJ+GLqOGKq+GJsicsXG4gICfhiJjhjIvhiaInLFxuICAn4Yia4Yur4YudJyxcbiAgJ+GMjeGKleGJpicsXG4gICfhiLDhipQnLFxuICAn4YiQ4Yid4YiMJyxcbiAgJ+GKkOGIkOGItCcsXG4gICfhjLPhjInhiJwnLFxuXTtcbiJdfQ==
|
package/esm2015/version.js
CHANGED
|
@@ -21,5 +21,5 @@
|
|
|
21
21
|
*/
|
|
22
22
|
import { Version } from '@angular/core';
|
|
23
23
|
/** Current version of Ajf. */
|
|
24
|
-
export const VERSION = new Version('12.1.
|
|
24
|
+
export const VERSION = new Version('12.1.8');
|
|
25
25
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jYWxlbmRhcnMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXRDLDhCQUE4QjtBQUM5QixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoQykgR251Y29vcCBzb2MuIGNvb3AuXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3JcbiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsXG4gKiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEFmZmVyb1xuICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICogSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuaW1wb3J0IHtWZXJzaW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqIEN1cnJlbnQgdmVyc2lvbiBvZiBBamYuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcwLjAuMC1QTEFDRUhPTERFUicpO1xuIl19
|
package/ethiopian/converter.d.ts
CHANGED
|
@@ -21,10 +21,6 @@
|
|
|
21
21
|
*/
|
|
22
22
|
/** API * */
|
|
23
23
|
/** ethiopian to gregorian */
|
|
24
|
-
export declare function toGC(dateArray: [number, number, number] | [number, number, number, number]): [
|
|
25
|
-
number,
|
|
26
|
-
number,
|
|
27
|
-
number
|
|
28
|
-
];
|
|
24
|
+
export declare function toGC(dateArray: [number, number, number] | [number, number, number, number]): [number, number, number];
|
|
29
25
|
/** gregorian to ethiopian */
|
|
30
26
|
export declare function toEC(dateArray: [number, number, number]): [number, number, number];
|
|
@@ -51,12 +51,22 @@ export declare class EthiopianDate {
|
|
|
51
51
|
* @param val - A numeric year value if the second and third parameters are
|
|
52
52
|
* provided, it should be a date string if not
|
|
53
53
|
* @param month A zero-based numeric value for the month
|
|
54
|
-
* (0 for
|
|
54
|
+
* (0 for መስከረም, 12 for ጳጉሜን)
|
|
55
55
|
* @param day A numeric value equal for the day of the month.
|
|
56
56
|
*
|
|
57
57
|
* @api public
|
|
58
58
|
*/
|
|
59
59
|
static ethiopianToGregorian(val?: EthiopianDate | string | number, month?: number, day?: number): Date;
|
|
60
|
+
/**
|
|
61
|
+
*
|
|
62
|
+
* @param val - A numeric year value if the second and third parameters are
|
|
63
|
+
* provided, it should be a date string if not
|
|
64
|
+
* @param month A zero-based numeric value for the month
|
|
65
|
+
* (0 for January, 11 for December)
|
|
66
|
+
* @param day A numeric value equal for the day of the month.
|
|
67
|
+
*
|
|
68
|
+
* @api public
|
|
69
|
+
*/
|
|
60
70
|
static gregorianToEthiopian(val?: Date | string | number, month?: number, day?: number): EthiopianDate;
|
|
61
71
|
/**
|
|
62
72
|
* Parse Ethiopian date from string
|